public Cube(Cube self) : base(self) { Data = new CubeShapeData((CubeShapeData)self.Data); }
public override void GenerateSides(int startingID) { CubeShapeData shapeData = Data as CubeShapeData; //For now we only do cubes Sides = new SolidSide[6]; for (int i = 0; i < Sides.Length; i++) { Sides[i].ID = startingID + i; } //Top Sides[0].Plane = new Vector3[] { Position + new Vector3(-(shapeData.Size.X * 0.5f), -(shapeData.Size.Y * 0.5f), shapeData.Size.Z * 0.5f), Position + new Vector3(-(shapeData.Size.X * 0.5f), (shapeData.Size.Y * 0.5f), shapeData.Size.Z * 0.5f), Position + new Vector3((shapeData.Size.X * 0.5f), (shapeData.Size.Y * 0.5f), shapeData.Size.Z * 0.5f) }; Sides[0].UV = new Vector4[] { new Vector4(1, 0, 0, 0), new Vector4(0, 1, 0, 0) }; //Bottom Sides[1].Plane = new Vector3[] { Position + new Vector3((shapeData.Size.X * 0.5f), -(shapeData.Size.Y * 0.5f), -shapeData.Size.Z * 0.5f), Position + new Vector3((shapeData.Size.X * 0.5f), (shapeData.Size.Y * 0.5f), -shapeData.Size.Z * 0.5f), Position + new Vector3(-(shapeData.Size.X * 0.5f), (shapeData.Size.Y * 0.5f), -shapeData.Size.Z * 0.5f) }; Sides[1].UV = new Vector4[] { new Vector4(1, 0, 0, 0), new Vector4(0, 1, 0, 0) }; //Front Sides[2].Plane = new Vector3[] { Position + new Vector3(-(shapeData.Size.X * 0.5f), (shapeData.Size.Y * 0.5f), shapeData.Size.Z * 0.5f), Position + new Vector3(-(shapeData.Size.X * 0.5f), (shapeData.Size.Y * 0.5f), -shapeData.Size.Z * 0.5f), Position + new Vector3((shapeData.Size.X * 0.5f), (shapeData.Size.Y * 0.5f), -shapeData.Size.Z * 0.5f) }; Sides[2].UV = new Vector4[] { new Vector4(1, 0, 0, 0), new Vector4(0, 0, 1, 0) }; //Back Sides[3].Plane = new Vector3[] { Position + new Vector3(-(shapeData.Size.X * 0.5f), -(shapeData.Size.Y * 0.5f), -shapeData.Size.Z * 0.5f), Position + new Vector3(-(shapeData.Size.X * 0.5f), -(shapeData.Size.Y * 0.5f), shapeData.Size.Z * 0.5f), Position + new Vector3((shapeData.Size.X * 0.5f), -(shapeData.Size.Y * 0.5f), shapeData.Size.Z * 0.5f) }; Sides[3].UV = new Vector4[] { new Vector4(1, 0, 0, 0), new Vector4(0, 0, 1, 0) }; //Left Sides[4].Plane = new Vector3[] { Position + new Vector3(-(shapeData.Size.X * 0.5f), -(shapeData.Size.Y * 0.5f), -shapeData.Size.Z * 0.5f), Position + new Vector3(-(shapeData.Size.X * 0.5f), (shapeData.Size.Y * 0.5f), -shapeData.Size.Z * 0.5f), Position + new Vector3(-(shapeData.Size.X * 0.5f), (shapeData.Size.Y * 0.5f), shapeData.Size.Z * 0.5f) }; Sides[4].UV = new Vector4[] { new Vector4(0, 0, 1, 0), new Vector4(0, 1, 0, 0) }; //Right Sides[5].Plane = new Vector3[] { Position + new Vector3((shapeData.Size.X * 0.5f), -(shapeData.Size.Y * 0.5f), shapeData.Size.Z * 0.5f), Position + new Vector3((shapeData.Size.X * 0.5f), (shapeData.Size.Y * 0.5f), shapeData.Size.Z * 0.5f), Position + new Vector3((shapeData.Size.X * 0.5f), (shapeData.Size.Y * 0.5f), -shapeData.Size.Z * 0.5f) }; Sides[5].UV = new Vector4[] { new Vector4(0, 0, 1, 0), new Vector4(0, 1, 0, 0) }; base.GenerateSides(startingID); }
public CubeShapeData(CubeShapeData self) : base(self) { Size = self.Size; }