public void Initialize(EditableMesh parent, List <int> indices) { this.parent = parent; this.indices = indices; transform.parent = parent.transform; }
private Vector3[] m_CachedVertPos; //used in dragging handle, cache the starting position of verts #endregion "data" #region "public method" // public method public void Init(EditableMesh m, MeshSelection sel, Pivotor p) { m_Mesh = m; m_Selection = sel; m_Pivot = p; Dbg.Assert(m_Pivot != null, "SoftSelection.Init: pivotor is null"); m_Range = 1f; m_Cont = new _Data[m.mesh.vertexCount]; for (int i = 0; i < m_Cont.Length; ++i) { m_Cont[i] = new _Data(); } m_EffectVertIdxLst = new VLst(); m_Mode = Mode.Off; m_PrepareMode = PrepareMode.Always; // atten curve var res = (SoftSelectionRes)AssetDatabase.LoadAssetAtPath(SOFTSEL_ATTEN_CURVE_PATH, typeof(SoftSelectionRes)); if (res == null) { res = ScriptableObject.CreateInstance <SoftSelectionRes>(); AssetDatabase.CreateAsset(res, SOFTSEL_ATTEN_CURVE_PATH); res = (SoftSelectionRes)AssetDatabase.LoadAssetAtPath(SOFTSEL_ATTEN_CURVE_PATH, typeof(SoftSelectionRes)); Dbg.Assert(res != null, "SoftSelection.Init: failed to create curve asset for SoftSelection"); } m_Atten = res.attenCurve; MeshManipulator.evtHandleDraggingStateChanged += this._OnHandleDraggingStateChanged; }
public void Init(EditableMesh m) { sm_Instance = this; m_EditMesh = m; m_RealMesh = m_EditMesh.mesh; //ETimeProf prof = new ETimeProf(); m_DegRTriCont = new DegradeRTriCont(); // map VV <-> RV m_VVertCont = new VVertCont(); _InitVVertTable(); //prof.Click("VMesh.Init.VVertTable:"); // establish VEdge table m_VEdgeCont = new VEdgeCont(); _InitVEdgeTable(); //prof.Click("VMesh.Init.VEdgeTable:"); // establish VQuad table m_VFaceCont = new VFaceCont(); _InitVFaceTable(); //prof.Click("VMesh.Init.VQuadTable:"); }
public void Init(EditableMesh m) { m_Mesh = m; m_Blocked = false; MeshManipulator.evtHandleDraggingStateChanged += this._OnHandleDraggingStateChanged; MeshUndoer.AddDeleMeshModified(this._OnMeshModifed); }
// public method public void Init(EditableMesh m, MeshSelection sel) { m_Mesh = m; Dbg.Assert(m_Mesh != null, "EdgeLoopSelectOp.Init: m_Mesh = null"); m_Selection = sel; m_EdgeSet = new HashSet <VEdge>(); }
// public method public void Init(EditableMesh m) { m_Mesh = m; m_WorldPos = m_Mesh.transform.position; m_CursorImg = AssetDatabase.LoadAssetAtPath(CURSOR_IMG_PATH, typeof(Texture2D)) as Texture2D; Dbg.Assert(m_CursorImg != null, "EditorCursor.Init: failed to load cursor img: {0}", CURSOR_IMG_PATH); m_HalfOff = new Vector2(m_CursorImg.width * 0.5f, m_CursorImg.height * 0.5f); }
/// <summary> /// Repositions the verts in the editable mesh (that this VertGizmo controls) /// to correspond with the position of this VertGizmo. /// </summary> private void repositionVerts() { foreach (var vertInd in _vertIndices) { if (vertInd < EditableMesh.Verts.Count) { EditableMesh.Verts[vertInd] = transform.position; EditableMesh.RefreshMesh(); } } }
public void Initialize(EditableMesh parent, EditableVertex point0, EditableVertex point1, int tIndex) { this.parent = parent; this.point0 = point0; this.point1 = point1; tIndices.Add(tIndex); transform.parent = parent.transform; CalculateTransform(); }
void UpdateMesh(EditableMesh mesh, float time) { int i = 0; while (i < 81) { Vector3 position = mesh.GetVertex(i, 1); Vector3 newPosition = new Vector3(position.x, GetSurfaceY(position.x, time), position.z); mesh.SetVertex(i, 1, newPosition); i++; } mesh.UpdateMesh(); }
// unity event handlers void Awake() { //Dbg.Log("MorphProc.Awake: {0}, {1}", name, GetInstanceID()); if (m_Mesh == null) { m_Mesh = EditableMesh.New(gameObject); } var m = m_Mesh.mesh; MeshUtil.MarkDynamic(m); if (m_Deforms == null) { //should be created by MeshManipulator m_Deforms = new List <ShapeKeyMorphSO>(); } else { //other circumstances, switch playMode, reload assembly, etc. Dbg.Assert(m_Deforms.Count > 0, "MorphProc.Awake: the MorphProc is not null but empty?!"); m_OutData = ShapeKeyDataDiff.TempVarNew(m_Deforms[BASIS_MORPH_IDX]); } if (m_CmpWeights == null) { m_CmpWeights = new float[MAX_SHAPEKEY_CNT]; } if (m_MeshCache == null) { //Dbg.Log("MorphProc.Awake: init MeshCache: {0}", name); m_MeshCache = new MeshCacheRT(); } // force apply weight on mesh, to fix the mesh deforming leftover when switch between playMode and editMode if (m_Deforms.Count > 0) { ResetToBasisShape(); for (int i = 1; i < m_Deforms.Count; ++i) //don't check the first base shape { float animWeight = Mathf.Clamp(_GetAnimWeight(i), 0, 100f); _ApplyWeightChange(i, animWeight); } } }
void Start() { mesh1 = new EditableMesh(); mesh1.Create(15.0f, 3.0f, 80, 1); mesh1.SetColor(GetBottomColor(1.0f)); mesh1.SetPosition(new Vector3(0.0f, 0.0f, -1.0f)); mesh2 = new EditableMesh(); mesh2.Create(15.0f, 3.0f, 80, 1); mesh2.SetColor(GetBottomColor(0.7f)); mesh2.SetPosition(new Vector3(0.0f, 0.0f, -0.9f)); mesh3 = new EditableMesh(); mesh3.Create(15.0f, 3.0f, 80, 1); mesh3.SetColor(GetBottomColor(0.6f)); mesh3.SetPosition(new Vector3(0.0f, 0.0f, -0.8f)); mesh4 = new EditableMesh(); mesh4.Create(15.0f, 3.0f, 80, 1); mesh4.SetColor(GetBottomColor(0.5f)); mesh4.SetPosition(new Vector3(0.0f, 0.0f, -0.7f)); mesh5 = new EditableMesh(); mesh5.Create(15.0f, 3.0f, 80, 1); mesh5.SetColor(GetBottomColor(0.4f)); mesh5.SetPosition(new Vector3(0.0f, 0.0f, -0.6f)); mesh6 = new EditableMesh(); mesh6.Create(15.0f, 3.0f, 80, 1); mesh6.SetColor(GetBottomColor(0.3f)); mesh6.SetPosition(new Vector3(0.0f, 0.0f, -0.5f)); mesh7 = new EditableMesh(); mesh7.Create(15.0f, 3.0f, 80, 1); mesh7.SetColor(GetBottomColor(0.2f)); mesh7.SetPosition(new Vector3(0.0f, 0.0f, -0.4f)); mesh8 = new EditableMesh(); mesh8.Create(15.0f, 3.0f, 80, 1); mesh8.SetColor(GetBottomColor(0.1f)); mesh8.SetPosition(new Vector3(0.0f, 0.0f, -0.3f)); }
public void Init(EditableMesh mesh, Pivotor pivot) { m_Mesh = mesh; m_Pivot = pivot; }
public void Init(EditableMesh m) { m_Mesh = m; }
public void Init(EditableMesh m) { m_Mesh = m; //m_Pivot = p; }
public void Init(EditableMesh m, Pivotor pivot) { m_Mesh = m; m_Pivot = pivot; m_Tr = m_Mesh.transform; }
protected VirgisFeature _drawFeature(Geometry tin, Feature feature = null) { //Create the GameObjects GameObject dataTIN = Instantiate(MeshPrefab, transform); EditableMesh mesh = dataTIN.GetComponent <EditableMesh>(); if (feature != null) { mesh.feature = feature; } List <Geometry> trigeos = new List <Geometry>(); List <Vector3d> trivects = new List <Vector3d>(); List <int> tris = new List <int>(); for (int i = 0; i < tin.GetGeometryCount(); i++) { trigeos.Add(tin.GetGeometryRef(i)); } HashSet <Vector3d> vertexhash = new HashSet <Vector3d>(); for (int i = 0; i < trigeos.Count; i++) { Geometry tri = trigeos[i]; Geometry linearring = tri.GetGeometryRef(0); for (int j = 0; j < 3; j++) { double[] argout = new double[3]; linearring.GetPoint(j, argout); Vector3d vertex = new Vector3d(argout); vertexhash.Add(vertex); trivects.Add(vertex); } tri.Dispose(); linearring.Dispose(); } List <Vector3d> vertexes = vertexhash.ToList(); foreach (Vector3d vertex in trivects) { tris.Add(vertexes.IndexOf(vertex)); } DMesh3 dmesh = DMesh3Builder.Build <Vector3d, int, int>(vertexes, tris); string crs; tin.GetSpatialReference().ExportToWkt(out crs, null); dmesh.AttachMetadata("CRS", crs); mesh.Draw(dmesh, bodyMain, WireframeMaterial, true); //if (symbology.ContainsKey("body") && symbology["body"].ContainsKey("Label") && symbology["body"].Label != null && (feature?.ContainsKey(symbology["body"].Label) ?? false)) { // //Set the label // GameObject labelObject = Instantiate(LabelPrefab, dataPoly.transform, false); // labelObject.transform.Translate(dataPoly.transform.TransformVector(Vector3.up) * symbology["point"].Transform.Scale.magnitude, Space.Self); // Text labelText = labelObject.GetComponentInChildren<Text>(); // labelText.text = (string) feature.Get(symbology["body"].Label); //} return(mesh); }