private static ObjectModel GetObjectModel() { ObjectMeshLoader meshLoader = new ObjectMeshLoader(_meshFile); SingularObjectModel model = new SingularObjectModel(meshLoader.ExtractObjectMesh(ObjectMeshLoader.LoadMode.Normal)); Color4 defaultColor = new Color4(0.17f, 0.06f, 0.03f, 1.0f); List <Coordinate> coords = model.GetCoordinates(); List <Color4> colors = new List <Color4>(); foreach (Coordinate coord in coords) { colors.Add(defaultColor); } _colorPackage = new ColorPackage(coords, colors); return(model); }
private static ObjectModel GetObjectModel() { Dictionary <ObjectModel.ComponentKey, ObjectModel> meshModels = new Dictionary <ObjectModel.ComponentKey, ObjectModel>(); ObjectMeshLoader meshLoader; foreach (KeyValuePair <ObjectModel.ComponentKey, string> meshFile in _meshFiles) { meshLoader = new ObjectMeshLoader(meshFile.Value); meshModels.Add(meshFile.Key, new SingularObjectModel(meshLoader.ExtractObjectMesh(ObjectMeshLoader.LoadMode.Normal))); } for (int i = SpiderHiearchyPackage.HP.ComponentMap.Count - 1; i >= 0; i--) { KeyValuePair <ObjectModel.ComponentKey, List <ObjectModel.ComponentKey> > compMap = SpiderHiearchyPackage.HP.ComponentMap.ElementAt(i); if (compMap.Value.Count > 1) { ObjectModel.ComponentKey parentComp; if (compMap.Value.Count > 2) { parentComp = compMap.Value[compMap.Value.Count - 3]; } else { parentComp = compMap.Value[compMap.Value.Count - 1]; } if (meshModels[parentComp].GetStructType() != ObjectModel.StructType.Hierarchical) { SingularObjectModel primaryComp = meshModels[parentComp] as SingularObjectModel; meshModels[parentComp] = new HierarchicalObjectModel(primaryComp); } (meshModels[parentComp] as HierarchicalObjectModel).InsertSubComp(compMap.Key, new TransformableObject(meshModels[compMap.Key])); } } return(meshModels[SpiderHiearchyPackage.body]); }