<br> [MAS.865](../../index.html) > [Design](../index.html) > geoemtry representation # Geometry Representation ##CSG (Constructive Solid Geometry) - An object is constructed from __primitives__ by means of allowable operations - These are typically Boolean operations on sets: union, intersection and difference, as well as geometric transformations of those sets. <br></br> <img src='Csgtree.png' width="25%"> <img src='Csg.jpg' width="30%"> <br></br> - CSG objects can be represented by __binary trees__, where leaves represent primitives, and nodes represent operations. - A primitive can typically be described by a procedure which accepts some number of parameters. ##Brep (Boundary Representation) - A method for representing shapes using the __limits__. - A solid is represented as a collection of __connected surface elements__, the boundary between solid and non-solid. - It has a much __richer operation__ set. In addition to the Boolean operations, B-rep has extrusion (or sweeping), chamfer, blending, drafting, shelling, tweaking and other operations which make use of these. #### Polygon Mesh Models <br></br> <img src='brep.png' width="25%"> <br></br> - The main topological items are: faces, edges and vertices. #### NURBS (Non Uniform Rational Basis Splines) - An elegant mathematical description of a physical drafting aid as a (set of) parametric equation(s). <br></br> <img src='nurbs1.png' width="25%"> <img src='nurbs3d.gif' width="40%"> <br></br> - The boundaries are defined by lines, conics, polylines, surface curves, or b spline curves. - [On NURBS: A Survey](http://fab.cba.mit.edu/classes/S62.12/docs/Piegl_NURBS.pdf) ## Visrep -[Brep vs Visrep Models](https://transmagic.com/brep-vs-visrep-models/) ##Frep (Functional Representation) - An object as a __point set__ in space is defined by a __function__ of point coordinates f(x_{1},x_{2},...,x_{n}) which is evaluated at the given point by a procedure traversing a tree structure with **primitives in the leaves** and **operations in the nodes** of the tree. - The points with f(x_{1},x_{2},...,x_{n}) ≥ 0 belong to the object. - The points with f(x_{1},x_{2},...,x_{n})<0 are outside of the object. - The point set with f(x_{1},x_{2},...,x_{n})=0 is called an *isosurface*. - Example: max( X*X+Y*Y-1, -(X*X+Y*Y-0.5)) <br></br> <a href="http://cba.mit.edu/docs/theses/13.05.Keeter.pdf"><img src='freptree.png' width="50%"></a> - [Antimony](https://www.mattkeeter.com/projects/antimony/3/) - [libfive](https://libfive.com/) - [Function-based shape modeling: mathematical framework and specialized language](http://fab.cba.mit.edu/classes/S62.12/docs/Pasko_frep.pdf) ##Arep (Algorithmic Representation) [Link to Page](../arep/index.html)