[x3d-public] [x3dom-users] initializing mesh in initialize()--X3DJSAIL; IFS fields with accessType initializeOnly

John Carlson yottzumm at gmail.com
Thu Jan 21 21:13:00 PST 2021


You can cherry pick updated source files here (chose a programming 
language folder other than cplusplus


https://github.com/coderextreme/X3DJSONLD/tree/master/src/main


Thanks!


John

On 1/21/21 11:02 PM, John Carlson wrote:
> coderextreme at coderextreme-Kubuntu20:~/X3DJSONLD/src/main/shell$ bash 
> local.sh 2>&1 | grep "ROUTE details"
>
>
> This command should have gone through all the X3D files and convert 
> them to JSON, Java, etc.  Note that I'm looking for ROUTE issues 
> coming out of the build.
>
>
> Since there are none, I will declare victory over this kind of issue 
> in the short term.
>
>
> I also fixed extrusion.x3d to use set_spine.
>
>
> I will check in X3D XML files soon so you can try on your own (if you 
> are brave enough to install X3DJSONLD).
>
>
> John
>
> On 1/21/21 8:22 PM, John Carlson wrote:
>> Perhaps we could add a SFBool field to ROUTE, "runOnce" which would 
>> achieve the results I want.
>>
>> I will file a report.
>>
>> John
>>
>> On 1/21/21 8:08 PM, John Carlson wrote:
>>> I was stumbling over this for quite a while.  flowers2.x3d was not 
>>> displaying in X_ITE, but was in X3DOM, when it had before. Thanks 
>>> for X3DJSAIL for reporting these, we finally tracked down many 
>>> warnings (not only coordIndex) in my regression test suite, so I am 
>>> more confident about my data files!
>>>
>>> The point is, I don't want to change my set_coordIndex once it's 
>>> been set up--I only want to modify coordinates. I want to achieve as 
>>> much speed as I can, so doing a ROUTE at initialization might be 
>>> appropriate for me.  What I think I should do is delete the ROUTE or 
>>> the script field, perhaps?
>>>
>>> Is there a portable way to delete ROUTEs?
>>>
>>> John
>>>
>>> On 1/21/21 7:16 PM, Don Brutzman wrote:
>>>> Yes I completely overlooked that, good call.  The set_* fields lets 
>>>> an author change many things.
>>>>
>>>> The rationale for this approach is that browsers might do geometry 
>>>> decimation and not want to send gigantic piles of values at output 
>>>> events.  Seems smart to keep it like that.
>>>>
>>>> Still wondering if convex field (for single- or double-sided 
>>>> rendering) and perhaps other boolean fields could be modifiable. 
>>>> Useful animation techniques.
>>>>
>>>>
>>>>
>>>> On 1/21/2021 3:18 PM, John Carlson wrote:
>>>>>
>>>>> Another party suggested using set_coordIndex, which works.
>>>>>
>>>>> Thanks!
>>>>>
>>>>> On Thu, Jan 21, 2021 at 11:18 AM Don Brutzman <brutzman at nps.edu 
>>>>> <mailto:brutzman at nps.edu>> wrote:
>>>>>
>>>>>     Hi John.  The error messages you've included provide 
>>>>> diagnostic information, for example,
>>>>>
>>>>>      > org.web3d.x3d.sai.InvalidFieldValueException: ROUTE 
>>>>> details: FROM
>>>>>      > OrbitScript.coordIndexes [Script,MFInt32,outputOnly] TO 
>>>>> Orbit.coordIndex
>>>>>      > [IndexedFaceSet,MFInt32,initializeOnly]
>>>>>      >   ROUTE toField (destination) event can only have
>>>>>      > accessType='inputOutput' or accessType='inputOnly'.
>>>>>
>>>>>     If we look up IndexedFaceSet (IFS) in draft spec, indeed it 
>>>>> says that coordIndex (and many other fields) have accessType 
>>>>> initializeOnly - shown as [] rather than [in out] in the following 
>>>>> node signature.
>>>>>
>>>>>     ==================================
>>>>>     13.3.6 IndexedFaceSet
>>>>> https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-WD3/Part01/components/geometry3D.html#IndexedFaceSet 
>>>>> <https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-WD3/Part01/components/geometry3D.html#IndexedFaceSet> 
>>>>>
>>>>>
>>>>>     IndexedFaceSet : X3DComposedGeometryNode {
>>>>>         MFInt32 [in]     set_colorIndex
>>>>>         MFInt32 [in]     set_coordIndex
>>>>>         MFInt32 [in]     set_normalIndex
>>>>>         MFInt32 [in]     set_texCoordIndex
>>>>>         MFNode  [in,out] attrib            [] 
>>>>>  [X3DVertexAttributeNode]
>>>>>         SFNode  [in,out] color             NULL [X3DColorNode]
>>>>>         SFNode  [in,out] coord             NULL [X3DCoordinateNode]
>>>>>         SFNode  [in,out] fogCoord          NULL [FogCoordinate]
>>>>>         SFNode  [in,out] metadata          NULL [X3DMetadataObject]
>>>>>         SFNode  [in,out] normal            NULL [X3DNormalNode]
>>>>>         SFNode  [in,out] texCoord          NULL 
>>>>> [X3DTextureCoordinateNode]
>>>>>         SFBool  []       ccw               TRUE
>>>>>         MFInt32 []       colorIndex        []   [0,∞) or -1
>>>>>         SFBool  []       colorPerVertex    TRUE
>>>>>         SFBool  []       convex            TRUE
>>>>>         MFInt32 []       coordIndex        []   [0,∞) or -1
>>>>>         SFFloat []       creaseAngle       0    [0,∞)
>>>>>         MFInt32 []       normalIndex       []   [0,∞) or -1
>>>>>         SFBool  []       normalPerVertex   TRUE
>>>>>         SFBool  []       solid             TRUE
>>>>>         MFInt32 []       texCoordIndex     []   [-1,∞)
>>>>>     }
>>>>>     ==================================
>>>>>
>>>>>     The historic reason for this restriction was concern about 
>>>>> computational cost at run-time if IFS parameters change.
>>>>>
>>>>>     It is certainly a worthy question now to ask whether X3D4 
>>>>> might relax this restriction and allow run-time tesselation in IFS.
>>>>>
>>>>>     To accomplish such a goal in X3D3, you would probably need to 
>>>>> have your Script create a new IFS and then swap that out.
>>>>>
>>>>>
>>>>>     On 1/19/2021 8:24 PM, John Carlson wrote:
>>>>>      >
>>>>>      >
>>>>>      > I am initializing a mesh in initialize() and I get this 
>>>>> error when
>>>>>      > running a Nashorn X3DJSAIL program.   How can express this 
>>>>> better? It's
>>>>>      > a 100x100 grid mesh and I don't want to chew up web 
>>>>> transfer time.   Can
>>>>>      > I use subdivision in X3DOM?  What tag should I use? I think 
>>>>> what I want
>>>>>      > is GeoElevationGrid, but I don't know if I can update 
>>>>> coordinates in
>>>>>      > that.  Perhaps I should dig in to it a bit. What I think I 
>>>>> want is a
>>>>>      > SphereGrid of coordindexes (unless height can be negative in
>>>>>      > GeoElevationGrid)--Below sea level. I'm planning for the 
>>>>> height < -radius.
>>>>>      >
>>>>>      > Thanks,
>>>>>      >
>>>>>      > John
>>>>>      >
>>>>>      > org.web3d.x3d.sai.InvalidFieldValueException: ROUTE 
>>>>> details: FROM
>>>>>      > OrbitScript.coordIndexes [Script,MFInt32,outputOnly] TO 
>>>>> Orbit.coordIndex
>>>>>      > [IndexedFaceSet,MFInt32,initializeOnly]
>>>>>      >   ROUTE toField (destination) event can only have
>>>>>      > accessType='inputOutput' or accessType='inputOnly'.
>>>>>      > org.web3d.x3d.sai.InvalidFieldValueException: ROUTE 
>>>>> details: FROM
>>>>>      > OrbitScript.coordIndexes [Script,MFInt32,outputOnly] TO 
>>>>> Orbit.coordIndex
>>>>>      > [IndexedFaceSet,MFInt32,initializeOnly]
>>>>>      >   ROUTE toField (destination) event can only have
>>>>>      > accessType='inputOutput' or accessType='inputOnly'.
>>>>>      >
>>>>>      >
>>>>>      > Sample code:
>>>>>      >
>>>>>      >                              <Script DEF="OrbitScript">
>>>>>      >                                  <field accessType="inputOnly"
>>>>>      > name="set_fraction" type="SFFloat"/>
>>>>>      >                                  <field 
>>>>> accessType="outputOnly"
>>>>>      > name="coordinates" type="MFVec3f"/>
>>>>>      >                                  <field 
>>>>> accessType="outputOnly"
>>>>>      > name="coordIndexes" type="MFInt32"/>
>>>>>      >                                  <field 
>>>>> accessType="inputOutput"
>>>>>      > name="e" type="SFFloat" value="5"/>
>>>>>      >                                  <field 
>>>>> accessType="inputOutput"
>>>>>      > name="f" type="SFFloat" value="5"/>
>>>>>      >                                  <field 
>>>>> accessType="inputOutput"
>>>>>      > name="g" type="SFFloat" value="5"/>
>>>>>      >                                  <field 
>>>>> accessType="inputOutput"
>>>>>      > name="h" type="SFFloat" value="5"/>
>>>>>      >                                  <field 
>>>>> accessType="inputOutput"
>>>>>      > name="resolution" type="SFInt32" value="50"/>
>>>>>      >                          <![CDATA[
>>>>>      >                          ecmascript:
>>>>>      >
>>>>>      >                          var e = 5;
>>>>>      >                          var f = 5;
>>>>>      >                          var g = 5;
>>>>>      >                          var h = 5;
>>>>>      >                          var resolution = 100;
>>>>>      >
>>>>>      >                          function initialize() {
>>>>>      > generateCoordinates();
>>>>>      >                               var localci = [];
>>>>>      >                               for (var i = 0; i < 
>>>>> resolution-1; i++) {
>>>>>      >                                  for (var j = 0; j < 
>>>>> resolution-1; j++) {
>>>>>      > localci.push(i*resolution+j);
>>>>>      > localci.push(i*resolution+j+1);
>>>>>      > localci.push((i+1)*resolution+j+1);
>>>>>      > localci.push((i+1)*resolution+j);
>>>>>      > localci.push(-1);
>>>>>      >                                  }
>>>>>      >                              }
>>>>>      >                              coordIndexes = new 
>>>>> MFInt32(localci);
>>>>>      >                          }
>>>>>      >
>>>>>      >                          function generateCoordinates() {
>>>>>      >
>>>>>      >
>>>>>      >
>>>>>      > _______________________________________________
>>>>>      > X3dom-users mailing list
>>>>>      > X3dom-users at lists.sourceforge.net 
>>>>> <mailto:X3dom-users at lists.sourceforge.net>
>>>>>      > https://lists.sourceforge.net/lists/listinfo/x3dom-users 
>>>>> <https://lists.sourceforge.net/lists/listinfo/x3dom-users>
>>>>>
>>>>>     all the best, Don
>>>>>     --     Don Brutzman  Naval Postgraduate School, Code USW/Br 
>>>>> brutzman at nps.edu <mailto: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 <http://faculty.nps.edu/brutzman>
>>>>>
>>>>
>>>> all the best, Don



More information about the x3d-public mailing list