[x3d-public] X3D DTD - proposed changes for LinePickSensor
Don Brutzman
brutzman at nps.edu
Wed Mar 1 11:06:21 PST 2017
1. We received excellent technical feedback that X3D DTD for LinePickSensor does not include Shape. Email excerpt follows, copied for continuity in the mail archives.
> *From:*Jan Danek [_mailto:Danek at humusoft.cz_]
> *Sent:*Tuesday, January 31, 2017 9:14 AM
> *To:*Brutzman, Donald (Don) (CIV) < _brutzman at nps.edu_ <mailto:brutzman at nps.edu> >
> *Cc:[...]
> *Subject:*X3D DTD - proposed changes
>
> Dear Don,
>
> As I told you some time ago, we work on implementation of X3D Picking component in our Simulink 3D Animation viewer.
>
> Working on it we noticed a mistake in the v 3.3 DTD. Please see attached DTDs. In the original file, there was "Shape" missing in the pickTarget section for the LinePickSensor, line 3222.
For Web3D members, the issue is being tracked as Mantis issue 1141
http://www.web3d.org/member-only/mantis/view.php?id=1141
There are 4 *PickSensor nodes that pertain: LinePickSensor|PointPickSensor|PrimitivePickSensor|VolumePickSensor.
38 Picking component
http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/picking.html
38.4.1 LinePickSensor
38.4.3 PointPickSensor
38.4.4 PrimitivePickSensor
38.4.5 VolumePickSensor
Typical node signature:
LinePickSensor : X3DPickSensorNode {
SFBool [in,out] enabled TRUE
SFNode [in,out] metadata NULL [X3DMetadataObject]
MFString [in,out] objectType "ALL" ["ALL","NONE","TERRAIN",...]
SFNode [in,out] pickingGeometry NULL [IndexedLineSet|LineSet]
MFNode [in,out] pickTarget [] [X3DGroupingNode|X3DShapeNode|Inline]
SFBool [out] isActive
MFNode [out] pickedGeometry
MFVec3f [out] pickedNormal
MFVec3f [out] pickedPoint
MFVec3f [out] pickedTextureCoordinate
SFString [] intersectionType "BOUNDS" ["GEOMETRY"|"BOUNDS"|...]
SFString [] sortOrder "CLOSEST" ["ANY"|"CLOSEST"|"ALL"|"ALL_SORTED"]
}
The line of interest is for pickTarget field:
MFNode [in,out] pickTarget [] [X3DGroupingNode|X3DShapeNode|Inline]
Some support for Shape exists already in the DTD. Proposed fix is to make it all consistent, such as
<!ELEMENT LinePickSensor (IS?, (%MetadataNodes;)?, (IndexedLineSet | LineSet | %WildcardNodes;)?, (%GroupingNodes; | %ShapeNodes; | Inline | %WildcardNodes;)* )>
This fix has been applied and will be part of next release.
2. The X3D Examples open-source online archives do not have any LinePickSensor test scenes, nor tests of any other picking nodes. This is a problematic gap.
Does anyone have examples, or able to work on examples, that you are willing to contribute?
3. Jan reports that Humutech is "also are under impression that we are the first ones trying actually to implement this Picking Component (we didn't find anything on the Net)."
Do any of the other players implement the PickSensors? The following page may be a bit out of date, but has some clues:
=================================
Player support for X3D components
http://www.web3d.org/wiki/index.php/Player_support_for_X3D_components
Players BS Contact FreeWRL H3DViewer InstantPlayer OctagaVS Player
Picking sensor no yes no no no
OpenVRML SwirlX3D view3dscene Xj3D Heilan Pivoron Flux Vivaty
no no none yes no ? yes yes
=================================
4. DOCTYPE DTD changes to follow for X3D v3.0-3.3 and experimental v4.0. Continued testing, reporting and improvement welcome.
Thanks to Web3D Consortium infrastructure support and all efforts by X3D Working Group and our X3D community.
Looking forward to having fun with X3D pick sensors!
all the best, Don
--
Don Brutzman Naval Postgraduate School, Code USW/Br brutzman at nps.edu
Watkins 270, MOVES Institute, Monterey CA 93943-5000 USA +1.831.656.2149
X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman
More information about the x3d-public
mailing list