Main Page Class List Class Members

# Nv::Blast::FamilyGraph Class Reference

`#include <NvBlastFamilyGraph.h>`

List of all members.

## Classes
struct | NodeComparator
struct | QueueElement
struct | TraversalState
## Public Member Functions
bool | canFindRoot (NodeIndex startNode, NodeIndex targetNode, FixedArray< NodeIndex > *visitedNodes, const SupportGraph *graph)
| FamilyGraph (const SupportGraph *graph)
uint32_t | findIslands (ActorIndex actorIndex, void *scratch, const SupportGraph *graph)
uint32_t | getEdgesCount (const SupportGraph *graph) const
bool | hasEdge (NodeIndex node0, NodeIndex node1, const SupportGraph *graph) const
void | initialize (ActorIndex actorIndex, const SupportGraph *graph)
bool | notifyEdgeRemoved (ActorIndex actorIndex, NodeIndex node0, NodeIndex node1, uint32_t bondIndex, const SupportGraph *graph)
bool | notifyEdgeRemoved (ActorIndex actorIndex, NodeIndex node0, NodeIndex node1, const SupportGraph *graph)
bool | notifyNodeRemoved (ActorIndex actorIndex, NodeIndex nodeIndex, const SupportGraph *graph)
| NvBlastBlockData (FixedBoolArray, m_isNodeInDirtyListOffset, getIsNodeInDirtyList)
| NvBlastBlockData (FixedBoolArray, m_isEdgeRemovedOffset, getIsEdgeRemoved)
| NvBlastBlockData (uint32_t, m_hopCountsOffset, getHopCounts)
| NvBlastBlockData (NodeIndex, m_fastRouteOffset, getFastRoute)
| NvBlastBlockData (uint32_t, m_firstDirtyNodeIndicesOffset, getFirstDirtyNodeIndices)
| NvBlastBlockData (NodeIndex, m_dirtyNodeLinksOffset, getDirtyNodeLinks)
| NvBlastBlockData (IslandId, m_islandIdsOffset, getIslandIds)
## Static Public Member Functions
static size_t | findIslandsRequiredScratch (uint32_t graphNodeCount)
static size_t | requiredMemorySize (uint32_t nodeCount, uint32_t bondCount)

## Detailed Description

Internal implementation of family graph stored on the family.

It processes full NvBlastSupportGraph graph, stores additional information used for faster islands finding, keeps and provides access to current islandId for every node.

## Constructor & Destructor Documentation

Nv::Blast::FamilyGraph::FamilyGraph | ( | const SupportGraph * | graph | ) |

Constructor. family graph is meant to be placed (with placement new) on family memory.

Parameters:

  `[in]` | graph | The graph to instance (see SupportGraph)

## Member Function Documentation

bool Nv::Blast::FamilyGraph::canFindRoot | ( | NodeIndex | startNode,
|  | NodeIndex | targetNode,
|  | FixedArray< NodeIndex > * | visitedNodes,
|  | const SupportGraph * | graph |
| ) |  |  |

uint32_t Nv::Blast::FamilyGraph::findIslands | ( | ActorIndex | actorIndex,
|  | void * | scratch,
|  | const SupportGraph * | graph |
| ) |  |  |

