Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fairmat 2024: base classes to describe computational geometry #1421

Draft
wants to merge 203 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 198 commits
Commits
Show all changes
203 commits
Select commit Hold shift + click to select a range
0cd4d80
Base class templates (#51)
mkuehbach Nov 30, 2023
b693886
Make nxdl
domna Jan 3, 2024
4ea902a
Whitespace above and below copyright removed (new nyaml version)
domna Jan 3, 2024
84eb726
Added changes relevant to use the refactored NXapm parser of pynxtool…
atomprobe-tc Jan 10, 2024
2d1ceb7
Recompiled NXDLs from YAML using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
a882d73
Recompiled NXDLs from yaml using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
2cb86dc
Regenerate nxdls
domna Mar 4, 2024
950437b
Regenerate nxdls with nyaml==0.0.8 (#190)
domna Mar 5, 2024
5f93651
move new definitions to application and base_classes
lukaspie Sep 19, 2024
0b34306
Base class templates (#51)
mkuehbach Nov 30, 2023
b16ee17
Make nxdl
domna Jan 3, 2024
14f3b89
Whitespace above and below copyright removed (new nyaml version)
domna Jan 3, 2024
b054fdc
Added changes relevant to use the refactored NXapm parser of pynxtool…
atomprobe-tc Jan 10, 2024
51acfc4
Recompiled NXDLs from yaml using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
f625319
move new definitions to application and base_classes
lukaspie Sep 19, 2024
7881ae1
Base class templates (#51)
mkuehbach Nov 30, 2023
0471c66
Make nxdl
domna Jan 3, 2024
1eb89be
Whitespace above and below copyright removed (new nyaml version)
domna Jan 3, 2024
fbb2d99
Copyright updated to 2024 (#137)
domna Jan 4, 2024
6fa9f40
Added changes relevant to use the refactored NXapm parser of pynxtool…
atomprobe-tc Jan 10, 2024
96c4267
Recompiled NXDLs from YAML using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
2b659e8
Recompiled NXDLs from yaml using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
b9fdf44
Regenerate nxdls
domna Mar 4, 2024
59cee3e
Regenerate nxdls with nyaml==0.0.8 (#190)
domna Mar 5, 2024
4874ed1
move new definitions to application and base_classes
lukaspie Sep 19, 2024
31e0126
Base class templates (#51)
mkuehbach Nov 30, 2023
cb64007
Make nxdl
domna Jan 3, 2024
53937d3
Whitespace above and below copyright removed (new nyaml version)
domna Jan 3, 2024
a7718ee
Added changes relevant to use the refactored NXapm parser of pynxtool…
atomprobe-tc Jan 10, 2024
a071639
Recompiled NXDLs from YAML using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
05d36e6
Recompiled NXDLs from yaml using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
926d603
Regenerate nxdls
domna Mar 4, 2024
6d72295
Regenerate nxdls with nyaml==0.0.8 (#190)
domna Mar 5, 2024
037ea16
move new definitions to application and base_classes
lukaspie Sep 19, 2024
1500065
Base class templates (#51)
mkuehbach Nov 30, 2023
c2234b2
Make nxdl
domna Jan 3, 2024
cc80e84
Whitespace above and below copyright removed (new nyaml version)
domna Jan 3, 2024
a21b7b7
Added changes relevant to use the refactored NXapm parser of pynxtool…
atomprobe-tc Jan 10, 2024
63328b0
Recompiled NXDLs from YAML using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
34fcaa1
Recompiled NXDLs from yaml using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
771a391
Regenerate nxdls
domna Mar 4, 2024
2dfcbf3
Regenerate nxdls with nyaml==0.0.8 (#190)
domna Mar 5, 2024
3bc8bd9
move new definitions to application and base_classes
lukaspie Sep 19, 2024
9440d9b
Base class templates (#51)
mkuehbach Nov 30, 2023
d68e489
Make nxdl
domna Jan 3, 2024
c180ae0
Whitespace above and below copyright removed (new nyaml version)
domna Jan 3, 2024
2928d6b
Added changes relevant to use the refactored NXapm parser of pynxtool…
atomprobe-tc Jan 10, 2024
eac0ca0
Recompiled NXDLs from yaml using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
8b0acd7
move new definitions to application and base_classes
lukaspie Sep 19, 2024
5f42ead
Base class templates (#51)
mkuehbach Nov 30, 2023
5a1b0b8
Make nxdl
domna Jan 3, 2024
e701652
Whitespace above and below copyright removed (new nyaml version)
domna Jan 3, 2024
68bca47
Added changes relevant to use the refactored NXapm parser of pynxtool…
atomprobe-tc Jan 10, 2024
b90ea5b
Recompiled NXDLs from YAML using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
b56519b
Recompiled NXDLs from yaml using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
d710267
Regenerate nxdls
domna Mar 4, 2024
38e40b3
Regenerate nxdls with nyaml==0.0.8 (#190)
domna Mar 5, 2024
47649de
Fixed problems with formatting of math environments in rst
atomprobe-tc Apr 16, 2024
c9c2930
Clarified issues with depends_on, fixed typo pID for pfID in NXem_ebsd
atomprobe-tc Aug 30, 2024
e54306e
move new definitions to application and base_classes
lukaspie Sep 19, 2024
712bde4
Base class templates (#51)
mkuehbach Nov 30, 2023
95db291
Make nxdl
domna Jan 3, 2024
f11473f
Whitespace above and below copyright removed (new nyaml version)
domna Jan 3, 2024
309a35b
Added changes relevant to use the refactored NXapm parser of pynxtool…
atomprobe-tc Jan 10, 2024
42a7925
Recompiled NXDLs from YAML using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
ca1d4cb
Recompiled NXDLs from yaml using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
72a54ed
Regenerate nxdls
domna Mar 4, 2024
52b890e
Regenerate nxdls with nyaml==0.0.8 (#190)
domna Mar 5, 2024
81c1782
Clarified issues with depends_on, fixed typo pID for pfID in NXem_ebsd
atomprobe-tc Aug 30, 2024
ec10c7d
move new definitions to application and base_classes
lukaspie Sep 19, 2024
13d88f2
Base class templates (#51)
mkuehbach Nov 30, 2023
e46f0b1
Make nxdl
domna Jan 3, 2024
227dd23
Whitespace above and below copyright removed (new nyaml version)
domna Jan 3, 2024
aee2a06
Added changes relevant to use the refactored NXapm parser of pynxtool…
atomprobe-tc Jan 10, 2024
92dd74d
Recompiled NXDLs from YAML using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
be2b542
Recompiled NXDLs from yaml using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
e7831d5
Regenerate nxdls
domna Mar 4, 2024
4fdabcf
Regenerate nxdls with nyaml==0.0.8 (#190)
domna Mar 5, 2024
80214bc
move new definitions to application and base_classes
lukaspie Sep 19, 2024
cb00a76
Base class templates (#51)
mkuehbach Nov 30, 2023
2615623
Make nxdl
domna Jan 3, 2024
1910156
Whitespace above and below copyright removed (new nyaml version)
domna Jan 3, 2024
a280e2b
Added changes relevant to use the refactored NXapm parser of pynxtool…
atomprobe-tc Jan 10, 2024
1dab87b
Recompiled NXDLs from YAML using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
643564e
Recompiled NXDLs from yaml using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
03e2519
Regenerate nxdls
domna Mar 4, 2024
c3466ff
Regenerate nxdls with nyaml==0.0.8 (#190)
domna Mar 5, 2024
4f16632
move new definitions to application and base_classes
lukaspie Sep 19, 2024
e045d40
Base class templates (#51)
mkuehbach Nov 30, 2023
b2079db
Make nxdl
domna Jan 3, 2024
7406512
Whitespace above and below copyright removed (new nyaml version)
domna Jan 3, 2024
6c9e07a
Added changes relevant to use the refactored NXapm parser of pynxtool…
atomprobe-tc Jan 10, 2024
e72f30b
Recompiled NXDLs from YAML using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
1b1c708
Recompiled NXDLs from yaml using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
ad5e394
Regenerate nxdls
domna Mar 4, 2024
b3019b2
Regenerate nxdls with nyaml==0.0.8 (#190)
domna Mar 5, 2024
32cacc8
move new definitions to application and base_classes
lukaspie Sep 19, 2024
5c62f79
Base class templates (#51)
mkuehbach Nov 30, 2023
cb37e41
Make nxdl
domna Jan 3, 2024
7a9233a
Whitespace above and below copyright removed (new nyaml version)
domna Jan 3, 2024
7148e3e
Added changes relevant to use the refactored NXapm parser of pynxtool…
atomprobe-tc Jan 10, 2024
17d0015
Recompiled NXDLs from YAML using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
afea64c
Recompiled NXDLs from yaml using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
cf1ef04
Regenerate nxdls
domna Mar 4, 2024
1f7f852
Regenerate nxdls with nyaml==0.0.8 (#190)
domna Mar 5, 2024
6d955cd
move new definitions to application and base_classes
lukaspie Sep 19, 2024
57cd3c0
Base class templates (#51)
mkuehbach Nov 30, 2023
ec467cf
Make nxdl
domna Jan 3, 2024
f0ad475
Whitespace above and below copyright removed (new nyaml version)
domna Jan 3, 2024
65b7ea8
Fixed issues detected during make local, manual builds successfully, …
atomprobe-tc Jan 8, 2024
74258a2
Added changes relevant to use the refactored NXapm parser of pynxtool…
atomprobe-tc Jan 10, 2024
b23b135
Recompiled NXDLs from yaml using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
179cba9
move new definitions to application and base_classes
lukaspie Sep 19, 2024
50eb894
Base class templates (#51)
mkuehbach Nov 30, 2023
d7d24d6
Make nxdl
domna Jan 3, 2024
0884c76
Whitespace above and below copyright removed (new nyaml version)
domna Jan 3, 2024
7a03f90
Copyright updated to 2024 (#137)
domna Jan 4, 2024
1e25411
Added changes relevant to use the refactored NXapm parser of pynxtool…
atomprobe-tc Jan 10, 2024
c2f3703
Recompiled NXDLs from YAML using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
6a51d87
Recompiled NXDLs from yaml using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
53102c4
Regenerate nxdls
domna Mar 4, 2024
19dcef5
Regenerate nxdls with nyaml==0.0.8 (#190)
domna Mar 5, 2024
26c31cf
move new definitions to application and base_classes
lukaspie Sep 19, 2024
d8f8005
Base class templates (#51)
mkuehbach Nov 30, 2023
0ff46b1
Make nxdl
domna Jan 3, 2024
6df4654
Whitespace above and below copyright removed (new nyaml version)
domna Jan 3, 2024
18962ed
Added changes relevant to use the refactored NXapm parser of pynxtool…
atomprobe-tc Jan 10, 2024
8d796d5
Recompiled NXDLs from YAML using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
5e3e148
Recompiled NXDLs from yaml using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
fb3787c
Regenerate nxdls
domna Mar 4, 2024
07052bd
Regenerate nxdls with nyaml==0.0.8 (#190)
domna Mar 5, 2024
86d3df2
Clarified issues with depends_on, fixed typo pID for pfID in NXem_ebsd
atomprobe-tc Aug 30, 2024
c296d58
move new definitions to application and base_classes
lukaspie Sep 19, 2024
19b95dd
Base class templates (#51)
mkuehbach Nov 30, 2023
10448a1
Make nxdl
domna Jan 3, 2024
f249898
Whitespace above and below copyright removed (new nyaml version)
domna Jan 3, 2024
390856e
Added changes relevant to use the refactored NXapm parser of pynxtool…
atomprobe-tc Jan 10, 2024
e383312
Recompiled NXDLs from YAML using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
ee91f00
Recompiled NXDLs from yaml using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
985fc4b
Regenerate nxdls
domna Mar 4, 2024
010820b
Regenerate nxdls with nyaml==0.0.8 (#190)
domna Mar 5, 2024
97f4e44
Finalized data model for NXmicrostructure_imm
atomprobe-tc Jul 10, 2024
49ab8a6
move new definitions to application and base_classes
lukaspie Sep 19, 2024
bb8787c
Base class templates (#51)
mkuehbach Nov 30, 2023
09ff867
Make nxdl
domna Jan 3, 2024
126697b
Whitespace above and below copyright removed (new nyaml version)
domna Jan 3, 2024
46cc03b
Added changes relevant to use the refactored NXapm parser of pynxtool…
atomprobe-tc Jan 10, 2024
5a68dbe
Recompiled NXDLs from yaml using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
3cc5064
move new definitions to application and base_classes
lukaspie Sep 19, 2024
65bf96c
Base class templates (#51)
mkuehbach Nov 30, 2023
2f5786a
Make nxdl
domna Jan 3, 2024
a3fef52
Whitespace above and below copyright removed (new nyaml version)
domna Jan 3, 2024
7ba98b1
Added changes relevant to use the refactored NXapm parser of pynxtool…
atomprobe-tc Jan 10, 2024
385deb6
Recompiled NXDLs from YAML using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
ba543e9
Recompiled NXDLs from yaml using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
6bc92ee
Regenerate nxdls
domna Mar 4, 2024
6091749
Regenerate nxdls with nyaml==0.0.8 (#190)
domna Mar 5, 2024
5d207bf
Clarified issues with depends_on, fixed typo pID for pfID in NXem_ebsd
atomprobe-tc Aug 30, 2024
595a340
move new definitions to application and base_classes
lukaspie Sep 19, 2024
afddfc9
Base class templates (#51)
mkuehbach Nov 30, 2023
77df860
Make nxdl
domna Jan 3, 2024
e1d56c9
Whitespace above and below copyright removed (new nyaml version)
domna Jan 3, 2024
c66df18
Added changes relevant to use the refactored NXapm parser of pynxtool…
atomprobe-tc Jan 10, 2024
519243f
Recompiled NXDLs from YAML using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
e58b2f9
Recompiled NXDLs from yaml using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
4e58dc9
Regenerate nxdls
domna Mar 4, 2024
94a5225
Regenerate nxdls with nyaml==0.0.8 (#190)
domna Mar 5, 2024
7e456b9
move new definitions to application and base_classes
lukaspie Sep 19, 2024
39568c6
Base class templates (#51)
mkuehbach Nov 30, 2023
c5cc88f
Make nxdl
domna Jan 3, 2024
5b38c9b
Whitespace above and below copyright removed (new nyaml version)
domna Jan 3, 2024
0e831e3
Added changes relevant to use the refactored NXapm parser of pynxtool…
atomprobe-tc Jan 10, 2024
584ae3f
Recompiled NXDLs from YAML using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
de6620b
Recompiled NXDLs from yaml using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
2081d76
Regenerate nxdls
domna Mar 4, 2024
18cf0bd
Regenerate nxdls with nyaml==0.0.8 (#190)
domna Mar 5, 2024
c3f494a
move new definitions to application and base_classes
lukaspie Sep 19, 2024
f4c77e4
Base class templates (#51)
mkuehbach Nov 30, 2023
bb41c43
Make nxdl
domna Jan 3, 2024
50d1602
Whitespace above and below copyright removed (new nyaml version)
domna Jan 3, 2024
6dcc33f
Added changes relevant to use the refactored NXapm parser of pynxtool…
atomprobe-tc Jan 10, 2024
262ce49
Recompiled NXDLs from YAML using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
3dc1ce5
Recompiled NXDLs from yaml using nyaml==0.0.9
atomprobe-tc Feb 28, 2024
01da8a9
Regenerate nxdls
domna Mar 4, 2024
deab0fe
Regenerate nxdls with nyaml==0.0.8 (#190)
domna Mar 5, 2024
56095d7
move new definitions to application and base_classes
lukaspie Sep 19, 2024
6267928
revert unintentional changes from cherry-pick
lukaspie Sep 24, 2024
27a9d4b
remove classes from contributed that have been moved to base_classes
lukaspie Sep 24, 2024
9dd6826
Refactored problematic attribute name depends on
atomprobe-tc Sep 25, 2024
740cea6
Merge remote-tracking branch 'origin/main' i.e. FAIRmat nexus_definit…
atomprobe-tc Jan 8, 2025
d2ad17f
Implement suggestion to drop suffix _set to avoid confusion with the …
atomprobe-tc Jan 8, 2025
8881995
Merge remote-tracking branch 'upstream/main' into fairmat-2024-comput…
atomprobe-tc Jan 9, 2025
9493eb5
Autumn NIAC 2024 edits
atomprobe-tc Jan 10, 2025
d892c17
Consolidated content of too small base classes by merging these defin…
atomprobe-tc Jan 10, 2025
09f1d6e
Refactored remaining docstrings to remove _set, and refactoring of re…
atomprobe-tc Jan 10, 2025
8c6786a
Indentation
atomprobe-tc Jan 10, 2025
3245ef3
Typo in xsd parameter
atomprobe-tc Jan 10, 2025
66f665d
Merge branch 'main' of github.com:nexusformat/definitions into fairma…
atomprobe-tc Jan 14, 2025
9a13cfa
Addressed comments from @PeterC-DLS
atomprobe-tc Jan 17, 2025
9ba70cf
Temporarily deactivated open flag for enumeration as #1521 not yet me…
atomprobe-tc Jan 17, 2025
9f6becc
Refactored remaining identifier to follow the identifier_* design to …
atomprobe-tc Jan 17, 2025
d417152
Implementation of feedback from the reviewers
atomprobe-tc Feb 3, 2025
3cbc467
Merge remote-tracking branch 'upstream/main' into fairmat-2024-comput…
atomprobe-tc Feb 3, 2025
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
101 changes: 101 additions & 0 deletions base_classes/NXcg_alpha_complex.nxdl.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet type="text/xsl" href="nxdlformat.xsl"?>
<!--
# NeXus - Neutron and X-ray Common Data Format
#
# Copyright (C) 2014-2024 NeXus International Advisory Committee (NIAC)
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 3 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# For further information, see http://www.nexusformat.org
-->
<!--
The so-called spectrum or sets of (weighted) alpha shapes includes the convex hull of a point set.-->
<definition xmlns="http://definition.nexusformat.org/nxdl/3.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" category="base" type="group" name="NXcg_alpha_complex" extends="NXcg_primitive" xsi:schemaLocation="http://definition.nexusformat.org/nxdl/3.1 ../nxdl.xsd">
<doc>
Computational geometry of alpha complexes (alpha shapes or alpha wrappings) about primitives.

For details see:

* https://dx.doi.org/10.1109/TIT.1983.1056714 for 2D,
* https://dx.doi.org/10.1145/174462.156635 for 3D,
* https://dl.acm.org/doi/10.5555/871114 for weighted, and
* https://doc.cgal.org/latest/Alpha_shapes_3 for 3D implementation of alpha shapes, and
* https://doc.cgal.org/latest/Manual/packages.html#PkgAlphaWrap3 for 3D alpha wrappings

in CGAL, the Computational Geometry Algorithms Library respectively.
As a starting point, we follow the conventions of the CGAL library.

In general, an alpha complex is a not necessarily connected or not necessarily pure complex,
i.e. singular faces may exist. The number of cells, faces, and edges depends on how a specific
alpha complex is filtered for lower-dimensional simplices. The fields is_regularized and
regularization can be used to provide details about regularization procedures.
</doc>
<field name="type">
<doc>
Type of alpha complex following the terminology used by CGAL for now.

Alpha_shape means meshes created using one of the alpha_shape algorithm.
Alpha_wrapping means meshes created using the alpha_wrapping algorithm.
</doc>
<enumeration>
<item value="convex_hull"/>
<item value="alpha_shape"/>
<item value="alpha_wrapping"/>
</enumeration>
</field>
<field name="regularization">
<doc>
Human-readable description about regularization procedures.
</doc>
</field>
<field name="is_regularized" type="NX_BOOLEAN">
<doc>
Was the alpha complex regularized, i.e. have singular faces been removed, or not.
</doc>
</field>
<field name="alpha" type="NX_NUMBER" units="NX_LENGTH">
<doc>
The alpha parameter, i.e. the radius of the alpha-sphere that
PeterC-DLS marked this conversation as resolved.
Show resolved Hide resolved
is used when computing the alpha complex.
</doc>
</field>
<field name="offset" type="NX_NUMBER" units="NX_LENGTH">
<doc>
The offset distance parameter used when computing alpha_wrappings.
</doc>
</field>
<!--check again carefully the CGAL documentation talks about, for 3D, the square of the radius!-->
<group name="point_cloudID" type="NXcg_point" nameType="partial">
<doc>
Point cloud serving as input for the computation of the alpha complex.
</doc>
</group>
<group name="triangle_soupID" type="NXcg_triangle" nameType="partial">
<doc>
Triangle soup serving as input for the computation of the alpha complex.
</doc>
</group>
<group name="alpha_complexID" type="NXcg_triangle" nameType="partial">
<doc>
Triangle mesh representing the output of the computation, i.e. the alpha complex.
</doc>
</group>
<group name="tetrahedralizationID" type="NXcg_tetrahedron" nameType="partial">
<doc>
Tetrahedra representing an interior volume of the alpha complex (if such exists).
</doc>
</group>
</definition>
131 changes: 131 additions & 0 deletions base_classes/NXcg_cylinder.nxdl.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet type="text/xsl" href="nxdlformat.xsl"?>
<!--
# NeXus - Neutron and X-ray Common Data Format
#
# Copyright (C) 2014-2024 NeXus International Advisory Committee (NIAC)
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 3 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# For further information, see http://www.nexusformat.org
-->
<!--
redundant as there is NXcsg, NXquadric, NXsolid_geometry with which
PeterC-DLS marked this conversation as resolved.
Show resolved Hide resolved
cylinder could be constructed, but NXcylinder is easier to understand-->
<definition xmlns="http://definition.nexusformat.org/nxdl/3.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" category="base" type="group" name="NXcg_cylinder" extends="NXcg_primitive" xsi:schemaLocation="http://definition.nexusformat.org/nxdl/3.1 ../nxdl.xsd">
<symbols>
<doc>
The symbols used in the schema to specify e.g. dimensions of arrays.
</doc>
<symbol name="d">
<doc>
The dimensionality of the space in which the members are assumed embedded.
</doc>
</symbol>
<symbol name="c">
<doc>
The cardinality of the set, i.e. the number of members.
</doc>
</symbol>
</symbols>
<doc>
Computational geometry description of a set of cylinders or (truncated) cones.

The radius can either be defined in the radii field or by filling both
PeterC-DLS marked this conversation as resolved.
Show resolved Hide resolved
the upper_cap_radii or lower_cap_radii field. The latter field case can
thus be used to represent (truncated) cones.
</doc>
<field name="height" type="NX_NUMBER" units="NX_LENGTH">
<doc>
A direction vector which is parallel to the cylinder/cone axis
and whose magnitude is the height of the cylinder/cone.

The upper_cap is defined as the one that is farther away to the origin
PeterC-DLS marked this conversation as resolved.
Show resolved Hide resolved
when inspecting a parallel projection onto the direction vector.
</doc>
<dimensions rank="2">
<dim index="1" value="c"/>
<dim index="2" value="d"/>
</dimensions>
</field>
<field name="radius" type="NX_NUMBER" units="NX_LENGTH">
<doc>
Radius of the cylinder if all have the same radius.
</doc>
</field>
<field name="radii" type="NX_NUMBER" units="NX_LENGTH">
<doc>
Radii of the cylinder.
</doc>
<dimensions rank="1">
<dim index="1" value="c"/>
</dimensions>
</field>
<field name="upper_cap_radii" type="NX_NUMBER" units="NX_LENGTH">
<doc>
Radii of the upper circular cap.

This field, combined with lower_cap_radius can be used to describe
(eventually truncated) circular cones.
</doc>
<dimensions rank="1">
<dim index="1" value="c"/>
</dimensions>
</field>
<field name="lower_cap_radii" type="NX_NUMBER" units="NX_LENGTH">
<doc>
Radii of the upper circular cap.

This field, combined with upper_cap_radius can be used to describe
(eventually truncated) circular cones.
</doc>
<dimensions rank="1">
<dim index="1" value="c"/>
</dimensions>
</field>
<!--properties of the cylinder-->
<field name="lateral_surface_area" type="NX_NUMBER" units="NX_AREA">
<doc>
Lateral surface area of each cylinder.
</doc>
<dimensions rank="1">
<dim index="1" value="c"/>
</dimensions>
</field>
<field name="upper_cap_surface_area" type="NX_NUMBER" units="NX_AREA">
<doc>
Area of the upper cap of each cylinder.
</doc>
<dimensions rank="1">
<dim index="1" value="c"/>
</dimensions>
</field>
<field name="lower_cap_surface_area" type="NX_NUMBER" units="NX_AREA">
<doc>
Area of the lower cap of each cylinder.
</doc>
<dimensions rank="1">
<dim index="1" value="c"/>
</dimensions>
</field>
<field name="total_surface_area" type="NX_NUMBER" units="NX_AREA">
<doc>
Sum of upper and lower cap area and lateral surface area of each cylinder.
</doc>
<dimensions rank="1">
<dim index="1" value="c"/>
</dimensions>
</field>
</definition>
80 changes: 80 additions & 0 deletions base_classes/NXcg_ellipsoid.nxdl.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet type="text/xsl" href="nxdlformat.xsl"?>
<!--
# NeXus - Neutron and X-ray Common Data Format
#
# Copyright (C) 2014-2024 NeXus International Advisory Committee (NIAC)
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 3 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# For further information, see http://www.nexusformat.org
-->
<!--
redundant as there is NXcsg, and NXquadric but easier to understand-->
<definition xmlns="http://definition.nexusformat.org/nxdl/3.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" category="base" type="group" name="NXcg_ellipsoid" extends="NXcg_primitive" xsi:schemaLocation="http://definition.nexusformat.org/nxdl/3.1 ../nxdl.xsd">
<symbols>
<doc>
The symbols used in the schema to specify e.g. dimensions of arrays.
</doc>
<symbol name="d">
<doc>
The dimensionality of the space in which the members are assumed embedded.
</doc>
</symbol>
<symbol name="c">
<doc>
The cardinality of the set, i.e. the number of members.
</doc>
</symbol>
</symbols>
<doc>
Computational geometry description of a set of ellipsoids.
</doc>
<field name="half_axes_radius" type="NX_NUMBER" units="NX_LENGTH">
<doc>
Radius of the half axes.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Length of semi-axes. Semi-major and semi-minor axes are the terms used for a 2d ellipse so the field names should reflect this.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed


Use if all ellipsoids in the set have the same half-axes.
</doc>
<dimensions rank="1">
<dim index="1" value="d"/>
</dimensions>
</field>
<field name="half_axes_radii" type="NX_NUMBER" units="NX_LENGTH">
<doc>
Half-axes radii of each ellipsoid.
</doc>
<dimensions rank="2">
<dim index="1" value="c"/>
<dim index="2" value="d"/>
</dimensions>
</field>
<!--convenience dictionary entries when all ellipsoids in the set are spheres.-->
<field name="radius" type="NX_NUMBER" units="NX_LENGTH">
<doc>
In the case that all ellipsoids are spheres.
</doc>
</field>
<field name="radii" type="NX_NUMBER" units="NX_LENGTH">
<doc>
In the case that all ellipsoids are spheres whose radii differ.
For a mixture of spheres use half_axes_radii.
</doc>
<dimensions rank="1">
<dim index="1" value="c"/>
</dimensions>
</field>
<!--properties of ellipsoids-->
</definition>
Loading
Loading