[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:
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
Is there another way we might be mistakenly triggering pyjnius to mistakenly look at abstract classes?
> 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.
> 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)
> 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