Open CASCADE Technology Reference Manual 8.0.0
Loading...
Searching...
No Matches
Public Member Functions
BRepGraphInc_ReverseIndex Class Reference

Backend reverse incidence indices for O(1) upward navigation. More...

#include <BRepGraphInc_ReverseIndex.hxx>

Public Member Functions

void SetAllocator (const occ::handle< NCollection_BaseAllocator > &theAlloc)
 Set allocator for internal index tables.
 
void Clear ()
 Clear all indices.
 
void Build (const BRepGraphInc_Storage &theStorage)
 Rebuild all reverse indices from storage tables. Thin wrapper over the explicit-table overload retained for compatibility.
 
void Build (const NCollection_DynamicArray< BRepGraphInc::VertexDef > &theVertices, const NCollection_DynamicArray< BRepGraphInc::EdgeDef > &theEdges, const NCollection_DynamicArray< BRepGraphInc::CoEdgeDef > &theCoEdges, const NCollection_DynamicArray< BRepGraphInc::WireDef > &theWires, const NCollection_DynamicArray< BRepGraphInc::FaceDef > &theFaces, const NCollection_DynamicArray< BRepGraphInc::ShellDef > &theShells, const NCollection_DynamicArray< BRepGraphInc::SolidDef > &theSolids, const NCollection_DynamicArray< BRepGraphInc::CompoundDef > &theCompounds, const NCollection_DynamicArray< BRepGraphInc::CompSolidDef > &theCompSolids, const NCollection_DynamicArray< BRepGraphInc::ShellRef > &theShellRefs, const NCollection_DynamicArray< BRepGraphInc::FaceRef > &theFaceRefs, const NCollection_DynamicArray< BRepGraphInc::WireRef > &theWireRefs, const NCollection_DynamicArray< BRepGraphInc::CoEdgeRef > &theCoEdgeRefs, const NCollection_DynamicArray< BRepGraphInc::SolidRef > &theSolidRefs, const NCollection_DynamicArray< BRepGraphInc::ChildRef > &theChildRefs, const NCollection_DynamicArray< BRepGraphInc::VertexRef > &theVertexRefs)
 Rebuild all reverse indices from the entity and reference-entry tables. Edge-to-face index is derived from CoEdge.FaceDefId links.
 
void BuildDelta (const NCollection_DynamicArray< BRepGraphInc::VertexDef > &theVertices, const NCollection_DynamicArray< BRepGraphInc::EdgeDef > &theEdges, const NCollection_DynamicArray< BRepGraphInc::CoEdgeDef > &theCoEdges, const NCollection_DynamicArray< BRepGraphInc::WireDef > &theWires, const NCollection_DynamicArray< BRepGraphInc::FaceDef > &theFaces, const NCollection_DynamicArray< BRepGraphInc::ShellDef > &theShells, const NCollection_DynamicArray< BRepGraphInc::SolidDef > &theSolids, const NCollection_DynamicArray< BRepGraphInc::CompoundDef > &theCompounds, const NCollection_DynamicArray< BRepGraphInc::CompSolidDef > &theCompSolids, const NCollection_DynamicArray< BRepGraphInc::ShellRef > &theShellRefs, const NCollection_DynamicArray< BRepGraphInc::FaceRef > &theFaceRefs, const NCollection_DynamicArray< BRepGraphInc::WireRef > &theWireRefs, const NCollection_DynamicArray< BRepGraphInc::CoEdgeRef > &theCoEdgeRefs, const NCollection_DynamicArray< BRepGraphInc::SolidRef > &theSolidRefs, const NCollection_DynamicArray< BRepGraphInc::ChildRef > &theChildRefs, const NCollection_DynamicArray< BRepGraphInc::VertexRef > &theVertexRefs, const uint32_t theOldNbEdges, const uint32_t theOldNbWires, const uint32_t theOldNbFaces, const uint32_t theOldNbShells, const uint32_t theOldNbSolids, const uint32_t theOldNbCompounds, const uint32_t theOldNbCompSolids, const uint32_t theOldNbChildRefs, const uint32_t theOldNbSolidRefs)
 Incrementally update reverse indices for entities/ref-parents appended after a previous ReverseIndex::Build(). Only processes entities from the old counts to the current vector lengths and appended reference entries.
 
void BuildProductOccurrences (const NCollection_DynamicArray< BRepGraphInc::OccurrenceDef > &theOccurrences, const uint32_t theNbProducts)
 Build product-to-occurrences reverse index.
 
