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 189 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
189 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
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
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<?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
Expand All @@ -21,131 +21,102 @@
#
# For further information, see http://www.nexusformat.org
-->
<definition xmlns="http://definition.nexusformat.org/nxdl/3.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" category="base" name="NXcg_alpha_complex" extends="NXobject" type="group" xsi:schemaLocation="http://definition.nexusformat.org/nxdl/3.1 ../nxdl.xsd">
<!--weighted alpha shapes
The so-called spectrum or sets of (weighted) alpha shapes includes the
convex hull of a point set.-->
<symbols>
<doc>
The symbols used in the schema to specify e.g. dimensions of arrays.
</doc>
<symbol name="d">
<doc>
The dimensionality of the alpha shape, for now 2 or 3.
</doc>
</symbol>
<!--generalize to d > 3-->
<symbol name="n_e">
<doc>
The number of edges.
</doc>
</symbol>
<symbol name="n_f">
<doc>
The number of faces.
</doc>
</symbol>
<symbol name="n_c">
<doc>
The number of cells.
</doc>
</symbol>
</symbols>
<!--
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_set" xsi:schemaLocation="http://definition.nexusformat.org/nxdl/3.1 ../nxdl.xsd">
<doc>
Computational geometry description of alpha shapes or wrappings to primitives.
Computational geometry of 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
* https://doc.cgal.org/latest/Manual/packages.html#PkgAlphaWrap3 for 3D wrap
* https://doc.cgal.org/latest/Manual/packages.html#PkgAlphaWrap3 for 3D wrappings

in CGAL, the Computational Geometry Algorithms Library.
As a starting point, we follow the conventions of the CGAL library.
</doc>
<field name="dimensionality" type="NX_UINT" units="NX_UNITLESS">
<enumeration>
<item value="2"/>
<item value="3"/>
</enumeration>
</field>
<field name="type">
<doc>
Specify which general type of alpha shape is computed.
Using for now the CGAL terminology. Basic means (unweighted) alpha shapes.
Alpha_wrapping means meshes created using alpha wrapping procedures.
Type of alpha complex following the terminology used by CGAL for now.

