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

3d jan/images and figure references #65

Merged
merged 7 commits into from
May 15, 2024
Merged
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
27 changes: 13 additions & 14 deletions 3MF Volumetric Extension Template.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ The format of `ST_NodeOutputIdentifier` is "nodename.outputname". The identifier
## 2.2 ScalarReference
Element \<scalarref>

![Scalar XML Structure](images/element_scalarReference.png)
![Scalar XML Structure](images/element_scalarreference.png)
| Name | Type | Use | Default | Annotation |
| --------- | ---------------- | -------- | ------- | -------------------------------------------------------------------------- |
| identifier| ST_Identifier | required | | Specifies an identifier for this scalar resource. |
Expand All @@ -138,20 +138,19 @@ Element \<scalarref>
## 2.3 VectorReference
Element \<vectorref>

![Vector XML Structure](images/element_vectorReference.png)
![Vector XML Structure](images/element_vectorreference.png)
| Name | Type | Use | Default | Annotation |
| --------- | ---------------- | -------- | ------- | -------------------------------------------------------------------------- |
| identifier| ST_Identifier | required | | Specifies an identifier for this vector resource. |
| displayname| xs:string | optional | | The name to be displayed e.g. for annotation
| ref | ST_VectorID | required | | Reference to the scalar in the form "NodeIdentifier.VectorIdentifier".
|
| displayname| xs:string | optional | | The name to be displayed e.g. for annotation. |
| ref | ST_VectorID | required | | Reference to the scalar in the form "NodeIdentifier.VectorIdentifier". |

## 2.4 MatrixReference
Element \<matrixref>

References to functions are only used for the implicit extension.

![Vector XML Structure](images/element_matrixReference.png)
![Vector XML Structure](images/element_matrixreference.png)
| Name | Type | Use | Default | Annotation |
| --------- | ---------------- | -------- | ------- | -------------------------------------------------------------------------- |
| identifier| ST_Identifier | required | | Specifies an identifier for this matrix resource. |
Expand All @@ -163,7 +162,7 @@ Element \<resourceref>

References to resources are used for the volumeData element and for the implicit extension to create a function reference.

![Function XML Structure](images/element_resourceReference.png)
![Function XML Structure](images/element_resourcereference.png)
| Name | Type | Use | Default | Annotation |
| --------- | ---------------- | -------- | ------- | -------------------------------------------------------------------------- |
| identifier| ST_Identifier | required | | Specifies an identifier for this function resource. |
Expand All @@ -174,9 +173,9 @@ References to resources are used for the volumeData element and for the implicit
# Chapter 3. Functions and Function Types

## 3.1 Functions
Element **\<function>**
Complex Type **CT_Function**

![Function XML Structure](images/element_function.png)
![Function XML Structure](images/CT_Function.png)

| Name | Type | Use | Default | Annotation |
| --- | --- | --- | --- | --- |
Expand Down Expand Up @@ -298,17 +297,17 @@ Element **\<PrivateExtensionFunction>

PrivateExtensionFunction is an OPTIONAL function type to support. This function can take either a <scalar> or <vector> input and returns either a <scalar> or <vector>. The intent of this function type is to allow users to extend the volumetric specification for custom functionality that is not possible with the existing functions.

## 3.4 FunctionImplicit
Element **\<function>
## 3.4 ImplicitFunction
Element **\<implicitfunction>

![FunctionImplicit XML](images/element_functionImplict.png)
![ImplicitFunction XML](images/element_implicitfunction.png)
| Name | Type | Use | Default | Annotation |
| --- | --- | --- | --- | --- |
| id | ST\_ResourceID | required | | Specifies an identifier for this function resource. |
| displayname | xs:string | | | Function resource name used for annotations purposes. |
| xmlns | ST\_namespace | required | implict | Specifies the namespace of the function. |

FunctionImplicit is an OPTIONAL function type to support for the Volumetric specification. The function requires an input DataType and an output DataType.
ImplicitFunction is an OPTIONAL function type to support for the Volumetric specification. The function requires an input DataType and an output DataType.

# Chapter 4. 3D Image

Expand Down Expand Up @@ -622,7 +621,7 @@ Since fields can be evaluated in an unbounded way, a closed mesh is required to

Element **\<levelset>**

![levelset XML structure](images/element_boundary.png)
![levelset XML structure](images/element_levelset.png)

| Name | Type | Use | Default | Annotation |
| -------------- | ------------ | -------- | ------- | -------------------------------------------------------------------- |
Expand Down
Binary file added images/CT_Function.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified images/CT_Resources.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed images/element_boundary.png
Binary file not shown.
Binary file modified images/element_color.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified images/element_composite.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed images/element_function.png
Binary file not shown.
Binary file modified images/element_functionformimage3d.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified images/element_image3d.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified images/element_imagesheet.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified images/element_imagestack.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/element_implicitfunction.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/element_levelset.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified images/element_materialmapping.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/element_matrixreference.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified images/element_mesh.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified images/element_property.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/element_resourcereference.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/element_scalarreference.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/element_vectorreference.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified images/element_volumedata.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
71 changes: 71 additions & 0 deletions implicit.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -1718,6 +1718,76 @@
</xs:complexContent>
</xs:complexType>

