Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
59e6eb8
ENH: Bring over OOC optimizations for Group D (CCL/Segmentation)
joeykleingers Mar 4, 2026
f54bbe3
ENH: Update Group D to use BFS/CCL dispatch pattern
joeykleingers Mar 4, 2026
2e9c48d
ENH: Remove ForceOocAlgorithmGuard from benchmark tests
joeykleingers Mar 5, 2026
b4c0d11
BUG: Fix PR review issues in Group D OOC optimizations
joeykleingers Mar 5, 2026
7363b4e
STYLE: PR review fixes round 2 — naming, const, Doxygen, pre-existing…
joeykleingers Mar 5, 2026
20c554c
STYLE: Fix Doxygen comments to use multi-line format with @param/@return
joeykleingers Mar 5, 2026
c1af3ef
STYLE: Fix remaining Doxygen comments to use multi-line format
joeykleingers Mar 5, 2026
edbf91b
STYLE: Add Doxygen to constructors and operator() on new algorithm cl…
joeykleingers Mar 5, 2026
fd5380f
STYLE: PR review fixes for FillBadDataCCL
joeykleingers Mar 5, 2026
7b5a40a
BUG: Fix checked array reset and Active array initialization
joeykleingers Mar 13, 2026
05c35be
ENH: Add shared SegmentFeatures test utilities
joeykleingers Mar 13, 2026
a96603a
BUG: Restore periodic boundary condition neighbor wrapping
joeykleingers Mar 13, 2026
5257bf8
BUG: Fix phantom feature from hardcoded seed=0 in DFS execute
joeykleingers Mar 16, 2026
c8cc057
ENH: Redesign orientation test data for visual validation
joeykleingers Mar 16, 2026
1b79d2b
TEST: Restructure Group D filter tests with exemplar archives
joeykleingers Mar 16, 2026
3eaa3ec
BUG: Wire up IdentifySample OOC algorithm dispatch
joeykleingers Mar 16, 2026
9f58532
TEST: Add FaceEdgeVertex connectivity tests and fix periodic coverage
joeykleingers Mar 16, 2026
db69ded
DATA: Update exemplar archive SHA512 hashes
joeykleingers Mar 16, 2026
0b9dd04
TEST: Add forceOocAlgo GENERATE to Tier 2 small correctness tests
joeykleingers Mar 16, 2026
d7a068b
STYLE: Apply clang-format to Group D test files
joeykleingers Mar 16, 2026
de2268d
PERF: Add rolling slice buffer optimization to CCL segment features
joeykleingers Mar 17, 2026
7d6a5dd
PERF: Merge CCL Phase 2 into single resolution+relabeling pass
joeykleingers Mar 17, 2026
56d1ee3
DOC: Add comprehensive algorithm documentation to Group D filter impl…
joeykleingers Mar 17, 2026
5e64c8c
STYLE: Apply clang-format to IdentifySampleBFS.cpp
joeykleingers Mar 17, 2026
841e287
PERF: Fix slice-by-slice OOC chunk thrashing for XZ/YZ planes
joeykleingers Mar 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -537,6 +537,7 @@ set(SIMPLNX_HDRS
${SIMPLNX_SOURCE_DIR}/Utilities/DataGroupUtilities.hpp
${SIMPLNX_SOURCE_DIR}/Utilities/DataObjectUtilities.hpp
${SIMPLNX_SOURCE_DIR}/Utilities/DataStoreUtilities.hpp
${SIMPLNX_SOURCE_DIR}/Utilities/AlgorithmDispatch.hpp
${SIMPLNX_SOURCE_DIR}/Utilities/FilePathGenerator.hpp
${SIMPLNX_SOURCE_DIR}/Utilities/ColorTableUtilities.hpp
${SIMPLNX_SOURCE_DIR}/Utilities/FileUtilities.hpp
Expand All @@ -558,6 +559,7 @@ set(SIMPLNX_HDRS
${SIMPLNX_SOURCE_DIR}/Utilities/ParallelTaskAlgorithm.hpp
${SIMPLNX_SOURCE_DIR}/Utilities/SamplingUtils.hpp
${SIMPLNX_SOURCE_DIR}/Utilities/SegmentFeatures.hpp
${SIMPLNX_SOURCE_DIR}/Utilities/UnionFind.hpp
${SIMPLNX_SOURCE_DIR}/Utilities/TimeUtilities.hpp
${SIMPLNX_SOURCE_DIR}/Utilities/TooltipGenerator.hpp
${SIMPLNX_SOURCE_DIR}/Utilities/TooltipRowItem.hpp
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -49,13 +49,41 @@ class ORIENTATIONANALYSIS_EXPORT CAxisSegmentFeatures : public SegmentFeatures
int64 getSeed(int32 gnum, int64 nextSeed) const override;
bool determineGrouping(int64 referencePoint, int64 neighborPoint, int32 gnum) const override;

/**
* @brief Checks whether a voxel can participate in C-axis segmentation based on mask and phase.
* @param point Linear voxel index.
* @return true if the voxel passes mask and phase checks.
*/
bool isValidVoxel(int64 point) const override;

/**
* @brief Determines whether two neighboring voxels belong to the same C-axis segment.
* @param point1 First voxel index.
* @param point2 Second (neighbor) voxel index.
* @return true if both voxels share the same phase and their C-axis misalignment is within tolerance.
*/
bool areNeighborsSimilar(int64 point1, int64 point2) const override;

void prepareForSlice(int64 iz, int64 dimX, int64 dimY, int64 dimZ) override;

private:
const CAxisSegmentFeaturesInputValues* m_InputValues = nullptr;

Float32Array* m_QuatsArray = nullptr;
Int32Array* m_CellPhases = nullptr;
std::unique_ptr<MaskCompareUtilities::MaskCompare> m_GoodVoxelsArray = nullptr;
Int32Array* m_FeatureIdsArray = nullptr;

void allocateSliceBuffers(int64 dimX, int64 dimY);
void deallocateSliceBuffers();

// Rolling 2-slot input buffers for OOC optimization.
std::vector<float32> m_QuatBuffer;
std::vector<int32> m_PhaseBuffer;
std::vector<uint8> m_MaskBuffer;
int64 m_BufSliceSize = 0;
int64 m_BufferedSliceZ[2] = {-1, -1};
bool m_UseSliceBuffers = false;
};

} // namespace nx::core
Loading
Loading