private void CreateDefaultModels() { Material = PhongMaterials.White; var b2 = new MeshBuilder(true, true, true); b2.AddSphere(new Vector3(15f, 0f, 0f), 4, 64, 64); b2.AddSphere(new Vector3(25f, 0f, 0f), 2, 32, 32); b2.AddTube(new Vector3[] { new Vector3(10f, 5f, 0f), new Vector3(10f, 7f, 0f) }, 2, 12, false, true, true); DefaultModel = b2.ToMeshGeometry3D(); DefaultModel.OctreeParameter.RecordHitPathBoundingBoxes = true; DefaultModel.UpdateOctree(); PointsModel = new PointGeometry3D(); var offset = new Vector3(1, 1, 1); PointsModel.Positions = new Vector3Collection(DefaultModel.Positions.Select(x => x + offset)); PointsModel.Indices = new IntCollection(Enumerable.Range(0, PointsModel.Positions.Count)); PointsModel.OctreeParameter.RecordHitPathBoundingBoxes = true; PointsModel.UpdateOctree(); for (int i = 0; i < 10; ++i) { for (int j = 0; j < 10; ++j) { Items.Add(new SphereModel(new Vector3(-10f + i + (float)Math.Pow((float)j / 2, 2), -10f + (float)Math.Pow((float)i / 2, 2), -10f + (float)Math.Pow(j, ((float)i / 5))), rnd.NextDouble(1, 3))); } } PointsHitModel = new PointGeometry3D() { Positions = new Vector3Collection(), Indices = new IntCollection() }; //var landerItems = Load3ds("Car.3ds").Select(x => new DataModel() { Model = x.Geometry as MeshGeometry3D, Material = PhongMaterials.Copper }).ToList(); //var scale = new Vector3(0.007f); //var offset = new Vector3(15, 15, 15); //foreach (var item in landerItems) //{ // for (int i = 0; i < item.Model.Positions.Count; ++i) // { // item.Model.Positions[i] = item.Model.Positions[i] * scale + offset; // } // item.Model.UpdateOctree(); //} //LanderItems = landerItems; }