Open CASCADE Technology Reference Manual 8.0.0
Loading...
Searching...
No Matches
Data Structures | Public Member Functions | Static Public Member Functions
BRepGraph_LayerParam Class Reference

Persistent vertex point-representation store: point-on-curve, point-on-surface, and point-on-PCurve parameters per vertex. More...

#include <BRepGraph_LayerParam.hxx>

Inheritance diagram for BRepGraph_LayerParam:
Inheritance graph
[legend]

Data Structures

struct  PointOnCurveEntry
 
struct  PointOnPCurveEntry
 
struct  PointOnSurfaceEntry
 
struct  VertexParams
 

Public Member Functions

const Standard_GUIDID () const override
 Return this layer type GUID.
 
const VertexParamsFindVertexParams (const BRepGraph_VertexId theVertex) const
 
bool FindPointOnCurve (const BRepGraph_VertexId theVertex, const BRepGraph_EdgeId theEdge, double *const theParameter=nullptr) const
 
bool FindPointOnSurface (const BRepGraph_VertexId theVertex, const BRepGraph_FaceId theFace, gp_Pnt2d *const theUV=nullptr) const
 
bool FindPointOnPCurve (const BRepGraph_VertexId theVertex, const BRepGraph_CoEdgeId theCoEdge, double *const theParameter=nullptr) const
 
uint32_t NbPointsOnCurve (const BRepGraph_VertexId theVertex) const
 
uint32_t NbPointsOnSurface (const BRepGraph_VertexId theVertex) const
 
uint32_t NbPointsOnPCurve (const BRepGraph_VertexId theVertex) const
 
bool HasBindings () const
 
void SetPointOnCurve (const BRepGraph_VertexId theVertex, const BRepGraph_EdgeId theEdge, const double theParameter)
 
void SetPointOnSurface (const BRepGraph_VertexId theVertex, const BRepGraph_FaceId theFace, const double theParameterU, const double theParameterV)
 
void SetPointOnPCurve (const BRepGraph_VertexId theVertex, const BRepGraph_CoEdgeId theCoEdge, const double theParameter)
 
const TCollection_AsciiStringName () const override
 Layer identity (unique within a graph).
 
void OnNodeRemoved (const BRepGraph_NodeId theNode, const BRepGraph_NodeId theReplacement) noexcept override
 Called when a node is soft-removed.
 
void OnCompact (const NCollection_DataMap< BRepGraph_NodeId, BRepGraph_NodeId > &theRemapMap) noexcept override
 Called after Compact with a unified old->new remap map. Layer must remap all internal NodeId references using this map. The map covers all node kinds (Vertex through CompSolid and future extensions). Nodes absent from the map were removed during compaction - layers should drop data associated with those nodes.
 
void InvalidateAll () noexcept override
 Mark all cached values dirty (bulk invalidation).
 
void Clear () noexcept override
 Clear all stored data.
 
- Public Member Functions inherited from BRepGraph_Layer
virtual int SubscribedKinds () const
 Return a bitmask of BRepGraph_NodeId::Kind values this layer subscribes to. Only modification events matching subscribed kinds are dispatched. Default: 0 (no subscription - no modification events received). Override to receive OnNodeModified/OnNodesModified callbacks. The returned value must be constant for the lifetime of the layer.
 
virtual void OnNodeModified (const BRepGraph_NodeId theNode) noexcept
 Called in immediate (non-deferred) mode after a single node is modified. Only dispatched if the node's kind matches SubscribedKinds(). Default: no-op.
 
virtual void OnNodesModified (const NCollection_DynamicArray< BRepGraph_NodeId > &theModifiedNodes) noexcept
 Called after EndDeferredInvalidation() with all nodes modified during the deferred scope. Only dispatched if at least one modified node's kind matches SubscribedKinds(). The vector may contain nodes of kinds not subscribed to - layers should filter internally if needed. Default: no-op.
 
virtual int SubscribedRefKinds () const
 Return a bitmask of BRepGraph_RefId::Kind values this layer subscribes to. Only modification events matching subscribed ref kinds are dispatched. Default: 0 (no subscription). Must be constant for the layer's lifetime.
 
virtual void OnRefRemoved (const BRepGraph_RefId theRef) noexcept
 Called when a reference is soft-deleted via RemoveRef(). No replacement concept - refs are simply removed (unlike nodes which can have a replacement during sewing or deduplication). Dispatched to all layers regardless of SubscribedRefKinds(). Default: no-op.
 
virtual void OnRefModified (const BRepGraph_RefId theRef) noexcept
 Called in immediate (non-deferred) mode after a single ref is mutated. Only dispatched if the ref's kind matches SubscribedRefKinds(). Default: no-op.
 
virtual void OnRefsModified (const NCollection_DynamicArray< BRepGraph_RefId > &theModifiedRefs, const int theModifiedRefKindsMask) noexcept
 Called after EndDeferredInvalidation() with all refs modified during the deferred scope. Only dispatched if at least one modified ref's kind matches SubscribedRefKinds(). The vector may contain refs of kinds not subscribed to - layers should filter internally if needed. Default: no-op.
 
uint64_t Revision () const noexcept
 Monotonic revision counter incremented by touch() on every observable state change. Consumers compare stored revisions to detect staleness in O(1). Derived layers MUST call touch() from their mutators.
 
const BRepGraphOwningGraph () const noexcept
 Owning graph, set by the registry on RegisterLayer() and cleared on Unregister(). Nullptr before registration or after unregistration.
 
BRepGraphOwningMutableGraph () const noexcept
 Mutable accessor for layers that drive graph mutations (e.g. meshing).
 
- Public Member Functions inherited from Standard_Transient
 Standard_Transient ()
 Empty constructor.
 
 Standard_Transient (const Standard_Transient &)
 Copy constructor – does nothing.
 
