XII Release 0.1.0
Loading...
Searching...
No Matches
xiiGraphView Class Reference

Copyright (c) Theophilus Eriata. All Rights Reserved. More...

#include <GraphView.h>

Public Types

enum class  Mode { Selected , Induced }

Public Member Functions

 xiiGraphView (const xiiGraph &graph)
xiiResult Select (xiiArrayPtr< const xiiGraphVertexHandle > vertices, Mode mode=Mode::Induced, xiiArrayPtr< const xiiGraphEdgeHandle > edges={})
 Transactional selection. Every edge must currently connect two selected vertices.
bool Contains (xiiGraphVertexHandle vertex) const
bool Contains (xiiGraphEdgeHandle edge) const
void Enumerate (xiiDynamicArray< xiiGraphVertexHandle > &out_vertices, xiiDynamicArray< xiiGraphEdgeHandle > &out_edges) const
void Refresh ()
 Explicitly discard stale memberships, without affecting graph topology.
xiiResult Remap (const xiiGraphHandleMap &mapping)
xiiResult CopyTo (xiiGraph &destination, xiiGraphHandleMap &out_mapping) const
const xiiGraph & GetGraph () const

Detailed Description

Copyright (c) Theophilus Eriata. All Rights Reserved.

Non-owning subset of one graph object. The source must outlive the view. No subscriptions or membership bookkeeping are added to the source, so source mutation costs are unchanged. Queries validate generations and current endpoints. Induced views include newly inserted edges between selected vertices; selected views include only explicitly selected edges. Enumeration follows source dense order and costs O(V + E). Reacquire enumerations after source mutation. Views stay with their source object when topology moves, just like graph subscriptions.

Member Function Documentation

◆ CopyTo()

xiiResult xiiGraphView::CopyTo ( xiiGraph & destination,
xiiGraphHandleMap & out_mapping ) const

Copy the current view into an independent graph using the existing snapshot machinery. Failure leaves destination and mapping unchanged. Graph-owned identities are never reused.

◆ Remap()

xiiResult xiiGraphView::Remap ( const xiiGraphHandleMap & mapping)

Follow an explicit CopyFrom/Compact map into this source. Missing entries are dropped. Call before Refresh after compaction. No automatic update or source ownership transfer occurs.

◆ Select()

xiiResult xiiGraphView::Select ( xiiArrayPtr< const xiiGraphVertexHandle > vertices,
Mode mode = Mode::Induced,
xiiArrayPtr< const xiiGraphEdgeHandle > edges = {} )

Transactional selection. Every edge must currently connect two selected vertices.

Copyright (c) Theophilus Eriata. All Rights Reserved.


The documentation for this class was generated from the following files:
  • /home/runner/work/XII/XII/Source/Engine/Core/Graph/GraphView.h
  • /home/runner/work/XII/XII/Source/Engine/Core/Graph/Implementation/GraphView.cpp