Skip to content

Commit 8aff31f

Browse files
committed
Batch 5: 15 geometry creation/manipulation filter docs reviewed
Tier 2 (8 filters): CreateGeometry, ApplyTransformationToGeometry, RotateSampleRefFrame, ResampleImageGeom, ResampleRectGridToImageGeom, PadImageGeometry, QuickSurfaceMesh, InitializeImageGeomCellData. Tier 3 (7 filters): CreateImageGeometry, CombineTransformationMatrices, SetImageGeomOriginScaling, CropImageGeometry, AppendImageGeometry, PartitionGeometry, ComputeCoordinatesImageGeom. Each rewrite applied the established conventions: Required Input Sources section naming upstream producers, MyST cross-reference links, explicit units on numeric parameters, no duplication of the auto-generated parameter table. Notable structural changes: - CreateGeometry: trimmed and reorganized; promoted geometry-type taxonomy to a navigable table. - ApplyTransformationToGeometry: removed duplicate transformation-type listing; added explicit cross-reference to CombineTransformationMatrices. - RotateSampleRefFrame: prominent verified-only-for-axis-aligned banner; explicit distinction from ApplyTransformation. - QuickSurfaceMesh: deprecation banner promoted with explicit recommendation to use Surface Nets. - CropImageGeometry: documented voxels-vs-physical-bounds parameter explicitly. - PadImageGeometry: expanded Default Value semantics and Update Origin behavior. Build verified clean (no new Sphinx warnings).
1 parent 01fe193 commit 8aff31f

16 files changed

Lines changed: 436 additions & 428 deletions

docs/documentation_review_tracker.md

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
| 2 | Alignment Filters | 5 | 5 | 5 | Complete |
1515
| 3 | Segmentation / Feature Identification | 10 | 10 | 10 | Complete |
1616
| 4 | Neighbor / Kernel Operations | 11 | 11 | 11 | Complete |
17-
| 5 | Geometry Creation / Manipulation | 15 | 15 | 0 | Triaged |
17+
| 5 | Geometry Creation / Manipulation | 15 | 15 | 15 | Complete |
1818
| 6 | Data Manipulation (Copy, Create, Delete, Rename) | ~20 | 0 | 0 | Not Started |
1919
| 7 | I/O Filters (Read/Write) | ~15 | 0 | 0 | Not Started |
2020
| 8 | Image Processing (ITK wrappers) | ~88 | 0 | 0 | Not Started |
@@ -266,16 +266,16 @@ None. No filter in this batch has a non-expert blocker.
266266

267267
| Filter | Plugin | Status |
268268
|--------|--------|--------|
269-
| CreateGeometry | SimplnxCore | Pending |
270-
| ApplyTransformationToGeometry | SimplnxCore | Pending |
271-
| RotateSampleRefFrame | SimplnxCore | Pending |
272-
| ResampleImageGeom | SimplnxCore | Pending |
273-
| ResampleRectGridToImageGeom | SimplnxCore | Pending |
274-
| PadImageGeometry | SimplnxCore | Pending |
275-
| QuickSurfaceMesh | SimplnxCore | Pending |
276-
| InitializeImageGeomCellData | SimplnxCore | Pending |
277-
278-
- [ ] **CreateGeometryFilter** (SimplnxCore)
269+
| CreateGeometry | SimplnxCore | Done |
270+
| ApplyTransformationToGeometry | SimplnxCore | Done |
271+
| RotateSampleRefFrame | SimplnxCore | Done |
272+
| ResampleImageGeom | SimplnxCore | Done |
273+
| ResampleRectGridToImageGeom | SimplnxCore | Done |
274+
| PadImageGeometry | SimplnxCore | Done |
275+
| QuickSurfaceMesh | SimplnxCore | Done |
276+
| InitializeImageGeomCellData | SimplnxCore | Done |
277+
278+
- [x] **CreateGeometryFilter** (SimplnxCore)
279279
- **Clarity:** Comprehensive but very long (~19KB); the 8-geometry-type taxonomy is buried in dense prose.
280280
- **Completeness:** Excellent — covers all 8 geometry types with examples, including a complete worked example for importing from text files. Possibly too much for a single filter doc.
281281
- **Accessibility:** Heavy DREAM3D-NX terminology assumed (Element, Attribute Matrix, shared vertex list).
@@ -285,7 +285,7 @@ None. No filter in this batch has a non-expert blocker.
285285
- **Concept Links:** Geometry types, Element type, shared vertex list, winding/right-hand rule, Attribute Matrix
286286
- **Notes:** "DREAM3D Review (Geometry)" group is unusual — verify this is intended. Typo "dimenionality" appears multiple times. Each geometry-type section duplicates content from per-type filters. Consider promoting the geometry-type taxonomy into a shared concept page and trimming this doc to filter-specific guidance.
287287