const NCollection_DynamicArray< BRepGraph_WireId > * WiresOfEdge (const BRepGraph_EdgeId theEdgeId) const
 Return wire indices containing the given edge.
 
const NCollection_DynamicArray< BRepGraph_FaceId > * FacesOfEdge (const BRepGraph_EdgeId theEdgeId) const
 Return face indices containing the given edge (derived from CoEdge.FaceDefId links).
 
const NCollection_DynamicArray< BRepGraph_CoEdgeId > * CoEdgesOfEdge (const BRepGraph_EdgeId theEdgeId) const
 Return coedge indices referencing the given edge.
 
uint32_t NbFacesOfEdge (const BRepGraph_EdgeId theEdgeId) const
 Return the number of faces incident to an edge - O(1). Derived directly from the edge-to-faces adjacency vector to keep a single source of truth.
 
const NCollection_DynamicArray< BRepGraph_EdgeId > * EdgesOfVertex (const BRepGraph_VertexId theVertexId) const
 Return edge indices incident to the given vertex.
 
const NCollection_DynamicArray< BRepGraph_FaceId > * FacesOfWire (const BRepGraph_WireId theWireId) const
 Return face indices containing the given wire.
 
const NCollection_DynamicArray< BRepGraph_ShellId > * ShellsOfFace (const BRepGraph_FaceId theFaceId) const
 Return shell indices containing the given face.
 
const NCollection_DynamicArray< BRepGraph_SolidId > * SolidsOfShell (const BRepGraph_ShellId theShellId) const
 Return solid indices containing the given shell.
 
const NCollection_DynamicArray< BRepGraph_CompoundId > * CompoundsOfSolid (const BRepGraph_SolidId theSolidId) const
 Return compound indices containing the given solid as a NodeInstance.
 
const NCollection_DynamicArray< BRepGraph_CompSolidId > * CompSolidsOfSolid (const BRepGraph_SolidId theSolidId) const
 Return compsolid indices containing the given solid as a SolidInstance.
 
const NCollection_DynamicArray< BRepGraph_CompoundId > * CompoundsOfShell (const BRepGraph_ShellId theShellId) const
 Return compound indices containing the given shell as a NodeInstance.
 
const NCollection_DynamicArray< BRepGraph_CompoundId > * CompoundsOfFace (const BRepGraph_FaceId theFaceId) const
 Return compound indices containing the given face as a NodeInstance.
 
const NCollection_DynamicArray< BRepGraph_CompoundId > * CompoundsOfCompound (const BRepGraph_CompoundId theCompoundId) const
 Return compound indices containing the given compound as a NodeInstance.
 
const NCollection_DynamicArray< BRepGraph_CompoundId > * CompoundsOfCompSolid (const BRepGraph_CompSolidId theCompSolidId) const
 Return compound indices containing the given compsolid as a NodeInstance.
 
const NCollection_DynamicArray< BRepGraph_CompoundId > * CompoundsOfWire (const BRepGraph_WireId theWireId) const
 Return compound indices containing the given wire as a NodeInstance. OCCT TopoDS_Compound can legally hold atomic topology (wire / edge / vertex); these reverse maps round-trip that case.
 
const NCollection_DynamicArray< BRepGraph_CompoundId > * CompoundsOfEdge (const BRepGraph_EdgeId theEdgeId) const
 Return compound indices containing the given edge as a NodeInstance.
 
const NCollection_DynamicArray< BRepGraph_CompoundId > * CompoundsOfVertex (const BRepGraph_VertexId theVertexId) const
 Return compound indices containing the given vertex as a NodeInstance.
 
const NCollection_DynamicArray< BRepGraph_WireId > * WiresOfCoEdge (const BRepGraph_CoEdgeId theCoEdgeId) const
 Return wire indices containing the given coedge.
 
const NCollection_DynamicArray< BRepGraph_OccurrenceId > * OccurrencesOfProduct (const BRepGraph_ProductId theProductId) const
 Return occurrence indices that reference the given product.
 
const NCollection_DynamicArray< BRepGraph_WireId > & WiresOfEdgeRef (const BRepGraph_EdgeId theEdgeId) const
 Return wire indices containing the given edge (safe reference, never null).
 
const NCollection_DynamicArray< BRepGraph_FaceId > & FacesOfEdgeRef (const BRepGraph_EdgeId theEdgeId) const
 Return face indices containing the given edge (safe reference, never null).
 
const NCollection_DynamicArray< BRepGraph_CoEdgeId > & CoEdgesOfEdgeRef (const BRepGraph_EdgeId theEdgeId) const
 Return coedge indices referencing the given edge (safe reference, never null).
 