Basic means (unweighted) alpha shapes. 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="mode">
<field name="regularize_alpha_complex" type="NX_BOOLEAN">
<doc>
Specifically when computed with the CGAL, the mode specifies if singular
faces are removed (regularized) of the alpha complex.
Are singular faces removed, i.e. has the alpha complex
been regularized or not.
</doc>
<!--CHECK THIS AGAIN CAREFULLY-->
<enumeration>
<item value="general"/>
<item value="regularized"/>
</enumeration>
</field>
<!--R+0 means positive real number including zero which is a super set of NX_FLOAT and a sub-set of NX_NUMBER-->
<field name="alpha" type="NX_NUMBER" units="NX_LENGTH">
<doc>
The alpha, (radius of the alpha-sphere) parameter to be used for alpha
shapes and alpha wrappings.
The alpha parameter, i.e. the radius of the alpha-sphere that
is used when computing the alpha complex.
</doc>
</field>
<!--the dim: argument can be omitted to indicate that a scalar is expected
means a length quantity, i.e. m, km, or nm is possible i.e. has to be length but no further constraints
stating meter is a stronger constraint while m is the strongest constraint, meaning literally the value is m.-->
<field name="offset" type="NX_NUMBER" units="NX_LENGTH">
<doc>
The offset distance parameter to be used in addition to alpha
in the case of alpha_wrapping.
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_set" type="NXcg_point_set">
<group name="point_setID" type="NXcg_point_set">
<!--
basically just constraints that if you use one or more instances of NXcg_point_set
inside an instance of NXcg_alpha_complex, name that group with the prefix "point_set"
-->
<doc>
Point cloud for which the alpha shape or wrapping should be computed.
Point cloud for which the alpha shape or wrapping has been computed.
</doc>
</group>
<!--this could also just be implemented as a link but how would this be possible
unfold the NXcg_point_set and add a
weight(NX_NUMBER):
doc: Weights for each point
doc: Weights for each point
In general, an alpha complex is a disconnected and non-pure complex,
meaning in particular that the alpha complex may have singular faces.
so the number of cells, faces and edges depends on how a specific alpha complex,
i.e. an alpha-shape of S for alpha, is filtrated with respect to k < d-dimensional
simplices. Here we assume that number_of_cells, number_of_faces, number_of_edges
are reported assuming one filtrates these simplices according to mode.
are reported assuming one filtrates these simplices according to type.
also using the assumption the base class reports the unique vertices
of the specifically filtrated alpha complex.-->
<group name="triangle_set" type="NXcg_triangle_set">
<group name="triangle_setID" type="NXcg_triangle_set">
<doc>
Triangle soup for which the alpha wrapping should be computed.
Triangle soup for which the alpha wrapping has been computed.
</doc>
</group>
<group name="triangulation" type="NXcg_triangle_set">
<group name="triangle_meshID" type="NXcg_triangle_set">
<doc>
A meshed representation of the resulting shape.
Triangle mesh representing the alpha complex.
</doc>
</group>
<!--should be a mesh
add for each triangle if desirable a notation of whether the simplex is
<!--add for each triangle if desirable a notation of whether the simplex is
exterior, regular, singular, or interior with respect to the alpha complex
but a triangulation is more than a triangle (soup)/set because there is
connectivity information
customize the NXcg_triangle_set base class members such that connectivity
information is contained
a triangulation is more than a triangle (soup)/set because there it has connectivity
customize the NXcg_triangle_set base class members such that connectivity can be contained naturally
we need to find also a better name for this, what people intutive understand
as the interior, may not even exist for a given alpha value
more specifically it is the set of filtrated cells acknowledging mode
e.g. the interior cells of the regularized alpha complex-->
<group name="interior_cells" type="NXcg_tetrahedron_set"/>
<group name="interior_cellsID" type="NXcg_tetrahedron_set">
<doc>
Set of tetrahedra representing the volume inside the alpha complex.
</doc>
</group>
<!--document the alpha status
https://doc.cgal.org/latest/Alpha_shapes_3/classCGAL_1_1Alpha__status.html-->
</definition>
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<?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
Expand All @@ -21,137 +21,117 @@
#
# For further information, see http://www.nexusformat.org
-->
<!--redundant as there is NXcsg, NXquadric, NXsolid_geometry with which
<!--
redundant as there is NXcsg, NXquadric, NXsolid_geometry with which
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" name="NXcg_cylinder_set" extends="NXobject" type="group" xsi:schemaLocation="http://definition.nexusformat.org/nxdl/3.1 ../nxdl.xsd">
<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_set" extends="NXcg_primitive_set" 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 cylinders or cones.
The cardinality of the set, i.e. the number of members.
</doc>
</symbol>
</symbols>
<doc>
Computational geometry description of a set of cylinders in Euclidean space.
Computational geometry description of a set of cylinders.

The members of the set can have different size. For each member the position
of the center and the height is mandatory. The radius can either be defined
in the radius field or by filling both the upper and the lower radius field.
The latter case can be used to represent truncated cones.
The radius can either be defined in the radii field or by filling both
the upper_cap_radii or lower_cap_radii field. The latter field case can
thus be used to represent truncated cones.
</doc>
<field name="dimensionality" type="NX_POSINT" units="NX_UNITLESS">
<enumeration>
<item value="3"/>
</enumeration>
</field>
<field name="cardinality" type="NX_POSINT" units="NX_UNITLESS"/>
<field name="identifier_offset" type="NX_INT" units="NX_UNITLESS">
<doc>
Integer which specifies the first index to be used for distinguishing
identifiers for cylinders. Identifiers are defined either implicitly
or explicitly. For implicit indexing the identifiers are defined on the
interval [identifier_offset, identifier_offset+c-1].
For explicit indexing the identifier array has to be defined.