288-
- [ ] **ApplyTransformationToGeometryFilter** (SimplnxCore)
288+
- [x] **ApplyTransformationToGeometryFilter** (SimplnxCore)
289289
- **Clarity:** Strong before/after image sequences explaining the successive-rotation artifact problem. Excellent caveat.
290290
- **Completeness:** Has duplicate transformation-type listing (bullets at lines 96-103 and the same content as a table at lines 107-114). One needs to go.
291291
- **Accessibility:** Node vs Image distinction is critical and well-explained; row-major matrix encoding explained.
@@ -295,7 +295,7 @@ None. No filter in this batch has a non-expert blocker.
295295
- **Concept Links:** transformation matrix, axis-angle, row-major matrix order, interpolation modes
296296
- **Notes:** Remove the duplicated transformation-type listing. Convert "[Combine Transformation Matrices](CombineTransformationMatricesFilter.md)" link to a proper MyST link (already is). Add Required Input Sources. The relative `./Filter.md` should be checked — current uses both `./` and bare forms.
297297

298-
- [ ] **RotateSampleRefFrameFilter** (SimplnxCore)
298+
- [x] **RotateSampleRefFrameFilter** (SimplnxCore)
299299
- **Clarity:** Verified-only-for-axis-aligned-90/180 warning is at the top — good. Distinction from ApplyTransformation (sample reference frame vs geometric rotation) is not made explicit.
300300
- **Completeness:** Has rotation matrix equivalent shown. Note about origin shift after rotation is valuable.
301301
- **Accessibility:** "Sample reference frame" jargon assumed; the term needs first-use definition.
@@ -305,7 +305,7 @@ None. No filter in this batch has a non-expert blocker.
305305
- **Concept Links:** sample reference frame, EBSD frame convention, axis-angle rotation
306306
- **Notes:** Add explicit "When to Use vs ApplyTransformation" guidance. Make verified-axis-only banner more prominent. Cross-link to SetImageGeomOriginScaling for the origin reset workflow. Add Required Input Sources.
307307

308-
- [ ] **ResampleImageGeomFilter** (SimplnxCore)
308+
- [x] **ResampleImageGeomFilter** (SimplnxCore)
309309
- **Clarity:** Three resampling modes (Spacing, Scaling, Exact Dimensions) each with worked numerical examples. Clear.
310310
- **Completeness:** "No interpolation, closest cell wins" behavior noted. Renumber Features + NeighborList removal warning present.
311311
- **Accessibility:** Spacing/dimensions/scaling distinction depends on understanding Image Geometry.
@@ -315,7 +315,7 @@ None. No filter in this batch has a non-expert blocker.
315315
- **Concept Links:** spacing vs scaling vs dimensions, closest-cell resampling, Feature renumbering
316316
- **Notes:** Cross-link to ApplyTransformation is present but uses `./` path; convert to plain MyST form. Add explicit units callouts per mode. Add Required Input Sources.
317317

