Open CASCADE Technology Reference Manual 8.0.0
Loading...
Searching...
No Matches
Data Structures | Public Types | Public Member Functions | Data Fields
BRepGraph_Data Struct Reference

Internal storage for BRepGraph (PIMPL). More...

#include <BRepGraph_Data.hxx>

Data Structures

struct  CachedShape
 Gen-validated shape cache entry. More...
 

Public Types

using ReconstructCache = NCollection_DataMap<BRepGraph_NodeId, TopoDS_Shape>
 

Public Member Functions

 BRepGraph_Data ()
 
 BRepGraph_Data (const occ::handle< NCollection_BaseAllocator > &theAlloc)
 

Data Fields

occ::handle< NCollection_BaseAllocatormyAllocator
 
BRepGraphInc_Storage myIncStorage
 Incidence-table storage - sole source of truth for all topology data, original shapes, TShape->NodeId mapping, and UIDs.
 
std::atomic< size_tmyNextUIDCounter
 UID system.
 
std::atomic< uint32_tmyGeneration {0}
 
Standard_GUID myGraphGUID
 Random graph identity, generated at BRepGraph_Builder::Add().
 
BRepGraph_History myHistoryLog
 History subsystem.
 
bool myIsDone = false
 
NCollection_DynamicArray< BRepGraph_ProductIdmyRootProductIds
 Root product identifiers: products not referenced by any active occurrence. Maintained incrementally by Editor/EditorView mutations.
 
std::atomic< boolmyDeferredMode {false}
 When true, markModified() only increments OwnGen + SubtreeGen and appends to myDeferredModified - no mutex acquisition and no upward propagation.
 
std::atomic< uint32_tmyPropagationWave {0}
 Propagation wave counter. Incremented at the start of each markModified() / markRefModified() call. markParentModified() compares entity.LastPropWave against this to skip already-visited parents in the same propagation wave (O(1) re-visit guard).
 
uint32_t myRemoveSubgraphDepth = 0
 Recursion depth of EditorView::GenOps::RemoveSubgraph. Outermost call (depth==0) triggers a single reverse-index rebuild after cascade so individual cascade-prune steps avoid maintaining per-kind unbinds for every removed node.
 
NCollection_DynamicArray< BRepGraph_NodeIdmyDeferredModified
 NodeIds accumulated during deferred mode. Processed by EndDeferredInvalidation().
 
NCollection_DynamicArray< BRepGraph_RefIdmyDeferredRefModified
 RefIds accumulated during deferred mode. Processed by EndDeferredInvalidation().
 
NCollection_DataMap< BRepGraph_NodeId, CachedShapemyCurrentShapes
 Thread-safe cache of reconstructed shapes with SubtreeGen validation.
 
std::shared_mutex myCurrentShapesMutex
 
NCollection_DataMap< BRepGraph_UID, BRepGraph_NodeIdmyUIDToNodeId
 Lazy reverse lookup index for entity UIDs.
 
std::shared_mutex myUIDToNodeIdMutex
 
uint32_t myUIDToNodeIdGeneration = 0
 
bool myUIDToNodeIdDirty = true
 
NCollection_DataMap< BRepGraph_RefUID, BRepGraph_RefIdmyRefUIDToRefId
 Lazy reverse lookup index for reference UIDs.
 
std::shared_mutex myRefUIDToRefIdMutex
 
uint32_t myRefUIDToRefIdGeneration = 0
 
bool myRefUIDToRefIdDirty = true
 
BRepGraph_MeshCacheStorage myMeshCache
 Cached mesh data storage (algorithm-derived, non-mutating). Holds triangulation/polygon rep references written by BRepGraphMesh. Does NOT trigger markModified() or mutation tracking.
 
BRepGraph::TopoView myTopoView {nullptr}
 Cached view objects (pointers set to owning BRepGraph in its constructor).
 
BRepGraph::UIDsView myUIDsView {nullptr}
 
BRepGraph::CacheView myCacheView {nullptr}
 
BRepGraph::RefsView myRefsView {nullptr}
 
BRepGraph::ShapesView myShapesView {nullptr}
 
BRepGraph::EditorView myEditorView {nullptr}
 
BRepGraph::MeshView myMeshView {nullptr}
 

Detailed Description

Internal storage for BRepGraph (PIMPL).

All topology definition data and UIDs live in myIncStorage. Access via myIncStorage.Edges, myIncStorage.Faces, etc.

Member Typedef Documentation

◆ ReconstructCache

Constructor & Destructor Documentation

◆ BRepGraph_Data() [1/2]

BRepGraph_Data::BRepGraph_Data ( )
inline

◆ BRepGraph_Data() [2/2]

BRepGraph_Data::BRepGraph_Data ( const occ::handle< NCollection_BaseAllocator > & theAlloc)
inlineexplicit

Field Documentation

◆ myAllocator

occ::handle<NCollection_BaseAllocator> BRepGraph_Data::myAllocator

◆ myCacheView

BRepGraph::CacheView BRepGraph_Data::myCacheView {nullptr}

