示例#1
0
        static void OnProjectLoadedinEditor()
        {
            Stopwatch stopwatch = new Stopwatch();

            stopwatch.Start();

            EditorUtility.DisplayProgressBar("Restoring Conda Package", "MDAL", 0);

            if (Application.isEditor)
            {
                try
                {
                    if (Mdal.GetVersion() != packageVersion)
                    {
                        UpdatePackage();
                        AssetDatabase.Refresh();
                    }
                }
                catch
                {
                    UpdatePackage();
                    AssetDatabase.Refresh();
                };
            }
            ;

            EditorUtility.ClearProgressBar();
            stopwatch.Stop();
            Debug.Log($"Mdal refresh took {stopwatch.Elapsed.TotalSeconds} seconds");
        }
示例#2
0
        /// <summary>
        /// Create a Datasource from a Uri - e.g. filename
        /// </summary>
        /// <param name="uri"><see cref="string" /> Datasource uri </param>
        /// <returns><see cref="Datasource" /></returns>
        public static Datasource Load(string uri)
        {
            Datasource  ds     = new Datasource(uri);
            string      ret    = Mdal.GetNames(uri);
            MDAL_Status status = Mdal.LastStatus();

            if (ret == null && status != MDAL_Status.None)
            {
                throw new Exception(status.ToString() + uri);
            }
            ds.meshes = ret.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
            return(ds);
        }
示例#3
0
        private SimpleMesh ToMesh()
        {
            int vcount            = GetVertexCount();
            MdalVertexIterator vi = Mdal.MDAL_M_vertexIterator(this);
            VectorArray3d      v  = vi.GetVertexes(vcount);
            bool          hasColors;
            VectorArray3f c    = GetColors(vcount, out hasColors);
            SimpleMesh    mesh = new SimpleMesh();

            mesh.AppendVertices(v, null, c);
            int fcount           = GetFaceCount();
            MdalFaceIterator fi  = Mdal.MDAL_M_faceIterator(this);
            IndexArray3i     tri = fi.GetTris(fcount, Mdal.MDAL_M_faceVerticesMaximumCount(this));

            mesh.AppendTriangles(tri);
            return(mesh);
        }
示例#4
0
 public MdalDatasetGroup GetGroup(int index)
 {
     return(Mdal.MDAL_M_datasetGroup(this, index));
 }
示例#5
0
 public int GetGroupCount()
 {
     return(Mdal.MDAL_M_datasetGroupCount(this));
 }
示例#6
0
 public int GetEdgeCount()
 {
     return(Mdal.MDAL_M_edgeCount(this));
 }
示例#7
0
 public int GetFaceCount()
 {
     return(Mdal.MDAL_M_faceCount(this));
 }
示例#8
0
 public int GetVertexCount()
 {
     return(Mdal.MDAL_M_vertexCount(this));
 }
示例#9
0
        /// <summary>
        /// Get a <see cref="MdalMesh" /> object from the <see cref="Datasource" />
        /// </summary>
        /// <param name="index"><see cref="int" /> Index of the Mesh in the Datasource</param>
        /// <returns><see cref="MdalMesh" /></returns>
        public MdalMesh GetMesh(int index)
        {
            StringBuilder stb = new StringBuilder(meshes[index]);

            return(Mdal.MDAL_LoadMesh(stb));
        }
示例#10
0
 public static string ConfigureMdal()
 {
     return(Mdal.GetVersion());
 }