public IEnumerator TurnOffAllModes() { GeoModeActive = false; ContexMenu.Instance.GeometryModeActive = false; VertexModeActive = false; EdgeModeActive = false; FaceModeActive = false; PR_FACE_GO.SetActive(FaceModeActive); PR_EDGE_GO.SetActive(EdgeModeActive); PR_VERTEX_GO.SetActive(VertexModeActive); // Remove targets. Manager.Instance.GIZMO.ClearTargets(); yield return(null); }
/// <summary> /// Returns the list of this object's vertexHolders, to be used for duplication. /// </summary> /// <returns> List with VertexHolders. </returns> public List <PRVertexHolder> CopyAllGeoProperties() { // Mesh modifications List <PRVertexHolder> vertexHolderColl = new List <PRVertexHolder>(); PRVertex[] vertexCoColl = PR_VERTEX_GO.GetComponent <ParentVertex>().GEO_VERTEX_COLL_CO; foreach (PRVertex prV in vertexCoColl) { // First update the vertexHolder in case last modification was made in other than vertex mode. prV.UpdateVertexPosition(); // Store the vertexHolder of the original object for duplication process. vertexHolderColl.Add(prV.VertexHolder); } return(vertexHolderColl); }
/// <summary> /// Coroutine that activates the geometry selection mode. /// </summary> /// <returns></returns> public IEnumerator TurnOnCube() { GeoModeActive = true; ContexMenu.Instance.GeometryModeActive = true; VertexModeActive = false; EdgeModeActive = false; FaceModeActive = false; PR_FACE_GO.SetActive(FaceModeActive); PR_EDGE_GO.SetActive(EdgeModeActive); PR_VERTEX_GO.SetActive(VertexModeActive); // Add the whole geometry to Gizmo array. Manager.Instance.GIZMO.ClearAndAddTarget(this.transform); // Save the position, used during movement transformation. Manager.Instance.GIZMO.SaveTargetPrevPosition(); yield return(null); }
/// <summary> /// Paste the transformations on the original object to the this duplicated object. /// </summary> /// <param name="vertexHolderColl"> The list of the original object vertexHolders. </param> public void PasteAllGeoProperties(List <PRVertexHolder> vertexHolderColl) { for (int j = 0; j < vertexHolderColl.Count; j++) { PRVertexHolder vertHolder = vertexHolderColl[j]; PRVertex vertCO = PR_VERTEX_GO.GetComponent <ParentVertex>().GEO_VERTEX_COLL_CO[j]; // Update the vertexHolder. vertCO.VertexHolder = vertHolder; Vector3[] meshVertices = GeoMesh.vertices; // Update Mesh vertices. for (int i = 0; i < vertHolder.SameVIndexColl.Count; i++) { meshVertices[vertHolder.SameVIndexColl[i]] = vertHolder.V; } GeoMesh.vertices = meshVertices; GeoMesh.RecalculateBounds(); // Update VertexGO position. vertCO.UpdateVertexPosition(); } }
// Activate/Deactivate elements. private void ActiveteVertex(bool state) { VertexModeActive = state; PR_VERTEX_GO.SetActive(state); }