![]() |
Open CASCADE Technology Reference Manual 8.0.0
|
Abstract factory for creating meshing algorithms. This class provides a registry-based factory pattern that allows multiple meshing algorithms to coexist without symbol collisions. It follows the pattern established by Graphic3d_GraphicDriverFactory. More...
#include <BRepMesh_DiscretAlgoFactory.hxx>

Public Member Functions | |
| virtual occ::handle< BRepMesh_DiscretRoot > | CreateAlgorithm (const TopoDS_Shape &theShape, double theLinDeflection, double theAngDeflection)=0 |
| Creates a new meshing algorithm instance. | |
| const TCollection_AsciiString & | Name () const |
| Returns the factory name. | |
Public Member Functions inherited from Standard_Transient | |
| Standard_Transient () | |
| Empty constructor. | |
| Standard_Transient (const Standard_Transient &) | |
| Copy constructor – does nothing. | |
| Standard_Transient & | operator= (const Standard_Transient &) |
| Assignment operator, needed to avoid copying reference counter. | |
| virtual | ~Standard_Transient ()=default |
| Destructor must be virtual. | |
| virtual const opencascade::handle< Standard_Type > & | DynamicType () const |
| Returns a type descriptor about this object. | |
| bool | IsInstance (const opencascade::handle< Standard_Type > &theType) const |
| Returns a true value if this is an instance of Type. | |
| bool | IsInstance (const char *const theTypeName) const |
| Returns a true value if this is an instance of TypeName. | |
| bool | IsKind (const opencascade::handle< Standard_Type > &theType) const |
| Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism. | |
| bool | IsKind (const char *const theTypeName) const |
| Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism. | |
| Standard_Transient * | This () const |
| Returns non-const pointer to this object (like const_cast). For protection against creating handle to objects allocated in stack or call from constructor, it will raise exception Standard_ProgramError if reference counter is zero. | |
| int | GetRefCount () const noexcept |
| Get the reference counter of this object. | |
| void | IncrementRefCounter () noexcept |
| Increments the reference counter of this object. Uses relaxed memory ordering since incrementing only requires atomicity, not synchronization with other memory operations. | |
| int | DecrementRefCounter () noexcept |
| Decrements the reference counter of this object; returns the decremented value. Uses release ordering for the decrement to ensure all writes to the object are visible before the count reaches zero. An acquire fence is added only when the count reaches zero, ensuring proper synchronization before deletion. This is more efficient than using acq_rel for every decrement. | |
| virtual void | Delete () const |
| Memory deallocator for transient classes. | |
Static Public Member Functions | |
| static void | RegisterFactory (const occ::handle< BRepMesh_DiscretAlgoFactory > &theFactory, bool theIsPreferred=false) |
| Registers a factory in the global registry. | |
| static void | UnregisterFactory (const TCollection_AsciiString &theName) |
| Unregisters a factory by name. | |
| static occ::handle< BRepMesh_DiscretAlgoFactory > | DefaultFactory () |
| Returns the default (first registered) factory, or NULL if none registered. | |
| static occ::handle< BRepMesh_DiscretAlgoFactory > | FindFactory (const TCollection_AsciiString &theName) |
| Finds a factory by name. | |
| static const NCollection_List< occ::handle< BRepMesh_DiscretAlgoFactory > > & | Factories () |
| Returns the global list of registered factories. | |
Static Public Member Functions inherited from Standard_Transient | |
| static constexpr const char * | get_type_name () |
| Returns a type descriptor about this object. | |
| static const opencascade::handle< Standard_Type > & | get_type_descriptor () |
| Returns type descriptor of Standard_Transient class. | |
Protected Member Functions | |
| BRepMesh_DiscretAlgoFactory (const TCollection_AsciiString &theName) | |
| Constructor. | |
Protected Attributes | |
| TCollection_AsciiString | myName |
Additional Inherited Members | |
Public Types inherited from Standard_Transient | |
| typedef void | base_type |
| Returns a type descriptor about this object. | |
Abstract factory for creating meshing algorithms. This class provides a registry-based factory pattern that allows multiple meshing algorithms to coexist without symbol collisions. It follows the pattern established by Graphic3d_GraphicDriverFactory.
|
protected |
Constructor.
| [in] | theName | factory name used for identification |
|
pure virtual |
Creates a new meshing algorithm instance.
| [in] | theShape | shape to be meshed |
| [in] | theLinDeflection | linear deflection for meshing |
| [in] | theAngDeflection | angular deflection for meshing |
Implemented in BRepMesh_IncrementalMeshFactory, and XBRepMesh_Factory.
|
static |
Returns the default (first registered) factory, or NULL if none registered.
|
static |
Returns the global list of registered factories.
|
static |
Finds a factory by name.
| [in] | theName | name of the factory to find |
|
inline |
Returns the factory name.
|
static |
Registers a factory in the global registry.
| [in] | theFactory | factory to register |
| [in] | theIsPreferred | if TRUE, add to the beginning of the list (making it default), otherwise add to the end |
|
static |
Unregisters a factory by name.
| [in] | theName | name of the factory to unregister |
|
protected |