- Home /
Add edge onto plane?
I'm trying to figure out how I can insert an edge into a plane at runtime. I plan to be able to draw a line across the plane and have an edge inserted there. Here are two images clearly demonstrating what I'm trying to do:
http://gyazo.com/1961dfbbd5a9dfb6c63c1a35a71a94af
http://gyazo.com/6596a554f516a433e72ca983fed29a24
I'm not sure how I can actually insert edges into models. Does anyone know how I can do this?
Answer by wibble82 · May 01, 2014 at 04:06 PM
You won't be able to do this with a simple mesh filter like the plane.
The best approach would be to start by generating your mesh in code as a single quad (see this post http://answers.unity3d.com/questions/139808/creating-a-plane-mesh-directly-from-code.html).
Then when you need to insert an edge, you'll need to go through each triangle in the original mesh, see if the line defined by your edge intersects it, and if so chop it into 2 smaller triangles. Then generate a new mesh from your new set of triangles.
This algorithm typically works by finding the point at which your line intersects the edge of each triangle. Where a hits a triangle you find the edge at which it enters, and the edge at which it leaves. Your result will be 3 new triangles.
Note that in itself, this process will just give you a new mesh that won't look any different (as edges aren't rendered). I'm not sure what its for though, so don't know if that matters!
Hope that helps!
p.s. - my diagram was a bit wrong - the top right shape in the 3rd section should also have been turned into 2 traingles!
Your answer
Follow this Question
Related Questions
Cutout plane effect on multiple meshes? 1 Answer
how to Find the vertices of each edge on mesh 4 Answers
Get "Winding" of an Edge 0 Answers
How to slice a sprite realime C# 3 Answers