<div dir="auto">Another party suggested using set_coordIndex, which works.</div><div dir="auto"><br></div><div dir="auto">Thanks!</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jan 21, 2021 at 11:18 AM 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-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">Hi John. The error messages you've included provide diagnostic information, for example,<br>
<br>
> org.web3d.x3d.sai.InvalidFieldValueException: ROUTE details: FROM<br>
> OrbitScript.coordIndexes [Script,MFInt32,outputOnly] TO Orbit.coordIndex<br>
> [IndexedFaceSet,MFInt32,initializeOnly]<br>
> ROUTE toField (destination) event can only have<br>
> accessType='inputOutput' or accessType='inputOnly'.<br>
<br>
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.<br>
<br>
==================================<br>
13.3.6 IndexedFaceSet<br>
<a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-WD3/Part01/components/geometry3D.html#IndexedFaceSet" rel="noreferrer" target="_blank">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-WD3/Part01/components/geometry3D.html#IndexedFaceSet</a><br>
<br>
IndexedFaceSet : X3DComposedGeometryNode {<br>
MFInt32 [in] set_colorIndex<br>
MFInt32 [in] set_coordIndex<br>
MFInt32 [in] set_normalIndex<br>
MFInt32 [in] set_texCoordIndex<br>
MFNode [in,out] attrib [] [X3DVertexAttributeNode]<br>
SFNode [in,out] color NULL [X3DColorNode]<br>
SFNode [in,out] coord NULL [X3DCoordinateNode]<br>
SFNode [in,out] fogCoord NULL [FogCoordinate]<br>
SFNode [in,out] metadata NULL [X3DMetadataObject]<br>
SFNode [in,out] normal NULL [X3DNormalNode]<br>
SFNode [in,out] texCoord NULL [X3DTextureCoordinateNode]<br>
SFBool [] ccw TRUE<br>
MFInt32 [] colorIndex [] [0,∞) or -1<br>
SFBool [] colorPerVertex TRUE<br>
SFBool [] convex TRUE<br>
MFInt32 [] coordIndex [] [0,∞) or -1<br>
SFFloat [] creaseAngle 0 [0,∞)<br>
MFInt32 [] normalIndex [] [0,∞) or -1<br>
SFBool [] normalPerVertex TRUE<br>
SFBool [] solid TRUE<br>
MFInt32 [] texCoordIndex [] [-1,∞)<br>
}<br>
==================================<br>
<br>
The historic reason for this restriction was concern about computational cost at run-time if IFS parameters change.<br>
<br>
It is certainly a worthy question now to ask whether X3D4 might relax this restriction and allow run-time tesselation in IFS.<br>
<br>
To accomplish such a goal in X3D3, you would probably need to have your Script create a new IFS and then swap that out.<br>
<br>
<br>
On 1/19/2021 8:24 PM, John Carlson wrote:<br>
><br>
> <br>
> I am initializing a mesh in initialize() and I get this error when<br>
> running a Nashorn X3DJSAIL program. How can express this better? It's<br>
> a 100x100 grid mesh and I don't want to chew up web transfer time. Can<br>
> I use subdivision in X3DOM? What tag should I use? I think what I want<br>
> is GeoElevationGrid, but I don't know if I can update coordinates in<br>
> that. Perhaps I should dig in to it a bit. What I think I want is a<br>
> SphereGrid of coordindexes (unless height can be negative in<br>
> GeoElevationGrid)--Below sea level. I'm planning for the height < -radius.<br>
> <br>
> Thanks,<br>
> <br>
> John<br>
> <br>
> org.web3d.x3d.sai.InvalidFieldValueException: ROUTE details: FROM<br>
> OrbitScript.coordIndexes [Script,MFInt32,outputOnly] TO Orbit.coordIndex<br>
> [IndexedFaceSet,MFInt32,initializeOnly]<br>
> ROUTE toField (destination) event can only have<br>
> accessType='inputOutput' or accessType='inputOnly'.<br>
> org.web3d.x3d.sai.InvalidFieldValueException: ROUTE details: FROM<br>
> OrbitScript.coordIndexes [Script,MFInt32,outputOnly] TO Orbit.coordIndex<br>
> [IndexedFaceSet,MFInt32,initializeOnly]<br>
> ROUTE toField (destination) event can only have<br>
> accessType='inputOutput' or accessType='inputOnly'.<br>
> <br>
> <br>
> Sample code:<br>
> <br>
> <Script DEF="OrbitScript"><br>
> <field accessType="inputOnly"<br>
> name="set_fraction" type="SFFloat"/><br>
> <field accessType="outputOnly"<br>
> name="coordinates" type="MFVec3f"/><br>
> <field accessType="outputOnly"<br>
> name="coordIndexes" type="MFInt32"/><br>
> <field accessType="inputOutput"<br>
> name="e" type="SFFloat" value="5"/><br>
> <field accessType="inputOutput"<br>
> name="f" type="SFFloat" value="5"/><br>
> <field accessType="inputOutput"<br>
> name="g" type="SFFloat" value="5"/><br>
> <field accessType="inputOutput"<br>
> name="h" type="SFFloat" value="5"/><br>
> <field accessType="inputOutput"<br>
> name="resolution" type="SFInt32" value="50"/><br>
> <![CDATA[<br>
> ecmascript:<br>
> <br>
> var e = 5;<br>
> var f = 5;<br>
> var g = 5;<br>
> var h = 5;<br>
> var resolution = 100;<br>
> <br>
> function initialize() {<br>
> generateCoordinates();<br>
> var localci = [];<br>
> for (var i = 0; i < resolution-1; i++) {<br>
> for (var j = 0; j < resolution-1; j++) {<br>
> localci.push(i*resolution+j);<br>
> localci.push(i*resolution+j+1);<br>
> localci.push((i+1)*resolution+j+1);<br>
> localci.push((i+1)*resolution+j);<br>
> localci.push(-1);<br>
> }<br>
> }<br>
> coordIndexes = new MFInt32(localci);<br>
> }<br>
> <br>
> function generateCoordinates() {<br>
> <br>
> <br>
> <br>
> _______________________________________________<br>
> X3dom-users mailing list<br>
> <a href="mailto:X3dom-users@lists.sourceforge.net" target="_blank">X3dom-users@lists.sourceforge.net</a><br>
> <a href="https://lists.sourceforge.net/lists/listinfo/x3dom-users" rel="noreferrer" target="_blank">https://lists.sourceforge.net/lists/listinfo/x3dom-users</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></div>