public void Dispose() { m_identity = null; m_model = null; m_defaultMaterialIdentity = null; foreach (var item in m_instances.Keys) { m_instances[item].Dispose(); //m_instances[item] = null; } foreach (var item in m_groups.Keys) { m_groups[item].Dispose(); //m_groups[item] = null; } foreach (var item in m_faces.Keys) { m_faces[item].Dispose(); //m_faces[item] = null; } foreach (var item in m_clusters.Keys) { m_clusters[item].Dispose(); //m_clusters[item] = null; } m_name = null; m_transform = null; }
/// <summary> /// 构造函数 /// </summary> /// <param name="groupRef"></param> public void Load(SUGroupRef groupRef) { SUDrawingElementRef drawingRef = SKPCExport.SUGroupToDrawingElement(groupRef); SUEntityRef entityRef = SKPCExport.SUDrawingElementToEntity(drawingRef); m_identity = SkpEntityCache.GetIdentity(entityRef); m_defaultMaterialIdentity = SkpEntityCache.GetMaterialDefault(drawingRef); SUEntitiesRef entities = default; SKPCExport.SUGroupGetEntities(groupRef, ref entities); m_faces = SkpFace.GetEntityFaces(entities, Model); m_instances = SkpInstance.GetEntityInstances(entities, Model); m_groups = SkpGroup.GetEntityGroups(entities, Model); SUTransformation transform = default; SKPCExport.SUGroupGetTransform(groupRef, ref transform); m_transform = new SkpTransform(transform); SUStringRef groupName = default(SUStringRef); SKPCExport.SUStringCreate(ref groupName); SKPCExport.SUGroupGetName(groupRef, ref groupName); m_name = Utilities.GetString(groupName); SKPCExport.SUStringRelease(ref groupName); m_clusters = SkpFaceCluster.Load(m_faces.Values, m_model); }