HairyPlotterTriangle RaycastTriangle() { // This transform from GUI space to scene camera ray Ray r = HandleUtility.GUIPointToWorldRay(Event.current.mousePosition); Transform t = plotter.transform; // this for position gizmo vertices and triangles according parent game object world coordinates // Iterate over each triangle in plotter for (int i = 0; i < plotter.TriangleCount; ++i) { // Grab triangle HairyPlotterTriangle triangle = plotter.GetTriangle(i); // Intersect ray if (HairyPlotter.RayIntersectsTriangle( r, t.TransformPoint(triangle.GetVertex(0).Position), t.TransformPoint(triangle.GetVertex(1).Position), t.TransformPoint(triangle.GetVertex(2).Position) )) { // Found! plotter.CurrentAction = HairyPlotterActions.None; return(triangle); } } return(null); }
void DrawTriangles() { if (plotter.HoveredTriangle != null) { HairyPlotterTriangle tri = plotter.HoveredTriangle; Transform t = plotter.transform; // this for position gizmo vertices and triangles according parent game object world coordinates highlightMaterial.SetPass(0); GL.Begin(GL.TRIANGLES); GL.Color(TriangleHoverColor); GL.Vertex(t.TransformPoint(tri.GetVertex(0).Position)); GL.Vertex(t.TransformPoint(tri.GetVertex(1).Position)); GL.Vertex(t.TransformPoint(tri.GetVertex(2).Position)); GL.End(); } List <HairyPlotterTriangle> selectedTriangles = plotter.SelectedTriangles; if (selectedTriangles.Count > 0) { GL.Begin(GL.TRIANGLES); GL.Color(TriangleSelectedColor); Transform t = plotter.transform; // this for position gizmo vertices and triangles according parent game object world coordinates for (int i = 0; i < selectedTriangles.Count; ++i) { HairyPlotterTriangle tri = selectedTriangles[i]; GL.Vertex(t.TransformPoint(tri.GetVertex(0).Position)); GL.Vertex(t.TransformPoint(tri.GetVertex(1).Position)); GL.Vertex(t.TransformPoint(tri.GetVertex(2).Position)); } GL.End(); } }
HairyPlotterTriangle RaycastTriangle() { // This transform from GUI space to scene camera ray Ray r = HandleUtility.GUIPointToWorldRay(Event.current.mousePosition); // Iterate over each triangle in plotter for (int i = 0; i < plotter.TriangleCount; ++i) { // Grab triangle HairyPlotterTriangle triangle = plotter.GetTriangle(i); // Intersect ray if (HairyPlotter.RayIntersectsTriangle( r, triangle.GetVertex(0).Position, triangle.GetVertex(1).Position, triangle.GetVertex(2).Position )) { // Found! plotter.CurrentAction = HairyPlotterActions.None; // Destroy triangle return(triangle); } } return(null); }
void DrawTriangles() { if (plotter.HoveredTriangle != null) { HairyPlotterTriangle tri = plotter.HoveredTriangle; highlightMaterial.SetPass(0); GL.Begin(GL.TRIANGLES); GL.Color(TriangleHoverColor); GL.Vertex(tri.GetVertex(0).Position); GL.Vertex(tri.GetVertex(1).Position); GL.Vertex(tri.GetVertex(2).Position); GL.End(); } List <HairyPlotterTriangle> selectedTriangles = plotter.SelectedTriangles; if (selectedTriangles.Count > 0) { GL.Begin(GL.TRIANGLES); GL.Color(TriangleSelectedColor); for (int i = 0; i < selectedTriangles.Count; ++i) { HairyPlotterTriangle tri = selectedTriangles[i]; GL.Vertex(tri.GetVertex(0).Position); GL.Vertex(tri.GetVertex(1).Position); GL.Vertex(tri.GetVertex(2).Position); } GL.End(); } }
public void DestroyTriangle(HairyPlotterTriangle triangle) { if (triangle != null) { // Mark dirty Dirty = true; // Clear hover state if (triangleHover == triangle) { triangleHover = null; } // Remove selection triangleSelection.Remove(triangle); // Remove triangle from mesh triangles.Remove(triangle); // Remove triangle from it's three vertices triangle.GetVertex(0).RemoveTriangle(triangle); triangle.GetVertex(1).RemoveTriangle(triangle); triangle.GetVertex(2).RemoveTriangle(triangle); // Clear link between triangle and vertices triangle.ClearVertices(); // Update UpdateVertexIndexes(); } }
public void DestroyTriangle(HairyPlotterTriangle triangle) { if (triangle != null) { // Mark dirty Dirty = true; // Clear hover state if (triangleHover == triangle) triangleHover = null; // Remove selection triangleSelection.Remove(triangle); // Remove triangle from mesh triangles.Remove(triangle); // Remove triangle from it's three vertices triangle.GetVertex(0).RemoveTriangle(triangle); triangle.GetVertex(1).RemoveTriangle(triangle); triangle.GetVertex(2).RemoveTriangle(triangle); // Clear link between triangle and vertices triangle.ClearVertices(); // Update UpdateVertexIndexes(); } }