#include <TopologyCreator.h>
Public Member Functions | |
std::vector< boost::shared_ptr< Topology > > | generateAllConnectedTopologies () |
boost::shared_ptr< Topology > | generateFullyMeshedTopology () |
std::vector< boost::shared_ptr< Topology > > | generateNeighbours (boost::shared_ptr< Topology > pFrom) |
boost::shared_ptr< Topology > | generateRandomTopology () |
std::vector< boost::shared_ptr< Topology > > | generateStarTopologies () |
TopologyCreator (const std::vector< std::string > &pAllObjectTypes, unsigned int pMaxNeighbourCount, bool pRemoveRelations, bool pSwapRelations) | |
~TopologyCreator () | |
Private Member Functions | |
std::vector< std::vector< bool > > | calculateNeighbours (std::vector< bool > pFrom) |
boost::shared_ptr< Topology > | convertBitvectorToTopology (const std::vector< bool > &pBitvector) |
std::vector< bool > | convertTopologyToBitvector (boost::shared_ptr< Topology > pTopology) |
std::vector< std::vector< bool > > | selectRandomNeighbours (std::vector< std::vector< bool >> &pNeighbours) |
Private Attributes | |
std::vector< std::string > | mAllObjectTypes |
boost::shared_ptr< ConnectivityChecker > | mConnectivityChecker |
unsigned int | mMaxNeighbourCount |
bool | mRemoveRelations |
bool | mSwapRelations |
Generates different topologies of object graphs.
Definition at line 34 of file TopologyCreator.h.
SceneModel::TopologyCreator::TopologyCreator | ( | const std::vector< std::string > & | pAllObjectTypes, |
unsigned int | pMaxNeighbourCount, | ||
bool | pRemoveRelations, | ||
bool | pSwapRelations | ||
) |
Constructor.
pAllObjectTypes | all object types to appear in the graphs. |
pMaxNeighbourCount | the maximum count of neighbours to be created. |
pRemoveRelations | Whether to use the removal of relations as an operation when generating neighbours. |
pSwapRelations | Whether to use the swapping of relations as an operation when generating neighbours. |
Definition at line 24 of file TopologyCreator.cpp.
SceneModel::TopologyCreator::~TopologyCreator | ( | ) |
Destructor.
Definition at line 30 of file TopologyCreator.cpp.
|
private |
Calculate neighbours of topology represented as bitvector.
pFrom | topology represented as bitvector for which to create neighbours |
Definition at line 269 of file TopologyCreator.cpp.
|
private |
Convert bitvector representing the relations into topology and set topology's identifier
pBitvector | representing the relations |
Definition at line 213 of file TopologyCreator.cpp.
|
private |
Convert topology into bitvector reporesenting its realtions.
pTopology | the topology to convert |
Definition at line 245 of file TopologyCreator.cpp.
|
virtual |
Generates all connected topologies containing the object types from constructor.
Implements SceneModel::AbstractTopologyCreator.
Definition at line 138 of file TopologyCreator.cpp.
|
virtual |
Generates the fully meshed topolgy containing all the object types from constructor.
Implements SceneModel::AbstractTopologyCreator.
Definition at line 111 of file TopologyCreator.cpp.
|
virtual |
Generates a set of neighbouring topologies from the given one using up to three operations depending on the parameters passed in constructor. Operations are adding, removing and swapping relations.
pFrom | the topology to generate the neighbours for. |
Implements SceneModel::AbstractTopologyCreator.
Definition at line 33 of file TopologyCreator.cpp.
|
virtual |
Generates a random topology containing the object types.
Implements SceneModel::AbstractTopologyCreator.
Definition at line 119 of file TopologyCreator.cpp.
|
virtual |
Generates all possible star topologies containing all the object types passed in constructor. A star topology is one where all objects are connected only to a sigle reference object.
Implements SceneModel::AbstractTopologyCreator.
Definition at line 83 of file TopologyCreator.cpp.
|
private |
Randomly selects mMaxNeighbourCount neighbours from the given set.
pNeighbours | The set of neighbours to randomly pick from. |
Definition at line 180 of file TopologyCreator.cpp.
|
private |
The object types the topologies connect through relations.
Definition at line 93 of file TopologyCreator.h.
|
private |
The ConnectivityChecker used to check whether topologies are connected.
Definition at line 88 of file TopologyCreator.h.
|
private |
Maximum amount of neighbours to return.
Definition at line 119 of file TopologyCreator.h.
|
private |
Whether to use the removal of relations as an operation when generating neighbours.
Definition at line 131 of file TopologyCreator.h.
|
private |
Whether to use the swapping of relations as an operation when generating neighbours.
Definition at line 136 of file TopologyCreator.h.