const NCollection_DynamicArray< BRepGraph_FaceId > & FacesOfWireRef (const BRepGraph_WireId theWireId) const
 Return face indices containing the given wire (safe reference, never null).
 
const NCollection_DynamicArray< BRepGraph_EdgeId > & EdgesOfVertexRef (const BRepGraph_VertexId theVertexId) const
 Return edge indices incident to the given vertex (safe reference, never null).
 
const NCollection_DynamicArray< BRepGraph_ShellId > & ShellsOfFaceRef (const BRepGraph_FaceId theFaceId) const
 Return shell indices containing the given face (safe reference, never null).
 
const NCollection_DynamicArray< BRepGraph_SolidId > & SolidsOfShellRef (const BRepGraph_ShellId theShellId) const
 Return solid indices containing the given shell (safe reference, never null).
 
bool Validate (const NCollection_DynamicArray< BRepGraphInc::VertexDef > &theVertices, const NCollection_DynamicArray< BRepGraphInc::EdgeDef > &theEdges, const NCollection_DynamicArray< BRepGraphInc::CoEdgeDef > &theCoEdges, const NCollection_DynamicArray< BRepGraphInc::WireDef > &theWires, const NCollection_DynamicArray< BRepGraphInc::FaceDef > &theFaces, const NCollection_DynamicArray< BRepGraphInc::ShellDef > &theShells, const NCollection_DynamicArray< BRepGraphInc::SolidDef > &theSolids, const NCollection_DynamicArray< BRepGraphInc::CompoundDef > &theCompounds, const NCollection_DynamicArray< BRepGraphInc::CompSolidDef > &theCompSolids, const NCollection_DynamicArray< BRepGraphInc::ShellRef > &theShellRefs, const NCollection_DynamicArray< BRepGraphInc::FaceRef > &theFaceRefs, const NCollection_DynamicArray< BRepGraphInc::WireRef > &theWireRefs, const NCollection_DynamicArray< BRepGraphInc::CoEdgeRef > &theCoEdgeRefs, const NCollection_DynamicArray< BRepGraphInc::SolidRef > &theSolidRefs, const NCollection_DynamicArray< BRepGraphInc::ChildRef > &theChildRefs, const NCollection_DynamicArray< BRepGraphInc::VertexRef > &theVertexRefs) const
 Verify reverse index consistency against forward entity/reference-entry tables. For each forward ref (e.g., wire->edge), checks that the corresponding reverse entry exists (edge->wire). Intended for debug validation.
 
void BindEdgeToWire (const BRepGraph_EdgeId theEdgeId, const BRepGraph_WireId theWireId)
 Register an edge as belonging to a wire (O(1) amortized).
 
void UnbindEdgeFromWire (const BRepGraph_EdgeId theEdgeId, const BRepGraph_WireId theWireId)
 Remove a wire from the edge-to-wire index for a given edge.
 
void ReplaceEdgeInWireMap (const BRepGraph_EdgeId theOldEdgeId, const BRepGraph_EdgeId theNewEdgeId, const BRepGraph_WireId theWireId)
 Replace an edge in the edge-to-wire index for a specific wire.
 
void BindVertexToEdge (const BRepGraph_VertexId theVertexId, const BRepGraph_EdgeId theEdgeId)
 Register a vertex as incident to an edge (O(1) amortized, deduplicates).
 
void UnbindVertexFromEdge (const BRepGraph_VertexId theVertexId, const BRepGraph_EdgeId theEdgeId)
 Remove an edge from the vertex-to-edge index for a given vertex.
 
void BindEdgeToCoEdge (const BRepGraph_EdgeId theEdgeId, const BRepGraph_CoEdgeId theCoEdgeId)
 Register a coedge as referencing an edge (O(1) amortized).
 
void UnbindEdgeFromCoEdge (const BRepGraph_EdgeId theEdgeId, const BRepGraph_CoEdgeId theCoEdgeId)
 Remove a coedge from the edge-to-coedge index for a given edge.
 
void BindCoEdgeToWire (const BRepGraph_CoEdgeId theCoEdgeId, const BRepGraph_WireId theWireId)
 Register a coedge as belonging to a wire (O(1) amortized).
 
void UnbindCoEdgeFromWire (const BRepGraph_CoEdgeId theCoEdgeId, const BRepGraph_WireId theWireId)
 Remove a wire from the coedge-to-wire index for a given coedge.
 
void BindEdgeToFace (const BRepGraph_EdgeId theEdgeId, const BRepGraph_FaceId theFaceId)
 Register an edge as belonging to a face (O(1) amortized, deduplicates).
 
