Ejemplo n.º 1
0
		public static async Task<CylinderObject3D> Create()
		{
			var item = new CylinderObject3D();

			await item.Rebuild();
			return item;
		}
Ejemplo n.º 2
0
        public static CylinderObject3D Create()
        {
            var item = new CylinderObject3D();

            item.Rebuild(null);
            return(item);
        }
Ejemplo n.º 3
0
        public static async Task <CylinderObject3D> Create(double diameterBottom, double diameterTop, double height, int sides, Alignment alignment = Alignment.Z)
        {
            var item = new CylinderObject3D()
            {
                Advanced    = true,
                Diameter    = diameterBottom,
                DiameterTop = diameterTop,
                Height      = height,
                Sides       = sides,
            };

            await item.Rebuild();

            switch (alignment)
            {
            case Alignment.X:
                item.Matrix = Matrix4X4.CreateRotationY(MathHelper.Tau / 4);
                break;

            case Alignment.Y:
                item.Matrix = Matrix4X4.CreateRotationX(MathHelper.Tau / 4);
                break;

            case Alignment.Z:
                // This is the natural case (how it was modeled)
                break;

            case Alignment.negX:
                item.Matrix = Matrix4X4.CreateRotationY(-MathHelper.Tau / 4);
                break;

            case Alignment.negY:
                item.Matrix = Matrix4X4.CreateRotationX(-MathHelper.Tau / 4);
                break;

            case Alignment.negZ:
                item.Matrix = Matrix4X4.CreateRotationX(MathHelper.Tau / 2);
                break;
            }

            return(item);
        }