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