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

Revisiting non-FAIRmat constructive solid geometry in light of FAIRmat proposal #1532

Open
wants to merge 16 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
Expand Up @@ -30,13 +30,16 @@
xsi:schemaLocation="http://definition.nexusformat.org/nxdl/3.1 ../nxdl.xsd"
>
<doc>
Constructive Solid Geometry base class, using :ref:`NXquadric` and :ref:`NXoff_geometry`</doc>
Constructive Solid Geometry (CSG) base class.

Offers concepts for combining the definitions of leaf and
branching nodes of a CSG tree.</doc>
<field
name="operation">
<doc>
One of the standard construction solid geometry set operations,
or if the CSG is a pointer to the geometry provided by an
:ref:`NXquadric` or an :ref:`NXoff_geometry`. Takes values:
or statement IS_QUADRIC or IS_MESH if the CSG is a pointer to an
instance of a geometry class. Takes values:
</doc>
<enumeration>
<item value="UNION" />
Expand All @@ -53,8 +56,8 @@
minOccurs="0"
maxOccurs="1">
<doc>
The first operand of constructive solid geometry
operation. Compulsory if 'operation' is UNION, INTERSECTION,
The first operand of constructive solid geometry operation.
Compulsory if 'operation' is UNION, INTERSECTION,
DIFFERENCE or COMPLEMENT.
</doc>
</group>
Expand All @@ -64,8 +67,8 @@
minOccurs="0"
maxOccurs="1">
<doc>
The second operand of constructive solid geometry
operation. Compulsory if 'operation' is UNION, INTERSECTION or
The second operand of constructive solid geometry operation.
Compulsory if 'operation' is UNION, INTERSECTION or
DIFFERENCE.
</doc>
</group>
Expand All @@ -75,11 +78,14 @@
minOccurs="0"
maxOccurs="1">
<doc>
Path to a field that is either an :ref:`NXquadric` (if
'operation' = IS_QUADRIC) or an :ref:`NXoff_geometry` (if
'operation' = IS_MESH) that defines the surface making up the
constructive solid geometry component. Compulsory if 'operation'
is IS_QUADRIC or IS_MESH.
Path to a field that is an instance of one of several possible geometry
classes: Specifically, :ref:`NXquadric` if 'operation' is IS_QUADRIC,
:ref:`NXoff_geometry`, or other primitive based base classes
if 'operation' is IS_MESH.

The instance defines the surface making up the constructive solid
geometry component. This field is compulsory if 'operation' is
IS_QUADRIC or IS_MESH.
</doc>
</field>
</definition>
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://definition.nexusformat.org/nxdl/3.1 ../nxdl.xsd"
>
<doc>definition of a quadric surface.</doc>
<doc>Definition of a quadric surface.</doc>
<field
name="parameters"
type="NX_NUMBER"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,13 @@
xsi:schemaLocation="http://definition.nexusformat.org/nxdl/3.1 ../nxdl.xsd"
>
<doc>
the head node for constructively defined geometry
The head node for constructively defined geometry.

* `S. Ghebi &lt;https://doi.org/10.1007/978-1-84800-115-2&gt;`_
* `L. H. Laidlaw &lt;https://doi.org/10.1145/15886.15904&gt;`_

for an introduction into the topic of modeling shapes with constructive
solid geometry (CSG).
</doc>
<group
type="NXquadric"
Expand All @@ -46,11 +52,13 @@
Instances of :ref:`NXoff_geometry` making up elements of the geometry.
</doc>
</group>
<!--in the future allow also groups of other NXcg instances to make up the geometry-->
<group
type="NXcsg"
minOccurs="0">
<doc>
The geometries defined, made up of instances of :ref:`NXquadric` and :ref:`NXoff_geometry`.
The geometries defined, made up of e.g. instances of :ref:`NXquadric`, :ref:`NXoff_geometry`,
or instances of other base classes that define geometries.
</doc>
</group>
</definition>