318-
- [ ] **ResampleRectGridToImageGeomFilter** (SimplnxCore)
318+
- [x] **ResampleRectGridToImageGeomFilter** (SimplnxCore)
319319
- **Clarity:** Brief, just describes the "last one wins" rule.
320320
- **Completeness:** Missing: when to use this, how to specify the target image geometry's spacing/dimensions, what happens when target is finer than source.
321321
- **Accessibility:** Rectilinear Grid concept not introduced.
@@ -325,7 +325,7 @@ None. No filter in this batch has a non-expert blocker.
325325
- **Concept Links:** Rectilinear Grid vs Image Geometry, downsampling vs upsampling
326326
- **Notes:** Add "When to Use" section. Explain why "last one wins" was chosen (interpolation is wrong for label data). Add Required Input Sources.
327327

328-
- [ ] **PadImageGeometryFilter** (SimplnxCore)
328+
- [x] **PadImageGeometryFilter** (SimplnxCore)
329329
- **Clarity:** Very brief; the figures are helpful but the prose underdocuments the "default padding value" semantics.
330330
- **Completeness:** Doesn't explain what the *Update Origin* option does or when to use it.
331331
- **Accessibility:** "Default padding value" is undefined.
@@ -335,7 +335,7 @@ None. No filter in this batch has a non-expert blocker.
335335
- **Concept Links:** padding, image extension, origin shift
336336
- **Notes:** Expand "default padding value" to "Each padded cell is initialized to the user-specified Default Value, which is interpreted in the same units as each cell-level array being padded". Document *Update Origin* and *Update Spacing* options. Add Required Input Sources.
337337

338-
- [ ] **QuickSurfaceMeshFilter** (SimplnxCore)
338+
- [x] **QuickSurfaceMeshFilter** (SimplnxCore)
339339
- **Clarity:** Deprecation notice at top recommending "Surface Nets". Node Types table is excellent. Triangle-pair-per-cell-face algorithm explained.
340340
- **Completeness:** Has good images for each Node Type. The Verify Triangle Winding reference is implicit; needs a link.
341341
- **Accessibility:** "Stair stepped" surface mesh result not pictured directly.
@@ -344,7 +344,7 @@ None. No filter in this batch has a non-expert blocker.
344344
- **Concept Links:** voxel-face-to-triangle conversion, Node Types, FaceLabels convention, mesh windings
345345
- **Notes:** Improve deprecation banner — make clear when to use this vs Surface Nets. Convert "see Verify Triangle Winding documentation" to a MyST link. Add Required Input Sources (FeatureIds from a segment filter).
346346

347-
- [ ] **InitializeImageGeomCellDataFilter** (SimplnxCore)
347+
- [x] **InitializeImageGeomCellDataFilter** (SimplnxCore)
348348
- **Clarity:** Three modes (Manual, Random, Random With Range) are listed but the "subvolume" parameter is undefined.
349349
- **Completeness:** Missing: how is the subvolume specified (min/max cell indices? physical bounds?). What data types support each random mode? What about boolean arrays?
350350
- **Accessibility:** Reader has to guess the subvolume specification UI.
@@ -358,15 +358,15 @@ None. No filter in this batch has a non-expert blocker.
358358

