예제 #1
0
 public Cube(Cube self) : base(self)
 {
     Data = new CubeShapeData((CubeShapeData)self.Data);
 }
예제 #2
0
        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);
        }
예제 #3
0
 public CubeShapeData(CubeShapeData self) : base(self)
 {
     Size = self.Size;
 }