[x3d-public] python pyjnius mapping

John Carlson yottzumm at gmail.com
Tue May 14 04:04:18 PDT 2019


Can you show me where in X3DJSAIL creation stylesheets to add addChild
method to X3DConcreteNode?

Thanks!

John

On Mon, May 13, 2019 at 11:54 PM Brutzman, Donald (Don) (CIV) <
brutzman at nps.edu> wrote:

> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20190514/ab25b850/attachment.html>


More information about the x3d-public mailing list