Skip to content

Commit 9eb2228

Browse files
committed
Add template algorithm classes
Signed-off-by: Michael Jackson <[email protected]>
1 parent c56235a commit 9eb2228

File tree

104 files changed

+4547
-2
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

104 files changed

+4547
-2
lines changed

src/Plugins/OrientationAnalysis/CMakeLists.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,23 +175,25 @@ set(filter_algorithms
175175
ComputeFaceIPFColoring
176176
ComputeFeatureFaceMisorientation
177177
ComputeFeatureNeighborCAxisMisalignments
178+
ComputeFeatureNeighborMisorientations
178179
ComputeFeatureReferenceCAxisMisorientations
179180
ComputeFeatureReferenceMisorientations
181+
ComputeFZQuaternions
180182
ComputeGBCD
181183
ComputeGBCDMetricBased
182184
ComputeGBCDPoleFigure
183185
ComputeGBPDMetricBased
184186
ComputeIPFColors
185187
ComputeKernelAvgMisorientations
186-
ComputeFeatureNeighborMisorientations
187188
ComputeMisorientations
188189
ComputeQuaternionConjugate
189190
ComputeSchmids
190191
ComputeShapes
191-
ComputeSlipTransmissionMetrics
192192
ComputeShapesTriangleGeom
193+
ComputeSlipTransmissionMetrics
193194
ComputeTwinBoundaries
194195
ConvertHexGridToSquareGrid
196+
ConvertOrientations
195197
ConvertQuaternion
196198
CreateEnsembleInfo
197199
EBSDSegmentFeatures
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#include "ComputeFZQuaternions.hpp"
2+
3+
#include "simplnx/DataStructure/DataArray.hpp"
4+
#include "simplnx/DataStructure/DataGroup.hpp"
5+
6+
using namespace nx::core;
7+
8+
// -----------------------------------------------------------------------------
9+
ComputeFZQuaternions::ComputeFZQuaternions(DataStructure& dataStructure, const IFilter::MessageHandler& mesgHandler, const std::atomic_bool& shouldCancel, ComputeFZQuaternionsInputValues* inputValues)
10+
: m_DataStructure(dataStructure)
11+
, m_InputValues(inputValues)
12+
, m_ShouldCancel(shouldCancel)
13+
, m_MessageHandler(mesgHandler)
14+
{
15+
}
16+
17+
// -----------------------------------------------------------------------------
18+
ComputeFZQuaternions::~ComputeFZQuaternions() noexcept = default;
19+
20+
// -----------------------------------------------------------------------------
21+
Result<> ComputeFZQuaternions::operator()()
22+
{
23+
24+
return {};
25+
}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
#pragma once
2+
3+
#include "OrientationAnalysis/OrientationAnalysis_export.hpp"
4+
5+
#include "simplnx/DataStructure/DataPath.hpp"
6+
#include "simplnx/DataStructure/DataStructure.hpp"
7+
#include "simplnx/Filter/IFilter.hpp"
8+
#include "simplnx/Parameters/ArraySelectionParameter.hpp"
9+
#include "simplnx/Parameters/BoolParameter.hpp"
10+
#include "simplnx/Parameters/DataObjectNameParameter.hpp"
11+
12+
/**
13+
* This is example code to put in the Execute Method of the filter.
14+
ComputeFZQuaternionsInputValues inputValues;
15+
// Replace the keys below with the variables from the header.
16+
inputValues.CellPhasesArrayPath = filterArgs.values<ArraySelectionParameter::ValueType>(cell_phases_array_path);
17+
inputValues.CrystalStructuresArrayPath = filterArgs.values<ArraySelectionParameter::ValueType>(crystal_structures_array_path);
18+
inputValues.InputQuatsArrayPath = filterArgs.values<ArraySelectionParameter::ValueType>(input_quats_array_path);
19+
inputValues.MaskArrayPath = filterArgs.values<ArraySelectionParameter::ValueType>(mask_array_path);
20+
inputValues.OutputFzQuatsArrayName = filterArgs.values<DataObjectNameParameter::ValueType>(output_fz_quats_array_name);
21+
inputValues.UseMask = filterArgs.values<BoolParameter::ValueType>(use_mask);
22+
return ComputeFZQuaternions(dataStructure, messageHandler, shouldCancel, &inputValues)();
23+
24+
*/
25+
26+
namespace nx::core
27+
{
28+
29+
struct ORIENTATIONANALYSIS_EXPORT ComputeFZQuaternionsInputValues
30+
{
31+
ArraySelectionParameter::ValueType CellPhasesArrayPath;
32+
ArraySelectionParameter::ValueType CrystalStructuresArrayPath;
33+
ArraySelectionParameter::ValueType InputQuatsArrayPath;
34+
ArraySelectionParameter::ValueType MaskArrayPath;
35+
DataObjectNameParameter::ValueType OutputFzQuatsArrayName;
36+
BoolParameter::ValueType UseMask;
37+
};
38+
39+
/**
40+
* @class ComputeFZQuaternions
41+
* @brief This algorithm implements support code for the ComputeFZQuaternionsFilter
42+
*/
43+
44+
class ORIENTATIONANALYSIS_EXPORT ComputeFZQuaternions
45+
{
46+
public:
47+
ComputeFZQuaternions(DataStructure& dataStructure, const IFilter::MessageHandler& mesgHandler, const std::atomic_bool& shouldCancel, ComputeFZQuaternionsInputValues* inputValues);
48+
~ComputeFZQuaternions() noexcept;
49+
50+
ComputeFZQuaternions(const ComputeFZQuaternions&) = delete;
51+
ComputeFZQuaternions(ComputeFZQuaternions&&) noexcept = delete;
52+
ComputeFZQuaternions& operator=(const ComputeFZQuaternions&) = delete;
53+
ComputeFZQuaternions& operator=(ComputeFZQuaternions&&) noexcept = delete;
54+
55+
Result<> operator()();
56+
57+
private:
58+
DataStructure& m_DataStructure;
59+
const ComputeFZQuaternionsInputValues* m_InputValues = nullptr;
60+
const std::atomic_bool& m_ShouldCancel;
61+
const IFilter::MessageHandler& m_MessageHandler;
62+
};
63+
64+
} // namespace nx::core
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#include "ConvertOrientations.hpp"
2+
3+
#include "simplnx/DataStructure/DataArray.hpp"
4+
#include "simplnx/DataStructure/DataGroup.hpp"
5+
6+
using namespace nx::core;
7+
8+
// -----------------------------------------------------------------------------
9+
ConvertOrientations::ConvertOrientations(DataStructure& dataStructure, const IFilter::MessageHandler& mesgHandler, const std::atomic_bool& shouldCancel, ConvertOrientationsInputValues* inputValues)
10+
: m_DataStructure(dataStructure)
11+
, m_InputValues(inputValues)
12+
, m_ShouldCancel(shouldCancel)
13+
, m_MessageHandler(mesgHandler)
14+
{
15+
}
16+
17+
// -----------------------------------------------------------------------------
18+
ConvertOrientations::~ConvertOrientations() noexcept = default;
19+
20+
// -----------------------------------------------------------------------------
21+
Result<> ConvertOrientations::operator()()
22+
{
23+
24+
return {};
25+
}
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
#pragma once
2+
3+
#include "OrientationAnalysis/OrientationAnalysis_export.hpp"
4+
5+
#include "simplnx/DataStructure/DataPath.hpp"
6+
#include "simplnx/DataStructure/DataStructure.hpp"
7+
#include "simplnx/Filter/IFilter.hpp"
8+
#include "simplnx/Parameters/ArraySelectionParameter.hpp"
9+
#include "simplnx/Parameters/ChoicesParameter.hpp"
10+
#include "simplnx/Parameters/DataObjectNameParameter.hpp"
11+
12+
/**
13+
* This is example code to put in the Execute Method of the filter.
14+
ConvertOrientationsInputValues inputValues;
15+
// Replace the keys below with the variables from the header.
16+
inputValues.InputOrientationArrayPath = filterArgs.values<ArraySelectionParameter::ValueType>(input_orientation_array_path);
17+
inputValues.InputRepresentationIndex = filterArgs.values<ChoicesParameter::ValueType>(input_representation_index);
18+
inputValues.OutputOrientationArrayName = filterArgs.values<DataObjectNameParameter::ValueType>(output_orientation_array_name);
19+
inputValues.OutputRepresentationIndex = filterArgs.values<ChoicesParameter::ValueType>(output_representation_index);
20+
return ConvertOrientations(dataStructure, messageHandler, shouldCancel, &inputValues)();
21+
22+
*/
23+
24+
namespace nx::core
25+
{
26+
27+
struct ORIENTATIONANALYSIS_EXPORT ConvertOrientationsInputValues
28+
{
29+
ArraySelectionParameter::ValueType InputOrientationArrayPath;
30+
ChoicesParameter::ValueType InputRepresentationIndex;
31+
DataObjectNameParameter::ValueType OutputOrientationArrayName;
32+
ChoicesParameter::ValueType OutputRepresentationIndex;
33+
};
34+
35+
/**
36+
* @class ConvertOrientations
37+
* @brief This algorithm implements support code for the ConvertOrientationsFilter
38+
*/
39+
40+
class ORIENTATIONANALYSIS_EXPORT ConvertOrientations
41+
{
42+
public:
43+
ConvertOrientations(DataStructure& dataStructure, const IFilter::MessageHandler& mesgHandler, const std::atomic_bool& shouldCancel, ConvertOrientationsInputValues* inputValues);
44+
~ConvertOrientations() noexcept;
45+
46+
ConvertOrientations(const ConvertOrientations&) = delete;
47+
ConvertOrientations(ConvertOrientations&&) noexcept = delete;
48+
ConvertOrientations& operator=(const ConvertOrientations&) = delete;
49+
ConvertOrientations& operator=(ConvertOrientations&&) noexcept = delete;
50+
51+
Result<> operator()();
52+
53+
private:
54+
DataStructure& m_DataStructure;
55+
const ConvertOrientationsInputValues* m_InputValues = nullptr;
56+
const std::atomic_bool& m_ShouldCancel;
57+
const IFilter::MessageHandler& m_MessageHandler;
58+
};
59+
60+
} // namespace nx::core

src/Plugins/SimplnxCore/CMakeLists.txt

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,13 +155,16 @@ set(ActionList
155155
)
156156

157157
set(AlgorithmList
158+
AlignGeometries
158159
AddBadData
159160
AlignSectionsFeatureCentroid
160161
AlignSectionsList
161162
AppendImageGeometry
162163
ApplyTransformationToGeometry
164+
ApproximatePointCloudHull
163165
ArrayCalculator
164166
CalculateTriangleGroupCurvatures
167+
ChangeAngleRepresentation
165168
CombineAttributeArrays
166169
CombineNodeBasedGeometries
167170
CombineStlFiles
@@ -170,45 +173,75 @@ set(AlgorithmList
170173
ComputeArrayStatistics
171174
ComputeBiasedFeatures
172175
ComputeBoundaryCells
176+
ComputeBoundaryElementFractions
177+
ComputeDifferencesMap
173178
ComputeEuclideanDistMap
174179
ComputeFeatureCentroids
175180
ComputeFeatureClustering
181+
ComputeFeatureNeighbors
182+
ComputeFeaturePhases
183+
ComputeFeaturePhasesBinary
176184
ComputeFeatureRect
185+
ComputeFeatureSizes
177186
ComputeKMeans
178187
ComputeKMedoids
179188
ComputeLargestCrossSections
180189
ComputeMomentInvariants2D
181190
ComputeNeighborhoods
182191
ComputeNeighborListStatistics
192+
ComputeNumFeatures
183193
ComputeSurfaceAreaToVolume
194+
ComputeSurfaceFeatures
195+
ComputeTriangleAreas
184196
ComputeTriangleGeomCentroids
185197
ComputeTriangleGeomVolumes
186198
ComputeVectorColors
187199
ComputeVertexToTriangleDistances
200+
ComputeVolumeFractions
188201
ConcatenateDataArrays
202+
ConditionalSetValue
189203
ConvertColorToGrayScale
190204
ConvertData
205+
CopyDataObject
206+
CopyFeatureArrayToElementArray
191207
CreateAMScanPaths
208+
CreateAttributeMatrix
192209
CreateColorMap
210+
CreateDataArray
211+
CreateDataArrayAdvanced
212+
CreateDataGroup
213+
CreateFeatureArrayFromElementArray
214+
CreateGeometry
215+
CreateImageGeometry
193216
CreatePythonSkeleton
194217
CropEdgeGeometry
218+
CropImageGeometry
219+
CropVertexGeometry
195220
DBSCAN
221+
DeleteData
196222
ErodeDilateBadData
197223
ErodeDilateCoordinationNumber
198224
ErodeDilateMask
199225
ExecuteProcess
200226
ExtractComponentAsArray
227+
ExtractInternalSurfacesFromTriangleGeometry
228+
ExtractPipelineToFile
201229
ExtractVertexGeometry
202230
FeatureFaceCurvature
203231
FillBadData
204232
FindNRingNeighbors
205233
FlyingEdges3D
206234
IdentifyDuplicateVertices
235+
IdentifySample
207236
InitializeData
237+
InitializeImageGeomCellData
238+
InterpolatePointCloudToRegularGrid
208239
IterativeClosestPoint
209240
LabelTriangleGeometry
210241
LaplacianSmoothing
211242
MapPointCloudToRegularGrid
243+
MoveData
244+
MultiThresholdObjects
212245
NearestPointFuseRegularGrids
213246
PadImageGeometry
214247
PartitionGeometry
@@ -218,33 +251,47 @@ set(AlgorithmList
218251
ReadBinaryCTNorthstar
219252
ReadCSVFile
220253
ReadDeformKeyFileV12
254+
ReadDREAM3D
255+
ReadHDF5Dataset
221256
ReadRawBinary
222257
ReadStlFile
223258
ReadStringDataArray
259+
ReadTextDataArray
224260
ReadVolumeGraphicsFile
225261
ReadVtkStructuredPoints
226262
RegularGridSampleSurfaceMesh
227263
RemoveFlaggedEdges
228264
RemoveFlaggedFeatures
229265
RemoveFlaggedTriangles
266+
RemoveFlaggedVertices
267+
RenameDataObject
230268
ReplaceElementAttributesWithNeighborValues
231269
ResampleImageGeom
232270
ResampleRectGridToImageGeom
233271
ReshapeDataArray
272+
ReverseTriangleWinding
273+
RobustAutomaticThreshold
234274
RotateSampleRefFrame
235275
ScalarSegmentFeatures
276+
SetImageGeomOriginScaling
236277
SharedFeatureFace
237278
Silhouette
238279
SliceTriangleGeometry
239280
SplitAttributeArray
240281
SurfaceNets
241282
TriangleCentroid
283+
TriangleDihedralAngle
284+
TriangleNormal
242285
TupleTransfer
243286
UncertainRegularGridSampleSurfaceMesh
244287
VerifyTriangleWinding
245288
WriteAbaqusHexahedron
289+
WriteASCIIData
246290
WriteAvizoRectilinearCoordinate
247291
WriteAvizoUniformCoordinate
292+
WriteBinaryData
293+
WriteDREAM3D
294+
WriteFeatureDataCSV
248295
WriteLosAlamosFFT
249296
WriteNodesAndElementsFiles
250297
WriteSPParksSites
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#include "AlignGeometries.hpp"
2+
3+
#include "simplnx/DataStructure/DataArray.hpp"
4+
#include "simplnx/DataStructure/DataGroup.hpp"
5+
6+
using namespace nx::core;
7+
8+
// -----------------------------------------------------------------------------
9+
AlignGeometries::AlignGeometries(DataStructure& dataStructure, const IFilter::MessageHandler& mesgHandler, const std::atomic_bool& shouldCancel, AlignGeometriesInputValues* inputValues)
10+
: m_DataStructure(dataStructure)
11+
, m_InputValues(inputValues)
12+
, m_ShouldCancel(shouldCancel)
13+
, m_MessageHandler(mesgHandler)
14+
{
15+
}
16+
17+
// -----------------------------------------------------------------------------
18+
AlignGeometries::~AlignGeometries() noexcept = default;
19+
20+
// -----------------------------------------------------------------------------
21+
Result<> AlignGeometries::operator()()
22+
{
23+
24+
return {};
25+
}

0 commit comments

Comments
 (0)