void UnbindEdgeFromFace (const BRepGraph_EdgeId theEdgeId, const BRepGraph_FaceId theFaceId)
 Remove a face from the edge-to-face index for a given edge.
 
void BindWireToFace (const BRepGraph_WireId theWireId, const BRepGraph_FaceId theFaceId)
 Register a wire as belonging to a face (O(1) amortized, deduplicates).
 
void UnbindWireFromFace (const BRepGraph_WireId theWireId, const BRepGraph_FaceId theFaceId)
 Remove a face from the wire-to-face index for a given wire.
 
void BindFaceToShell (const BRepGraph_FaceId theFaceId, const BRepGraph_ShellId theShellId)
 Register a face as belonging to a shell (O(1) amortized, deduplicates).
 
void UnbindFaceFromShell (const BRepGraph_FaceId theFaceId, const BRepGraph_ShellId theShellId)
 Remove a shell from the face-to-shell index for a given face.
 
void BindShellToSolid (const BRepGraph_ShellId theShellId, const BRepGraph_SolidId theSolidId)
 Register a shell as belonging to a solid (O(1) amortized, deduplicates).
 
void UnbindShellFromSolid (const BRepGraph_ShellId theShellId, const BRepGraph_SolidId theSolidId)
 Remove a solid from the shell-to-solid index for a given shell.
 
void BindSolidToCompSolid (const BRepGraph_SolidId theSolidId, const BRepGraph_CompSolidId theCompSolidId)
 Register a solid as belonging to a compsolid (O(1) amortized, deduplicates).
 
void UnbindSolidFromCompSolid (const BRepGraph_SolidId theSolidId, const BRepGraph_CompSolidId theCompSolidId)
 Remove a compsolid from the solid-to-compsolid index for a given solid.
 
void BindCompoundChild (const BRepGraph_NodeId theChildDefId, const BRepGraph_CompoundId theCompoundId)
 Register a child node as belonging to a compound (dispatched on NodeKind). Routes to the appropriate per-kind compound reverse map. No-op for unsupported kinds.
 
void UnbindCompoundChild (const BRepGraph_NodeId theChildDefId, const BRepGraph_CompoundId theCompoundId)
 Remove a compound from the per-kind compound reverse map for a given child node.
 
void BindProductOccurrence (const BRepGraph_OccurrenceId theOccurrenceId, const BRepGraph_ProductId theProductId)
 Register an occurrence as referencing a product (O(1) amortized, deduplicates).
 
void UnbindProductOccurrence (const BRepGraph_OccurrenceId theOccurrenceId, const BRepGraph_ProductId theProductId)
 Remove an occurrence from the product-to-occurrences index for a given product.
 

Detailed Description

Backend reverse incidence indices for O(1) upward navigation.

Built from entity and reference-entry tables after population. Full ReverseIndex::Build() is used for initial construction, while builder-side mutations maintain the index incrementally through targeted bind/unbind operations and ReverseIndex::BuildDelta() for append workflows.

Two query tiers

Pointer-returning methods (e.g. WiresOfEdge() -> nullptr for empty) serve performance-critical backend code that avoids static-empty-vector overhead. Safe-reference methods (e.g. WiresOfEdgeRef() -> static empty vector) serve the public facade (TopoView delegates to Ref variants).

Member Function Documentation

◆ BindCoEdgeToWire()

void BRepGraphInc_ReverseIndex::BindCoEdgeToWire ( const BRepGraph_CoEdgeId theCoEdgeId,
const BRepGraph_WireId theWireId )

Register a coedge as belonging to a wire (O(1) amortized).

◆ BindCompoundChild()

void BRepGraphInc_ReverseIndex::BindCompoundChild ( const BRepGraph_NodeId theChildDefId,
const BRepGraph_CompoundId theCompoundId )

Register a child node as belonging to a compound (dispatched on NodeKind). Routes to the appropriate per-kind compound reverse map. No-op for unsupported kinds.

◆ BindEdgeToCoEdge()

void BRepGraphInc_ReverseIndex::BindEdgeToCoEdge ( const BRepGraph_EdgeId theEdgeId,
const BRepGraph_CoEdgeId theCoEdgeId )

Register a coedge as referencing an edge (O(1) amortized).

◆ BindEdgeToFace()

void BRepGraphInc_ReverseIndex::BindEdgeToFace ( const BRepGraph_EdgeId theEdgeId,
const BRepGraph_FaceId theFaceId )

Register an edge as belonging to a face (O(1) amortized, deduplicates).

