Exemple #1
0
        public void Init(MeshSelection s, EditableMesh m)
        {
            m_Selection = s;
            m_EditMesh  = m;

            // connect events
            m_Selection.evtSelectionChanged += this.OnSelectionChanged;
            MeshUndoer.AddDeleMeshModified(this.OnMeshModified);

            m_VertMarker = new VertMarker();
            Material vertBillboardMat = AssetDatabase.LoadAssetAtPath(VertBillboardMatPath, typeof(Material)) as Material;

            Dbg.Assert(vertBillboardMat != null, "MeshMaker.Init: failed to load vertBillboard Material at {0}", VertBillboardMatPath);
            m_VertMarker.Init(vertBillboardMat, 0);

            m_EdgeMarker = new EdgeMarker();
            Material edgeMat = AssetDatabase.LoadAssetAtPath(EdgeMatPath, typeof(Material)) as Material;

            Dbg.Assert(edgeMat != null, "MeshMaker.Init: failed to load edge Material at {0}", EdgeMatPath);
            m_EdgeMarker.Init(edgeMat);
            _PrepareEdgeIndices();

            m_TriMarker = new TriMarker();
            m_TriMarker.Init();

            EUtil.SetEnableWireframe(m.renderer, false);
            //EditorUtility.SetSelectedWireframeHidden(m.renderer, true); //hide the wireframe
        }
        // "private methods"

        private static MeshUndoer _ForceGetUndoer(Mesh m)
        {
            MeshUndoer undoer = null;

            if (!ms_UndoDict.TryGetValue(m, out undoer))
            {
                undoer = ScriptableObject.CreateInstance <MeshUndoer>();
                undoer.Init(m);
                ms_UndoDict.Add(m, undoer);
            }
            return(undoer);
        }
        public void Init(EditableMesh mesh, MeshSelection sel, EditorCursor cursor)
        {
            m_EditMesh  = mesh;
            m_MeshTr    = m_EditMesh.transform;
            m_Selection = sel;
            m_Cursor    = cursor;

            m_WorldPos = m_MeshTr.position;
            m_WorldRot = m_MeshTr.rotation;
            //m_PivotOp = PivotOp.Midian;
            //m_Orient = Orientation.Local;

            MeshUndoer.AddDeleMeshModified(this._OnMeshModified);
            m_Selection.evtSelectionChanged  += this._OnSelectionChanged;
            EditorCursor.evtCursorPosChanged += this._OnCursorPosChanged;
        }
Exemple #4
0
        public void Fini()
        {
            EditorUtility.SetSelectedWireframeHidden(m_EditMesh.renderer, false); //show the wireframe

            m_TriMarker.Fini();
            m_TriMarker = null;

            m_EdgeMarker.Fini();
            m_EdgeMarker = null;

            m_VertMarker.Fini();
            m_VertMarker = null;

            MeshUndoer.DelDeleMeshModified(this.OnMeshModified);
            m_Selection.evtSelectionChanged -= this.OnSelectionChanged;
        }
        public static void SetVertices(Mesh m, Vector3[] verts)
        {
            MeshUndoer undoer = _ForceGetUndoer(m);

            undoer.SetVerts(verts);
        }
        // "public methods"

        public static void SetEnableRecord(Mesh m, bool bEnable)
        {
            MeshUndoer undoer = _ForceGetUndoer(m);

            undoer.SetEnableRecord(bEnable);
        }
 public void Fini()
 {
     EditorCursor.evtCursorPosChanged -= this._OnCursorPosChanged;
     m_Selection.evtSelectionChanged  -= this._OnSelectionChanged;
     MeshUndoer.DelDeleMeshModified(this._OnMeshModified);
 }