<div dir="ltr">Don,<div>yes - whatever name is appropriate, doesn't take much to change. Thanks for head up.<div>bboxDisplay seems good.  </div><div>-Doug<br><div>when I implement v4 draft specs I anticipate changes.</div><div></div><div>(The old CAD MFBool visible field? I renamed it to visibles so I could keep visible consistent)<br></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, May 16, 2020 at 7:36 PM Don Brutzman <<a href="mailto:brutzman@nps.edu">brutzman@nps.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">[cc: potential X3D4 implementers and x3dom-developers mailing list]<br>
<br>
Doug, your screenshots of displayed bounding boxes are super and very impressive.  Thank you.<br>
<br>
I know view3dscene can also accomplish bounding box displays because that feature is on by default.<br>
<br>
Not sure yet if X3DOM and X_ITE can handle it yet, but clearly it is feasible.  Details in<br>
<br>
[1] Mantis 1277: Provide displayBBox field on X3DBoundedObject nodes to display bounding boxes. possible rename?<br>
     <a href="https://www.web3d.org/member-only/mantis/view.php?id=1277" rel="noreferrer" target="_blank">https://www.web3d.org/member-only/mantis/view.php?id=1277</a><br>
<br>
[2] Extensible 3D (X3D) 4.0 Tooltips" Anchor, displayBBox<br>
     <a href="https://www.web3d.org/x3d/tooltips/X3dTooltips.html#Anchor.displayBBox" rel="noreferrer" target="_blank">https://www.web3d.org/x3d/tooltips/X3dTooltips.html#Anchor.displayBBox</a><br>
