示例#1
0
            public StageBuilder(Model3DGroup Container, CollisionResponser Responser, Setup Settings)
            {
                this.Terrain3D   = new MeshGeometry3D();
                this.MeshBuilder = new BasicBuilder(Container, Responser, Settings);
                this.Responser   = Responser;
                this.Container   = Container;
                this.Settings    = Settings;

                var GeometryModel = new GeometryModel3D();

                GeometryModel.Geometry = Terrain3D;
                GeometryModel.Material = new DiffuseMaterial(LoadTexture());
                //GeometryModel.BackMaterial = new DiffuseMaterial(Brushes.Black);

                lastTP           = new TerrainPoint();
                lastTP.point3d.X = 0;
                lastTP.point3d.Y = -1;
                lastTP.point3d.Z = 0;

                BoundBox = new Rect3D(0, 0, 0, 0, 0, 0);

                TerrainPoints = new List <TerrainPoint>(100);
                TerrainPoints.Add(lastTP);
                RandomTerrainPoints(100);

                //Container.Children.Add(GeometryModel);
            }
示例#2
0
        public VirtualWorld(int MeshPrecision = 12)
        {
            GameObjects = new Dictionary <string, GameObject>();

            CollisionResponser             = new CollisionResponser();
            PRECISION_3D_PER_ONE_UNIT_SIZE = MeshPrecision;
        }
示例#3
0
 public SeaBuilder(Model3DGroup Container, CollisionResponser Responser, Setup Settings, double Y = 0)
     : base(Container, Responser, Settings)
 {
     this.Plane(new Point3D {
         X = 400, Y = Y, Z = -400
     }, new Point3D {
         X = -400, Y = Y, Z = 400
     });
     this.AddGeometryToContainer();
 }
示例#4
0
            public void Build(Rect3D rect)
            {
                /* ^ Y   ______________________
                 |    /____Top_____________/|
                 |    |   _____   _____   | |
                 |  Z |  /|    \ /|    \  | /
                 | /  |__|/    |_|/    |__|/
                 |/                          X
                 | ---------------------------->
                 */

                this.Frame = rect;

                HalfX = Frame.X - Frame.SizeX / 2;
                HalfY = Frame.SizeY / 2;
                HalfZ = Frame.SizeZ / 2;

                leftFoundXSize = Frame.SizeX / 10;

                BuildTop();
                BuildFoundation();

                CollisionResponser tmp = this.Responser;

                Cube(new Rect3D(HalfX, rect.Y + rect.SizeY * 4 / 5, rect.Z, rect.SizeX, rect.SizeY / 5, rect.SizeZ));

                //this.Responser = null;

                Cube(new Rect3D(HalfX, rect.Y, rect.Z, rect.SizeX / 10, rect.SizeY * 4 / 5, rect.SizeZ));
                Cube(new Rect3D(HalfX + rect.SizeX / 2 - rect.SizeX / 20, rect.Y, rect.Z, rect.SizeX / 10, rect.SizeY * 4 / 5, rect.SizeZ));
                Cube(new Rect3D(HalfX + rect.SizeX - rect.SizeX / 10, rect.Y, rect.Z, rect.SizeX / 10, rect.SizeY * 4 / 5, rect.SizeZ));

                var MeshGeometry  = new MeshGeometry3D();
                var GeometryModel = new GeometryModel3D();

                MeshGeometry.Positions          = this.Positions;
                MeshGeometry.TriangleIndices    = this.TriangleIndices;
                MeshGeometry.TextureCoordinates = this.TextureCoordinates;

                GeometryModel.Geometry = MeshGeometry;
                GeometryModel.Material = new DiffuseMaterial(LoadTexture());

                //Container.Children.Add(GeometryModel);
            }
示例#5
0
 public BasicBuilder(Model3DGroup Container, CollisionResponser Responser, Setup Settings)
 {
     this.Container = Container;
     this.Settings  = Settings;
     this.Responser = Responser;
 }
示例#6
0
 public BridgeBuilder(Model3DGroup container, CollisionResponser Responser, Setup Settings)
     : base(container, Responser, Settings)
 {
 }