◆ BindEdgeToWire()

void BRepGraphInc_ReverseIndex::BindEdgeToWire ( const BRepGraph_EdgeId theEdgeId,
const BRepGraph_WireId theWireId )

Register an edge as belonging to a wire (O(1) amortized).

◆ BindFaceToShell()

void BRepGraphInc_ReverseIndex::BindFaceToShell ( const BRepGraph_FaceId theFaceId,
const BRepGraph_ShellId theShellId )

Register a face as belonging to a shell (O(1) amortized, deduplicates).

◆ BindProductOccurrence()

void BRepGraphInc_ReverseIndex::BindProductOccurrence ( const BRepGraph_OccurrenceId theOccurrenceId,
const BRepGraph_ProductId theProductId )

Register an occurrence as referencing a product (O(1) amortized, deduplicates).

◆ BindShellToSolid()

void BRepGraphInc_ReverseIndex::BindShellToSolid ( const BRepGraph_ShellId theShellId,
const BRepGraph_SolidId theSolidId )

Register a shell as belonging to a solid (O(1) amortized, deduplicates).

◆ BindSolidToCompSolid()

void BRepGraphInc_ReverseIndex::BindSolidToCompSolid ( const BRepGraph_SolidId theSolidId,
const BRepGraph_CompSolidId theCompSolidId )

Register a solid as belonging to a compsolid (O(1) amortized, deduplicates).

◆ BindVertexToEdge()

void BRepGraphInc_ReverseIndex::BindVertexToEdge ( const BRepGraph_VertexId theVertexId,
const BRepGraph_EdgeId theEdgeId )

Register a vertex as incident to an edge (O(1) amortized, deduplicates).

◆ BindWireToFace()

void BRepGraphInc_ReverseIndex::BindWireToFace ( const BRepGraph_WireId theWireId,
const BRepGraph_FaceId theFaceId )

Register a wire as belonging to a face (O(1) amortized, deduplicates).

◆ Build() [1/2]

void BRepGraphInc_ReverseIndex::Build ( const BRepGraphInc_Storage & theStorage)

Rebuild all reverse indices from storage tables. Thin wrapper over the explicit-table overload retained for compatibility.

◆ Build() [2/2]

Rebuild all reverse indices from the entity and reference-entry tables. Edge-to-face index is derived from CoEdge.FaceDefId links.

Precondition
SetAllocator() must have been called (uses myAllocator for inner vectors).
Parameters
[in]theEdgesedge entity vector (for vertex-to-edge, edge-to-face)
[in]theCoEdgescoedge entity vector (for edge-to-coedge and edge-to-face)
[in]theWireswire entity vector (parent validation for coedge refs)
[in]theFacesface entity vector (parent validation for wire refs)
[in]theShellsshell entity vector (parent validation for face refs)
[in]theSolidssolid entity vector (parent validation for shell refs)
[in]theCompoundscompound entity vector (parent validation for child refs)
[in]theCompSolidscompsolid entity vector (parent validation for solid refs)
[in]theShellRefsshell ref-entry table (solid -> shell reverse)
[in]theFaceRefsface ref-entry table (shell -> face reverse)
[in]theWireRefswire ref-entry table (face -> wire reverse)
[in]theCoEdgeRefscoedge ref-entry table (wire -> coedge/edge reverse)
[in]theSolidRefssolid ref-entry table (compsolid -> solid reverse)
[in]theChildRefschild ref-entry table (compound child reverse)
[in]theVertexRefsvertex ref-entry table (edge vertex resolution)

◆ BuildDelta()

void BRepGraphInc_ReverseIndex::BuildDelta ( const NCollection_DynamicArray< BRepGraphInc::VertexDef > & theVertices,
const NCollection_DynamicArray< BRepGraphInc::EdgeDef > & theEdges,
const NCollection_DynamicArray< BRepGraphInc::CoEdgeDef > & theCoEdges,
const NCollection_DynamicArray< BRepGraphInc::WireDef > & theWires,
const NCollection_DynamicArray< BRepGraphInc::FaceDef > & theFaces,
const NCollection_DynamicArray< BRepGraphInc::ShellDef > & theShells,
const NCollection_DynamicArray< BRepGraphInc::SolidDef > & theSolids,
const NCollection_DynamicArray< BRepGraphInc::CompoundDef > & theCompounds,
const NCollection_DynamicArray< BRepGraphInc::CompSolidDef > & theCompSolids,
const NCollection_DynamicArray< BRepGraphInc::ShellRef > & theShellRefs,
const NCollection_DynamicArray< BRepGraphInc::FaceRef > & theFaceRefs,
const NCollection_DynamicArray< BRepGraphInc::WireRef > & theWireRefs,
const NCollection_DynamicArray< BRepGraphInc::CoEdgeRef > & theCoEdgeRefs,
const NCollection_DynamicArray< BRepGraphInc::SolidRef > & theSolidRefs,
const NCollection_DynamicArray< BRepGraphInc::ChildRef > & theChildRefs,
const NCollection_DynamicArray< BRepGraphInc::VertexRef > & theVertexRefs,
const uint32_t theOldNbEdges,
const uint32_t theOldNbWires,
const uint32_t theOldNbFaces,
const uint32_t theOldNbShells,
const uint32_t theOldNbSolids,
const uint32_t theOldNbCompounds,
const uint32_t theOldNbCompSolids,
const uint32_t theOldNbChildRefs,
const uint32_t theOldNbSolidRefs )