Standard_Transientoperator= (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_TransientThis () 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 const Standard_GUIDGetID ()
 Return fixed layer type GUID.
 
- Static Public Member Functions inherited from BRepGraph_Layer
static int KindBit (const BRepGraph_NodeId::Kind theKind)
 Convenience: return bitmask bit for a given Kind.
 
static int RefKindBit (const BRepGraph_RefId::Kind theKind)
 Convenience: return bitmask bit for a given RefId::Kind.
 
- Static Public Member Functions inherited from Standard_Transient
static constexpr const charget_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.
 

Additional Inherited Members

- Public Types inherited from Standard_Transient
typedef void base_type
 Returns a type descriptor about this object.
 
- Protected Member Functions inherited from BRepGraph_Layer
void touch () noexcept
 Bump the revision counter.
 

Detailed Description

Persistent vertex point-representation store: point-on-curve, point-on-surface, and point-on-PCurve parameters per vertex.

Mirrors classical BRep_PointRepresentation entries on TVertex: each vertex may carry parameters identifying its location on incident edges, faces, or coedges (PCurves). The layer is the single source of truth for these parameters in BRepGraph.

Lifetime policy

The layer is persistent metadata: stored values survive arbitrary mutations to the referenced vertices, edges, faces, and coedges. Only the following events discard data:

Member Function Documentation

◆ Clear()

void BRepGraph_LayerParam::Clear ( )
overridevirtualnoexcept

Clear all stored data.

Implements BRepGraph_Layer.

◆ FindPointOnCurve()

bool BRepGraph_LayerParam::FindPointOnCurve ( const BRepGraph_VertexId theVertex,
const BRepGraph_EdgeId theEdge,
double *const theParameter = nullptr ) const

◆ FindPointOnPCurve()

bool BRepGraph_LayerParam::FindPointOnPCurve ( const BRepGraph_VertexId theVertex,
const BRepGraph_CoEdgeId theCoEdge,
double *const theParameter = nullptr ) const

◆ FindPointOnSurface()

bool BRepGraph_LayerParam::FindPointOnSurface ( const BRepGraph_VertexId theVertex,
const BRepGraph_FaceId theFace,
gp_Pnt2d *const theUV = nullptr ) const

◆ FindVertexParams()

const VertexParams * BRepGraph_LayerParam::FindVertexParams ( const BRepGraph_VertexId theVertex) const

◆ GetID()

static const Standard_GUID & BRepGraph_LayerParam::GetID ( )
static

Return fixed layer type GUID.

◆ HasBindings()

bool BRepGraph_LayerParam::HasBindings ( ) const
inline

◆ ID()

const Standard_GUID & BRepGraph_LayerParam::ID ( ) const
overridevirtual

Return this layer type GUID.

Implements BRepGraph_Layer.

◆ InvalidateAll()

void BRepGraph_LayerParam::InvalidateAll ( )
overridevirtualnoexcept

Mark all cached values dirty (bulk invalidation).

Implements BRepGraph_Layer.

◆ Name()

const TCollection_AsciiString & BRepGraph_LayerParam::Name ( ) const
overridevirtual

Layer identity (unique within a graph).

Implements BRepGraph_Layer.

◆ NbPointsOnCurve()

uint32_t BRepGraph_LayerParam::NbPointsOnCurve ( const BRepGraph_VertexId theVertex) const

◆ NbPointsOnPCurve()

uint32_t BRepGraph_LayerParam::NbPointsOnPCurve ( const BRepGraph_VertexId theVertex) const

◆ NbPointsOnSurface()

uint32_t BRepGraph_LayerParam::NbPointsOnSurface ( const BRepGraph_VertexId theVertex) const

◆ OnCompact()

void BRepGraph_LayerParam::OnCompact ( const NCollection_DataMap< BRepGraph_NodeId, BRepGraph_NodeId > & theRemapMap)
overridevirtualnoexcept

Called after Compact with a unified old->new remap map. Layer must remap all internal NodeId references using this map. The map covers all node kinds (Vertex through CompSolid and future extensions). Nodes absent from the map were removed during compaction - layers should drop data associated with those nodes.

Parameters
[in]theRemapMapmaps old NodeId to new NodeId for all surviving nodes

Implements BRepGraph_Layer.

◆ OnNodeRemoved()

void BRepGraph_LayerParam::OnNodeRemoved ( const BRepGraph_NodeId theNode,
const BRepGraph_NodeId theReplacement )
overridevirtualnoexcept

Called when a node is soft-removed.

Parameters
[in]theNodethe removed node
[in]theReplacementif valid, the node that replaces theNode (e.g., sewing edge merge, deduplicate). If invalid, pure deletion. Layers should migrate data from theNode to theReplacement when valid, otherwise discard or archive removed-node data. Implementations must validate theReplacement before dereferencing graph data through it.
Warning
Layer callbacks must not throw. They are called from noexcept notification paths (MutGuard destructors, deferred invalidation flush).

Implements BRepGraph_Layer.

◆ SetPointOnCurve()

void BRepGraph_LayerParam::SetPointOnCurve ( const BRepGraph_VertexId theVertex,
const BRepGraph_EdgeId theEdge,
const double theParameter )

◆ SetPointOnPCurve()

void BRepGraph_LayerParam::SetPointOnPCurve ( const BRepGraph_VertexId theVertex,
const BRepGraph_CoEdgeId theCoEdge,
const double theParameter )

◆ SetPointOnSurface()

void BRepGraph_LayerParam::SetPointOnSurface ( const BRepGraph_VertexId theVertex,
const BRepGraph_FaceId theFace,
const double theParameterU,
const double theParameterV )

The documentation for this class was generated from the following file: