Difference between revisions of "X3D v4.0 CAD Improvements"

From Web3D.org
Jump to: navigation, search
m
(X3D CADInterchange Profile: add nodes)
Line 26: Line 26:
  
 
* Existing specification:  [http://www.web3d.org/files/specifications/19775-1/V3.3/Part01/CADInterchange.html X3D v3.3 CADInterchange profile]
 
* Existing specification:  [http://www.web3d.org/files/specifications/19775-1/V3.3/Part01/CADInterchange.html X3D v3.3 CADInterchange profile]
 +
* Primary discussion: [http://web3d.org/mailman/private/cad_web3d.org/2012-August/000191.html revising CADInterchange profile] email thread
  
 
=== Improved nodeset ===
 
=== Improved nodeset ===
  
 
Nodes to add:
 
Nodes to add:
 +
 +
* Anchor
 +
** Needed for description and Viewpoint selection (level 1)
 +
** Also needed for linking to other networked resources (level 2)
 +
 +
* Inline
 +
** Needed for modular re-use of CAD-model files
 +
 +
Concern:  possibility of short-circuiting CAD product structure within an extended file.  Related future specification change:
 +
** Any node children created by Inline, ProtoInstance or Script (via a createX3D method )
 +
need to follow the CAD product structure defined by their parent nodes.
 +
 +
* FillProperties
 +
** Definitely needed for proper display to distinguish different parts or selected parts.  Related to definition of component levels in the profile.
 +
 +
* OrthoViewpoint
 +
** The primary purpose of OrthoViewpoint is to support common use cases for CAD model viewing.  (This node was probably added after the initial CAD profile.)
 +
 +
* ViewpointGroup
 +
** Allows nesting of Viewpoints within models without exploding or overloading the Viewpoint list, which is an essential tool for user navigation.
 +
  
 
Nodes to remove:
 
Nodes to remove:

Revision as of 14:24, 17 August 2012

These are proposed changes for a future X3D v3.4 Specification under consideration by the X3D CAD Working Group.

X3D CAD Component

Child-node relationships more explicit

  • Many parent-child node relationships are vague, leading to difficulty deciding which children are allowed. For example, X3DGroupingNode is implemented by many candidate nodes.
  • These relationships are strictly captured in the X3D DTD and X3D Schema, with further support in X3D Schematron
  • In order to best support model export and interoperability, the child nodes are limited to those listed in the CADInterchange Profile

Proposed specification prose: needed.

Tesselation consistency

  • Exporters can significantly reduce file size using primitive-geometry nodes (e.g. Cylinder, Disk2D, etc.)
  • Tesselation quality is not strictly defined in X3D
  • In order to match polygonal tessellation strictly and avoid "cracks" between adjactent geometry, some form of association is needed (similar to the NURBSet node)
  • CADPart semantics can be improved to include this constraint

Proposed specification prose: needed.


X3D CADInterchange Profile

Improved nodeset

Nodes to add:

  • Anchor
    • Needed for description and Viewpoint selection (level 1)
    • Also needed for linking to other networked resources (level 2)
  • Inline
    • Needed for modular re-use of CAD-model files

Concern: possibility of short-circuiting CAD product structure within an extended file. Related future specification change:

    • Any node children created by Inline, ProtoInstance or Script (via a createX3D method )

need to follow the CAD product structure defined by their parent nodes.

  • FillProperties
    • Definitely needed for proper display to distinguish different parts or selected parts. Related to definition of component levels in the profile.
  • OrthoViewpoint
    • The primary purpose of OrthoViewpoint is to support common use cases for CAD model viewing. (This node was probably added after the initial CAD profile.)
  • ViewpointGroup
    • Allows nesting of Viewpoints within models without exploding or overloading the Viewpoint list, which is an essential tool for user navigation.


Nodes to remove:

Renaming necessary?

Extensive changes to this profile may make backwards compatibility difficult. X3D profiles do not support a concept of level as components do.

  • Should the profile be renamed for clarity, maintaining the old profile separately?
  • Alternatively should the old profile be deprecated?
  • Is there a better way to express this evolution, simply noting that the v3.4 profile is different?