Non-const view for programmatic graph construction and structural editing.
More...
#include <BRepGraph_EditorView.hxx>
|
| struct | BoundaryIssue |
| | A single boundary invariant issue detected by ValidateMutationBoundary(). More...
|
| |
| class | CoEdgeOps |
| | CoEdge and PCurve operations. More...
|
| |
| class | CompoundOps |
| | Compound creation and editing operations. More...
|
| |
| class | CompSolidOps |
| | CompSolid creation and editing operations. More...
|
| |
| class | EdgeOps |
| | Edge creation and editing operations. More...
|
| |
| class | FaceOps |
| | Face creation and editing operations. More...
|
| |
| class | GenOps |
| | Generic node, reference, and representation removal operations. More...
|
| |
| class | OccurrenceOps |
| | Occurrence mutation operations. More...
|
| |
| class | ProductOps |
| | Product and assembly low-level reconstruction primitives. Wire two existing entities together; for shape ingestion use BRepGraph_Builder::Add(). More...
|
| |
| class | RepOps |
| | Representation mutation guards (Surface, Curve3D, Curve2D, Triangulation, Polygon3D, Polygon2D, PolygonOnTri). All Mut*() accessors raise Standard_ProgramError for null, out-of-range, or removed typed ids. Access via BRepGraph::EditorView::Reps(). More...
|
| |
| class | ShellOps |
| | Shell creation and editing operations. More...
|
| |
| class | SolidOps |
| | Solid creation and editing operations. More...
|
| |
| class | VertexOps |
| | Vertex creation operations. More...
|
| |
| class | WireOps |
| | Wire creation and editing operations. More...
|
| |
Non-const view for programmatic graph construction and structural editing.
The single mutation entry point for a BRepGraph instance. Provides:
- Structural creation via entity-scoped nested Ops classes (VertexOps, EdgeOps, CoEdgeOps, WireOps, FaceOps, ShellOps, SolidOps, CompoundOps, CompSolidOps, ProductOps, GenOps) to create topology definition nodes (vertices, edges, wires, faces, shells, solids, compounds) and assembly nodes (products, occurrences) without an existing TopoDS_Shape.
- Field-level RAII-scoped mutation via Mut*() guards (Edges().Mut, Faces().Mut, Products().Mut, Occurrences().Mut, Reps().MutSurface, etc.) with automatic cache invalidation and upward SubtreeGen propagation on guard destruction.
- Incremental shape appending, soft-deletion of nodes, and deferred invalidation mode for batched structural edit loops under external serialization. Obtained via BRepGraph::Editor().
Each Ops class is accessed via a non-const reference accessor: theGraph.Editor().Vertices().Add(...) theGraph.Editor().Edges().Add(...) theGraph.Editor().CoEdges().SetPCurve(...) theGraph.Editor().Gen().RemoveNode(...)
Contract notes:
- Add* methods return BRepGraph_NodeId() on invalid inputs and do not partially modify the graph; call IsValid() on the returned id to check success
- invalid inputs include wrong kind, out-of-range ids, or removed referenced nodes unless a method documents stricter accepted-input rules
- linking methods such as Shells().Add() and Solids().Add() return an invalid typed RefId on failure and otherwise keep ownership explicit in the reference layer
- use Mut*() guards for scoped field mutation on existing active definitions, references, and representations
◆ BeginDeferredInvalidation()
| void BRepGraph::EditorView::BeginDeferredInvalidation |
( |
| ) |
|
Begin deferred invalidation mode. While active, markModified() only increments OwnGen + SubtreeGen and appends to the deferred list - without acquiring the shape-cache mutex or propagating upward. Call EndDeferredInvalidation() to batch-flush all accumulated changes. Intended for batch mutation loops (SameParameter, Sewing) where many entities are modified sequentially and upward propagation should be deferred until all mutations are complete. Prefer BRepGraph_DeferredScope RAII guard.
- Warning
- Deferred mode batches invalidation only; it does NOT serialize the mutation body. Callers must guarantee exclusive Editor() structural edit access for the whole deferred scope; concurrent Editor().Mut*() usage still requires external synchronization around the surrounding batch.
◆ CoEdges()
| CoEdgeOps & BRepGraph::EditorView::CoEdges |
( |
| ) |
|
|
inline |
Return coedge and PCurve operations.
◆ CommitMutation()
| void BRepGraph::EditorView::CommitMutation |
( |
| ) |
|
|
noexcept |
Finalize a batch of mutations. Validates reverse-index consistency and asserts active entity counts match actual entity state. Call this after manual batch mutation loops, or rely on BRepGraph_DeferredScope to call it automatically at scope exit.
◆ Compounds()
Return compound creation and editing operations.
◆ CompSolids()
Return compsolid creation and editing operations.
◆ Edges()
| EdgeOps & BRepGraph::EditorView::Edges |
( |
| ) |
|
|
inline |
Return edge creation and editing operations.
◆ EndDeferredInvalidation()
| void BRepGraph::EditorView::EndDeferredInvalidation |
( |
| ) |
|
|
noexcept |
End deferred invalidation mode and batch-flush: propagates SubtreeGen upward for all modified entities from the deferred list. Shape cache entries are validated lazily via SubtreeGen comparison.
◆ Faces()
| FaceOps & BRepGraph::EditorView::Faces |
( |
| ) |
|
|
inline |
Return face creation and editing operations.
◆ Gen()
| GenOps & BRepGraph::EditorView::Gen |
( |
| ) |
|
|
inline |
Return generic node, reference, and representation removal operations.
◆ IsDeferredMode()
| bool BRepGraph::EditorView::IsDeferredMode |
( |
| ) |
const |
Check if deferred invalidation mode is currently active.
- Note
- This is a state flag only. It does not imply mutation ownership or synchronization guarantees.
◆ Occurrences()
Return occurrence mutation operations.
◆ Products()
Return product and assembly creation and editing operations.
◆ Reps()
| RepOps & BRepGraph::EditorView::Reps |
( |
| ) |
|
|
inline |
Return representation (surface, curve, triangulation, polygon) mutation operations.
◆ Shells()
| ShellOps & BRepGraph::EditorView::Shells |
( |
| ) |
|
|
inline |
Return shell creation and editing operations.
◆ Solids()
| SolidOps & BRepGraph::EditorView::Solids |
( |
| ) |
|
|
inline |
Return solid creation and editing operations.
◆ ValidateMutationBoundary()
Validate lightweight mutation-boundary invariants.
- Parameters
-
| [out] | theIssues | optional destination for detailed issues |
- Returns
- true if no issues were found
◆ Vertices()
| VertexOps & BRepGraph::EditorView::Vertices |
( |
| ) |
|
|
inline |
Return vertex creation operations.
◆ Wires()
| WireOps & BRepGraph::EditorView::Wires |
( |
| ) |
|
|
inline |
Return wire creation and editing operations.
The documentation for this class was generated from the following file: