示例#1
0
        private void AnalyseGeometryProperty(StreamReader reader, string line)
        {
            int id;
            string name;
            string type;
            IObjectProperty data;

            while (line != "}")
            {
                AnalyseStandardObjectHeading(line, out id, out name, out type);

                if (type != "")
                {
                    switch (type)
                    {
                        case "Mesh":
                            if (name.Contains("Geometry::"))
                            {
                                data = new GeometryProperty<MeshPropertyType>(id, name);
                                AnalyseGeometryMesh(reader, ref data);
                                _properties.Add(data);
                            }
                            else
                                ProceedToNextObject(reader);
                            //ProceedToNextObject(reader);
                            // Continue for when we need mesh data. Not needed now.
                            break;

                        case "Shape":
                            data = new GeometryProperty<BlendShapePropertyType>(id, name);
                            if (name.Contains("ansk"))
                                ((GeometryProperty<BlendShapePropertyType>)data).PropertyType.Keyworded = true;
                            AnalyseGeometryBlendShape(reader, ref data);
                            _properties.Add(data);
                            break;

                        case "Cluster":
                            data = new DeformerProperty<JointPropertyType>(id, name);
                            AnalyseGeometryDeformer(reader, ref data);
                            _properties.Add(data);
                            break;

                        case "LimbNode":
                            if (name.Contains("NodeAttribute::"))
                            {
                                data = new LimbNodeProperty<LimbNodeNodeAttributeType>(id, name);
                                AnalyseGeometryLimbNode(reader, ref data);
                                _properties.Add(data);
                            }
                            else if (name.Contains("Model::"))
                            {
                                data = new LimbNodeProperty<LimbNodeJointType>(id, name);
                                AnalyseGeometryLimbNode(reader, ref data);
                                _properties.Add(data);
                            }
                            else
                                ProceedToNextObject(reader);
                            break;

                        default:
                            ProceedToNextObject(reader);
                            break;
                    }
                }
                else
                {
                    ProceedToNextObject(reader);
                }

                line = reader.ReadLine();
            }
        }
示例#2
0
 set => this.SetValue(GeometryProperty, value);
示例#3
0
 set => SetValue(GeometryProperty, value);