[x3d-public] PythonSAI, successfulrunofHelloWorld.kwargs.pysubmissions welcome!

John Carlson yottzumm at gmail.com
Sun Mar 10 21:10:44 PDT 2019


May I suggest that the following fields/items are missing from X3DUOM due to my lack of information.
In particular, first, how is “IS” related to other nodes?  How are field nodes related to ComposedShaders or Script nodes?

Sorry about source code/difficulty reading.

In general, self.name is a node that fields are added to.   Field is the node they are added to, and __choice_table adds them to the python API using access_type index
        field = alone_field("comments", '#comment')
        name = self.processField(field)
        str += self.__choice_table['inputOnly'](field, name)
        if self.name == "ComposedShader":
            field = alone_field("sourceCode", '#cdata')
            name = self.processField(field)
            str += self.__choice_table['inputOnly'](field, name)
        if self.name == "Script":
            field = alone_field("sourceCode", '#cdata')
            name = self.processField(field)
            str += self.__choice_table['inputOnly'](field, name)
        if self.name == "ComposedShader":
            field = alone_field("field", 'MFNode')
            name = self.processField(field)
            str += self.__choice_table['inputOutput'](field, name)
        if self.name == "head":
            field = alone_field("meta", 'MFNode')
            name = self.processField(field)
            str += self.__choice_table['inputOutput'](field, name)
        elif self.name == "Scene":
            field = alone_field("LayerSet", 'MFNode')
            name = self.processField(field)
            str += self.__choice_table['inputOutput'](field, name)
        elif self.name == "TouchSensor":
            field = alone_field("IS", 'MFNode')
            name = self.processField(field)
            str += self.__choice_table['inputOutput'](field, name)
        elif self.name == "NavigationInfo":
            field = alone_field("IS", 'MFNode')
            name = self.processField(field)
            str += self.__choice_table['inputOutput'](field, name)
       elif self.name == "Viewpoint":
            field = alone_field("IS", 'MFNode')
            name = self.processField(field)
            str += self.__choice_table['inputOutput'](field, name)
        elif self.name == "OrientationInterpolator":
            field = alone_field("IS", 'MFNode')
            name = self.processField(field)
            str += self.__choice_table['inputOutput'](field, name)
        elif self.name == "PositionInterpolator":
            field = alone_field("IS", 'MFNode')
            name = self.processField(field)
            str += self.__choice_table['inputOutput'](field, name)
        elif self.name == "DirectionalLight":
            field = alone_field("IS", 'MFNode')
            name = self.processField(field)
            str += self.__choice_table['inputOutput'](field, name)
        elif self.name == "Group":
            field = alone_field("IS", 'MFNode')
            name = self.processField(field)
            str += self.__choice_table['inputOutput'](field, name)
        elif self.name == "Transform":
            field = alone_field("IS", 'MFNode')
            name = self.processField(field)
            str += self.__choice_table['inputOutput'](field, name)
        elif self.name == "Shape":
            field = alone_field("IS", 'MFNode')
            name = self.processField(field)
            str += self.__choice_table['inputOutput'](field, name)
        elif self.name == "Material":
            field = alone_field("IS", 'MFNode')
            name = self.processField(field)
            str += self.__choice_table['inputOutput'](field, name)
        elif self.name == "Script":
            field = alone_field("IS", 'MFNode')
            name = self.processField(field)
            str += self.__choice_table['inputOutput'](field, name)
            field = alone_field("field", 'MFNode')
            name = self.processField(field)
            str += self.__choice_table['inputOutput'](field, name)
        elif self.name == "ProtoInstance":
            field = alone_field("IS", 'MFNode')
            name = self.processField(field)
            str += self.__choice_table['inputOutput'](field, name)
        elif self.name == "ShaderPart":
            field = alone_field("IS", 'MFNode')
            name = self.processField(field)
            str += self.__choice_table['inputOutput'](field, name)

Sent from Mail for Windows 10

From: John Carlson
Sent: Saturday, March 9, 2019 11:39 AM
To: Joseph D Williams; X3D Graphics public mailing list; Don Brutzman; aono at tut.jp
Subject: RE:[x3d-public]PythonSAI,successfulrunofHelloWorld.kwargs.pysubmissions welcome!

Joe, there we problems with the source files you provided.

Please fix up these files:

X3DSkeletonRunning/leftfoot.x3d
X3DSkeletonRunning/lefthand.x3d
Web3dLogo-X3d-animated-logo2.x3d

Thanks,

John
Sent from Mail for Windows 10