359359
| Filter | Plugin | Status |
360360
|--------|--------|--------|
361-
| CreateImageGeometry | SimplnxCore | Pending |
362-
| CombineTransformationMatrices | SimplnxCore | Pending |
363-
| SetImageGeomOriginScaling | SimplnxCore | Pending |
364-
| CropImageGeometry | SimplnxCore | Pending |
365-
| AppendImageGeometry | SimplnxCore | Pending |
366-
| PartitionGeometry | SimplnxCore | Pending |
367-
| ComputeCoordinatesImageGeom | SimplnxCore | Pending |
368-
369-
- [ ] **CreateImageGeometryFilter** (SimplnxCore)
361+
| CreateImageGeometry | SimplnxCore | Done |
362+
| CombineTransformationMatrices | SimplnxCore | Done |
363+
| SetImageGeomOriginScaling | SimplnxCore | Done |
364+
| CropImageGeometry | SimplnxCore | Done |
365+
| AppendImageGeometry | SimplnxCore | Done |
366+
| PartitionGeometry | SimplnxCore | Done |
367+
| ComputeCoordinatesImageGeom | SimplnxCore | Done |
368+
369+
- [x] **CreateImageGeometryFilter** (SimplnxCore)
370370
- **Clarity:** Deprecation banner is right under the title but as a level-2 heading, making it look like its own section. Confusing.
371371
- **Completeness:** Dimensions/Spacing/Origin definitions are good.
372372
- **Accessibility:** Same dense terminology as CreateGeometry.
@@ -376,7 +376,7 @@ None. No filter in this batch has a non-expert blocker.
376376
- **Concept Links:** Image Geometry dimensions/origin/spacing
377377
- **Notes:** Move deprecation notice into a clear callout. Fix "dimenionality" typo. Cross-link to CreateGeometry filter. Add Required Input Sources note (none — geometry is created from user parameters).
378378

379-
- [ ] **CombineTransformationMatricesFilter** (SimplnxCore)
379+
- [x] **CombineTransformationMatricesFilter** (SimplnxCore)
380380
- **Clarity:** Brief and adequate. Output format documented.
381381
- **Completeness:** Missing motivating context for why you'd combine matrices (the answer is in ApplyTransformation — referenced indirectly there).
382382
- **Accessibility:** Assumes user knows row-major 4x4 convention.
@@ -386,7 +386,7 @@ None. No filter in this batch has a non-expert blocker.
386386
- **Concept Links:** matrix composition, transformation order, row-major matrix order
387387
- **Notes:** Add a short "Why Use This Filter" pointing to ApplyTransformationToGeometry's caveat about successive image-geometry transformations. Note that matrices are applied left-to-right in the order listed. Add Required Input Sources.
388388

389-
- [ ] **SetImageGeomOriginScalingFilter** (SimplnxCore)
389+
- [x] **SetImageGeomOriginScalingFilter** (SimplnxCore)
390390
- **Clarity:** Title says "Set Origin & Spacing" but body only describes the origin parameters. Spacing is implicit.
391391
- **Completeness:** "Put Input Origin at the Center of Geometry" option mentioned but not explained in detail.
392392
- **Accessibility:** OK for the limited content provided.
@@ -396,7 +396,7 @@ None. No filter in this batch has a non-expert blocker.
396396
- **Concept Links:** Image Geometry origin, spacing
397397
- **Notes:** Document both Origin and Spacing parameter sets. Document the linkable parameters (only-change-origin, only-change-spacing options). Expand the "Put Origin at Center" explanation. Add Required Input Sources.
398398

399-
- [ ] **CropImageGeometryFilter** (SimplnxCore)
399+
- [x] **CropImageGeometryFilter** (SimplnxCore)
400400
- **Clarity:** Three worked examples with images. Inclusive-bounds note is critical and called out.
401401
- **Completeness:** Voxels-vs-physical-coordinates mode is implicit; the "Use Physical Bounds" parameter should be stated explicitly.
402402
- **Accessibility:** Voxel index 0-based convention is implied via examples.
@@ -406,7 +406,7 @@ None. No filter in this batch has a non-expert blocker.
406406
- **Concept Links:** ROI cropping, inclusive bounds, voxel indexing
407407
- **Notes:** Add explicit "Bounds Mode" subsection naming the parameter that toggles voxels vs physical. State units per mode. Update NeighborList warning to use the standard pattern shared with RequireMinimumSizeFeatures.
408408

