[x3d-public] X3D python: Missing array?
Brutzman, Donald (Don) (CIV)
brutzman at nps.edu
Sat May 18 16:55:43 PDT 2019
This was a bug in X3DJSAIL code generation that inadvertently prevented some of the double methods from getting created. Fixed last night, checked in and deployed.
Specifically, the invocation below ".setOrientation(-0.59028,0.76927,0.2445,0.987861)" was looking for a method accepting 4 doubles in ViewpointObject.
That method now exists in X3DJSAIL:
public ViewpointObject setOrientation(double x,double y,double z,double angleRadians)
There is a similar method that accepts double arrays which should also work for Python programmers invoking
public ViewpointObject setOrientation(double newArray)
So the problem you report below should be handled now. It is still reporting a similar error, which I believe is due to pyjnius incorrectly trying to match the X3DViewpointNode abstract class, instead of continued pipelining using the ViewpointObject concrete class.
Meanwhile I checked the build.all.python logs and found a few more "Invalid call, number of argument mismatch" errors. Have added additional custom set methods accepting double arrays as input values for MF arrays, SFMatrix types, MFColor*, etc. Will run the full build again tonight to see if any more remain.
On 5/18/2019 10:35 AM, John Carlson wrote:
> [echo] processSingleScene.python C:\x3d-code\www.web3d.org\x3d\content\examples\X3dForWebAuthors\Chapter03Grouping\CoordinateAxesLines.future.py
> [echo] Loading X3D model as .py program, if successful then saving as round-trip .x3d version:
> [exec] Traceback (most recent call last):
> [exec] File "C:\x3d-code\www.web3d.org\x3d\content\examples\X3dForWebAuthors\Chapter03Grouping\CoordinateAxesLines.future.py", line 25, in <module>
> [exec] .addChild(x3dpsail.Viewpoint().setDescription("Oblique view").setOrientation(-0.59028,0.76927,0.2445,0.987861).setPosition(6,6,6))
> [exec] File "jnius\jnius_export_class.pxi", line 742, in jnius.JavaMethod.__call__
> [exec] jnius.JavaException: Invalid call, number of argument mismatch, got 4 need 1
> [echo] =====================
> I believe the above can be fixed by wrapping.
> Also, x3dpsail package python file has been created in the pyjnius folder, which includes all X3D python concrete classes. To show that I’m not importing any abstract classes, I ran the following:
> $ grep -v jsail x3dpsail.py
> import jnius_config
> jnius_config.set_classpath('.', 'c:/x3d-code/www.web3d.org/x3d/stylesheets/java/jars/X3DJSAIL.3.3.full.jar', '../../../jars/X3DJSAIL.3.3.full.jar')
> from jnius import autoclass
> The x3dpsail. prefix has been added to all python scenegraph files on my system. Please run a build. Thanks!
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