Differences between brep, NurbsSurface, GeometryBase and Surface? - Grasshopper2024-03-28T16:30:17Zhttps://www.grasshopper3d.com/forum/topics/differences-between-brep-nurbssurface-geometrybase-and-surface?feed=yes&xn_auth=noI will try. Thank you:)tag:www.grasshopper3d.com,2011-09-22:2985220:Comment:4353312011-09-22T02:52:41.815ZXiaoming Yanghttps://www.grasshopper3d.com/profile/Xiaoming
I will try. Thank you:)
I will try. Thank you:) Mesh Ray intersect may be fas…tag:www.grasshopper3d.com,2011-09-21:2985220:Comment:4339812011-09-21T12:31:31.732ZDavid Ruttenhttps://www.grasshopper3d.com/profile/DavidRutten
<p>Mesh Ray intersect may be faster, you could try that as well.</p>
<p> </p>
<p>--</p>
<p>David Rutten</p>
<p>david@mcneel.com</p>
<p>Poprad, Slovakia</p>
<p>Mesh Ray intersect may be faster, you could try that as well.</p>
<p> </p>
<p>--</p>
<p>David Rutten</p>
<p>david@mcneel.com</p>
<p>Poprad, Slovakia</p> HI David,
I haven't tried Rhi…tag:www.grasshopper3d.com,2011-09-21:2985220:Comment:4344312011-09-21T12:22:33.786ZXiaoming Yanghttps://www.grasshopper3d.com/profile/Xiaoming
<p>HI David,</p>
<p>I haven't tried Rhino 5, have Rhino 4 only. I guess I need to switch to Rhino 5 or use intersect.CurveBrep and write a new Rayshoot. Thank you.</p>
<p> </p>
<p>Xiaoming</p>
<p>HI David,</p>
<p>I haven't tried Rhino 5, have Rhino 4 only. I guess I need to switch to Rhino 5 or use intersect.CurveBrep and write a new Rayshoot. Thank you.</p>
<p> </p>
<p>Xiaoming</p> Hi Xiaoming,
I actually thi…tag:www.grasshopper3d.com,2011-09-21:2985220:Comment:4345262011-09-21T09:53:48.151ZDavid Ruttenhttps://www.grasshopper3d.com/profile/DavidRutten
<p>Hi Xiaoming,</p>
<p> </p>
<p>I actually thing RayShoot can't handle trims. I seem to remember it being important we add this feature to the Rhino5 SDK, but I don't know whether it has been done yet. Have you tried to run your script in a recent Rhino5?</p>
<p> </p>
<p>--</p>
<p>David Rutten</p>
<p>david@mcneel.com</p>
<p>Poprad, Slovakia</p>
<p>Hi Xiaoming,</p>
<p> </p>
<p>I actually thing RayShoot can't handle trims. I seem to remember it being important we add this feature to the Rhino5 SDK, but I don't know whether it has been done yet. Have you tried to run your script in a recent Rhino5?</p>
<p> </p>
<p>--</p>
<p>David Rutten</p>
<p>david@mcneel.com</p>
<p>Poprad, Slovakia</p> Hi David,
Thank you for you…tag:www.grasshopper3d.com,2011-09-21:2985220:Comment:4343152011-09-21T02:18:51.587ZXiaoming Yanghttps://www.grasshopper3d.com/profile/Xiaoming
<p>Hi David,</p>
<p> </p>
<p>Thank you for your answer. It helps a lot. I cast a brep contains a single surface to GeometrBase, and it could display as it should be: a polygon with a hole! Actually I still have a problem, when I try to use RayShoot with this GeometryBase(a polygon with a hole), a ray still reflected at the hole, could you tell me why this happened and what I should do to let the ray pass through the hole? Thank you very much.</p>
<p> </p>
<p>Xiaoming </p>
<p>Hi David,</p>
<p> </p>
<p>Thank you for your answer. It helps a lot. I cast a brep contains a single surface to GeometrBase, and it could display as it should be: a polygon with a hole! Actually I still have a problem, when I try to use RayShoot with this GeometryBase(a polygon with a hole), a ray still reflected at the hole, could you tell me why this happened and what I should do to let the ray pass through the hole? Thank you very much.</p>
<p> </p>
<p>Xiaoming </p> Hi Xiaoming,
GeometryBase i…tag:www.grasshopper3d.com,2011-09-20:2985220:Comment:4331252011-09-20T12:36:32.082ZDavid Ruttenhttps://www.grasshopper3d.com/profile/DavidRutten
<p>Hi Xiaoming,</p>
<p> </p>
<p><strong>GeometryBase</strong> is an abstract class that unifies as many functions and properties as makes sense that apply to <em>all</em> geometry everywhere. Curves, Points, Surfaces, Meshes, you name it. This is useful because now all geometry can derive from GeometryBase making the things they have in common a matter of definition. I.e. it's not just the case that both Meshes and Surfaces happen to have a function that computes the bounding box of the shape,…</p>
<p>Hi Xiaoming,</p>
<p> </p>
<p><strong>GeometryBase</strong> is an abstract class that unifies as many functions and properties as makes sense that apply to <em>all</em> geometry everywhere. Curves, Points, Surfaces, Meshes, you name it. This is useful because now all geometry can derive from GeometryBase making the things they have in common a matter of definition. I.e. it's not just the case that both Meshes and Surfaces happen to have a function that computes the bounding box of the shape, it is <em>the same function</em> because it was inherited from GeometryBase.</p>
<p> </p>
<p><strong>Surface</strong> is another abstract class that unifies as many functions and properties as it can that apply to all surfaces. All surfaces have an area for example. And they all have U and V domains. Rhino supports a number of different surface definitions, among which are PlaneSurfaces (filled rectangles, basically), RevSurfaces (revolutions of a curve about an axis), SumSurfaces (one curve is moved along another) and NurbsSurfaces.</p>
<p> </p>
<p><strong>NurbsSurface</strong> is a non-abstract class that derives from Surface (and therefore also from GeometryBase) which implements the mathematics of Nurbs surfaces. So every NurbsSurface has control-points, knot-vectors and so on and so forth <em>in addition to</em> whatever Surface already defines.</p>
<p> </p>
<p><strong>Brep</strong> is a non-abstract class that allows you to create a shape consisting of multiple and/or trimmed surfaces. For example a Box would need to be a Brep because it contains 6 surfaces that are joined at their edges. The filled letter <strong>O</strong> would also need to be a Brep since it has trim curves that remove portions of a surface. A Brep maintains many lists of geometric entities, including faces, edges, trims, loops and vertices. All of these are associated with each other via topological relationships. Brep is a <em>very</em> complicated class so don't worry if you don't understand how it works.</p>
<p> </p>
<p><strong>BrepFace</strong> represents a single surface in a Brep. BrepFaces never exist on their own, they are always part of a Brep object. Basically, a BrepFace represents the underlying Surface including the trimming curves. A box contains 6 BrepFaces, all of which represent 6 untrimmed planar surfaces. A cylinder contains 3 BrepFaces, two of which (the caps) represent trimmed planar surfaces.</p>
<p> </p>
<p> </p>
<p>In Grasshopper, what I call a Surface is actually a single-face brep. I chose to break away from the Rhino SDK terminology because I wanted surfaces to be able to have trimmed portions. When you convert a BrepFace to a Surface, you lose all the trimming information.</p>
<p> </p>
<p>--</p>
<p>David Rutten</p>
<p>david@mcneel.com</p>
<p>Poprad, Slovakia</p>