Incrementally update reverse indices for entities/ref-parents appended after a previous ReverseIndex::Build(). Only processes entities from the old counts to the current vector lengths and appended reference entries.

Parameters
[in]theOldNbEdgesedge count before the append operation
[in]theOldNbWireswire count before the append operation
[in]theOldNbFacesface count before the append operation
[in]theOldNbShellsshell count before the append operation
[in]theOldNbSolidssolid count before the append operation
[in]theOldNbCompoundscompound count before the append operation
[in]theOldNbCompSolidscompsolid count before the append operation
[in]theOldNbChildRefsChildRef count before the append operation
[in]theOldNbSolidRefsSolidRef count before the append operation

◆ BuildProductOccurrences()

void BRepGraphInc_ReverseIndex::BuildProductOccurrences ( const NCollection_DynamicArray< BRepGraphInc::OccurrenceDef > & theOccurrences,
const uint32_t theNbProducts )

Build product-to-occurrences reverse index.

Parameters
[in]theOccurrencesoccurrence entity vector
[in]theNbProductstotal number of products (for pre-sizing)

◆ Clear()

void BRepGraphInc_ReverseIndex::Clear ( )

Clear all indices.

◆ CoEdgesOfEdge()

const NCollection_DynamicArray< BRepGraph_CoEdgeId > * BRepGraphInc_ReverseIndex::CoEdgesOfEdge ( const BRepGraph_EdgeId theEdgeId) const
inline

Return coedge indices referencing the given edge.

◆ CoEdgesOfEdgeRef()

const NCollection_DynamicArray< BRepGraph_CoEdgeId > & BRepGraphInc_ReverseIndex::CoEdgesOfEdgeRef ( const BRepGraph_EdgeId theEdgeId) const
inline

Return coedge indices referencing the given edge (safe reference, never null).

◆ CompoundsOfCompound()

const NCollection_DynamicArray< BRepGraph_CompoundId > * BRepGraphInc_ReverseIndex::CompoundsOfCompound ( const BRepGraph_CompoundId theCompoundId) const
inline

Return compound indices containing the given compound as a NodeInstance.

◆ CompoundsOfCompSolid()

const NCollection_DynamicArray< BRepGraph_CompoundId > * BRepGraphInc_ReverseIndex::CompoundsOfCompSolid ( const BRepGraph_CompSolidId theCompSolidId) const
inline

Return compound indices containing the given compsolid as a NodeInstance.

◆ CompoundsOfEdge()

const NCollection_DynamicArray< BRepGraph_CompoundId > * BRepGraphInc_ReverseIndex::CompoundsOfEdge ( const BRepGraph_EdgeId theEdgeId) const
inline

Return compound indices containing the given edge as a NodeInstance.

◆ CompoundsOfFace()

const NCollection_DynamicArray< BRepGraph_CompoundId > * BRepGraphInc_ReverseIndex::CompoundsOfFace ( const BRepGraph_FaceId theFaceId) const
inline

Return compound indices containing the given face as a NodeInstance.

◆ CompoundsOfShell()

const NCollection_DynamicArray< BRepGraph_CompoundId > * BRepGraphInc_ReverseIndex::CompoundsOfShell ( const BRepGraph_ShellId theShellId) const
inline

Return compound indices containing the given shell as a NodeInstance.

◆ CompoundsOfSolid()

const NCollection_DynamicArray< BRepGraph_CompoundId > * BRepGraphInc_ReverseIndex::CompoundsOfSolid ( const BRepGraph_SolidId theSolidId) const
inline

Return compound indices containing the given solid as a NodeInstance.

◆ CompoundsOfVertex()

