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);
        }
Example #2
0
        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]);
        }