Added missing inline declarations

This commit is contained in:
Gunther H. Weber 2020-09-22 10:44:08 -07:00
parent e007405fee
commit eed7487e59
9 changed files with 101 additions and 92 deletions

@ -227,7 +227,7 @@ public:
// constructor takes necessary references
ActiveGraph::ActiveGraph(bool isJoinGraph)
inline ActiveGraph::ActiveGraph(bool isJoinGraph)
: Invoke()
, IsJoinGraph(isJoinGraph)
{ // constructor
@ -240,7 +240,7 @@ ActiveGraph::ActiveGraph(bool isJoinGraph)
// initialises the active graph
template <class Mesh>
void ActiveGraph::Initialise(Mesh& mesh, const MeshExtrema& meshExtrema)
inline void ActiveGraph::Initialise(Mesh& mesh, const MeshExtrema& meshExtrema)
{ // InitialiseActiveGraph()
// reference to the correct array in the extrema
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
// was previously Compute()
void ActiveGraph::MakeMergeTree(MergeTree& tree, MeshExtrema& meshExtrema)
inline void ActiveGraph::MakeMergeTree(MergeTree& tree, MeshExtrema& meshExtrema)
{ // MakeMergeTree()
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
void ActiveGraph::TransferSaddleStarts()
inline void ActiveGraph::TransferSaddleStarts()
{ // TransferSaddleStarts()
// 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
void ActiveGraph::FindGoverningSaddles()
inline void ActiveGraph::FindGoverningSaddles()
{ // FindGoverningSaddles()
// sort with the comparator
vtkm::cont::Algorithm::Sort(
@ -502,7 +502,7 @@ void ActiveGraph::FindGoverningSaddles()
// marks now regular points for removal
void ActiveGraph::TransferRegularPoints()
inline void ActiveGraph::TransferRegularPoints()
{ // TransferRegularPointsWorklet
// we need to label the regular points that have been identified
active_graph_inc_ns::TransferRegularPointsWorklet transRegPtWorklet(this->IsJoinGraph);
@ -513,7 +513,7 @@ void ActiveGraph::TransferRegularPoints()
// compacts the active vertex list
void ActiveGraph::CompactActiveVertices()
inline void ActiveGraph::CompactActiveVertices()
{ // CompactActiveVertices()
using PermuteIndexType = vtkm::cont::ArrayHandlePermutation<IdArrayType, IdArrayType>;
@ -536,7 +536,7 @@ void ActiveGraph::CompactActiveVertices()
// compacts the active edge list
void ActiveGraph::CompactActiveEdges()
inline void ActiveGraph::CompactActiveEdges()
{ // CompactActiveEdges()
// grab the size of the array for easier reference
vtkm::Id nActiveVertices = this->ActiveVertices.GetNumberOfValues();
@ -607,7 +607,7 @@ void ActiveGraph::CompactActiveEdges()
// builds the chains for the new active vertices
void ActiveGraph::BuildChains()
inline void ActiveGraph::BuildChains()
{ // BuildChains()
// 1. compute the number of log steps required in this pass
vtkm::Id numLogSteps = 1;
@ -626,7 +626,7 @@ void ActiveGraph::BuildChains()
// sets all remaining active vertices
void ActiveGraph::BuildTrunk()
inline void ActiveGraph::BuildTrunk()
{ //BuildTrunk
// all remaining vertices belong to the trunk
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
void ActiveGraph::FindSuperAndHyperNodes(MergeTree& tree)
inline void ActiveGraph::FindSuperAndHyperNodes(MergeTree& tree)
{ // FindSuperAndHyperNodes()
// allocate memory for nodes
this->HyperID.ReleaseResources();
@ -708,7 +708,7 @@ void ActiveGraph::FindSuperAndHyperNodes(MergeTree& tree)
// uses active graph to set superarcs & hyperparents in merge tree
void ActiveGraph::SetSuperArcs(MergeTree& tree)
inline void ActiveGraph::SetSuperArcs(MergeTree& tree)
{ // SetSuperArcs()
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
void ActiveGraph::SetHyperArcs(MergeTree& tree)
inline void ActiveGraph::SetHyperArcs(MergeTree& tree)
{ // SetHyperArcs()
// 1. Allocate memory for hypertree
tree.Hypernodes.Shrink(
@ -805,7 +805,7 @@ void ActiveGraph::SetHyperArcs(MergeTree& 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()
using PermuteIndexType = vtkm::cont::ArrayHandlePermutation<IdArrayType, IdArrayType>;
@ -867,7 +867,7 @@ void ActiveGraph::SetArcs(MergeTree& tree, MeshExtrema& meshExtrema)
// Allocate the vertex array
void ActiveGraph::AllocateVertexArrays(vtkm::Id nElems)
inline void ActiveGraph::AllocateVertexArrays(vtkm::Id nElems)
{
this->GlobalIndex.Allocate(nElems);
this->Outdegree.Allocate(nElems);
@ -877,7 +877,7 @@ void ActiveGraph::AllocateVertexArrays(vtkm::Id nElems)
// Allocate the edge array
void ActiveGraph::AllocateEdgeArrays(vtkm::Id nElems)
inline void ActiveGraph::AllocateEdgeArrays(vtkm::Id nElems)
{
this->ActiveEdges.Allocate(nElems);
this->EdgeNear.Allocate(nElems);
@ -886,7 +886,7 @@ void ActiveGraph::AllocateEdgeArrays(vtkm::Id nElems)
// releases temporary arrays
void ActiveGraph::ReleaseTemporaryArrays()
inline void ActiveGraph::ReleaseTemporaryArrays()
{
this->GlobalIndex.ReleaseResources();
this->FirstEdge.ReleaseResources();
@ -903,7 +903,7 @@ void ActiveGraph::ReleaseTemporaryArrays()
// 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()
#ifdef DEBUG_PRINT
std::cout << "------------------------------------------------------" << std::endl;

@ -75,7 +75,7 @@ namespace contourtree_augmented
// permute routines
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()
using transform_type =
vtkm::cont::ArrayHandleTransform<IdArrayType, MaskedIndexFunctor<ValueType>>;

@ -179,7 +179,7 @@ public:
ContourTree::ContourTree()
inline ContourTree::ContourTree()
: Arcs()
, Superparents()
, Supernodes()
@ -192,7 +192,7 @@ ContourTree::ContourTree()
// initialises contour tree arrays - rest is done by another class
void ContourTree::Init(vtkm::Id dataSize)
inline void ContourTree::Init(vtkm::Id dataSize)
{ // Init()
vtkm::cont::ArrayHandleConstant<vtkm::Id> noSuchElementArray(
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);
}
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()
std::stringstream resultStream;
resultStream << std::endl;
@ -244,7 +246,7 @@ std::string ContourTree::DebugPrint(const char* message, const char* fileName, l
} // DebugPrint()
void ContourTree::PrintDotSuperStructure() const
inline void ContourTree::PrintDotSuperStructure() const
{ // PrintDotSuperStructure()
// print the header information
printf("digraph G\n\t{\n");
@ -331,7 +333,7 @@ void ContourTree::PrintDotSuperStructure() const
printf("\t}\n");
} // PrintDotSuperStructure()
std::string ContourTree::PrintHyperStructureStatistics(bool print) const
inline std::string ContourTree::PrintHyperStructureStatistics(bool print) const
{ // PrintHyperStructureStatistics()
// arrays for collecting statistics
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
// constructor
ContourTreeMaker::ContourTreeMaker(ContourTree& contourTree,
MergeTree& joinTree,
MergeTree& splitTree)
inline ContourTreeMaker::ContourTreeMaker(ContourTree& contourTree,
MergeTree& joinTree,
MergeTree& splitTree)
: ContourTreeResult(contourTree)
, JoinTree(joinTree)
, SplitTree(splitTree)
@ -188,7 +188,7 @@ ContourTreeMaker::ContourTreeMaker(ContourTree& contourTree,
} //MakeContourTree()
void ContourTreeMaker::ComputeHyperAndSuperStructure()
inline void ContourTreeMaker::ComputeHyperAndSuperStructure()
{ // ComputeHyperAndSuperStructure()
// augment the merge trees & establish the list of supernodes
@ -447,7 +447,7 @@ void ContourTreeMaker::ComputeHyperAndSuperStructure()
// computes the regular arcs in the contour tree
void ContourTreeMaker::ComputeRegularStructure(MeshExtrema& meshExtrema)
inline void ContourTreeMaker::ComputeRegularStructure(MeshExtrema& meshExtrema)
{ // ComputeRegularStructure()
// First step - use the superstructure to set the superparent for all supernodes
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);
@ -516,7 +516,7 @@ void InitIdArrayTypeNoSuchElement(IdArrayType& idArray, vtkm::Id size)
}
template <class Mesh, class MeshBoundaryExecObj>
void ContourTreeMaker::ComputeBoundaryRegularStructure(
inline void ContourTreeMaker::ComputeBoundaryRegularStructure(
MeshExtrema& meshExtrema,
const Mesh& mesh,
const MeshBoundaryExecObj& meshBoundaryExecObj)
@ -606,7 +606,7 @@ void ContourTreeMaker::ComputeBoundaryRegularStructure(
// routine that augments the join & split tree with each other's supernodes
// the augmented trees will be stored in the joinSuperarcs / mergeSuperarcs arrays
// the sort IDs will be stored in the ContourTree's arrays, &c.
void ContourTreeMaker::AugmentMergeTrees()
inline void ContourTreeMaker::AugmentMergeTrees()
{ // ContourTreeMaker::AugmentMergeTrees()
// in this version, we know that only connectivity-critical points are used
// so we want to combine the lists of supernodes.
@ -783,7 +783,7 @@ struct LeafChainsToContourTree
}
template <typename DeviceAdapter, typename... Args>
bool operator()(DeviceAdapter device, Args&&... args) const
inline bool operator()(DeviceAdapter device, Args&&... args) const
{
vtkm::cont::Token token;
contourtree_maker_inc_ns::TransferLeafChains_TransferToContourTree<DeviceAdapter> worklet(
@ -813,7 +813,7 @@ struct LeafChainsToContourTree
}
// routine to transfer leaf chains to contour tree
void ContourTreeMaker::TransferLeafChains(bool isJoin)
inline void ContourTreeMaker::TransferLeafChains(bool isJoin)
{ // ContourTreeMaker::TransferLeafChains()
// 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.
@ -908,7 +908,7 @@ void ContourTreeMaker::TransferLeafChains(bool isJoin)
// routine to compress trees by removing regular vertices as well as Hypernodes
void ContourTreeMaker::CompressTrees()
inline void ContourTreeMaker::CompressTrees()
{ // ContourTreeMaker::CompressTrees()
// Compute the number of log steps required in this pass
@ -936,7 +936,7 @@ void ContourTreeMaker::CompressTrees()
// compresses trees to remove transferred vertices
void ContourTreeMaker::CompressActiveSupernodes()
inline void ContourTreeMaker::CompressActiveSupernodes()
{ // ContourTreeMaker::CompressActiveSupernodes()
// copy only if this->ContourTreeResult.WhenTransferred has been set
IdArrayType compressedActiveSupernodes;
@ -960,7 +960,7 @@ void ContourTreeMaker::CompressActiveSupernodes()
} // ContourTreeMaker::CompressActiveSupernodes()
void ContourTreeMaker::FindDegrees()
inline void ContourTreeMaker::FindDegrees()
{ // ContourTreeMaker::FindDegrees()
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()
#ifdef DEBUG_PRINT
std::string childString = std::string(message);

@ -189,7 +189,7 @@ protected:
// Sorts the data and initialises the SortIndices & SortOrder
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
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()
// Print mesh extends
void DataSetMesh::DebugPrintExtends()
inline void DataSetMesh::DebugPrintExtends()
{
// For compatibility with the output of the original PPP Implementation, print size
// as NumRows, NumColumns and NumSlices (if applicable)
@ -248,7 +248,7 @@ void DataSetMesh::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()
#ifdef DEBUG_PRINT
std::cout << "------------------------------------------------------" << std::endl;
@ -276,7 +276,7 @@ void DataSetMesh::DebugPrint(const char* message, const char* fileName, long lin
} // DebugPrint()
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
if (MeshSize[0] > 0)

@ -278,7 +278,7 @@ private:
// print content
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()
PrintHeader(this->NumVertices, outStream);
//PrintIndices("SortOrder", SortOrder, outStream);
@ -292,9 +292,9 @@ void ContourTreeMesh<FieldType>::PrintContent(std::ostream& outStream /*= std::c
// debug routine
template <typename FieldType>
void ContourTreeMesh<FieldType>::DebugPrint(const char* message,
const char* fileName,
long lineNum) const
inline void ContourTreeMesh<FieldType>::DebugPrint(const char* message,
const char* fileName,
long lineNum) const
{ // DebugPrint()
#ifdef DEBUG_PRINT
std::cout << "---------------------------" << std::endl;
@ -342,11 +342,11 @@ ContourTreeMesh<FieldType>::ContourTreeMesh(const IdArrayType& arcs,
template <typename FieldType>
ContourTreeMesh<FieldType>::ContourTreeMesh(const IdArrayType& nodes,
const IdArrayType& arcs,
const IdArrayType& inSortOrder,
const vtkm::cont::ArrayHandle<FieldType>& values,
const IdArrayType& inGlobalMeshIndex)
inline ContourTreeMesh<FieldType>::ContourTreeMesh(const IdArrayType& nodes,
const IdArrayType& arcs,
const IdArrayType& inSortOrder,
const vtkm::cont::ArrayHandle<FieldType>& values,
const IdArrayType& inGlobalMeshIndex)
: GlobalMeshIndex(inGlobalMeshIndex)
, Neighbours()
, FirstNeighbour()
@ -369,8 +369,8 @@ ContourTreeMesh<FieldType>::ContourTreeMesh(const IdArrayType& nodes,
}
template <typename FieldType>
ContourTreeMesh<FieldType>::ContourTreeMesh(const IdArrayType& arcs,
const ContourTreeMesh<FieldType>& mesh)
inline ContourTreeMesh<FieldType>::ContourTreeMesh(const IdArrayType& arcs,
const ContourTreeMesh<FieldType>& mesh)
: SortedValues(mesh.SortedValues)
, GlobalMeshIndex(mesh.GlobalMeshIndex)
, Neighbours()
@ -389,9 +389,9 @@ ContourTreeMesh<FieldType>::ContourTreeMesh(const IdArrayType& arcs,
template <typename FieldType>
ContourTreeMesh<FieldType>::ContourTreeMesh(const IdArrayType& nodes,
const IdArrayType& arcs,
const ContourTreeMesh<FieldType>& mesh)
inline ContourTreeMesh<FieldType>::ContourTreeMesh(const IdArrayType& nodes,
const IdArrayType& arcs,
const ContourTreeMesh<FieldType>& mesh)
: Neighbours()
, FirstNeighbour()
{
@ -416,7 +416,7 @@ ContourTreeMesh<FieldType>::ContourTreeMesh(const IdArrayType& nodes,
// Initalize the contour tree from the arcs array and sort order
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 ...
IdArrayType arcTargetIndex;
@ -483,7 +483,7 @@ void ContourTreeMesh<FieldType>::InitialiseNeighboursFromArcs(const IdArrayType&
}
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
contourtree_mesh_inc_ns::ComputeMaxNeighboursWorklet computeMaxNeighboursWorklet(
@ -492,7 +492,7 @@ void ContourTreeMesh<FieldType>::ComputeNNeighboursVector(IdArrayType& nNeighbou
}
template <typename FieldType>
void ContourTreeMesh<FieldType>::ComputeMaxNeighbours()
inline void ContourTreeMesh<FieldType>::ComputeMaxNeighbours()
{
// Compute maximum number of neighbours
IdArrayType nNeighbours;
@ -503,7 +503,7 @@ void ContourTreeMesh<FieldType>::ComputeMaxNeighbours()
// Define the behavior for the execution object generate by the PrepareForExecution function
template <typename FieldType>
void ContourTreeMesh<FieldType>::SetPrepareForExecutionBehavior(bool getMax)
inline void ContourTreeMesh<FieldType>::SetPrepareForExecutionBehavior(bool 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
template <typename FieldType>
template <typename DeviceTag>
contourtree_mesh_inc_ns::MeshStructureContourTreeMesh<DeviceTag>
ContourTreeMesh<FieldType>::PrepareForExecution(DeviceTag, vtkm::cont::Token& token) const
contourtree_mesh_inc_ns::MeshStructureContourTreeMesh<DeviceTag> inline ContourTreeMesh<
FieldType>::PrepareForExecution(DeviceTag, vtkm::cont::Token& token) const
{
return contourtree_mesh_inc_ns::MeshStructureContourTreeMesh<DeviceTag>(
this->Neighbours, this->FirstNeighbour, this->MaxNeighbours, this->mGetMax, token);
@ -526,7 +526,7 @@ struct NotNoSuchElement
// Combine two ContourTreeMeshes
template <typename FieldType>
template <typename DeviceTag>
void ContourTreeMesh<FieldType>::MergeWith(ContourTreeMesh<FieldType>& other)
inline void ContourTreeMesh<FieldType>::MergeWith(ContourTreeMesh<FieldType>& other)
{ // Merge With
#ifdef DEBUG_PRINT
this->DebugPrint("THIS ContourTreeMesh", __FILE__, __LINE__);
@ -787,7 +787,7 @@ void ContourTreeMesh<FieldType>::MergeWith(ContourTreeMesh<FieldType>& other)
template <typename FieldType>
void ContourTreeMesh<FieldType>::Save(const char* filename) const
inline void ContourTreeMesh<FieldType>::Save(const char* filename) const
{
std::ofstream os(filename);
SaveVector(os, this->SortedValues);
@ -797,7 +797,7 @@ void ContourTreeMesh<FieldType>::Save(const char* filename) const
}
template <typename FieldType>
void ContourTreeMesh<FieldType>::Load(const char* filename)
inline void ContourTreeMesh<FieldType>::Load(const char* filename)
{
std::ifstream is(filename);
LoadVector(is, this->SortedValues);
@ -812,8 +812,9 @@ void ContourTreeMesh<FieldType>::Load(const char* filename)
template <typename FieldType>
template <typename ValueType>
void ContourTreeMesh<FieldType>::SaveVector(std::ostream& os,
const vtkm::cont::ArrayHandle<ValueType>& vec) const
inline void ContourTreeMesh<FieldType>::SaveVector(
std::ostream& os,
const vtkm::cont::ArrayHandle<ValueType>& vec) const
{
vtkm::Id numVals = vec.GetNumberOfValues();
//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 ValueType>
void ContourTreeMesh<FieldType>::LoadVector(std::istream& is,
const vtkm::cont::ArrayHandle<ValueType>& vec)
inline void ContourTreeMesh<FieldType>::LoadVector(std::istream& is,
const vtkm::cont::ArrayHandle<ValueType>& vec)
{
vtkm::Id numVals;
is.read(reinterpret_cast<char*>(&numVals), sizeof(ValueType));
@ -843,7 +844,7 @@ void ContourTreeMesh<FieldType>::LoadVector(std::istream& is,
}
template <typename FieldType>
MeshBoundaryContourTreeMeshExec ContourTreeMesh<FieldType>::GetMeshBoundaryExecutionObject(
inline MeshBoundaryContourTreeMeshExec ContourTreeMesh<FieldType>::GetMeshBoundaryExecutionObject(
vtkm::Id3 globalSize,
vtkm::Id3 minIdx,
vtkm::Id3 maxIdx) const
@ -852,7 +853,7 @@ MeshBoundaryContourTreeMeshExec ContourTreeMesh<FieldType>::GetMeshBoundaryExecu
}
template <typename FieldType>
void ContourTreeMesh<FieldType>::GetBoundaryVertices(
inline void ContourTreeMesh<FieldType>::GetBoundaryVertices(
IdArrayType& boundaryVertexArray, // output
IdArrayType& boundarySortIndexArray, // output
MeshBoundaryContourTreeMeshExec* meshBoundaryExecObj //input

@ -101,7 +101,8 @@ private:
}; // class DataSetMeshTriangulation
// creates input mesh
DataSetMeshTriangulation2DFreudenthal::DataSetMeshTriangulation2DFreudenthal(vtkm::Id2 meshSize)
inline DataSetMeshTriangulation2DFreudenthal::DataSetMeshTriangulation2DFreudenthal(
vtkm::Id2 meshSize)
: DataSetMesh(vtkm::Id3{ meshSize[0], meshSize[1], 1 })
, EdgeBoundaryDetectionMasks{ vtkm::cont::make_ArrayHandle(
m2d_freudenthal::EdgeBoundaryDetectionMasks,
@ -110,16 +111,16 @@ DataSetMeshTriangulation2DFreudenthal::DataSetMeshTriangulation2DFreudenthal(vtk
{
}
void DataSetMeshTriangulation2DFreudenthal::SetPrepareForExecutionBehavior(bool getMax)
inline void DataSetMeshTriangulation2DFreudenthal::SetPrepareForExecutionBehavior(bool getMax)
{
this->UseGetMax = getMax;
}
// Get VTKM execution object that represents the structure of the mesh and provides the mesh helper functions on the device
template <typename DeviceTag>
MeshStructureFreudenthal2D<DeviceTag> DataSetMeshTriangulation2DFreudenthal::PrepareForExecution(
DeviceTag,
vtkm::cont::Token& token) const
inline MeshStructureFreudenthal2D<DeviceTag>
DataSetMeshTriangulation2DFreudenthal::PrepareForExecution(DeviceTag,
vtkm::cont::Token& token) const
{
return MeshStructureFreudenthal2D<DeviceTag>(vtkm::Id2{ this->MeshSize[0], this->MeshSize[1] },
m2d_freudenthal::N_INCIDENT_EDGES,
@ -130,12 +131,13 @@ MeshStructureFreudenthal2D<DeviceTag> DataSetMeshTriangulation2DFreudenthal::Pre
token);
}
MeshBoundary2DExec DataSetMeshTriangulation2DFreudenthal::GetMeshBoundaryExecutionObject() const
inline MeshBoundary2DExec DataSetMeshTriangulation2DFreudenthal::GetMeshBoundaryExecutionObject()
const
{
return MeshBoundary2DExec(vtkm::Id2{ this->MeshSize[0], this->MeshSize[1] }, this->SortIndices);
}
void DataSetMeshTriangulation2DFreudenthal::GetBoundaryVertices(
inline void DataSetMeshTriangulation2DFreudenthal::GetBoundaryVertices(
IdArrayType& boundaryVertexArray, // output
IdArrayType& boundarySortIndexArray, // output
MeshBoundary2DExec*

@ -106,7 +106,8 @@ private:
}; // class DataSetMeshTriangulation
// creates input mesh
DataSetMeshTriangulation3DFreudenthal::DataSetMeshTriangulation3DFreudenthal(vtkm::Id3 meshSize)
inline DataSetMeshTriangulation3DFreudenthal::DataSetMeshTriangulation3DFreudenthal(
vtkm::Id3 meshSize)
: DataSetMesh(meshSize)
{
@ -123,16 +124,16 @@ DataSetMeshTriangulation3DFreudenthal::DataSetMeshTriangulation3DFreudenthal(vtk
vtkm::CopyFlag::Off);
}
void DataSetMeshTriangulation3DFreudenthal::SetPrepareForExecutionBehavior(bool getMax)
inline void DataSetMeshTriangulation3DFreudenthal::SetPrepareForExecutionBehavior(bool getMax)
{
this->UseGetMax = getMax;
}
// Get VTKM execution object that represents the structure of the mesh and provides the mesh helper functions on the device
template <typename DeviceTag>
MeshStructureFreudenthal3D<DeviceTag> DataSetMeshTriangulation3DFreudenthal::PrepareForExecution(
DeviceTag,
vtkm::cont::Token& token) const
inline MeshStructureFreudenthal3D<DeviceTag>
DataSetMeshTriangulation3DFreudenthal::PrepareForExecution(DeviceTag,
vtkm::cont::Token& token) const
{
return MeshStructureFreudenthal3D<DeviceTag>(this->MeshSize,
m3d_freudenthal::N_INCIDENT_EDGES,
@ -145,12 +146,13 @@ MeshStructureFreudenthal3D<DeviceTag> DataSetMeshTriangulation3DFreudenthal::Pre
token);
}
MeshBoundary3DExec DataSetMeshTriangulation3DFreudenthal::GetMeshBoundaryExecutionObject() const
inline MeshBoundary3DExec DataSetMeshTriangulation3DFreudenthal::GetMeshBoundaryExecutionObject()
const
{
return MeshBoundary3DExec(this->MeshSize, this->SortIndices);
}
void DataSetMeshTriangulation3DFreudenthal::GetBoundaryVertices(
inline void DataSetMeshTriangulation3DFreudenthal::GetBoundaryVertices(
IdArrayType& boundaryVertexArray, // output
IdArrayType& boundarySortIndexArray, // output
MeshBoundary3DExec* meshBoundaryExecObj // input

@ -111,7 +111,8 @@ private:
}; // class DataSetMesh_Triangulation
// creates input mesh
DataSetMeshTriangulation3DMarchingCubes::DataSetMeshTriangulation3DMarchingCubes(vtkm::Id3 meshSize)
inline DataSetMeshTriangulation3DMarchingCubes::DataSetMeshTriangulation3DMarchingCubes(
vtkm::Id3 meshSize)
: DataSetMesh(meshSize)
{
@ -154,16 +155,16 @@ DataSetMeshTriangulation3DMarchingCubes::DataSetMeshTriangulation3DMarchingCubes
vtkm::CopyFlag::Off);
}
void DataSetMeshTriangulation3DMarchingCubes::SetPrepareForExecutionBehavior(bool getMax)
inline void DataSetMeshTriangulation3DMarchingCubes::SetPrepareForExecutionBehavior(bool getMax)
{
this->UseGetMax = getMax;
}
// Get VTKM execution object that represents the structure of the mesh and provides the mesh helper functions on the device
template <typename DeviceTag>
MeshStructureMarchingCubes<DeviceTag> DataSetMeshTriangulation3DMarchingCubes::PrepareForExecution(
DeviceTag,
vtkm::cont::Token& token) const
inline MeshStructureMarchingCubes<DeviceTag>
DataSetMeshTriangulation3DMarchingCubes::PrepareForExecution(DeviceTag,
vtkm::cont::Token& token) const
{
return MeshStructureMarchingCubes<DeviceTag>(this->MeshSize,
this->UseGetMax,
@ -178,12 +179,13 @@ MeshStructureMarchingCubes<DeviceTag> DataSetMeshTriangulation3DMarchingCubes::P
token);
}
MeshBoundary3DExec DataSetMeshTriangulation3DMarchingCubes::GetMeshBoundaryExecutionObject() const
inline MeshBoundary3DExec DataSetMeshTriangulation3DMarchingCubes::GetMeshBoundaryExecutionObject()
const
{
return MeshBoundary3DExec(this->MeshSize, this->SortOrder);
}
void DataSetMeshTriangulation3DMarchingCubes::GetBoundaryVertices(
inline void DataSetMeshTriangulation3DMarchingCubes::GetBoundaryVertices(
IdArrayType& boundaryVertexArray, // output
IdArrayType& boundarySortIndexArray, // output
MeshBoundary3DExec* meshBoundaryExecObj // input