◆ myCurrentShapes

NCollection_DataMap<BRepGraph_NodeId, CachedShape> BRepGraph_Data::myCurrentShapes
mutable

Thread-safe cache of reconstructed shapes with SubtreeGen validation.

◆ myCurrentShapesMutex

std::shared_mutex BRepGraph_Data::myCurrentShapesMutex
mutable

◆ myDeferredMode

std::atomic<bool> BRepGraph_Data::myDeferredMode {false}

When true, markModified() only increments OwnGen + SubtreeGen and appends to myDeferredModified - no mutex acquisition and no upward propagation.

◆ myDeferredModified

NCollection_DynamicArray<BRepGraph_NodeId> BRepGraph_Data::myDeferredModified

NodeIds accumulated during deferred mode. Processed by EndDeferredInvalidation().

◆ myDeferredRefModified

NCollection_DynamicArray<BRepGraph_RefId> BRepGraph_Data::myDeferredRefModified

RefIds accumulated during deferred mode. Processed by EndDeferredInvalidation().

◆ myEditorView

BRepGraph::EditorView BRepGraph_Data::myEditorView {nullptr}

◆ myGeneration

std::atomic<uint32_t> BRepGraph_Data::myGeneration {0}

◆ myGraphGUID

Standard_GUID BRepGraph_Data::myGraphGUID

Random graph identity, generated at BRepGraph_Builder::Add().

◆ myHistoryLog

BRepGraph_History BRepGraph_Data::myHistoryLog

History subsystem.

◆ myIncStorage

BRepGraphInc_Storage BRepGraph_Data::myIncStorage

Incidence-table storage - sole source of truth for all topology data, original shapes, TShape->NodeId mapping, and UIDs.

◆ myIsDone

bool BRepGraph_Data::myIsDone = false

◆ myMeshCache

BRepGraph_MeshCacheStorage BRepGraph_Data::myMeshCache

Cached mesh data storage (algorithm-derived, non-mutating). Holds triangulation/polygon rep references written by BRepGraphMesh. Does NOT trigger markModified() or mutation tracking.

◆ myMeshView

BRepGraph::MeshView BRepGraph_Data::myMeshView {nullptr}

◆ myNextUIDCounter

std::atomic<size_t> BRepGraph_Data::myNextUIDCounter
Initial value:
{
1}

UID system.

Starts at 1; counter=0 is BRepGraph_UID invalid sentinel.

◆ myPropagationWave

std::atomic<uint32_t> BRepGraph_Data::myPropagationWave {0}

Propagation wave counter. Incremented at the start of each markModified() / markRefModified() call. markParentModified() compares entity.LastPropWave against this to skip already-visited parents in the same propagation wave (O(1) re-visit guard).

◆ myRefsView

BRepGraph::RefsView BRepGraph_Data::myRefsView {nullptr}

◆ myRefUIDToRefId

NCollection_DataMap<BRepGraph_RefUID, BRepGraph_RefId> BRepGraph_Data::myRefUIDToRefId
mutable

Lazy reverse lookup index for reference UIDs.

◆ myRefUIDToRefIdDirty

bool BRepGraph_Data::myRefUIDToRefIdDirty = true
mutable

◆ myRefUIDToRefIdGeneration

uint32_t BRepGraph_Data::myRefUIDToRefIdGeneration = 0
mutable

◆ myRefUIDToRefIdMutex

std::shared_mutex BRepGraph_Data::myRefUIDToRefIdMutex
mutable

◆ myRemoveSubgraphDepth

uint32_t BRepGraph_Data::myRemoveSubgraphDepth = 0

Recursion depth of EditorView::GenOps::RemoveSubgraph. Outermost call (depth==0) triggers a single reverse-index rebuild after cascade so individual cascade-prune steps avoid maintaining per-kind unbinds for every removed node.

◆ myRootProductIds

NCollection_DynamicArray<BRepGraph_ProductId> BRepGraph_Data::myRootProductIds

Root product identifiers: products not referenced by any active occurrence. Maintained incrementally by Editor/EditorView mutations.

◆ myShapesView

BRepGraph::ShapesView BRepGraph_Data::myShapesView {nullptr}

◆ myTopoView

BRepGraph::TopoView BRepGraph_Data::myTopoView {nullptr}

Cached view objects (pointers set to owning BRepGraph in its constructor).

◆ myUIDsView

BRepGraph::UIDsView BRepGraph_Data::myUIDsView {nullptr}

◆ myUIDToNodeId

NCollection_DataMap<BRepGraph_UID, BRepGraph_NodeId> BRepGraph_Data::myUIDToNodeId
mutable

Lazy reverse lookup index for entity UIDs.

◆ myUIDToNodeIdDirty

bool BRepGraph_Data::myUIDToNodeIdDirty = true
mutable

◆ myUIDToNodeIdGeneration

uint32_t BRepGraph_Data::myUIDToNodeIdGeneration = 0
mutable

◆ myUIDToNodeIdMutex

std::shared_mutex BRepGraph_Data::myUIDToNodeIdMutex
mutable

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