Function to find new islands by examining dirty nodes associated with this actor (they can be associated with actor if notifyEdgeRemoved() were previously called for it.

Parameters:

  `[in]` | actorIndex | The index of the actor on which graph part (edges + nodes) findIslands will be performed. Must be in the range [0, m_nodeCount).
  `[in]` | scratch | User-supplied scratch memory of size findIslandsRequiredScratch(graphNodeCount) bytes.
  `[in]` | graph | The static graph data for this family.

Returns:
  the number of new islands found.

static size_t Nv::Blast::FamilyGraph::findIslandsRequiredScratch | ( | uint32_t | graphNodeCount | ) | `[static]`

The scratch space required to call the findIslands function, in bytes.

Parameters:

  `[in]` | graphNodeCount | The number of nodes in the graph.

Returns:
  the number of bytes required.

uint32_t Nv::Blast::FamilyGraph::getEdgesCount | ( | const SupportGraph * | graph | ) | const

bool Nv::Blast::FamilyGraph::hasEdge | ( | NodeIndex | node0,
|  | NodeIndex | node1,
|  | const SupportGraph * | graph |
| ) |  |  | const

void Nv::Blast::FamilyGraph::initialize | ( | ActorIndex | actorIndex,
|  | const SupportGraph * | graph |
| ) |  |  |

Function to initialize graph (all nodes added to dirty list for this actor)

Parameters:

  `[in]` | actorIndex | The index of the actor to initialize graph with. Must be in the range [0, m_nodeCount).
  `[in]` | graph | The static graph data for this family.

bool Nv::Blast::FamilyGraph::notifyEdgeRemoved | ( | ActorIndex | actorIndex,
|  | NodeIndex | node0,
|  | NodeIndex | node1,
|  | uint32_t | bondIndex,
|  | const SupportGraph * | graph |
| ) |  |  |

bool Nv::Blast::FamilyGraph::notifyEdgeRemoved | ( | ActorIndex | actorIndex,
|  | NodeIndex | node0,
|  | NodeIndex | node1,
|  | const SupportGraph * | graph |
| ) |  |  |

Function to notify graph about removed edges. These nodes will be added to dirty list for this actor. Returns true if bond as removed.

Parameters:

  `[in]` | actorIndex | The index of the actor from which the edge is removed. Must be in the range [0, m_nodeCount).
  `[in]` | node0 | The index of the first node of removed edge. Must be in the range [0, m_nodeCount).
  `[in]` | node1 | The index of the second node of removed edge. Must be in the range [0, m_nodeCount).
  `[in]` | graph | The static graph data for this family.

bool Nv::Blast::FamilyGraph::notifyNodeRemoved | ( | ActorIndex | actorIndex,
|  | NodeIndex | nodeIndex,
|  | const SupportGraph * | graph |
| ) |  |  |

Nv::Blast::FamilyGraph::NvBlastBlockData | ( | FixedBoolArray | ,
|  | m_isNodeInDirtyListOffset | ,
|  | getIsNodeInDirtyList |  |
| ) |  |  |

Utility function to get the pointer of the is node in dirty list bitmap. This is an bitmap of size nodeCount.

Nv::Blast::FamilyGraph::NvBlastBlockData | ( | FixedBoolArray | ,
|  | m_isEdgeRemovedOffset | ,
|  | getIsEdgeRemoved |  |
| ) |  |  |

Utility function to get the pointer of the is edge removed bitmap. This is an bitmap of size bondCount.

Nv::Blast::FamilyGraph::NvBlastBlockData | ( | uint32_t | ,
|  | m_hopCountsOffset | ,
|  | getHopCounts |  |
| ) |  |  |

Utility function to get the start of the hop counts array. This is an array of size nodeCount.

Nv::Blast::FamilyGraph::NvBlastBlockData | ( | NodeIndex | ,
|  | m_fastRouteOffset | ,
|  | getFastRoute |  |
| ) |  |  |

Utility function to get the start of the fast route array. This is an array of size nodeCount.

Nv::Blast::FamilyGraph::NvBlastBlockData | ( | uint32_t | ,
|  | m_firstDirtyNodeIndicesOffset | ,
|  | getFirstDirtyNodeIndices |  |
| ) |  |  |

Utility function to get the start of the first dirty node indices array. This is an array of size nodeCount.

Nv::Blast::FamilyGraph::NvBlastBlockData | ( | NodeIndex | ,
|  | m_dirtyNodeLinksOffset | ,
|  | getDirtyNodeLinks |  |
| ) |  |  |

Utility function to get the start of the dirty node links array. This is an array of size nodeCount.

Nv::Blast::FamilyGraph::NvBlastBlockData | ( | IslandId | ,
|  | m_islandIdsOffset | ,
|  | getIslandIds |  |
| ) |  |  |

Utility function to get the start of the island ids array. This is an array of size nodeCount. Every islandId == NodeIndex of root node in this island, it is set for every Node.

Returns:
  the array of island ids.

static size_t Nv::Blast::FamilyGraph::requiredMemorySize | ( | uint32_t | nodeCount,
|  | uint32_t | bondCount |
| ) |  |  | `[inline, static]`

Returns memory needed for this class (see fillMemory).

Parameters:

  `[in]` | nodeCount | The number of nodes in the graph.
  `[in]` | bondCount | The number of bonds in the graph.

Returns:
  the number of bytes required.

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

- sdk/lowlevel/source/NvBlastFamilyGraph.h