RobWorkProject  24.5.15-
Classes | Namespaces
QuadraticBREP.hpp File Reference

A boundary representation where the geometry of a face is a QuadraticSurface, and an edge curve is a QuadraticCurve. More...

#include <rw/geometry/OBB.hpp>
#include <rw/geometry/analytic/BREP.hpp>
#include <rw/geometry/analytic/quadratics/QuadraticCurve.hpp>
#include <rw/geometry/analytic/quadratics/QuadraticFace.hpp>
#include <rw/geometry/analytic/quadratics/QuadraticShell.hpp>
#include <rw/geometry/analytic/quadratics/QuadraticSurface.hpp>
#include <rw/math/Vector3D.hpp>
#include <set>

Classes

class  QuadraticBREP
 A boundary representation where the geometry of a face is a QuadraticSurface, and an edge curve is a QuadraticCurve. More...
 
class  QuadraticBREP::CommonQuadraticCurveSet
 Convenience type for a set of curves in a QuadraticBREP. More...
 

Namespaces

 rw
 Deprecated namespace since 16/4-2020 for this class.
 
 rw::geometry
 Loading and storing of CAD models.
 

Detailed Description

A boundary representation where the geometry of a face is a QuadraticSurface, and an edge curve is a QuadraticCurve.

This implementation adds the geometry related to Quadrics, based on BREP which handles the topology.

To build a geometry composed of Quadratic surfaces and curves, follow the following procedure:

  1. Add all the needed vertices by using the addVertex function. Each vertex is given an index starting, increasing from zero.
  2. Add the edges with the addEdge function. An edge is added between two vertices using their vertex indexes. The edge requires a QuadraticCurve and two vertex indicies. Notice that the curve must have limits, such that it start in the first vertex and ends in the second vertex (the curve has a direction). Each edge is given an index, increasing from zero.
  3. Use the makeLoop function to form loops, based on the edges just added. The makeLoop takes an arbitrary number of edge indexes. Notice that makeLoop expects the edge indexing to start at 1, and supports negative indices to indicate direction of the edge. To form a loop, a list of these indexes is given, to form a counter clockwise loop of edges. Each loop is given a loop index, increasing from zero.
  4. Attach a QuadraticSurface to a loop, by using the setSurface function. Each surface is given an increasing surface index, starting from zero. Notice that this index is not necessarily the same as the loop index.

Together this forms a connected set of surfaces, curves and vertices, that forms a closed geometry. Functions are provided that makes it easy to search for various neighbouring primitives in the boundary representation.

It is also possible to retrieve a non-connected shell representation, either by making a PlainQuadraticShell with all information fully copied, or by using a the more lightweight shellProxy which retrieves its information from the underlying QuadraticBREP.