<br>
About a month or so ago during X3D Working Group teleconference, there was agreement that I go ahead and implement bboxDisplay in X3DUOM and related tools to see if everything worked.  That has been applied, with one added insight.  I recommend that we rename displayBBox to bboxDisplay so that it is more consistent (familiar, searchable etc.) with bboxCenter and bboxSize.<br>
<br>
How about I make that naming change next weekend, or sooner if anyone wants.<br>
<br>
Clearly this is a one-time task by players that extends existing capabilities, adding value for a feature that is exceedingly difficult for authors or end users to accomplish.  This feature will help user interactivity, selection tasks, and model debugging.  Thanks for all support.<br>
<br>
On 5/7/2020 11:18 AM, GPU Group wrote:<br>
> my experience implementing displayBBox, visible in freewrl:<br>
> <br>
> Results:<br>
> <br>
> <a href="http://dug9.users.sourceforge.net/web3d/tests/bbox/BasicBrain_displayBBox.x3d" rel="noreferrer" target="_blank">http://dug9.users.sourceforge.net/web3d/tests/bbox/BasicBrain_displayBBox.x3d</a><br>
> <a href="http://dug9.users.sourceforge.net/web3d/tests/bbox/2.x3d" rel="noreferrer" target="_blank">http://dug9.users.sourceforge.net/web3d/tests/bbox/2.x3d</a><br>
> <a href="http://dug9.users.sourceforge.net/web3d/tests/bbox/BoxMan_displayBBox.x3d" rel="noreferrer" target="_blank">http://dug9.users.sourceforge.net/web3d/tests/bbox/BoxMan_displayBBox.x3d</a><br>
> <a href="http://dug9.users.sourceforge.net/web3d/tests/bbox/CadTeapot_displayBBox.x3d" rel="noreferrer" target="_blank">http://dug9.users.sourceforge.net/web3d/tests/bbox/CadTeapot_displayBBox.x3d</a><br>
> <a href="http://dug9.users.sourceforge.net/web3d/tests/bbox/GeoLocation_displayBBox.x3d" rel="noreferrer" target="_blank">http://dug9.users.sourceforge.net/web3d/tests/bbox/GeoLocation_displayBBox.x3d</a><br>
> <a href="http://dug9.users.sourceforge.net/web3d/tests/bbox/linepickD_displayBBox.x3d" rel="noreferrer" target="_blank">http://dug9.users.sourceforge.net/web3d/tests/bbox/linepickD_displayBBox.x3d</a><br>
> <a href="http://dug9.users.sourceforge.net/web3d/tests/bbox/ProtoInlineBillboardAnchorShape_displayBBox.x3d" rel="noreferrer" target="_blank">http://dug9.users.sourceforge.net/web3d/tests/bbox/ProtoInlineBillboardAnchorShape_displayBBox.x3d</a><br>
> <a href="http://dug9.users.sourceforge.net/web3d/tests/bbox/Viewport_displayBBox.x3d" rel="noreferrer" target="_blank">http://dug9.users.sourceforge.net/web3d/tests/bbox/Viewport_displayBBox.x3d</a><br>
> <a href="http://dug9.users.sourceforge.net/web3d/tests/bbox/screenshot_displayBBox.jpg" rel="noreferrer" target="_blank">http://dug9.users.sourceforge.net/web3d/tests/bbox/screenshot_displayBBox.jpg</a><br>
> <br>
> Method:<br>
> It took a week of careful gruelling refactoring of old inefficient code -42 Git commits- but was a good opportunity to clean up some old mess build up over a decade of incremental hacking.<br>
> OLD:<br>
> X loop over all nodes once per frame propagated extents up through transforms<br>
> X regenerating transforms to transform the extents on transform-type nodes<br>
> X we weren't even using group bboxSize and bboxCenter<br>
> NEW:<br>
> *Groups:  on render pass, push an empty bounding box onto a stack before drawing children, and the children UNION with their own extent and pass back on the stack<br>
> *Transforms: like group, except when preparing the transform, keep the additional transforms separate from MODELVIEWMATRIX to apply to just the extent when it comes back<br>
> ** and use it to transform extent by converting to an 8 point rectanguloid, and transform all 8 points, then take the extent of them<br>
> <a href="https://sourceforge.net/p/freewrl/git/ci/develop/tree/freex3d/src/lib/scenegraph/Component_Grouping.c" rel="noreferrer" target="_blank">https://sourceforge.net/p/freewrl/git/ci/develop/tree/freex3d/src/lib/scenegraph/Component_Grouping.c</a><br>
> L.492 prep_BBox, fin_BBox<br>
> <br>
> <br>
> 31 changes:<br>
> G - group type, just copy children extent to parent scope<br>
> T - transform type, transform children extent to parent scope<br>
> <br>
> 1 Anchor *G<br>
> 2 Billboard *T<br>
> 3 Collision *G<br>
> 4 Group *G<br>
> 5 Switch *G<br>
> 6 Transform *T<br>
> 7 Viewport *G<br>
> 8 Inline *G<br>
> 9 LOD *G<br>
> 10 StaticGroup *G<br>
> 11 PickableGroup *G<br>
> 12 Proto *G (just x3d parsed protoInstance)<br>
> 13 Shape *G<br>
> <br>
> <br>
> 14 CADAssembly *G<br>
> 15 CADFace *G<br>
> 16 CADLayer *G (MFBool [] visible renamed MFBool visibles [])<br>
> 17 CADPart *T<br>
> <br>
> 18 GeoLOD *G<br>
> 19 GeoLocation  *T<br>
> 20 GeoTransform *T2 (a 2-step transform of extent)<br>
> +  freewrl GeoPlanet *T<br>
> <br>
> 21 HAimHumanoid *G (except unsegmented skin)<br>
> 22 HAnimJoint *T<br>
> 23 HAnimSegment *G<br>
> 24 HAnimSite *T<br>
> <br>
> 25 ReceiverPdu x doesn't need no children<br>
> 26 SignalPdu x doesn't need no children<br>
> 27 TransmitterPdu x doesn't need no children<br>
> 28 EspduTransform *T (not tested, not applied to geo transform just regular)<br>
> <br>
> 29 VolumeData *G<br>
> 30 SegmentedVolumeData *G<br>
> 31 IsoSurfaceVolumeData *G<br>
> _______________________________________________<br>
> x3d-public mailing list<br>
> <a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a><br>
> <a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
<br>
all the best, Don<br>
-- <br>
Don Brutzman  Naval Postgraduate School, Code USW/Br       <a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a><br>
Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149<br>
X3D graphics, virtual worlds, navy robotics <a href="http://faculty.nps.edu/brutzman" rel="noreferrer" target="_blank">http://faculty.nps.edu/brutzman</a><br>
</blockquote></div>