[x3d-public] python pyjnius mapping
Brutzman, Donald (Don) (CIV)
brutzman at nps.edu
Mon May 13 21:54:09 PDT 2019
On 5/13/2019 4:13 AM, John Carlson wrote:
> I see. Great! It’s like breaking the contract on purpose, but letting people know you did it.
yes, @Override annotation is useful
> I understand now. Just took a few nights sleep. I’m catching up! I’m usually 5 years behind state of research :😉
far better than the international average...
> One think I did was verify all class names, abstract class names and interfaces had unique names.
>
> We could also tack Object back on the jsail names, if necessary.
Good thinking. We definitely don't want pyjnius to be looking at the oversimplistic/insufficient org.web3d.x3d.sai interfaces.
Was thinking we should use fully qualified concrete class names for zero ambiguity, but it looks like you have that pattern correctly listed already:
HelloWorld.py
=============
import classpath
from org.web3d.x3d.jsail.Core.X3DObject import X3DObject as X3D
from org.web3d.x3d.jsail.fields.SFStringObject import SFStringObject as SFString
from org.web3d.x3d.jsail.Core.headObject import headObject as head
etc.
=============
Is there another way we might be mistakenly triggering pyjnius to mistakenly look at abstract classes?
> Cool.
>
> John
>
> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for Windows 10
>
> *From: *Brutzman, Donald (Don) (CIV) <mailto:brutzman at nps.edu>
> *Sent: *Sunday, May 12, 2019 2:23 PM
> *To: *John Carlson <mailto:yottzumm at gmail.com>
> *Cc: *X3D Graphics public mailing list <mailto:x3d-public at web3d.org>
> *Subject: *Re: python pyjnius mapping
>
> agreed it is confusing... reflection can be very tricky.
>
> good observation that we should look hard at what setDEF() returns.
>
> .addChild(Viewpoint().setDEF("ViewUpClose").setCenterOfRotation(0,-1,0).setDescription("Hello world!").setPosition(0,-1,7))
>
> AttributeError: 'org.web3d.x3d.sai.Navigation.X3DViewpointNode' object has no attribute 'setCenterOfRotation'
>
> from ViewpointObject, the method is explicitly declared/customized to Override the parent abstract class.
>
> @Override
>
> public final ViewpointObject setDEF(String newValue)
>
> also available
>
> public ViewpointObject setCenterOfRotation(double x, double y, double z)
>
> public ViewpointObject setCenterOfRotation(float x, float y, float z)
>
> @Override
>
> public ViewpointObject setCenterOfRotation(float[] newValue)
>
> yes still confusing. i think we need to throughly review logic in your classes first before making a conclusive claim against pyjnius... make sure it always looks at classes, not abstract superclasses.
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