const NCollection_DynamicArray< BRepGraph_CompoundId > * BRepGraphInc_ReverseIndex::CompoundsOfVertex ( const BRepGraph_VertexId theVertexId) const
inline

Return compound indices containing the given vertex as a NodeInstance.

◆ CompoundsOfWire()

const NCollection_DynamicArray< BRepGraph_CompoundId > * BRepGraphInc_ReverseIndex::CompoundsOfWire ( const BRepGraph_WireId theWireId) const
inline

Return compound indices containing the given wire as a NodeInstance. OCCT TopoDS_Compound can legally hold atomic topology (wire / edge / vertex); these reverse maps round-trip that case.

◆ CompSolidsOfSolid()

const NCollection_DynamicArray< BRepGraph_CompSolidId > * BRepGraphInc_ReverseIndex::CompSolidsOfSolid ( const BRepGraph_SolidId theSolidId) const
inline

Return compsolid indices containing the given solid as a SolidInstance.

◆ EdgesOfVertex()

const NCollection_DynamicArray< BRepGraph_EdgeId > * BRepGraphInc_ReverseIndex::EdgesOfVertex ( const BRepGraph_VertexId theVertexId) const
inline

Return edge indices incident to the given vertex.

◆ EdgesOfVertexRef()

const NCollection_DynamicArray< BRepGraph_EdgeId > & BRepGraphInc_ReverseIndex::EdgesOfVertexRef ( const BRepGraph_VertexId theVertexId) const
inline

Return edge indices incident to the given vertex (safe reference, never null).

◆ FacesOfEdge()

const NCollection_DynamicArray< BRepGraph_FaceId > * BRepGraphInc_ReverseIndex::FacesOfEdge ( const BRepGraph_EdgeId theEdgeId) const
inline

Return face indices containing the given edge (derived from CoEdge.FaceDefId links).

◆ FacesOfEdgeRef()

const NCollection_DynamicArray< BRepGraph_FaceId > & BRepGraphInc_ReverseIndex::FacesOfEdgeRef ( const BRepGraph_EdgeId theEdgeId) const
inline

Return face indices containing the given edge (safe reference, never null).

◆ FacesOfWire()

const NCollection_DynamicArray< BRepGraph_FaceId > * BRepGraphInc_ReverseIndex::FacesOfWire ( const BRepGraph_WireId theWireId) const
inline

Return face indices containing the given wire.

◆ FacesOfWireRef()

const NCollection_DynamicArray< BRepGraph_FaceId > & BRepGraphInc_ReverseIndex::FacesOfWireRef ( const BRepGraph_WireId theWireId) const
inline

Return face indices containing the given wire (safe reference, never null).

◆ NbFacesOfEdge()

uint32_t BRepGraphInc_ReverseIndex::NbFacesOfEdge ( const BRepGraph_EdgeId theEdgeId) const
inline

Return the number of faces incident to an edge - O(1). Derived directly from the edge-to-faces adjacency vector to keep a single source of truth.

◆ OccurrencesOfProduct()

const NCollection_DynamicArray< BRepGraph_OccurrenceId > * BRepGraphInc_ReverseIndex::OccurrencesOfProduct ( const BRepGraph_ProductId theProductId) const
inline

Return occurrence indices that reference the given product.

◆ ReplaceEdgeInWireMap()

void BRepGraphInc_ReverseIndex::ReplaceEdgeInWireMap ( const BRepGraph_EdgeId theOldEdgeId,
const BRepGraph_EdgeId theNewEdgeId,
const BRepGraph_WireId theWireId )

Replace an edge in the edge-to-wire index for a specific wire.

◆ SetAllocator()

void BRepGraphInc_ReverseIndex::SetAllocator ( const occ::handle< NCollection_BaseAllocator > & theAlloc)
inline

Set allocator for internal index tables.

◆ ShellsOfFace()

const NCollection_DynamicArray< BRepGraph_ShellId > * BRepGraphInc_ReverseIndex::ShellsOfFace ( const BRepGraph_FaceId theFaceId) const
inline

Return shell indices containing the given face.

◆ ShellsOfFaceRef()

const NCollection_DynamicArray< BRepGraph_ShellId > & BRepGraphInc_ReverseIndex::ShellsOfFaceRef ( const BRepGraph_FaceId theFaceId) const
inline

Return shell indices containing the given face (safe reference, never null).

◆ SolidsOfShell()

const NCollection_DynamicArray< BRepGraph_SolidId > * BRepGraphInc_ReverseIndex::SolidsOfShell ( const BRepGraph_ShellId theShellId) const
inline