The identifier_offset field can for example be used to communicate if the
identifiers are expected to start from 1 (referred to as Fortran-/Matlab-)
or from 0 (referred to as C-, Python-style index notation) respectively.
</doc>
</field>
<field name="identifier" type="NX_INT">
<doc>
Integer used to distinguish members for explicit indexing.
</doc>
<dimensions rank="1">
<dim index="1" value="c"/>
</dimensions>
</field>
<field name="center" type="NX_NUMBER" units="NX_LENGTH">
<doc>
The geometric center of each member.
</doc>
<dimensions rank="2">
<dim index="1" value="c"/>
<dim index="2" value="3"/>
</dimensions>
</field>
<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.
A direction vector which is parallel to the cylinder/cone axis
and whose magnitude is the height of the cylinder/cone.
</doc>
<dimensions rank="2">
<dim index="1" value="c"/>
<dim index="2" value="3"/>
<dim index="2" value="d"/>
</dimensions>
</field>
<!--alternatively one could store the center of the lower and upper cap but
<!--observe that although we claim that d is the dimensionality we have
currently no strategy to tell it must not be d but the actual value
equally so the symbol c, currently all we say that in the specialization
defined here the fields radii, upper_cap_radius, and others are all having
value arguments of the same shape, i.e. these are arrays of rank one with some length c!
behind the dimensionality field defined either in the here defined specialization
of NXcg_primitive_set or otherwise that variable is undefined
alternatively one could store the center of the lower and upper cap but
these are then no longer necessarily on the same axis
maybe a future feature for representing skewed cylinder, but then
one should really better use NXquadric...-->
<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_radius" type="NX_NUMBER" units="NX_LENGTH">
<field name="upper_cap_radii" type="NX_NUMBER" units="NX_LENGTH">
<doc>
The radius of the upper circular cap.
This field, combined with lower_cap_radius can be used to
describe (eventually truncated) circular cones.
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_radius" type="NX_NUMBER" units="NX_LENGTH">
<field name="lower_cap_radii" type="NX_NUMBER" units="NX_LENGTH">
<doc>
The radius of the upper circular cap.
This field, combined with lower_cap_radius can be used to
describe (eventually truncated) circular cones.
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>
<group type="NXtransformations">
<doc>
Reference to or definition of a coordinate system with
which the positions and directions are interpretable.
</doc>
</group>
<!--properties of the cylinder-->
<field name="volume" type="NX_NUMBER" units="NX_VOLUME">
<field name="lateral_surface_area" type="NX_NUMBER" units="NX_AREA">
<doc>
Interior volume of each cylinder
Lateral surface area
</doc>
<dimensions rank="1">
<dim index="1" value="c"/>
</dimensions>
</field>
<field name="lateral_surface_area" type="NX_NUMBER" units="NX_AREA">
<field name="upper_cap_surface_area" type="NX_NUMBER" units="NX_AREA">
<doc>
Lateral surface area
Area of the upper cap of each cylinder.
</doc>
<dimensions rank="1">
<dim index="1" value="c"/>
</dimensions>
</field>
<field name="cap_surface_area" type="NX_NUMBER" units="NX_AREA">
<field name="lower_cap_surface_area" type="NX_NUMBER" units="NX_AREA">
<doc>
Area of the upper and the lower cap of each cylinder respectively.
Area of the lower cap of each cylinder.
</doc>
<dimensions rank="2">
<dimensions rank="1">
<dim index="1" value="c"/>
<dim index="2" value="2"/>
</dimensions>
</field>
<field name="surface_area" type="NX_NUMBER" units="NX_AREA">
<field name="total_surface_area" type="NX_NUMBER" units="NX_AREA">
<doc>
Cap and lateral surface area for each cylinder.
Sum of upper and lower cap areas and lateral surface area
of each cylinder.
</doc>
<dimensions rank="1">
<dim index="1" value="c"/>
Expand Down
Loading
Loading