Exemple #1
0
            public Wing(float width, float length)
            {
                var botHalf = Quadrilateral <V> .Trapezoid(length, width, length * 0.75f, 0f)
                              .ExtrudeToScale(
                    depth: 0.1f,
                    targetScale: 0.5f,
                    steepness: 3f,
                    numSteps: 5,
                    includeFrontFace: false,
                    scaleAround: new Vec3(length / 4f, -width / 2f, 0f))
                              .FilterVertices(v => !v.Facing(Dir3D.Down));

                Geometry = Composite.Create(
                    Stacking.StackForward(botHalf, botHalf.ReflectZ()))
                           .RotateX(-MathHelper.PiOver2)
                           .RotateY(MathHelper.PiOver2)
                           .Translate(-2.7f, -0.25f, -7f)
                           .Color(_color);
            }
Exemple #2
0
            public Stabilizer()
            {
                var half = Polygon <V> .FromVec2s(
                    new Vec2 (-2f, 0.5f),
                    new Vec2 (0f, 2f),
                    new Vec2 (0f, -0.5f),
                    new Vec2 (-1.75f, -0.5f),
                    new Vec2 (-2f, -0.25f))
                           .ExtrudeToScale(
                    depth: 0.07f,
                    targetScale: 0.5f,
                    steepness: 3f,
                    numSteps: 5,
                    includeFrontFace: false);

                Geometry = Composite.Create(
                    Stacking.StackForward(half, half.ReflectZ()))
                           .RotateX(MathHelper.PiOver2)
                           .RotateZ(5f.Radians())
                           .Translate(-1.1f, -0.1f, -12.8f)
                           .Color(_color);
            }
Exemple #3
0
            public TailFin()
            {
                var half = Polygon <V> .FromVec2s(
                    new Vec2 (-4f, 0f),
                    new Vec2 (-1.75f, 0.5f),
                    new Vec2 (0f, 3f),
                    new Vec2 (1.25f, 3f),
                    new Vec2 (0.5f, 0.5f),
                    new Vec2 (0.5f, 0f))
                           .ExtrudeToScale(
                    depth: 0.1f,
                    targetScale: 0.5f,
                    steepness: 3f,
                    numSteps: 5,
                    includeFrontFace: false);

                Geometry = Composite.Create(
                    Stacking.StackForward(half, half.ReflectZ()))
                           .RotateY(MathHelper.PiOver2)
                           .Translate(0f, 0.9f, -12.5f)
                           .Color(_color);
            }
Exemple #4
0
            public BottomFin()
            {
                var half = Polygon <V> .FromVec2s(
                    new Vec2 (-0.8f, 0f),
                    new Vec2 (0.8f, 0f),
                    new Vec2 (0.6f, -0.5f),
                    new Vec2 (-0f, -0.6f))
                           .ExtrudeToScale(
                    depth: 0.05f,
                    targetScale: 0.7f,
                    steepness: 3f,
                    numSteps: 2,
                    includeFrontFace: false)
                           .FilterVertices(v => !v.Facing(Dir3D.Up));

                Geometry = Composite.Create(
                    Stacking.StackForward(half, half.ReflectZ()))
                           .RotateY(MathHelper.PiOver2)
                           .RotateZ(15f.Radians())
                           .RotateX(6f.Radians())
                           .Translate(0.5f, -0.6f, -10.25f)
                           .Color(_color);
            }