409-
- [ ] **AppendImageGeometryFilter** (SimplnxCore)
409+
- [x] **AppendImageGeometryFilter** (SimplnxCore)
410410
- **Clarity:** Exhaustive examples for X/Y/Z directions with figures.
411411
- **Completeness:** "Resolution" terminology used in one place — should be "Spacing" per the modern simplnx convention.
412412
- **Accessibility:** Good.
@@ -416,7 +416,7 @@ None. No filter in this batch has a non-expert blocker.
416416
- **Concept Links:** geometry concatenation, mirroring, spacing check
417417
- **Notes:** Replace remaining "Resolution" with "Spacing" for consistency. Cross-link to CreateImageGeometry for the geometry-definition concepts. Add Required Input Sources.
418418

419-
- [ ] **PartitionGeometryFilter** (SimplnxCore)
419+
- [x] **PartitionGeometryFilter** (SimplnxCore)
420420
- **Clarity:** Four modes with excellent visual examples and walk-throughs.
421421
- **Completeness:** "Reconstruction (Reconstruction)" group/subgroup is a stutter — verify.
422422
- **Accessibility:** Long doc but well-organized with figures.
@@ -426,7 +426,7 @@ None. No filter in this batch has a non-expert blocker.
426426
- **Concept Links:** spatial partitioning, partition grid, out-of-bounds handling, vertex mask
427427
- **Notes:** Verify group "Reconstruction (Reconstruction)". Add a short lead-in explaining why partition (spatial analysis, sub-volume statistics, parallel processing prep). Add Required Input Sources.
428428

429-
- [ ] **ComputeCoordinatesImageGeomFilter** (SimplnxCore)
429+
- [x] **ComputeCoordinatesImageGeomFilter** (SimplnxCore)
430430
- **Clarity:** "Implicit vs explicit" framing is jargon; the example output is clear.
431431
- **Completeness:** Three output modes documented with raster scheme.
432432
- **Accessibility:** Reader benefits from concrete example, which is provided.

src/Plugins/SimplnxCore/docs/AppendImageGeometryFilter.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@ Sampling (Memory/Management)
66

77
## Description
88

9-
This filter allows the user to append one or multiple image geometries to a given image geometry, in any direction (X,Y,Z). The input and
10-
destination **ImageGeometry** objects must have the same dimensions in the directions that are NOT chosen. If the X direction is chosen, the geometries must match in Y & Z. If the Y direction is chosen, the geometries must match in X & Z. If the Z direction is chosen, the geometries must match in X & Y. Optional checks for equal **Resolution** values can also be performed.
9+
This **Filter** appends one or more **Image Geometries** to a destination Image Geometry along a chosen axis (X, Y, or Z), producing a single larger Image Geometry. The input geometries must have matching dimensions in the two axes that are *not* the append direction. Optionally, the filter can also verify that the input and destination geometries have matching spacing on all axes before appending.
10+
11+
For an introduction to Image Geometry dimensions and spacing, see [Create Image Geometry](CreateImageGeometryFilter.md).
1112

1213
This filter also has an option to mirror the resulting geometry in the chosen direction. If the X direction is chosen, it will mirror the positions of the YZ planes. If the Y direction is chosen, it will mirror the positions of the XZ planes. If the Z direction is chosen, it will mirror the positions of the XY planes.
1314

@@ -94,6 +95,10 @@ And here is what the geometry looks like after appending the three pieces togeth
9495
| ![](Images/AppendImageGeometry/z_complete.png) | ![](Images/AppendImageGeometry/z_mirrored.png) |
9596
|:----------------------:|:----------------------:|
9697

98+
### Required Input Sources
99+
100+
- **Destination Image Geometry** and **Input Image Geometries** -- all geometries to be appended. Typically produced by [Create Image Geometry](CreateImageGeometryFilter.md), [ITK Import Image Stack](../ITKImageProcessing/ITKImportImageStackFilter.md), or an EBSD reader. All must share matching cell-level Attribute Array names if cell data is to be preserved during the append.
101+
97102
% Auto generated parameter table will be inserted here
98103

99104
## Example Pipelines

0 commit comments

Comments
 (0)