<!-- fmod(A,B) -->
<xs:complexType name="CT_Mod">
<xs:annotation>
<xs:documentation>
<![CDATA[
Derived node for a mod function. While fmod is the 'C' fmod, mod has the same behaviour as the glsl mod function. The input must have the identifier "A" and "B",
the output must have the identifier "result". The following combinations of inputs and outputs are allowed:
- fmod(scalar,scalar) = scalar
- fmod(vector,vector) = vector (fmod of each component of the vectors)
- fmod(matrix,matrix) = matrix (fmod of each component of the matrices)

Example:
<fmod identifier="mod1" displayname="mod 1">
<in>
<vectorref identifier="A" ref="inputs.vector1"/>
<vectorref identifier="B" ref="inputs.vector2"/>
</in>
<out>
<vector identifier="result"/>
</out>
</fmod>
]]>
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="CT_Node">
<xs:all>
<xs:element name="in" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:annotation>
<xs:documentation>
<![CDATA[
Inputs to the mod function.
]]>
</xs:documentation>
</xs:annotation>
<xs:choice>
<xs:sequence>
<xs:element name="scalarref" type="vol:CT_ScalarRef" minOccurs="2" maxOccurs="2" />
</xs:sequence>
<xs:sequence>
<xs:element name="vectorref" type="vol:CT_VectorRef" minOccurs="2" maxOccurs="2" />
</xs:sequence>
<xs:sequence>
<xs:element name="matrixref" type="vol:CT_MatrixRef" minOccurs="2" maxOccurs="2" />
</xs:sequence>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="out" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:annotation>
<xs:documentation>
<![CDATA[
mod of the inputs
]]>
</xs:documentation>
</xs:annotation>
<xs:choice>
<xs:element name="scalar" type="vol:CT_Scalar" />
<xs:element name="vector" type="vol:CT_Vector" />
<xs:element name="matrix" type="vol:CT_Matrix" />
</xs:choice>
</xs:complexType>
</xs:element>
</xs:all>
</xs:extension>
</xs:complexContent>
</xs:complexType>

<!-- pow(base,exponent) -->
<xs:complexType name="CT_Pow">
<xs:annotation>
Expand Down Expand Up @@ -2663,6 +2733,7 @@
<xs:element name="unsignedmesh" type="CT_UnsignedDistanceToMesh" />
<xs:element name="length" type="CT_Length" />
<xs:element name="resourceid" type="CT_ConstResourceID" />
<xs:element name="mod" type="CT_Mod" />
</xs:choice>
</xs:extension>
</xs:complexContent>
Expand Down
27 changes: 20 additions & 7 deletions volumetric.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ xmlns:xml="http://www.w3.org/XML/1998/namespace" targetNamespace="http://schemas
<xs:complexType name="CT_Object">
<xs:sequence>
<xs:choice>
<xs:element ref="levelset"/>
<xs:element ref="levelset" />
</xs:choice>
</xs:sequence>
</xs:complexType>
Expand Down Expand Up @@ -102,8 +102,11 @@ xmlns:xml="http://www.w3.org/XML/1998/namespace" targetNamespace="http://schemas
]]>
</xs:documentation>
</xs:annotation>
<xs:attribute name="identifier" type="ST_Identifier" use="required" />
<xs:attribute name="ref" type="ST_VectorID" use="required" />
<xs:complexContent>
<xs:extension base="CT_Ref">
<xs:attribute name="ref" type="ST_VectorID" use="required" />
</xs:extension>
</xs:complexContent>
</xs:complexType>

<xs:complexType name="CT_MatrixRef">
Expand All @@ -114,8 +117,11 @@ xmlns:xml="http://www.w3.org/XML/1998/namespace" targetNamespace="http://schemas
]]>
</xs:documentation>
</xs:annotation>
<xs:attribute name="identifier" type="ST_Identifier" use="required" />
<xs:attribute name="ref" type="ST_MatrixID" use="required" />
<xs:complexContent>
<xs:extension base="CT_Ref">
<xs:attribute name="ref" type="ST_MatrixID" use="required" />
</xs:extension>
</xs:complexContent>
</xs:complexType>

<xs:complexType name="CT_ResourceRef">
Expand All @@ -126,8 +132,11 @@ xmlns:xml="http://www.w3.org/XML/1998/namespace" targetNamespace="http://schemas
]]>
</xs:documentation>
</xs:annotation>
<xs:attribute name="identifier" type="ST_Identifier" use="required" />
<xs:attribute name="ref" type="ST_ResourceOutputID" use="required" />
<xs:complexContent>
<xs:extension base="CT_Ref">
<xs:attribute name="ref" type="ST_ResourceOutputID" use="required" />
</xs:extension>
</xs:complexContent>
</xs:complexType>

<!-- Scalar output value -->
Expand Down Expand Up @@ -451,6 +460,10 @@ xmlns:xml="http://www.w3.org/XML/1998/namespace" targetNamespace="http://schemas
</xs:simpleType>

<!-- Elements -->
<xs:element name="scalarref" type="CT_ScalarRef"/>
<xs:element name="vectorref" type="CT_VectorRef"/>
<xs:element name="matrixref" type="CT_MatrixRef"/>
<xs:element name="resourceref" type="CT_ResourceRef"/>
<xs:element name="image3d" type="CT_Image3D"/>
<xs:element name="imagestack" type="CT_ImageStack"/>
<xs:element name="imagesheet" type="CT_ImageSheet"/>
Expand Down
Loading