From: John Carlson
Sent: Friday, March 8, 2019 2:38 AM
To: Joseph D Williams; X3D Graphics public mailing list; Don Brutzman; aono at tut.jp
Subject: RE: [x3d-public]PythonSAI,successfulrunofHelloWorld.kwargs.pysubmissions welcome!

Joe,

I got rid of surrounding white space just inside ‘ in MFStrings.  I can’t seem to write the code to handle it ☹.

John

Sent from Mail for Windows 10

From: John Carlson
Sent: Friday, March 8, 2019 1:46 AM
To: Joseph D Williams; X3D Graphics public mailing list; Don Brutzman; aono at tut.jp
Subject: RE: [x3d-public] PythonSAI,successfulrunofHelloWorld.kwargs.pysubmissions welcome!

More work, about to release alpha soon.  Ran into this problem:

processScene.python:                                                            
     [exec]   File "C:\x3d-code\www.web3d.org\x3d\stylesheets\java\src\python\py
thonapi\data\BoxManAnimationPanel.kwargs.py", line 29                           
     [exec]     Scene29 = Scene(WorldInfo30 = WorldInfo(info=["(C) 2000 James Sm
ith - james at vapourtech.com","http://www.vapourtech.com/team/james/boxman.wrl","B
laxxun compatibility by Tu Lam - TuL at seamless-solutions.com"], title="BoxMan - A
 Seamless VRML Human"),                                                         
     [exec]                    ^                                                
     [exec] SyntaxError: more than 255 arguments                                
     [exec] Result: 1                                                           
     [echo] C:\x3d-code\www.web3d.org\x3d\stylesheets\java\src\python\pythonapi\
data\BoxManAnimationPanel.kwargs.py                                             

Apparently, we can only have 255 keyword parameters to a constructor.

John

Sent from Mail for Windows 10

From: John Carlson
Sent: Friday, March 8, 2019 12:59 AM
To: Joseph D Williams; X3D Graphics public mailing list; Don Brutzman; aono at tut.jp
Subject: RE: [x3d-public] Python SAI,successfulrunofHelloWorld.kwargs.pysubmissions welcome!

Updated again.  Need to create new code for comparing min/max to array (anyone have some?)  Need some code for 

Suggestions for further development encouraged.

John

Sent from Mail for Windows 10

From: John Carlson
Sent: Thursday, March 7, 2019 5:43 PM
To: Joseph D Williams; X3D Graphics public mailing list; Don Brutzman
Subject: RE: [x3d-public] Python SAI,successful runofHelloWorld.kwargs.pysubmissions welcome!

Should be updated. Still have to deal with kwargs.


John

Sent from Mail for Windows 10

From: John Carlson
Sent: Wednesday, March 6, 2019 11:55 PM
To: Joseph D Williams; X3D Graphics public mailing list; Don Brutzman
Subject: RE: [x3d-public] Python SAI,successful run ofHelloWorld.kwargs.pysubmissions welcome!

Python return to you (no testing done against API).

https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/java/src/python/pythonapi/JoePython.zip

Good luck!

Sent from Mail for Windows 10

From: Joseph D Williams
Sent: Wednesday, March 6, 2019 3:28 PM
To: John Carlson; X3D Graphics public mailing list; Don Brutzman
Subject: RE: [x3d-public] Python SAI,successful run of HelloWorld.kwargs.pysubmissions welcome!

➢ Submit x3d examples to convert to python.


Hi John, great work on the road to pyification of x3d. 
Try some .x3d examples at this link. 

http://hypermultimedia.com/x3d/URLTests/

Also, some examples ar:

http://www.hypermultimedia.com/x3d/JoeX3D/JoeX3D.htm

zip for these examples at: 

http://www.hypermultimedia.com/x3d/JoeX3D/JoeX3D.zip

Thanks and Best, 
Joe

From: John Carlson
Sent: Wednesday, March 6, 2019 4:07 AM
To: X3D Graphics public mailing list; Don Brutzman
Subject: [x3d-public] Python SAI,successful run of HelloWorld.kwargs.py submissions welcome!

Updated SAI: (starting to work)

https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/java/src/python/pythonapi/X3Dpackage.py

Updated HelloWorld.kwargs.py: (runs)

https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/java/src/python/pythonapi/data/HelloWorld.kwargs.py

More example x3d files that I can convert to python are welcome.   Submit x3d examples to convert to python.

John








-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20190310/d4acc72b/attachment-0001.html>


More information about the x3d-public mailing list