Added missing inline declarations
This commit is contained in:
parent
e007405fee
commit
eed7487e59
@ -227,7 +227,7 @@ public:
|
|||||||
|
|
||||||
|
|
||||||
// constructor takes necessary references
|
// constructor takes necessary references
|
||||||
ActiveGraph::ActiveGraph(bool isJoinGraph)
|
inline ActiveGraph::ActiveGraph(bool isJoinGraph)
|
||||||
: Invoke()
|
: Invoke()
|
||||||
, IsJoinGraph(isJoinGraph)
|
, IsJoinGraph(isJoinGraph)
|
||||||
{ // constructor
|
{ // constructor
|
||||||
@ -240,7 +240,7 @@ ActiveGraph::ActiveGraph(bool isJoinGraph)
|
|||||||
|
|
||||||
// initialises the active graph
|
// initialises the active graph
|
||||||
template <class Mesh>
|
template <class Mesh>
|
||||||
void ActiveGraph::Initialise(Mesh& mesh, const MeshExtrema& meshExtrema)
|
inline void ActiveGraph::Initialise(Mesh& mesh, const MeshExtrema& meshExtrema)
|
||||||
{ // InitialiseActiveGraph()
|
{ // InitialiseActiveGraph()
|
||||||
// reference to the correct array in the extrema
|
// reference to the correct array in the extrema
|
||||||
const IdArrayType& extrema = this->IsJoinGraph ? meshExtrema.Peaks : meshExtrema.Pits;
|
const IdArrayType& extrema = this->IsJoinGraph ? meshExtrema.Peaks : meshExtrema.Pits;
|
||||||
@ -372,7 +372,7 @@ void ActiveGraph::Initialise(Mesh& mesh, const MeshExtrema& meshExtrema)
|
|||||||
|
|
||||||
// routine that computes the merge tree from the active graph
|
// routine that computes the merge tree from the active graph
|
||||||
// was previously Compute()
|
// was previously Compute()
|
||||||
void ActiveGraph::MakeMergeTree(MergeTree& tree, MeshExtrema& meshExtrema)
|
inline void ActiveGraph::MakeMergeTree(MergeTree& tree, MeshExtrema& meshExtrema)
|
||||||
{ // MakeMergeTree()
|
{ // MakeMergeTree()
|
||||||
DebugPrint("Active Graph Computation Starting", __FILE__, __LINE__);
|
DebugPrint("Active Graph Computation Starting", __FILE__, __LINE__);
|
||||||
|
|
||||||
@ -421,7 +421,7 @@ void ActiveGraph::MakeMergeTree(MergeTree& tree, MeshExtrema& meshExtrema)
|
|||||||
|
|
||||||
|
|
||||||
// suppresses non-saddles for the governing saddles pass
|
// suppresses non-saddles for the governing saddles pass
|
||||||
void ActiveGraph::TransferSaddleStarts()
|
inline void ActiveGraph::TransferSaddleStarts()
|
||||||
{ // TransferSaddleStarts()
|
{ // TransferSaddleStarts()
|
||||||
// update all of the edges so that the far end resets to the result of the ascent in the previous step
|
// update all of the edges so that the far end resets to the result of the ascent in the previous step
|
||||||
|
|
||||||
@ -476,7 +476,7 @@ void ActiveGraph::TransferSaddleStarts()
|
|||||||
|
|
||||||
|
|
||||||
// sorts saddle starts to find governing saddles
|
// sorts saddle starts to find governing saddles
|
||||||
void ActiveGraph::FindGoverningSaddles()
|
inline void ActiveGraph::FindGoverningSaddles()
|
||||||
{ // FindGoverningSaddles()
|
{ // FindGoverningSaddles()
|
||||||
// sort with the comparator
|
// sort with the comparator
|
||||||
vtkm::cont::Algorithm::Sort(
|
vtkm::cont::Algorithm::Sort(
|
||||||
@ -502,7 +502,7 @@ void ActiveGraph::FindGoverningSaddles()
|
|||||||
|
|
||||||
|
|
||||||
// marks now regular points for removal
|
// marks now regular points for removal
|
||||||
void ActiveGraph::TransferRegularPoints()
|
inline void ActiveGraph::TransferRegularPoints()
|
||||||
{ // TransferRegularPointsWorklet
|
{ // TransferRegularPointsWorklet
|
||||||
// we need to label the regular points that have been identified
|
// we need to label the regular points that have been identified
|
||||||
active_graph_inc_ns::TransferRegularPointsWorklet transRegPtWorklet(this->IsJoinGraph);
|
active_graph_inc_ns::TransferRegularPointsWorklet transRegPtWorklet(this->IsJoinGraph);
|
||||||
@ -513,7 +513,7 @@ void ActiveGraph::TransferRegularPoints()
|
|||||||
|
|
||||||
|
|
||||||
// compacts the active vertex list
|
// compacts the active vertex list
|
||||||
void ActiveGraph::CompactActiveVertices()
|
inline void ActiveGraph::CompactActiveVertices()
|
||||||
{ // CompactActiveVertices()
|
{ // CompactActiveVertices()
|
||||||
using PermuteIndexType = vtkm::cont::ArrayHandlePermutation<IdArrayType, IdArrayType>;
|
using PermuteIndexType = vtkm::cont::ArrayHandlePermutation<IdArrayType, IdArrayType>;
|
||||||
|
|
||||||
@ -536,7 +536,7 @@ void ActiveGraph::CompactActiveVertices()
|
|||||||
|
|
||||||
|
|
||||||
// compacts the active edge list
|
// compacts the active edge list
|
||||||
void ActiveGraph::CompactActiveEdges()
|
inline void ActiveGraph::CompactActiveEdges()
|
||||||
{ // CompactActiveEdges()
|
{ // CompactActiveEdges()
|
||||||
// grab the size of the array for easier reference
|
// grab the size of the array for easier reference
|
||||||
vtkm::Id nActiveVertices = this->ActiveVertices.GetNumberOfValues();
|
vtkm::Id nActiveVertices = this->ActiveVertices.GetNumberOfValues();
|
||||||
@ -607,7 +607,7 @@ void ActiveGraph::CompactActiveEdges()
|
|||||||
|
|
||||||
|
|
||||||
// builds the chains for the new active vertices
|
// builds the chains for the new active vertices
|
||||||
void ActiveGraph::BuildChains()
|
inline void ActiveGraph::BuildChains()
|
||||||
{ // BuildChains()
|
{ // BuildChains()
|
||||||
// 1. compute the number of log steps required in this pass
|
// 1. compute the number of log steps required in this pass
|
||||||
vtkm::Id numLogSteps = 1;
|
vtkm::Id numLogSteps = 1;
|
||||||
@ -626,7 +626,7 @@ void ActiveGraph::BuildChains()
|
|||||||
|
|
||||||
|
|
||||||
// sets all remaining active vertices
|
// sets all remaining active vertices
|
||||||
void ActiveGraph::BuildTrunk()
|
inline void ActiveGraph::BuildTrunk()
|
||||||
{ //BuildTrunk
|
{ //BuildTrunk
|
||||||
// all remaining vertices belong to the trunk
|
// all remaining vertices belong to the trunk
|
||||||
active_graph_inc_ns::BuildTrunkWorklet buildTrunkWorklet;
|
active_graph_inc_ns::BuildTrunkWorklet buildTrunkWorklet;
|
||||||
@ -637,7 +637,7 @@ void ActiveGraph::BuildTrunk()
|
|||||||
|
|
||||||
|
|
||||||
// finds all super and hyper nodes, numbers them & sets up arrays for lookup
|
// finds all super and hyper nodes, numbers them & sets up arrays for lookup
|
||||||
void ActiveGraph::FindSuperAndHyperNodes(MergeTree& tree)
|
inline void ActiveGraph::FindSuperAndHyperNodes(MergeTree& tree)
|
||||||
{ // FindSuperAndHyperNodes()
|
{ // FindSuperAndHyperNodes()
|
||||||
// allocate memory for nodes
|
// allocate memory for nodes
|
||||||
this->HyperID.ReleaseResources();
|
this->HyperID.ReleaseResources();
|
||||||
@ -708,7 +708,7 @@ void ActiveGraph::FindSuperAndHyperNodes(MergeTree& tree)
|
|||||||
|
|
||||||
|
|
||||||
// uses active graph to set superarcs & hyperparents in merge tree
|
// uses active graph to set superarcs & hyperparents in merge tree
|
||||||
void ActiveGraph::SetSuperArcs(MergeTree& tree)
|
inline void ActiveGraph::SetSuperArcs(MergeTree& tree)
|
||||||
{ // SetSuperArcs()
|
{ // SetSuperArcs()
|
||||||
using PermutedIdArrayType = vtkm::cont::ArrayHandlePermutation<IdArrayType, IdArrayType>;
|
using PermutedIdArrayType = vtkm::cont::ArrayHandlePermutation<IdArrayType, IdArrayType>;
|
||||||
|
|
||||||
@ -784,7 +784,7 @@ void ActiveGraph::SetSuperArcs(MergeTree& tree)
|
|||||||
|
|
||||||
|
|
||||||
// uses active graph to set hypernodes in merge tree
|
// uses active graph to set hypernodes in merge tree
|
||||||
void ActiveGraph::SetHyperArcs(MergeTree& tree)
|
inline void ActiveGraph::SetHyperArcs(MergeTree& tree)
|
||||||
{ // SetHyperArcs()
|
{ // SetHyperArcs()
|
||||||
// 1. Allocate memory for hypertree
|
// 1. Allocate memory for hypertree
|
||||||
tree.Hypernodes.Shrink(
|
tree.Hypernodes.Shrink(
|
||||||
@ -805,7 +805,7 @@ void ActiveGraph::SetHyperArcs(MergeTree& tree)
|
|||||||
|
|
||||||
|
|
||||||
// uses active graph to set arcs in merge tree
|
// uses active graph to set arcs in merge tree
|
||||||
void ActiveGraph::SetArcs(MergeTree& tree, MeshExtrema& meshExtrema)
|
inline void ActiveGraph::SetArcs(MergeTree& tree, MeshExtrema& meshExtrema)
|
||||||
{ // SetArcs()
|
{ // SetArcs()
|
||||||
using PermuteIndexType = vtkm::cont::ArrayHandlePermutation<IdArrayType, IdArrayType>;
|
using PermuteIndexType = vtkm::cont::ArrayHandlePermutation<IdArrayType, IdArrayType>;
|
||||||
|
|
||||||
@ -867,7 +867,7 @@ void ActiveGraph::SetArcs(MergeTree& tree, MeshExtrema& meshExtrema)
|
|||||||
|
|
||||||
|
|
||||||
// Allocate the vertex array
|
// Allocate the vertex array
|
||||||
void ActiveGraph::AllocateVertexArrays(vtkm::Id nElems)
|
inline void ActiveGraph::AllocateVertexArrays(vtkm::Id nElems)
|
||||||
{
|
{
|
||||||
this->GlobalIndex.Allocate(nElems);
|
this->GlobalIndex.Allocate(nElems);
|
||||||
this->Outdegree.Allocate(nElems);
|
this->Outdegree.Allocate(nElems);
|
||||||
@ -877,7 +877,7 @@ void ActiveGraph::AllocateVertexArrays(vtkm::Id nElems)
|
|||||||
|
|
||||||
|
|
||||||
// Allocate the edge array
|
// Allocate the edge array
|
||||||
void ActiveGraph::AllocateEdgeArrays(vtkm::Id nElems)
|
inline void ActiveGraph::AllocateEdgeArrays(vtkm::Id nElems)
|
||||||
{
|
{
|
||||||
this->ActiveEdges.Allocate(nElems);
|
this->ActiveEdges.Allocate(nElems);
|
||||||
this->EdgeNear.Allocate(nElems);
|
this->EdgeNear.Allocate(nElems);
|
||||||
@ -886,7 +886,7 @@ void ActiveGraph::AllocateEdgeArrays(vtkm::Id nElems)
|
|||||||
|
|
||||||
|
|
||||||
// releases temporary arrays
|
// releases temporary arrays
|
||||||
void ActiveGraph::ReleaseTemporaryArrays()
|
inline void ActiveGraph::ReleaseTemporaryArrays()
|
||||||
{
|
{
|
||||||
this->GlobalIndex.ReleaseResources();
|
this->GlobalIndex.ReleaseResources();
|
||||||
this->FirstEdge.ReleaseResources();
|
this->FirstEdge.ReleaseResources();
|
||||||
@ -903,7 +903,7 @@ void ActiveGraph::ReleaseTemporaryArrays()
|
|||||||
|
|
||||||
|
|
||||||
// prints the contents of the active graph in a standard format
|
// prints the contents of the active graph in a standard format
|
||||||
void ActiveGraph::DebugPrint(const char* message, const char* fileName, long lineNum)
|
inline void ActiveGraph::DebugPrint(const char* message, const char* fileName, long lineNum)
|
||||||
{ // DebugPrint()
|
{ // DebugPrint()
|
||||||
#ifdef DEBUG_PRINT
|
#ifdef DEBUG_PRINT
|
||||||
std::cout << "------------------------------------------------------" << std::endl;
|
std::cout << "------------------------------------------------------" << std::endl;
|
||||||
|
@ -75,7 +75,7 @@ namespace contourtree_augmented
|
|||||||
|
|
||||||
// permute routines
|
// permute routines
|
||||||
template <typename ValueType, typename ArrayType>
|
template <typename ValueType, typename ArrayType>
|
||||||
void PermuteArray(const ArrayType& input, IdArrayType& permute, ArrayType& output)
|
inline void PermuteArray(const ArrayType& input, IdArrayType& permute, ArrayType& output)
|
||||||
{ // permuteValues()
|
{ // permuteValues()
|
||||||
using transform_type =
|
using transform_type =
|
||||||
vtkm::cont::ArrayHandleTransform<IdArrayType, MaskedIndexFunctor<ValueType>>;
|
vtkm::cont::ArrayHandleTransform<IdArrayType, MaskedIndexFunctor<ValueType>>;
|
||||||
|
@ -179,7 +179,7 @@ public:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
ContourTree::ContourTree()
|
inline ContourTree::ContourTree()
|
||||||
: Arcs()
|
: Arcs()
|
||||||
, Superparents()
|
, Superparents()
|
||||||
, Supernodes()
|
, Supernodes()
|
||||||
@ -192,7 +192,7 @@ ContourTree::ContourTree()
|
|||||||
|
|
||||||
|
|
||||||
// initialises contour tree arrays - rest is done by another class
|
// initialises contour tree arrays - rest is done by another class
|
||||||
void ContourTree::Init(vtkm::Id dataSize)
|
inline void ContourTree::Init(vtkm::Id dataSize)
|
||||||
{ // Init()
|
{ // Init()
|
||||||
vtkm::cont::ArrayHandleConstant<vtkm::Id> noSuchElementArray(
|
vtkm::cont::ArrayHandleConstant<vtkm::Id> noSuchElementArray(
|
||||||
static_cast<vtkm::Id>(NO_SUCH_ELEMENT), dataSize);
|
static_cast<vtkm::Id>(NO_SUCH_ELEMENT), dataSize);
|
||||||
@ -226,7 +226,9 @@ inline void ContourTree::PrintContent(std::ostream& outStream /*= std::cout*/) c
|
|||||||
PrintIndices("First HN Per Iter", this->FirstHypernodePerIteration, -1, outStream);
|
PrintIndices("First HN Per Iter", this->FirstHypernodePerIteration, -1, outStream);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string ContourTree::DebugPrint(const char* message, const char* fileName, long lineNum) const
|
inline std::string ContourTree::DebugPrint(const char* message,
|
||||||
|
const char* fileName,
|
||||||
|
long lineNum) const
|
||||||
{ // DebugPrint()
|
{ // DebugPrint()
|
||||||
std::stringstream resultStream;
|
std::stringstream resultStream;
|
||||||
resultStream << std::endl;
|
resultStream << std::endl;
|
||||||
@ -244,7 +246,7 @@ std::string ContourTree::DebugPrint(const char* message, const char* fileName, l
|
|||||||
|
|
||||||
} // DebugPrint()
|
} // DebugPrint()
|
||||||
|
|
||||||
void ContourTree::PrintDotSuperStructure() const
|
inline void ContourTree::PrintDotSuperStructure() const
|
||||||
{ // PrintDotSuperStructure()
|
{ // PrintDotSuperStructure()
|
||||||
// print the header information
|
// print the header information
|
||||||
printf("digraph G\n\t{\n");
|
printf("digraph G\n\t{\n");
|
||||||
@ -331,7 +333,7 @@ void ContourTree::PrintDotSuperStructure() const
|
|||||||
printf("\t}\n");
|
printf("\t}\n");
|
||||||
} // PrintDotSuperStructure()
|
} // PrintDotSuperStructure()
|
||||||
|
|
||||||
std::string ContourTree::PrintHyperStructureStatistics(bool print) const
|
inline std::string ContourTree::PrintHyperStructureStatistics(bool print) const
|
||||||
{ // PrintHyperStructureStatistics()
|
{ // PrintHyperStructureStatistics()
|
||||||
// arrays for collecting statistics
|
// arrays for collecting statistics
|
||||||
std::vector<vtkm::Id> minPath;
|
std::vector<vtkm::Id> minPath;
|
||||||
|
@ -173,9 +173,9 @@ public:
|
|||||||
|
|
||||||
// TODO we should add an Init function to move the heavy-weight computions out of the constructor
|
// TODO we should add an Init function to move the heavy-weight computions out of the constructor
|
||||||
// constructor
|
// constructor
|
||||||
ContourTreeMaker::ContourTreeMaker(ContourTree& contourTree,
|
inline ContourTreeMaker::ContourTreeMaker(ContourTree& contourTree,
|
||||||
MergeTree& joinTree,
|
MergeTree& joinTree,
|
||||||
MergeTree& splitTree)
|
MergeTree& splitTree)
|
||||||
: ContourTreeResult(contourTree)
|
: ContourTreeResult(contourTree)
|
||||||
, JoinTree(joinTree)
|
, JoinTree(joinTree)
|
||||||
, SplitTree(splitTree)
|
, SplitTree(splitTree)
|
||||||
@ -188,7 +188,7 @@ ContourTreeMaker::ContourTreeMaker(ContourTree& contourTree,
|
|||||||
} //MakeContourTree()
|
} //MakeContourTree()
|
||||||
|
|
||||||
|
|
||||||
void ContourTreeMaker::ComputeHyperAndSuperStructure()
|
inline void ContourTreeMaker::ComputeHyperAndSuperStructure()
|
||||||
{ // ComputeHyperAndSuperStructure()
|
{ // ComputeHyperAndSuperStructure()
|
||||||
|
|
||||||
// augment the merge trees & establish the list of supernodes
|
// augment the merge trees & establish the list of supernodes
|
||||||
@ -447,7 +447,7 @@ void ContourTreeMaker::ComputeHyperAndSuperStructure()
|
|||||||
|
|
||||||
|
|
||||||
// computes the regular arcs in the contour tree
|
// computes the regular arcs in the contour tree
|
||||||
void ContourTreeMaker::ComputeRegularStructure(MeshExtrema& meshExtrema)
|
inline void ContourTreeMaker::ComputeRegularStructure(MeshExtrema& meshExtrema)
|
||||||
{ // ComputeRegularStructure()
|
{ // ComputeRegularStructure()
|
||||||
// First step - use the superstructure to set the superparent for all supernodes
|
// First step - use the superstructure to set the superparent for all supernodes
|
||||||
auto supernodesIndex =
|
auto supernodesIndex =
|
||||||
@ -507,7 +507,7 @@ struct ContourTreeNoSuchElementSuperParents
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
void InitIdArrayTypeNoSuchElement(IdArrayType& idArray, vtkm::Id size)
|
inline void InitIdArrayTypeNoSuchElement(IdArrayType& idArray, vtkm::Id size)
|
||||||
{
|
{
|
||||||
idArray.Allocate(size);
|
idArray.Allocate(size);
|
||||||
|
|
||||||
@ -516,7 +516,7 @@ void InitIdArrayTypeNoSuchElement(IdArrayType& idArray, vtkm::Id size)
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <class Mesh, class MeshBoundaryExecObj>
|
template <class Mesh, class MeshBoundaryExecObj>
|
||||||
void ContourTreeMaker::ComputeBoundaryRegularStructure(
|
inline void ContourTreeMaker::ComputeBoundaryRegularStructure(
|
||||||
MeshExtrema& meshExtrema,
|
MeshExtrema& meshExtrema,
|
||||||
const Mesh& mesh,
|
const Mesh& mesh,
|
||||||
const MeshBoundaryExecObj& meshBoundaryExecObj)
|
const MeshBoundaryExecObj& meshBoundaryExecObj)
|
||||||
@ -606,7 +606,7 @@ void ContourTreeMaker::ComputeBoundaryRegularStructure(
|
|||||||
// routine that augments the join & split tree with each other's supernodes
|
// routine that augments the join & split tree with each other's supernodes
|
||||||
// the augmented trees will be stored in the joinSuperarcs / mergeSuperarcs arrays
|
// the augmented trees will be stored in the joinSuperarcs / mergeSuperarcs arrays
|
||||||
// the sort IDs will be stored in the ContourTree's arrays, &c.
|
// the sort IDs will be stored in the ContourTree's arrays, &c.
|
||||||
void ContourTreeMaker::AugmentMergeTrees()
|
inline void ContourTreeMaker::AugmentMergeTrees()
|
||||||
{ // ContourTreeMaker::AugmentMergeTrees()
|
{ // ContourTreeMaker::AugmentMergeTrees()
|
||||||
// in this version, we know that only connectivity-critical points are used
|
// in this version, we know that only connectivity-critical points are used
|
||||||
// so we want to combine the lists of supernodes.
|
// so we want to combine the lists of supernodes.
|
||||||
@ -783,7 +783,7 @@ struct LeafChainsToContourTree
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <typename DeviceAdapter, typename... Args>
|
template <typename DeviceAdapter, typename... Args>
|
||||||
bool operator()(DeviceAdapter device, Args&&... args) const
|
inline bool operator()(DeviceAdapter device, Args&&... args) const
|
||||||
{
|
{
|
||||||
vtkm::cont::Token token;
|
vtkm::cont::Token token;
|
||||||
contourtree_maker_inc_ns::TransferLeafChains_TransferToContourTree<DeviceAdapter> worklet(
|
contourtree_maker_inc_ns::TransferLeafChains_TransferToContourTree<DeviceAdapter> worklet(
|
||||||
@ -813,7 +813,7 @@ struct LeafChainsToContourTree
|
|||||||
}
|
}
|
||||||
|
|
||||||
// routine to transfer leaf chains to contour tree
|
// routine to transfer leaf chains to contour tree
|
||||||
void ContourTreeMaker::TransferLeafChains(bool isJoin)
|
inline void ContourTreeMaker::TransferLeafChains(bool isJoin)
|
||||||
{ // ContourTreeMaker::TransferLeafChains()
|
{ // ContourTreeMaker::TransferLeafChains()
|
||||||
// we need to compute the chains in both directions, so we have two vectors:
|
// we need to compute the chains in both directions, so we have two vectors:
|
||||||
// TODO below we initialize the outbound and inbound arrays with 0 to ensure consistency of debug output. Check if this is needed.
|
// TODO below we initialize the outbound and inbound arrays with 0 to ensure consistency of debug output. Check if this is needed.
|
||||||
@ -908,7 +908,7 @@ void ContourTreeMaker::TransferLeafChains(bool isJoin)
|
|||||||
|
|
||||||
|
|
||||||
// routine to compress trees by removing regular vertices as well as Hypernodes
|
// routine to compress trees by removing regular vertices as well as Hypernodes
|
||||||
void ContourTreeMaker::CompressTrees()
|
inline void ContourTreeMaker::CompressTrees()
|
||||||
{ // ContourTreeMaker::CompressTrees()
|
{ // ContourTreeMaker::CompressTrees()
|
||||||
|
|
||||||
// Compute the number of log steps required in this pass
|
// Compute the number of log steps required in this pass
|
||||||
@ -936,7 +936,7 @@ void ContourTreeMaker::CompressTrees()
|
|||||||
|
|
||||||
|
|
||||||
// compresses trees to remove transferred vertices
|
// compresses trees to remove transferred vertices
|
||||||
void ContourTreeMaker::CompressActiveSupernodes()
|
inline void ContourTreeMaker::CompressActiveSupernodes()
|
||||||
{ // ContourTreeMaker::CompressActiveSupernodes()
|
{ // ContourTreeMaker::CompressActiveSupernodes()
|
||||||
// copy only if this->ContourTreeResult.WhenTransferred has been set
|
// copy only if this->ContourTreeResult.WhenTransferred has been set
|
||||||
IdArrayType compressedActiveSupernodes;
|
IdArrayType compressedActiveSupernodes;
|
||||||
@ -960,7 +960,7 @@ void ContourTreeMaker::CompressActiveSupernodes()
|
|||||||
} // ContourTreeMaker::CompressActiveSupernodes()
|
} // ContourTreeMaker::CompressActiveSupernodes()
|
||||||
|
|
||||||
|
|
||||||
void ContourTreeMaker::FindDegrees()
|
inline void ContourTreeMaker::FindDegrees()
|
||||||
{ // ContourTreeMaker::FindDegrees()
|
{ // ContourTreeMaker::FindDegrees()
|
||||||
using PermuteIndexArray = vtkm::cont::ArrayHandlePermutation<IdArrayType, IdArrayType>;
|
using PermuteIndexArray = vtkm::cont::ArrayHandlePermutation<IdArrayType, IdArrayType>;
|
||||||
|
|
||||||
@ -1017,7 +1017,7 @@ void ContourTreeMaker::FindDegrees()
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
void ContourTreeMaker::DebugPrint(const char* message, const char* fileName, long lineNum)
|
inline void ContourTreeMaker::DebugPrint(const char* message, const char* fileName, long lineNum)
|
||||||
{ // ContourTreeMaker::DebugPrint()
|
{ // ContourTreeMaker::DebugPrint()
|
||||||
#ifdef DEBUG_PRINT
|
#ifdef DEBUG_PRINT
|
||||||
std::string childString = std::string(message);
|
std::string childString = std::string(message);
|
||||||
|
@ -189,7 +189,7 @@ protected:
|
|||||||
|
|
||||||
// Sorts the data and initialises the SortIndices & SortOrder
|
// Sorts the data and initialises the SortIndices & SortOrder
|
||||||
template <typename T, typename StorageType>
|
template <typename T, typename StorageType>
|
||||||
void DataSetMesh::SortData(const vtkm::cont::ArrayHandle<T, StorageType>& values)
|
inline void DataSetMesh::SortData(const vtkm::cont::ArrayHandle<T, StorageType>& values)
|
||||||
{
|
{
|
||||||
// Define namespace alias for mesh dem worklets
|
// Define namespace alias for mesh dem worklets
|
||||||
namespace mesh_dem_worklets = vtkm::worklet::contourtree_augmented::mesh_dem;
|
namespace mesh_dem_worklets = vtkm::worklet::contourtree_augmented::mesh_dem;
|
||||||
@ -230,7 +230,7 @@ void DataSetMesh::SortData(const vtkm::cont::ArrayHandle<T, StorageType>& values
|
|||||||
} // SortData()
|
} // SortData()
|
||||||
|
|
||||||
// Print mesh extends
|
// Print mesh extends
|
||||||
void DataSetMesh::DebugPrintExtends()
|
inline void DataSetMesh::DebugPrintExtends()
|
||||||
{
|
{
|
||||||
// For compatibility with the output of the original PPP Implementation, print size
|
// For compatibility with the output of the original PPP Implementation, print size
|
||||||
// as NumRows, NumColumns and NumSlices (if applicable)
|
// as NumRows, NumColumns and NumSlices (if applicable)
|
||||||
@ -248,7 +248,7 @@ void DataSetMesh::DebugPrintExtends()
|
|||||||
}
|
}
|
||||||
} // DebugPrintExtends
|
} // DebugPrintExtends
|
||||||
|
|
||||||
void DataSetMesh::DebugPrint(const char* message, const char* fileName, long lineNum)
|
inline void DataSetMesh::DebugPrint(const char* message, const char* fileName, long lineNum)
|
||||||
{ // DebugPrint()
|
{ // DebugPrint()
|
||||||
#ifdef DEBUG_PRINT
|
#ifdef DEBUG_PRINT
|
||||||
std::cout << "------------------------------------------------------" << std::endl;
|
std::cout << "------------------------------------------------------" << std::endl;
|
||||||
@ -276,7 +276,7 @@ void DataSetMesh::DebugPrint(const char* message, const char* fileName, long lin
|
|||||||
} // DebugPrint()
|
} // DebugPrint()
|
||||||
|
|
||||||
template <typename T, typename StorageType>
|
template <typename T, typename StorageType>
|
||||||
void DataSetMesh::DebugPrintValues(const vtkm::cont::ArrayHandle<T, StorageType>& values)
|
inline void DataSetMesh::DebugPrintValues(const vtkm::cont::ArrayHandle<T, StorageType>& values)
|
||||||
{
|
{
|
||||||
#ifdef DEBUG_PRINT
|
#ifdef DEBUG_PRINT
|
||||||
if (MeshSize[0] > 0)
|
if (MeshSize[0] > 0)
|
||||||
|
@ -278,7 +278,7 @@ private:
|
|||||||
|
|
||||||
// print content
|
// print content
|
||||||
template <typename FieldType>
|
template <typename FieldType>
|
||||||
void ContourTreeMesh<FieldType>::PrintContent(std::ostream& outStream /*= std::cout*/) const
|
inline void ContourTreeMesh<FieldType>::PrintContent(std::ostream& outStream /*= std::cout*/) const
|
||||||
{ // PrintContent()
|
{ // PrintContent()
|
||||||
PrintHeader(this->NumVertices, outStream);
|
PrintHeader(this->NumVertices, outStream);
|
||||||
//PrintIndices("SortOrder", SortOrder, outStream);
|
//PrintIndices("SortOrder", SortOrder, outStream);
|
||||||
@ -292,9 +292,9 @@ void ContourTreeMesh<FieldType>::PrintContent(std::ostream& outStream /*= std::c
|
|||||||
|
|
||||||
// debug routine
|
// debug routine
|
||||||
template <typename FieldType>
|
template <typename FieldType>
|
||||||
void ContourTreeMesh<FieldType>::DebugPrint(const char* message,
|
inline void ContourTreeMesh<FieldType>::DebugPrint(const char* message,
|
||||||
const char* fileName,
|
const char* fileName,
|
||||||
long lineNum) const
|
long lineNum) const
|
||||||
{ // DebugPrint()
|
{ // DebugPrint()
|
||||||
#ifdef DEBUG_PRINT
|
#ifdef DEBUG_PRINT
|
||||||
std::cout << "---------------------------" << std::endl;
|
std::cout << "---------------------------" << std::endl;
|
||||||
@ -342,11 +342,11 @@ ContourTreeMesh<FieldType>::ContourTreeMesh(const IdArrayType& arcs,
|
|||||||
|
|
||||||
|
|
||||||
template <typename FieldType>
|
template <typename FieldType>
|
||||||
ContourTreeMesh<FieldType>::ContourTreeMesh(const IdArrayType& nodes,
|
inline ContourTreeMesh<FieldType>::ContourTreeMesh(const IdArrayType& nodes,
|
||||||
const IdArrayType& arcs,
|
const IdArrayType& arcs,
|
||||||
const IdArrayType& inSortOrder,
|
const IdArrayType& inSortOrder,
|
||||||
const vtkm::cont::ArrayHandle<FieldType>& values,
|
const vtkm::cont::ArrayHandle<FieldType>& values,
|
||||||
const IdArrayType& inGlobalMeshIndex)
|
const IdArrayType& inGlobalMeshIndex)
|
||||||
: GlobalMeshIndex(inGlobalMeshIndex)
|
: GlobalMeshIndex(inGlobalMeshIndex)
|
||||||
, Neighbours()
|
, Neighbours()
|
||||||
, FirstNeighbour()
|
, FirstNeighbour()
|
||||||
@ -369,8 +369,8 @@ ContourTreeMesh<FieldType>::ContourTreeMesh(const IdArrayType& nodes,
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <typename FieldType>
|
template <typename FieldType>
|
||||||
ContourTreeMesh<FieldType>::ContourTreeMesh(const IdArrayType& arcs,
|
inline ContourTreeMesh<FieldType>::ContourTreeMesh(const IdArrayType& arcs,
|
||||||
const ContourTreeMesh<FieldType>& mesh)
|
const ContourTreeMesh<FieldType>& mesh)
|
||||||
: SortedValues(mesh.SortedValues)
|
: SortedValues(mesh.SortedValues)
|
||||||
, GlobalMeshIndex(mesh.GlobalMeshIndex)
|
, GlobalMeshIndex(mesh.GlobalMeshIndex)
|
||||||
, Neighbours()
|
, Neighbours()
|
||||||
@ -389,9 +389,9 @@ ContourTreeMesh<FieldType>::ContourTreeMesh(const IdArrayType& arcs,
|
|||||||
|
|
||||||
|
|
||||||
template <typename FieldType>
|
template <typename FieldType>
|
||||||
ContourTreeMesh<FieldType>::ContourTreeMesh(const IdArrayType& nodes,
|
inline ContourTreeMesh<FieldType>::ContourTreeMesh(const IdArrayType& nodes,
|
||||||
const IdArrayType& arcs,
|
const IdArrayType& arcs,
|
||||||
const ContourTreeMesh<FieldType>& mesh)
|
const ContourTreeMesh<FieldType>& mesh)
|
||||||
: Neighbours()
|
: Neighbours()
|
||||||
, FirstNeighbour()
|
, FirstNeighbour()
|
||||||
{
|
{
|
||||||
@ -416,7 +416,7 @@ ContourTreeMesh<FieldType>::ContourTreeMesh(const IdArrayType& nodes,
|
|||||||
|
|
||||||
// Initalize the contour tree from the arcs array and sort order
|
// Initalize the contour tree from the arcs array and sort order
|
||||||
template <typename FieldType>
|
template <typename FieldType>
|
||||||
void ContourTreeMesh<FieldType>::InitialiseNeighboursFromArcs(const IdArrayType& arcs)
|
inline void ContourTreeMesh<FieldType>::InitialiseNeighboursFromArcs(const IdArrayType& arcs)
|
||||||
{
|
{
|
||||||
// Find target indices for valid arcs in neighbours array ...
|
// Find target indices for valid arcs in neighbours array ...
|
||||||
IdArrayType arcTargetIndex;
|
IdArrayType arcTargetIndex;
|
||||||
@ -483,7 +483,7 @@ void ContourTreeMesh<FieldType>::InitialiseNeighboursFromArcs(const IdArrayType&
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <typename FieldType>
|
template <typename FieldType>
|
||||||
void ContourTreeMesh<FieldType>::ComputeNNeighboursVector(IdArrayType& nNeighbours) const
|
inline void ContourTreeMesh<FieldType>::ComputeNNeighboursVector(IdArrayType& nNeighbours) const
|
||||||
{
|
{
|
||||||
nNeighbours.Allocate(this->FirstNeighbour.GetNumberOfValues()); // same as this->NumVertices
|
nNeighbours.Allocate(this->FirstNeighbour.GetNumberOfValues()); // same as this->NumVertices
|
||||||
contourtree_mesh_inc_ns::ComputeMaxNeighboursWorklet computeMaxNeighboursWorklet(
|
contourtree_mesh_inc_ns::ComputeMaxNeighboursWorklet computeMaxNeighboursWorklet(
|
||||||
@ -492,7 +492,7 @@ void ContourTreeMesh<FieldType>::ComputeNNeighboursVector(IdArrayType& nNeighbou
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <typename FieldType>
|
template <typename FieldType>
|
||||||
void ContourTreeMesh<FieldType>::ComputeMaxNeighbours()
|
inline void ContourTreeMesh<FieldType>::ComputeMaxNeighbours()
|
||||||
{
|
{
|
||||||
// Compute maximum number of neighbours
|
// Compute maximum number of neighbours
|
||||||
IdArrayType nNeighbours;
|
IdArrayType nNeighbours;
|
||||||
@ -503,7 +503,7 @@ void ContourTreeMesh<FieldType>::ComputeMaxNeighbours()
|
|||||||
|
|
||||||
// Define the behavior for the execution object generate by the PrepareForExecution function
|
// Define the behavior for the execution object generate by the PrepareForExecution function
|
||||||
template <typename FieldType>
|
template <typename FieldType>
|
||||||
void ContourTreeMesh<FieldType>::SetPrepareForExecutionBehavior(bool getMax)
|
inline void ContourTreeMesh<FieldType>::SetPrepareForExecutionBehavior(bool getMax)
|
||||||
{
|
{
|
||||||
this->mGetMax = getMax;
|
this->mGetMax = getMax;
|
||||||
}
|
}
|
||||||
@ -511,8 +511,8 @@ void ContourTreeMesh<FieldType>::SetPrepareForExecutionBehavior(bool getMax)
|
|||||||
// Get VTKM execution object that represents the structure of the mesh and provides the mesh helper functions on the device
|
// Get VTKM execution object that represents the structure of the mesh and provides the mesh helper functions on the device
|
||||||
template <typename FieldType>
|
template <typename FieldType>
|
||||||
template <typename DeviceTag>
|
template <typename DeviceTag>
|
||||||
contourtree_mesh_inc_ns::MeshStructureContourTreeMesh<DeviceTag>
|
contourtree_mesh_inc_ns::MeshStructureContourTreeMesh<DeviceTag> inline ContourTreeMesh<
|
||||||
ContourTreeMesh<FieldType>::PrepareForExecution(DeviceTag, vtkm::cont::Token& token) const
|
FieldType>::PrepareForExecution(DeviceTag, vtkm::cont::Token& token) const
|
||||||
{
|
{
|
||||||
return contourtree_mesh_inc_ns::MeshStructureContourTreeMesh<DeviceTag>(
|
return contourtree_mesh_inc_ns::MeshStructureContourTreeMesh<DeviceTag>(
|
||||||
this->Neighbours, this->FirstNeighbour, this->MaxNeighbours, this->mGetMax, token);
|
this->Neighbours, this->FirstNeighbour, this->MaxNeighbours, this->mGetMax, token);
|
||||||
@ -526,7 +526,7 @@ struct NotNoSuchElement
|
|||||||
// Combine two ContourTreeMeshes
|
// Combine two ContourTreeMeshes
|
||||||
template <typename FieldType>
|
template <typename FieldType>
|
||||||
template <typename DeviceTag>
|
template <typename DeviceTag>
|
||||||
void ContourTreeMesh<FieldType>::MergeWith(ContourTreeMesh<FieldType>& other)
|
inline void ContourTreeMesh<FieldType>::MergeWith(ContourTreeMesh<FieldType>& other)
|
||||||
{ // Merge With
|
{ // Merge With
|
||||||
#ifdef DEBUG_PRINT
|
#ifdef DEBUG_PRINT
|
||||||
this->DebugPrint("THIS ContourTreeMesh", __FILE__, __LINE__);
|
this->DebugPrint("THIS ContourTreeMesh", __FILE__, __LINE__);
|
||||||
@ -787,7 +787,7 @@ void ContourTreeMesh<FieldType>::MergeWith(ContourTreeMesh<FieldType>& other)
|
|||||||
|
|
||||||
|
|
||||||
template <typename FieldType>
|
template <typename FieldType>
|
||||||
void ContourTreeMesh<FieldType>::Save(const char* filename) const
|
inline void ContourTreeMesh<FieldType>::Save(const char* filename) const
|
||||||
{
|
{
|
||||||
std::ofstream os(filename);
|
std::ofstream os(filename);
|
||||||
SaveVector(os, this->SortedValues);
|
SaveVector(os, this->SortedValues);
|
||||||
@ -797,7 +797,7 @@ void ContourTreeMesh<FieldType>::Save(const char* filename) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <typename FieldType>
|
template <typename FieldType>
|
||||||
void ContourTreeMesh<FieldType>::Load(const char* filename)
|
inline void ContourTreeMesh<FieldType>::Load(const char* filename)
|
||||||
{
|
{
|
||||||
std::ifstream is(filename);
|
std::ifstream is(filename);
|
||||||
LoadVector(is, this->SortedValues);
|
LoadVector(is, this->SortedValues);
|
||||||
@ -812,8 +812,9 @@ void ContourTreeMesh<FieldType>::Load(const char* filename)
|
|||||||
|
|
||||||
template <typename FieldType>
|
template <typename FieldType>
|
||||||
template <typename ValueType>
|
template <typename ValueType>
|
||||||
void ContourTreeMesh<FieldType>::SaveVector(std::ostream& os,
|
inline void ContourTreeMesh<FieldType>::SaveVector(
|
||||||
const vtkm::cont::ArrayHandle<ValueType>& vec) const
|
std::ostream& os,
|
||||||
|
const vtkm::cont::ArrayHandle<ValueType>& vec) const
|
||||||
{
|
{
|
||||||
vtkm::Id numVals = vec.GetNumberOfValues();
|
vtkm::Id numVals = vec.GetNumberOfValues();
|
||||||
//os.write(reinterpret_cast<const char*>(&numVals), sizeof(ValueType));
|
//os.write(reinterpret_cast<const char*>(&numVals), sizeof(ValueType));
|
||||||
@ -827,8 +828,8 @@ void ContourTreeMesh<FieldType>::SaveVector(std::ostream& os,
|
|||||||
|
|
||||||
template <typename FieldType>
|
template <typename FieldType>
|
||||||
template <typename ValueType>
|
template <typename ValueType>
|
||||||
void ContourTreeMesh<FieldType>::LoadVector(std::istream& is,
|
inline void ContourTreeMesh<FieldType>::LoadVector(std::istream& is,
|
||||||
const vtkm::cont::ArrayHandle<ValueType>& vec)
|
const vtkm::cont::ArrayHandle<ValueType>& vec)
|
||||||
{
|
{
|
||||||
vtkm::Id numVals;
|
vtkm::Id numVals;
|
||||||
is.read(reinterpret_cast<char*>(&numVals), sizeof(ValueType));
|
is.read(reinterpret_cast<char*>(&numVals), sizeof(ValueType));
|
||||||
@ -843,7 +844,7 @@ void ContourTreeMesh<FieldType>::LoadVector(std::istream& is,
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <typename FieldType>
|
template <typename FieldType>
|
||||||
MeshBoundaryContourTreeMeshExec ContourTreeMesh<FieldType>::GetMeshBoundaryExecutionObject(
|
inline MeshBoundaryContourTreeMeshExec ContourTreeMesh<FieldType>::GetMeshBoundaryExecutionObject(
|
||||||
vtkm::Id3 globalSize,
|
vtkm::Id3 globalSize,
|
||||||
vtkm::Id3 minIdx,
|
vtkm::Id3 minIdx,
|
||||||
vtkm::Id3 maxIdx) const
|
vtkm::Id3 maxIdx) const
|
||||||
@ -852,7 +853,7 @@ MeshBoundaryContourTreeMeshExec ContourTreeMesh<FieldType>::GetMeshBoundaryExecu
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <typename FieldType>
|
template <typename FieldType>
|
||||||
void ContourTreeMesh<FieldType>::GetBoundaryVertices(
|
inline void ContourTreeMesh<FieldType>::GetBoundaryVertices(
|
||||||
IdArrayType& boundaryVertexArray, // output
|
IdArrayType& boundaryVertexArray, // output
|
||||||
IdArrayType& boundarySortIndexArray, // output
|
IdArrayType& boundarySortIndexArray, // output
|
||||||
MeshBoundaryContourTreeMeshExec* meshBoundaryExecObj //input
|
MeshBoundaryContourTreeMeshExec* meshBoundaryExecObj //input
|
||||||
|
@ -101,7 +101,8 @@ private:
|
|||||||
}; // class DataSetMeshTriangulation
|
}; // class DataSetMeshTriangulation
|
||||||
|
|
||||||
// creates input mesh
|
// creates input mesh
|
||||||
DataSetMeshTriangulation2DFreudenthal::DataSetMeshTriangulation2DFreudenthal(vtkm::Id2 meshSize)
|
inline DataSetMeshTriangulation2DFreudenthal::DataSetMeshTriangulation2DFreudenthal(
|
||||||
|
vtkm::Id2 meshSize)
|
||||||
: DataSetMesh(vtkm::Id3{ meshSize[0], meshSize[1], 1 })
|
: DataSetMesh(vtkm::Id3{ meshSize[0], meshSize[1], 1 })
|
||||||
, EdgeBoundaryDetectionMasks{ vtkm::cont::make_ArrayHandle(
|
, EdgeBoundaryDetectionMasks{ vtkm::cont::make_ArrayHandle(
|
||||||
m2d_freudenthal::EdgeBoundaryDetectionMasks,
|
m2d_freudenthal::EdgeBoundaryDetectionMasks,
|
||||||
@ -110,16 +111,16 @@ DataSetMeshTriangulation2DFreudenthal::DataSetMeshTriangulation2DFreudenthal(vtk
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void DataSetMeshTriangulation2DFreudenthal::SetPrepareForExecutionBehavior(bool getMax)
|
inline void DataSetMeshTriangulation2DFreudenthal::SetPrepareForExecutionBehavior(bool getMax)
|
||||||
{
|
{
|
||||||
this->UseGetMax = getMax;
|
this->UseGetMax = getMax;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get VTKM execution object that represents the structure of the mesh and provides the mesh helper functions on the device
|
// Get VTKM execution object that represents the structure of the mesh and provides the mesh helper functions on the device
|
||||||
template <typename DeviceTag>
|
template <typename DeviceTag>
|
||||||
MeshStructureFreudenthal2D<DeviceTag> DataSetMeshTriangulation2DFreudenthal::PrepareForExecution(
|
inline MeshStructureFreudenthal2D<DeviceTag>
|
||||||
DeviceTag,
|
DataSetMeshTriangulation2DFreudenthal::PrepareForExecution(DeviceTag,
|
||||||
vtkm::cont::Token& token) const
|
vtkm::cont::Token& token) const
|
||||||
{
|
{
|
||||||
return MeshStructureFreudenthal2D<DeviceTag>(vtkm::Id2{ this->MeshSize[0], this->MeshSize[1] },
|
return MeshStructureFreudenthal2D<DeviceTag>(vtkm::Id2{ this->MeshSize[0], this->MeshSize[1] },
|
||||||
m2d_freudenthal::N_INCIDENT_EDGES,
|
m2d_freudenthal::N_INCIDENT_EDGES,
|
||||||
@ -130,12 +131,13 @@ MeshStructureFreudenthal2D<DeviceTag> DataSetMeshTriangulation2DFreudenthal::Pre
|
|||||||
token);
|
token);
|
||||||
}
|
}
|
||||||
|
|
||||||
MeshBoundary2DExec DataSetMeshTriangulation2DFreudenthal::GetMeshBoundaryExecutionObject() const
|
inline MeshBoundary2DExec DataSetMeshTriangulation2DFreudenthal::GetMeshBoundaryExecutionObject()
|
||||||
|
const
|
||||||
{
|
{
|
||||||
return MeshBoundary2DExec(vtkm::Id2{ this->MeshSize[0], this->MeshSize[1] }, this->SortIndices);
|
return MeshBoundary2DExec(vtkm::Id2{ this->MeshSize[0], this->MeshSize[1] }, this->SortIndices);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DataSetMeshTriangulation2DFreudenthal::GetBoundaryVertices(
|
inline void DataSetMeshTriangulation2DFreudenthal::GetBoundaryVertices(
|
||||||
IdArrayType& boundaryVertexArray, // output
|
IdArrayType& boundaryVertexArray, // output
|
||||||
IdArrayType& boundarySortIndexArray, // output
|
IdArrayType& boundarySortIndexArray, // output
|
||||||
MeshBoundary2DExec*
|
MeshBoundary2DExec*
|
||||||
|
@ -106,7 +106,8 @@ private:
|
|||||||
}; // class DataSetMeshTriangulation
|
}; // class DataSetMeshTriangulation
|
||||||
|
|
||||||
// creates input mesh
|
// creates input mesh
|
||||||
DataSetMeshTriangulation3DFreudenthal::DataSetMeshTriangulation3DFreudenthal(vtkm::Id3 meshSize)
|
inline DataSetMeshTriangulation3DFreudenthal::DataSetMeshTriangulation3DFreudenthal(
|
||||||
|
vtkm::Id3 meshSize)
|
||||||
: DataSetMesh(meshSize)
|
: DataSetMesh(meshSize)
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -123,16 +124,16 @@ DataSetMeshTriangulation3DFreudenthal::DataSetMeshTriangulation3DFreudenthal(vtk
|
|||||||
vtkm::CopyFlag::Off);
|
vtkm::CopyFlag::Off);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DataSetMeshTriangulation3DFreudenthal::SetPrepareForExecutionBehavior(bool getMax)
|
inline void DataSetMeshTriangulation3DFreudenthal::SetPrepareForExecutionBehavior(bool getMax)
|
||||||
{
|
{
|
||||||
this->UseGetMax = getMax;
|
this->UseGetMax = getMax;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get VTKM execution object that represents the structure of the mesh and provides the mesh helper functions on the device
|
// Get VTKM execution object that represents the structure of the mesh and provides the mesh helper functions on the device
|
||||||
template <typename DeviceTag>
|
template <typename DeviceTag>
|
||||||
MeshStructureFreudenthal3D<DeviceTag> DataSetMeshTriangulation3DFreudenthal::PrepareForExecution(
|
inline MeshStructureFreudenthal3D<DeviceTag>
|
||||||
DeviceTag,
|
DataSetMeshTriangulation3DFreudenthal::PrepareForExecution(DeviceTag,
|
||||||
vtkm::cont::Token& token) const
|
vtkm::cont::Token& token) const
|
||||||
{
|
{
|
||||||
return MeshStructureFreudenthal3D<DeviceTag>(this->MeshSize,
|
return MeshStructureFreudenthal3D<DeviceTag>(this->MeshSize,
|
||||||
m3d_freudenthal::N_INCIDENT_EDGES,
|
m3d_freudenthal::N_INCIDENT_EDGES,
|
||||||
@ -145,12 +146,13 @@ MeshStructureFreudenthal3D<DeviceTag> DataSetMeshTriangulation3DFreudenthal::Pre
|
|||||||
token);
|
token);
|
||||||
}
|
}
|
||||||
|
|
||||||
MeshBoundary3DExec DataSetMeshTriangulation3DFreudenthal::GetMeshBoundaryExecutionObject() const
|
inline MeshBoundary3DExec DataSetMeshTriangulation3DFreudenthal::GetMeshBoundaryExecutionObject()
|
||||||
|
const
|
||||||
{
|
{
|
||||||
return MeshBoundary3DExec(this->MeshSize, this->SortIndices);
|
return MeshBoundary3DExec(this->MeshSize, this->SortIndices);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DataSetMeshTriangulation3DFreudenthal::GetBoundaryVertices(
|
inline void DataSetMeshTriangulation3DFreudenthal::GetBoundaryVertices(
|
||||||
IdArrayType& boundaryVertexArray, // output
|
IdArrayType& boundaryVertexArray, // output
|
||||||
IdArrayType& boundarySortIndexArray, // output
|
IdArrayType& boundarySortIndexArray, // output
|
||||||
MeshBoundary3DExec* meshBoundaryExecObj // input
|
MeshBoundary3DExec* meshBoundaryExecObj // input
|
||||||
|
@ -111,7 +111,8 @@ private:
|
|||||||
}; // class DataSetMesh_Triangulation
|
}; // class DataSetMesh_Triangulation
|
||||||
|
|
||||||
// creates input mesh
|
// creates input mesh
|
||||||
DataSetMeshTriangulation3DMarchingCubes::DataSetMeshTriangulation3DMarchingCubes(vtkm::Id3 meshSize)
|
inline DataSetMeshTriangulation3DMarchingCubes::DataSetMeshTriangulation3DMarchingCubes(
|
||||||
|
vtkm::Id3 meshSize)
|
||||||
: DataSetMesh(meshSize)
|
: DataSetMesh(meshSize)
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -154,16 +155,16 @@ DataSetMeshTriangulation3DMarchingCubes::DataSetMeshTriangulation3DMarchingCubes
|
|||||||
vtkm::CopyFlag::Off);
|
vtkm::CopyFlag::Off);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DataSetMeshTriangulation3DMarchingCubes::SetPrepareForExecutionBehavior(bool getMax)
|
inline void DataSetMeshTriangulation3DMarchingCubes::SetPrepareForExecutionBehavior(bool getMax)
|
||||||
{
|
{
|
||||||
this->UseGetMax = getMax;
|
this->UseGetMax = getMax;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get VTKM execution object that represents the structure of the mesh and provides the mesh helper functions on the device
|
// Get VTKM execution object that represents the structure of the mesh and provides the mesh helper functions on the device
|
||||||
template <typename DeviceTag>
|
template <typename DeviceTag>
|
||||||
MeshStructureMarchingCubes<DeviceTag> DataSetMeshTriangulation3DMarchingCubes::PrepareForExecution(
|
inline MeshStructureMarchingCubes<DeviceTag>
|
||||||
DeviceTag,
|
DataSetMeshTriangulation3DMarchingCubes::PrepareForExecution(DeviceTag,
|
||||||
vtkm::cont::Token& token) const
|
vtkm::cont::Token& token) const
|
||||||
{
|
{
|
||||||
return MeshStructureMarchingCubes<DeviceTag>(this->MeshSize,
|
return MeshStructureMarchingCubes<DeviceTag>(this->MeshSize,
|
||||||
this->UseGetMax,
|
this->UseGetMax,
|
||||||
@ -178,12 +179,13 @@ MeshStructureMarchingCubes<DeviceTag> DataSetMeshTriangulation3DMarchingCubes::P
|
|||||||
token);
|
token);
|
||||||
}
|
}
|
||||||
|
|
||||||
MeshBoundary3DExec DataSetMeshTriangulation3DMarchingCubes::GetMeshBoundaryExecutionObject() const
|
inline MeshBoundary3DExec DataSetMeshTriangulation3DMarchingCubes::GetMeshBoundaryExecutionObject()
|
||||||
|
const
|
||||||
{
|
{
|
||||||
return MeshBoundary3DExec(this->MeshSize, this->SortOrder);
|
return MeshBoundary3DExec(this->MeshSize, this->SortOrder);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DataSetMeshTriangulation3DMarchingCubes::GetBoundaryVertices(
|
inline void DataSetMeshTriangulation3DMarchingCubes::GetBoundaryVertices(
|
||||||
IdArrayType& boundaryVertexArray, // output
|
IdArrayType& boundaryVertexArray, // output
|
||||||
IdArrayType& boundarySortIndexArray, // output
|
IdArrayType& boundarySortIndexArray, // output
|
||||||
MeshBoundary3DExec* meshBoundaryExecObj // input
|
MeshBoundary3DExec* meshBoundaryExecObj // input
|
||||||
|
Loading…
Reference in New Issue
Block a user