OpenLexocad
27.1
|
An advanced B-rep is a boundary representation model in which all faces, edges and vertices are explicitly represented. It is a solid with explicit topology and elementary or free-form geometry. The faces of the B-rep are of type IfcAdvancedFace. An advanced B-rep has to meet the same topological constraints as the manifold solid B-rep. (Definition from ISO/CD 16739:2011) More...
#include <AdvancedBrep.h>
Public Member Functions | |
~AdvancedBrep (void) | |
bool | setShape (pShape aShape) |
Public Member Functions inherited from OpenLxApp::Geometry | |
virtual | ~Geometry (void) |
pShape | computeShape (bool checkShape=false) |
pConstShape | getShape (void) const |
double | getPrecision () const |
void | setPrecision (double p) |
Geom::Bnd_Box | getBoundingBox () const |
Public Member Functions inherited from OpenLxApp::DocObject | |
std::shared_ptr< Document > | getDocument () const |
bool | isNew () const |
bool | isUpdated () const |
bool | isValid () const |
bool | hasErrors () const |
void | touch () |
LxIfc4::LxIfc4EntityEnum | getEntityType () const |
std::string | getEntityTypeAsString () const |
std::shared_ptr< Core::DbgInfo > | getDbgInfo () const |
DocObject (Core::DocObject *aObject) | |
virtual | ~DocObject (void) |
Core::DocObject * | __getObj__ () const |
Additional Inherited Members | |
Protected Member Functions inherited from OpenLxApp::Geometry | |
Geometry ()=default | |
Protected Member Functions inherited from OpenLxApp::DocObject | |
DocObject () | |
Protected Attributes inherited from OpenLxApp::DocObject | |
Core::DocObject * | _coreObj = nullptr |
An advanced B-rep is a boundary representation model in which all faces, edges and vertices are explicitly represented. It is a solid with explicit topology and elementary or free-form geometry. The faces of the B-rep are of type IfcAdvancedFace. An advanced B-rep has to meet the same topological constraints as the manifold solid B-rep. (Definition from ISO/CD 16739:2011)
An AdvancedBrep is the generalized form of a FacetedBrep. Where the FacetedBrep has to be a polyhedron - in a mathematical sense - the AdvancedBrep "only" has to be a manifold. This means, it still has to be a closed body, but its faces and edges don't have to be planar or straight anymore.
In contrast to the FacetedBrep, you can't define an AdvancedBrep via setPoints() and setModel methods. To create an AdvancedBrep, you have to define its faces and merge them into a shape, which then forms the AdvancedBrep via the setShape method (similar to the first approach described in FacetedBrep).
The following example will create a cylinder by creating each of the outer faces separately and then merging them into an advanced brep.
OpenLxApp::AdvancedBrep::~AdvancedBrep | ( | void | ) |
bool OpenLxApp::AdvancedBrep::setShape | ( | pShape | aShape | ) |