Return solid indices containing the given shell.

◆ SolidsOfShellRef()

const NCollection_DynamicArray< BRepGraph_SolidId > & BRepGraphInc_ReverseIndex::SolidsOfShellRef ( const BRepGraph_ShellId theShellId) const
inline

Return solid indices containing the given shell (safe reference, never null).

◆ UnbindCoEdgeFromWire()

void BRepGraphInc_ReverseIndex::UnbindCoEdgeFromWire ( const BRepGraph_CoEdgeId theCoEdgeId,
const BRepGraph_WireId theWireId )

Remove a wire from the coedge-to-wire index for a given coedge.

◆ UnbindCompoundChild()

void BRepGraphInc_ReverseIndex::UnbindCompoundChild ( const BRepGraph_NodeId theChildDefId,
const BRepGraph_CompoundId theCompoundId )

Remove a compound from the per-kind compound reverse map for a given child node.

◆ UnbindEdgeFromCoEdge()

void BRepGraphInc_ReverseIndex::UnbindEdgeFromCoEdge ( const BRepGraph_EdgeId theEdgeId,
const BRepGraph_CoEdgeId theCoEdgeId )

Remove a coedge from the edge-to-coedge index for a given edge.

◆ UnbindEdgeFromFace()

void BRepGraphInc_ReverseIndex::UnbindEdgeFromFace ( const BRepGraph_EdgeId theEdgeId,
const BRepGraph_FaceId theFaceId )

Remove a face from the edge-to-face index for a given edge.

◆ UnbindEdgeFromWire()

void BRepGraphInc_ReverseIndex::UnbindEdgeFromWire ( const BRepGraph_EdgeId theEdgeId,
const BRepGraph_WireId theWireId )

Remove a wire from the edge-to-wire index for a given edge.

◆ UnbindFaceFromShell()

void BRepGraphInc_ReverseIndex::UnbindFaceFromShell ( const BRepGraph_FaceId theFaceId,
const BRepGraph_ShellId theShellId )

Remove a shell from the face-to-shell index for a given face.

◆ UnbindProductOccurrence()

void BRepGraphInc_ReverseIndex::UnbindProductOccurrence ( const BRepGraph_OccurrenceId theOccurrenceId,
const BRepGraph_ProductId theProductId )

Remove an occurrence from the product-to-occurrences index for a given product.

◆ UnbindShellFromSolid()

void BRepGraphInc_ReverseIndex::UnbindShellFromSolid ( const BRepGraph_ShellId theShellId,
const BRepGraph_SolidId theSolidId )

Remove a solid from the shell-to-solid index for a given shell.

◆ UnbindSolidFromCompSolid()

void BRepGraphInc_ReverseIndex::UnbindSolidFromCompSolid ( const BRepGraph_SolidId theSolidId,
const BRepGraph_CompSolidId theCompSolidId )

Remove a compsolid from the solid-to-compsolid index for a given solid.

◆ UnbindVertexFromEdge()

void BRepGraphInc_ReverseIndex::UnbindVertexFromEdge ( const BRepGraph_VertexId theVertexId,
const BRepGraph_EdgeId theEdgeId )

Remove an edge from the vertex-to-edge index for a given vertex.

◆ UnbindWireFromFace()

void BRepGraphInc_ReverseIndex::UnbindWireFromFace ( const BRepGraph_WireId theWireId,
const BRepGraph_FaceId theFaceId )

Remove a face from the wire-to-face index for a given wire.

◆ Validate()

Verify reverse index consistency against forward entity/reference-entry tables. For each forward ref (e.g., wire->edge), checks that the corresponding reverse entry exists (edge->wire). Intended for debug validation.

Returns
true if all forward refs have matching reverse entries

◆ WiresOfCoEdge()

const NCollection_DynamicArray< BRepGraph_WireId > * BRepGraphInc_ReverseIndex::WiresOfCoEdge ( const BRepGraph_CoEdgeId theCoEdgeId) const
inline

Return wire indices containing the given coedge.

◆ WiresOfEdge()

const NCollection_DynamicArray< BRepGraph_WireId > * BRepGraphInc_ReverseIndex::WiresOfEdge ( const BRepGraph_EdgeId theEdgeId) const
inline

Return wire indices containing the given edge.

◆ WiresOfEdgeRef()

const NCollection_DynamicArray< BRepGraph_WireId > & BRepGraphInc_ReverseIndex::WiresOfEdgeRef ( const BRepGraph_EdgeId theEdgeId) const
inline

Return wire indices containing the given edge (safe reference, never null).


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