public static DXCube NewCubeByCubeMinMax(DXCube org, Vector3 min, Vector3 max, int c) { Vector3 orig = org.center; Vector3 antiorig = org.center; orig -= new Vector3(org.size.X * min.X, org.size.Y * min.Y, org.size.Z * min.Z); antiorig += new Vector3(org.size.X * max.X, org.size.Y * max.Y, org.size.Z * max.Z); Vector3 box = antiorig - orig; return NewCubeByOrigSize(orig, box, c); }
public static DXCube NewCubeByCubeMinMax(DXCube org, Vector3 min, Vector3 max, int c) { Vector3 orig = org.center; Vector3 antiorig = org.center; orig -= new Vector3(org.size.X * min.X, org.size.Y * min.Y, org.size.Z * min.Z); antiorig += new Vector3(org.size.X * max.X, org.size.Y * max.Y, org.size.Z * max.Z); Vector3 box = antiorig - orig; return(NewCubeByOrigSize(orig, box, c)); }
public void AddPointCube(SharpDX.Vector3 point, Color4 color) { DXCube cube = new DXCube(_renderer.DxDevice, new SharpDX.Vector3(1.0f), new SharpDX.Vector3()); cube.Shader = ResourcesManager.ShaderManager.GetShader("ColorShader_NoLight"); for(int i = 0; i < 8; ++i) { cube.SetColor(i, color); } cube.UpdateBuffers(); _cubePointsMap.Add(cube); DXSceneNode node = Scene.RootNode.CreateChildNode(); node.Position = point; node.Orientation = Quaternion.RotationAxis(SharpDX.Vector3.UnitY, 0.0f); node.UpdateTransfromMatrix(); node.AttachModel(cube); }
public static DXCube NewCubeByOrigSize(Vector3 origin, Vector3 size, int c) { DXCube res = new DXCube(); res.origin = origin; res.origin = switchYZ(res.origin); res.size = size; res.size = switchYZ(res.size); res.center = origin + size * 0.5f; res.min = res.max = new Vector3(0.5f, 0.5f, 0.5f); res.childs = new List <DXCube>(); res.verts = new CustomVertex.PositionColored[24]; res.verts[0] = new CustomVertex.PositionColored(origin, c); res.verts[1] = new CustomVertex.PositionColored(origin + new Vector3(size.X, 0, 0), c); res.verts[2] = new CustomVertex.PositionColored(origin + new Vector3(size.X, 0, 0), c); res.verts[3] = new CustomVertex.PositionColored(origin + new Vector3(size.X, size.Y, 0), c); res.verts[4] = new CustomVertex.PositionColored(origin + new Vector3(size.X, size.Y, 0), c); res.verts[5] = new CustomVertex.PositionColored(origin + new Vector3(0, size.Y, 0), c); res.verts[6] = new CustomVertex.PositionColored(origin + new Vector3(0, size.Y, 0), c); res.verts[7] = new CustomVertex.PositionColored(origin, c); res.verts[8] = new CustomVertex.PositionColored(origin + new Vector3(0, 0, size.Z), c); res.verts[9] = new CustomVertex.PositionColored(origin + new Vector3(size.X, 0, size.Z), c); res.verts[10] = new CustomVertex.PositionColored(origin + new Vector3(size.X, 0, size.Z), c); res.verts[11] = new CustomVertex.PositionColored(origin + new Vector3(size.X, size.Y, size.Z), c); res.verts[12] = new CustomVertex.PositionColored(origin + new Vector3(size.X, size.Y, size.Z), c); res.verts[13] = new CustomVertex.PositionColored(origin + new Vector3(0, size.Y, size.Z), c); res.verts[14] = new CustomVertex.PositionColored(origin + new Vector3(0, size.Y, size.Z), c); res.verts[15] = new CustomVertex.PositionColored(origin + new Vector3(0, 0, size.Z), c); res.verts[16] = new CustomVertex.PositionColored(origin, c); res.verts[17] = new CustomVertex.PositionColored(origin + new Vector3(0, 0, size.Z), c); res.verts[18] = new CustomVertex.PositionColored(origin + new Vector3(size.X, 0, 0), c); res.verts[19] = new CustomVertex.PositionColored(origin + new Vector3(size.X, 0, size.Z), c); res.verts[20] = new CustomVertex.PositionColored(origin + new Vector3(size.X, size.Y, 0), c); res.verts[21] = new CustomVertex.PositionColored(origin + new Vector3(size.X, size.Y, size.Z), c); res.verts[22] = new CustomVertex.PositionColored(origin + new Vector3(0, size.Y, 0), c); res.verts[23] = new CustomVertex.PositionColored(origin + new Vector3(0, size.Y, size.Z), c); return(res); }
public static DXCube NewCubeByOrigSize(Vector3 origin, Vector3 size,int c) { DXCube res = new DXCube(); res.origin = origin; //res.origin = switchYZ(res.origin); res.size = size; //res.size = switchYZ(res.size); res.center = origin + size * 0.5f; res.min = res.max = new Vector3(0.5f, 0.5f, 0.5f); res.childs = new List<DXCube>(); res.verts = new CustomVertex.PositionColored[24]; res.verts[0] = new CustomVertex.PositionColored(origin, c); res.verts[1] = new CustomVertex.PositionColored(origin + new Vector3(size.X, 0, 0), c); res.verts[2] = new CustomVertex.PositionColored(origin + new Vector3(size.X, 0, 0), c); res.verts[3] = new CustomVertex.PositionColored(origin + new Vector3(size.X, size.Y, 0), c); res.verts[4] = new CustomVertex.PositionColored(origin + new Vector3(size.X, size.Y, 0), c); res.verts[5] = new CustomVertex.PositionColored(origin + new Vector3(0, size.Y, 0), c); res.verts[6] = new CustomVertex.PositionColored(origin + new Vector3(0, size.Y, 0), c); res.verts[7] = new CustomVertex.PositionColored(origin, c); res.verts[8] = new CustomVertex.PositionColored(origin + new Vector3(0, 0, size.Z), c); res.verts[9] = new CustomVertex.PositionColored(origin + new Vector3(size.X, 0, size.Z), c); res.verts[10] = new CustomVertex.PositionColored(origin + new Vector3(size.X, 0, size.Z), c); res.verts[11] = new CustomVertex.PositionColored(origin + new Vector3(size.X, size.Y, size.Z), c); res.verts[12] = new CustomVertex.PositionColored(origin + new Vector3(size.X, size.Y, size.Z), c); res.verts[13] = new CustomVertex.PositionColored(origin + new Vector3(0, size.Y, size.Z), c); res.verts[14] = new CustomVertex.PositionColored(origin + new Vector3(0, size.Y, size.Z), c); res.verts[15] = new CustomVertex.PositionColored(origin + new Vector3(0, 0, size.Z), c); res.verts[16] = new CustomVertex.PositionColored(origin, c); res.verts[17] = new CustomVertex.PositionColored(origin + new Vector3(0, 0, size.Z), c); res.verts[18] = new CustomVertex.PositionColored(origin + new Vector3(size.X, 0, 0), c); res.verts[19] = new CustomVertex.PositionColored(origin + new Vector3(size.X, 0, size.Z), c); res.verts[20] = new CustomVertex.PositionColored(origin + new Vector3(size.X, size.Y, 0), c); res.verts[21] = new CustomVertex.PositionColored(origin + new Vector3(size.X, size.Y, size.Z), c); res.verts[22] = new CustomVertex.PositionColored(origin + new Vector3(0, size.Y, 0), c); res.verts[23] = new CustomVertex.PositionColored(origin + new Vector3(0, size.Y, size.Z), c); return res; }