示例#1
0
meta6.setContent("a kind of rubik cube with spheres")

head1.addMeta(meta6)

X3D0.setHead(head1)
Scene7 = x3dpsail.Scene()
NavigationInfo8 = x3dpsail.NavigationInfo()
NavigationInfo8.setType(["EXAMINE"])

Scene7.addChildren(NavigationInfo8)
Viewpoint9 = x3dpsail.Viewpoint()
Viewpoint9.setDescription("Rubiks Cube")
Viewpoint9.setPosition([0, 0, 12])

Scene7.addChildren(Viewpoint9)
ProtoDeclare10 = x3dpsail.ProtoDeclare()
ProtoDeclare10.setName("sphere")
ProtoInterface11 = x3dpsail.ProtoInterface()
field12 = x3dpsail.field()
field12.setName("xtranslation")
field12.setAccessType("inputOutput")
field12.setType("SFVec3f")
field12.setValue("0 0 0")

ProtoInterface11.addField(field12)

ProtoDeclare10.setProtoInterface(ProtoInterface11)
ProtoBody13 = x3dpsail.ProtoBody()
Transform14 = x3dpsail.Transform()
IS15 = x3dpsail.IS()
connect16 = x3dpsail.connect()
示例#2
0
])
Background11.setLeftUrl([
    "../resources/images/all_probes/stpeters_cross/stpeters_left.png",
    "https://coderextreme.net/X3DJSONLD/images/all_probes/stpeters_cross/stpeters_left.png"
])
Background11.setRightUrl([
    "../resources/images/all_probes/stpeters_cross/stpeters_right.png",
    "https://coderextreme.net/X3DJSONLD/images/all_probes/stpeters_cross/stpeters_right.png"
])
Background11.setTopUrl([
    "../resources/images/all_probes/stpeters_cross/stpeters_top.png",
    "https://coderextreme.net/X3DJSONLD/images/all_probes/stpeters_cross/stpeters_top.png"
])

Scene9.addChildren(Background11)
ProtoDeclare12 = x3dpsail.ProtoDeclare()
ProtoDeclare12.setName("flower")
ProtoBody13 = x3dpsail.ProtoBody()
Transform14 = x3dpsail.Transform()
Transform14.setDEF("transform")
Shape15 = x3dpsail.Shape()
Appearance16 = x3dpsail.Appearance()
Material17 = x3dpsail.Material()
Material17.setDiffuseColor([0.7, 0.7, 0.7])
Material17.setSpecularColor([0.5, 0.5, 0.5])

Appearance16.setMaterial(Material17)
ComposedCubeMapTexture18 = x3dpsail.ComposedCubeMapTexture()
ComposedCubeMapTexture18.setDEF("texture")
ImageTexture19 = x3dpsail.ImageTexture()
ImageTexture19.setUrl([
示例#3
0
     "EXAMINE"
 ]))).addChild(x3dpsail.Viewpoint().setDescription(
     x3dpsail.SFString("Cubes on Fire")).setPosition(
         x3dpsail.SFVec3f(0, 0, 12))).addChild(x3dpsail.ProtoDeclare(
         ).setName(x3dpsail.SFString("anyShape")).setProtoInterface(
             x3dpsail.ProtoInterface().addField(
                 x3dpsail.field().setName(
                     x3dpsail.SFString("xtranslation")).setAccessType(
                         x3dpsail.SFString("inputOutput")).setType(
                             x3dpsail.SFString("SFVec3f")).setValue(
                                 x3dpsail.SFString("0 0 0"))).
             addField(x3dpsail.field().setName(
                 x3dpsail.SFString("myShape")).setAccessType(
                     x3dpsail.SFString("inputOutput")).setType(
                         x3dpsail.SFString("MFNode")).
                      addChild(x3dpsail.Shape().setGeometry(
                          x3dpsail.Sphere()).setAppearance(
                              x3dpsail.Appearance().setMaterial(
                                  x3dpsail.Material().setDiffuseColor(
                                      x3dpsail.SFColor(1, 1, 1))))))
         ).setProtoBody(x3dpsail.ProtoBody().addChild(
             x3dpsail.Transform().setIS(x3dpsail.IS().addConnect(
                 x3dpsail.connect().setNodeField(
                     x3dpsail.SFString("translation")).setProtoField(
                         x3dpsail.SFString("xtranslation")
                     )).addConnect(x3dpsail.connect().setNodeField(
                         x3dpsail.SFString("children")).setProtoField(
                             x3dpsail.SFString("myShape"))))))).
        addChild(x3dpsail.ProtoDeclare(
        ).setName(x3dpsail.SFString("three")).setProtoInterface(
            x3dpsail.ProtoInterface().addField(x3dpsail.field().setName(
示例#4
0
ExternProtoDeclare11.setUrl(["../data/flowerproto.json#FlowerProto"])
field12 = x3dpsail.field()
field12.setName("vertex")
field12.setAccessType("inputOutput")
field12.setType("MFString")

ExternProtoDeclare11.addField(field12)
field13 = x3dpsail.field()
field13.setName("fragment")
field13.setAccessType("inputOutput")
field13.setType("MFString")

ExternProtoDeclare11.addField(field13)

Group10.addChildren(ExternProtoDeclare11)
ProtoDeclare14 = x3dpsail.ProtoDeclare()
ProtoDeclare14.setName("flower")
ProtoBody15 = x3dpsail.ProtoBody()
Group16 = x3dpsail.Group()
ProtoInstance17 = x3dpsail.ProtoInstance()
ProtoInstance17.setName("FlowerProto")
fieldValue18 = x3dpsail.fieldValue()
fieldValue18.setName("vertex")
fieldValue18.setValue("\"../shaders/x3dom_flowers_chromatic.vs\"")

ProtoInstance17.addFieldValue(fieldValue18)
fieldValue19 = x3dpsail.fieldValue()
fieldValue19.setName("fragment")
fieldValue19.setValue("\"../shaders/common.fs\"")

ProtoInstance17.addFieldValue(fieldValue19)
示例#5
0
Material28.setTransparency(0.5)

Appearance27.setMaterial(Material28)

Shape26.setAppearance(Appearance27)
Cylinder29 = x3dpsail.Cylinder()
Cylinder29.setRadius(0.05)

Shape26.setGeometry(Cylinder29)

Transform25.addChildren(Shape26)

Transform24.addChildren(Transform25)

Scene7.addChildren(Transform24)
ProtoDeclare30 = x3dpsail.ProtoDeclare()
ProtoDeclare30.setName("x3dconnector")
ProtoInterface31 = x3dpsail.ProtoInterface()
field32 = x3dpsail.field()
field32.setName("startnode")
field32.setAccessType("initializeOnly")
field32.setType("SFNode")

ProtoInterface31.addField(field32)
field33 = x3dpsail.field()
field33.setName("endnode")
field33.setAccessType("initializeOnly")
field33.setType("SFNode")

ProtoInterface31.addField(field33)
field34 = x3dpsail.field()
示例#6
0
meta6.setContent("a generic proto to connect two objects")

head1.addMeta(meta6)

X3D0.setHead(head1)
Scene7 = x3dpsail.Scene()
Viewpoint8 = x3dpsail.Viewpoint()
Viewpoint8.setPosition([0, 0, 5])
Viewpoint8.setDescription("Only Viewpoint")

Scene7.addChildren(Viewpoint8)
Background9 = x3dpsail.Background()
Background9.setSkyColor([0.4, 0.4, 0.4])

Scene7.addChildren(Background9)
ProtoDeclare10 = x3dpsail.ProtoDeclare()
ProtoDeclare10.setName("point")
ProtoInterface11 = x3dpsail.ProtoInterface()
field12 = x3dpsail.field()
field12.setName("translation")
field12.setAccessType("inputOutput")
field12.setType("SFVec3f")
field12.setValue("0 0 0")

ProtoInterface11.addField(field12)

ProtoDeclare10.setProtoInterface(ProtoInterface11)
ProtoBody13 = x3dpsail.ProtoBody()
Transform14 = x3dpsail.Transform()
Transform14.setDEF("node")
IS15 = x3dpsail.IS()
示例#7
0
                    )).addChild(x3dpsail.ProtoDeclare().setName(
                        x3dpsail.SFString("Bubble")).setProtoBody(
                            x3dpsail.ProtoBody().addChild(
                                x3dpsail.Transform().setDEF(
                                    x3dpsail.SFString("transform")
                                ).addChild(x3dpsail.Shape().setGeometry(
                                    x3dpsail.Sphere().setRadius(
                                        x3dpsail.SFFloat(0.25))).setAppearance(
                                            x3dpsail.Appearance().setMaterial(
                                                x3dpsail.Material(
                                                ).setDiffuseColor(
                                                    x3dpsail.SFColor(
                                                        1, 0,
                                                        0)).setTransparency(
                                                            x3dpsail.SFFloat(
                                                                0.2))))).
                                addChild(x3dpsail.Script().setDEF(
                                    x3dpsail.SFString("bounce")
                                ).addField(x3dpsail.field().setName(
                                    x3dpsail.SFString("scale")
                                ).setAccessType(
                                    x3dpsail.SFString("inputOutput")).setType(
                                        x3dpsail.SFString("SFVec3f")).setValue(
                                            x3dpsail.SFString("1 1 1")
                                        )).addField(x3dpsail.field().setName(
                                            x3dpsail.SFString("translation")
                                        ).setAccessType(
                                            x3dpsail.SFString("inputOutput")
                                        ).setType(x3dpsail.SFString(
                                            "SFVec3f")).setValue(
                                                x3dpsail.SFString("0 0 0"))).
                                         addField(x3dpsail.field().setName(
                                             x3dpsail.SFString("velocity")
                                         ).setAccessType(
                                             x3dpsail.SFString("inputOutput")
                                         ).setType(x3dpsail.SFString(
                                             "SFVec3f")).setValue(
                                                 x3dpsail.SFString("0 0 0"))).
                                         addField(x3dpsail.field().setName(
                                             x3dpsail.SFString("scalvel")
                                         ).setAccessType(
                                             x3dpsail.SFString("inputOutput")
                                         ).setType(x3dpsail.SFString(
                                             "SFVec3f")).setValue(
                                                 x3dpsail.SFString("0 0 0"))).
                                         addField(x3dpsail.field().setName(
                                             x3dpsail.SFString("set_fraction")
                                         ).setAccessType(
                                             x3dpsail.SFString("inputOnly")
                                         ).setType(
                                             x3dpsail.SFString("SFFloat")
                                         )).setSourceCode('''ecmascript:\n"+
"function initialize() {\n"+
"    velocity = new SFVec3f(Math.random() * 0.25 - 0.125, Math.random() * 0.25 - 0.125, Math.random() * 0.25 - 0.125);\n"+
"\n"+
"    scalvel = new SFVec3f(Math.random() * 0.4, Math.random() * 0.4, Math.random() * 0.4);\n"+
"}\n"+
"\n"+
"function set_fraction(value) {\n"+
"	translation = new SFVec3f(\n"+
"		translation.x + velocity.x,\n"+
"		translation.y + velocity.y,\n"+
"		translation.z + velocity.z);\n"+
"	scale = new SFVec3f(\n"+
"		scale.x + scalvel.x,\n"+
"		scale.y + scalvel.y,\n"+
"		scale.z + scalvel.z);\n"+
"        // if you get to far away or too big, explode\n"+
"        if ( Math.abs(translation.x) > 256) {\n"+
"		translation.x = 0;\n"+
"		initialize();\n"+
"	}\n"+
"        if ( Math.abs(translation.y) > 256) {\n"+
"		translation.y = 0;\n"+
"		initialize();\n"+
"	}\n"+
"        if ( Math.abs(translation.z) > 256) {\n"+
"		translation.z = 0;\n"+
"		initialize();\n"+
"	}\n"+
"	if (Math.abs(scale.x) > 20) {\n"+
"		scale.x = scale.x/2;\n"+
"		translation.x = 0;\n"+
"		initialize();\n"+
"	}\n"+
"	if (Math.abs(scale.y) > 20) {\n"+
"		scale.y = scale.y/2;\n"+
"		translation.y = 0;\n"+
"		initialize();\n"+
"	}\n"+
"	if (Math.abs(scale.z) > 20) {\n"+
"		scale.z = scale.z/2;\n"+
"		translation.z = 0;\n"+
"		initialize();\n"+
"	}\n"+
"}''')).addChild(x3dpsail.TimeSensor().setDEF(
                                             x3dpsail.SFString("bubbleClock")).
                 setCycleInterval(x3dpsail.SFTime(10)).setLoop(
                     x3dpsail.SFBool(True))).addChild(
                         x3dpsail.ROUTE().setFromNode(
                             x3dpsail.SFString("bounce")).setFromField(
                                 x3dpsail.SFString("translation_changed")).
                         setToNode(x3dpsail.SFString("transform")).setToField(
                             x3dpsail.SFString("set_translation"))
                     ).addChild(x3dpsail.ROUTE().setFromNode(
                         x3dpsail.SFString("bounce")).setFromField(
                             x3dpsail.SFString("scale_changed")).setToNode(
                                 x3dpsail.SFString("transform")).setToField(
                                     x3dpsail.SFString("set_scale"))
                                ).addChild(x3dpsail.ROUTE().setFromNode(
                                    x3dpsail.SFString("bubbleClock")
                                ).setFromField(
                                    x3dpsail.SFString("fraction_changed")
                                ).setToNode(
                                    x3dpsail.SFString("bounce")).setToField(
                                        x3dpsail.SFString("set_fraction")))))).
示例#8
0
    ).addChild(x3dpsail.ProtoDeclare().setName(x3dpsail.SFString(
        "Bubble"
    )).setProtoBody(x3dpsail.ProtoBody().addChild(x3dpsail.Transform().setDEF(
        x3dpsail
        .SFString("transform")
    ).addChild(x3dpsail.Shape().setDEF(x3dpsail.SFString(
        "myShape"
    )).setAppearance(x3dpsail.Appearance().setMaterial(x3dpsail.Material(
    ).setDiffuseColor(x3dpsail.SFColor(
        0.7, 0.7, 0.7
    )).setSpecularColor(x3dpsail.SFColor(
        0.5, 0.5, 0.5
    ))).setTexture(x3dpsail.ComposedCubeMapTexture().setDEF(
        x3dpsail
        .SFString("texture")
    ).setBack(x3dpsail.ImageTexture().setUrl(
        x3dpsail
        .MFString([
            "../resources/images/all_probes/stpeters_cross/stpeters_back.png",
            "https://coderextreme.net/X3DJSONLD/images/all_probes/stpeters_cross/stpeters_back.png"
        ])
    )).setBottom(x3dpsail.ImageTexture().setUrl(
        x3dpsail.MFString([
            "../resources/images/all_probes/stpeters_cross/stpeters_bottom.png",
            "https://coderextreme.net/X3DJSONLD/images/all_probes/stpeters_cross/stpeters_bottom.png"
        ])
    )).setFront(x3dpsail.ImageTexture().setUrl(
        x3dpsail.MFString([
            "../resources/images/all_probes/stpeters_cross/stpeters_front.png",
            "https://coderextreme.net/X3DJSONLD/images/all_probes/stpeters_cross/stpeters_front.png"
        ])
    )).setLeft(x3dpsail.ImageTexture().setUrl(
        x3dpsail.MFString([
            "../resources/images/all_probes/stpeters_cross/stpeters_left.png",
            "https://coderextreme.net/X3DJSONLD/images/all_probes/stpeters_cross/stpeters_left.png"
        ])
    )).setRight(x3dpsail.ImageTexture().setUrl(
        x3dpsail.MFString([
            "../resources/images/all_probes/stpeters_cross/stpeters_right.png",
            "https://coderextreme.net/X3DJSONLD/images/all_probes/stpeters_cross/stpeters_right.png"
        ])
    )).setTop(x3dpsail.ImageTexture().setUrl(
        x3dpsail.MFString([
            "../resources/images/all_probes/stpeters_cross/stpeters_top.png",
            "https://coderextreme.net/X3DJSONLD/images/all_probes/stpeters_cross/stpeters_top.png"
        ]))))
                     #<ComposedShader DEF='gl' language=\"GLSL\"> <field name='cube' type='SFInt32' accessType=\"inputOutput\" value='0'/> <field name='chromaticDispertion' type='SFVec3f' accessType=\"inputOutput\" value='0.98 1.0 1.033'/> <field name='bias' type='SFFloat' accessType=\"inputOutput\" value='0.5'/> <field name='scale' type='SFFloat' accessType=\"inputOutput\" value='0.5'/> <field name='power' type='SFFloat' accessType=\"inputOutput\" value='2.0'/> <ShaderPart url='\"../shaders/gl.vs\" \"https://coderextreme.net/X3DJSONLD/shaders/gl.vs\"' type='VERTEX'></ShaderPart> <ShaderPart url='\"../shaders/pc_bubbles.fs\" \"https://coderextreme.net/X3DJSONLD/shaders/pc_bubbles.fs\"' type='FRAGMENT'></ShaderPart> </ComposedShader> <ComposedShader DEF='freewrl' language=\"GLSL\"> <field name='fw_textureCoodGenType' type='SFInt32' accessType=\"inputOutput\" value='0'/> <field name='chromaticDispertion' type='SFVec3f' accessType=\"inputOutput\" value='0.98 1.0 1.033'/> <field name='bias' type='SFFloat' accessType=\"inputOutput\" value='0.5'/> <field name='scale' type='SFFloat' accessType=\"inputOutput\" value='0.5'/> <field name='power' type='SFFloat' accessType=\"inputOutput\" value='2.0'/> <ShaderPart url='\"../shaders/freewrl.vs\" \"https://coderextreme.net/X3DJSONLD/shaders/freewrl.vs\"' type='VERTEX'></ShaderPart> <ShaderPart url='\"../shaders/pc_bubbles.fs\" \"https://coderextreme.net/X3DJSONLD/shaders/pc_bubbles.fs\"' type='FRAGMENT'></ShaderPart> </ComposedShader>

                     #<ComposedShader DEF='instant' language=\"GLSL\"> <field name='cube' type='SFInt32' accessType=\"inputOutput\" value='0'/> <field name='chromaticDispertion' type='SFVec3f' accessType=\"inputOutput\" value='0.98 1.0 1.033'/> <field name='bias' type='SFFloat' accessType=\"inputOutput\" value='0.5'/> <field name='scale' type='SFFloat' accessType=\"inputOutput\" value='0.5'/> <field name='power' type='SFFloat' accessType=\"inputOutput\" value='2.0'/> <ShaderPart url='\"../shaders/instant.vs\" \"https://coderextreme.net/X3DJSONLD/shaders/instant.vs\"' type='VERTEX'></ShaderPart> <ShaderPart url='\"../shaders/pc_bubbles.fs\" \"https://coderextreme.net/X3DJSONLD/shaders/pc_bubbles.fs\"' type='FRAGMENT'></ShaderPart> </ComposedShader>
                     .addShaders(x3dpsail.ComposedShader().setDEF(
                         x3dpsail.SFString("x3dom")
                     ).setLanguage(x3dpsail.SFString("GLSL")).addField(
                         x3dpsail.field().setName(x3dpsail.SFString("cube"))
                         .setType(x3dpsail.SFString("SFInt32")).setAccessType(
                             x3dpsail.SFString("inputOutput")).setValue(
                                 x3dpsail.SFString("0"))
                     ).addField(x3dpsail.field().setName(
                         x3dpsail.SFString("chromaticDispertion")
                     ).setType(x3dpsail.SFString("SFVec3f")).setAccessType(
                         x3dpsail.SFString("inputOutput")
                     ).setValue(x3dpsail.SFString("0.98 1 1.033"))).addField(
                         x3dpsail.field().setName(x3dpsail.SFString("bias")).
                         setType(
                             x3dpsail.SFString("SFFloat")
                         ).setAccessType(x3dpsail.SFString("inputOutput"))
                         .setValue(x3dpsail.SFString("0.5"))
                     ).addField(x3dpsail.field().setName(
                         x3dpsail.SFString("scale")
                     ).setType(
                         x3dpsail.SFString("SFFloat")
                     ).setAccessType(
                         x3dpsail.SFString("inputOutput")
                     ).setValue(
                         x3dpsail.SFString("0.5")
                     )).addField(x3dpsail.field().setName(
                         x3dpsail.SFString("power")
                     ).setType(
                         x3dpsail.SFString("SFFloat")
                     ).setAccessType(
                         x3dpsail.SFString("inputOutput")
                     ).setValue(
                         x3dpsail.SFString("2")
                     )).addParts(x3dpsail.ShaderPart().setUrl(
                         x3dpsail.MFString([
                             "../shaders/x3dom.vs",
                             "https://coderextreme.net/X3DJSONLD/shaders/x3dom.vs"
                         ])
                     ).setType(
                         x3dpsail.SFString("VERTEX")
                     )).addParts(x3dpsail.ShaderPart().setUrl(
                         x3dpsail
                         .MFString([
                             "../shaders/pc_bubbles.fs",
                             "https://coderextreme.net/X3DJSONLD/shaders/pc_bubbles.fs"
                         ])).setType(x3dpsail.SFString("FRAGMENT")))).
                     addShaders(x3dpsail.ComposedShader(
                     ).setDEF(x3dpsail.SFString("cobweb")).setLanguage(
                         x3dpsail.SFString("GLSL")
                     ).addField(x3dpsail.field().setName(
                         x3dpsail.SFString("cube")
                     ).setType(x3dpsail.SFString(
                         "SFNode"
                     )).setAccessType(x3dpsail.SFString(
                         "inputOutput"
                     )).addChild(x3dpsail.ComposedCubeMapTexture().setUSE(
                         x3dpsail
                         .SFString("texture")
                     ))).addField(
                         x3dpsail
                         .field()
                         .setName(x3dpsail.SFString("chromaticDispertion"))
                         .setType(x3dpsail.SFString("SFVec3f"))
                         .setAccessType(x3dpsail.SFString("inputOutput"))
                         .setValue(x3dpsail.SFString("0.98 1 1.033"))
                     ).addField(x3dpsail.field().setName(
                         x3dpsail.SFString("bias")
                     ).setType(
                         x3dpsail.SFString("SFFloat")
                     ).setAccessType(
                         x3dpsail.SFString("inputOutput")
                     ).setValue(
                         x3dpsail.SFString("0.5")
                     )).addField(x3dpsail.field().setName(
                         x3dpsail.SFString("scale")
                     ).setType(
                         x3dpsail.SFString("SFFloat")
                     ).setAccessType(
                         x3dpsail.SFString("inputOutput")
                     ).setValue(
                         x3dpsail.SFString("0.5")
                     )).addField(x3dpsail.field().setName(
                         x3dpsail.SFString("power")
                     ).setType(
                         x3dpsail.SFString("SFFloat")
                     ).setAccessType(
                         x3dpsail.SFString("inputOutput")
                     ).setValue(
                         x3dpsail.SFString("2")
                     )).addParts(x3dpsail.ShaderPart().setUrl(
                         x3dpsail.MFString([
                             "../shaders/cobweb.vs",
                             "https://coderextreme.net/X3DJSONLD/shaders/cobweb.vs"
                         ])
                     ).setType(
                         x3dpsail.SFString("VERTEX")
                     )).addParts(x3dpsail.ShaderPart().setUrl(
                         x3dpsail
                         .MFString([
                             "../shaders/pc_bubbles.fs",
                             "https://coderextreme.net/X3DJSONLD/shaders/pc.fs"
                         ])).setType(x3dpsail.SFString("FRAGMENT"))))).
               setGeometry(
                   x3dpsail.Sphere()))).addChild(x3dpsail.Script().setDEF(
                       x3dpsail.SFString("Bounce")).addField(
                           x3dpsail.field().setName(
                               x3dpsail.SFString("translation")).setAccessType(
                                   x3dpsail.SFString("inputOutput")).setType(
                                       x3dpsail.SFString("SFVec3f")).setValue(
                                           x3dpsail.SFString("0 0 0"))
                       ).addField(
                           x3dpsail.field().setName(
                               x3dpsail.SFString("velocity")).setAccessType(
                                   x3dpsail.SFString("inputOutput")).setType(
                                       x3dpsail.SFString("SFVec3f")).setValue(
                                           x3dpsail.SFString("0 0 0"))
                       ).addField(x3dpsail.field().setName(
                           x3dpsail.SFString("set_fraction")).setAccessType(
                               x3dpsail.SFString("inputOnly")).setType(
                                   x3dpsail.SFString("SFTime"))).setSourceCode(
                                       '''ecmascript:\n"+
"			function initialize() {\n"+
"			    translation = new SFVec3f(0, 0, 0);\n"+
"			    velocity = new SFVec3f(\n"+
"			    	Math.random() - 0.5,\n"+
"				Math.random() - 0.5,\n"+
"				Math.random() - 0.5);\n"+
"			}\n"+
"			function set_fraction() {\n"+
"			    translation = new SFVec3f(\n"+
"			    	translation.x + velocity.x,\n"+
"				translation.y + velocity.y,\n"+
"				translation.z + velocity.z);\n"+
"			    if (Math.abs(translation.x) > 10) {\n"+
"				initialize();\n"+
"			    } else if (Math.abs(translation.y) > 10) {\n"+
"				initialize();\n"+
"			    } else if (Math.abs(translation.z) > 10) {\n"+
"				initialize();\n"+
"			    } else {\n"+
"				velocity.x += Math.random() * 0.2 - 0.1;\n"+
"				velocity.y += Math.random() * 0.2 - 0.1;\n"+
"				velocity.z += Math.random() * 0.2 - 0.1;\n"+
"			    }\n"+
"			}''')).addChild(x3dpsail.TimeSensor().setDEF(x3dpsail.SFString(
                                           "TourTime")).setCycleInterval(
                                               x3dpsail.SFTime(0.15)).setLoop(
                                                   x3dpsail.SFBool(True))).
                    addChild(x3dpsail.ROUTE().setFromNode(
                        x3dpsail.SFString("TourTime")).setFromField(
                            x3dpsail.SFString("cycleTime")).setToNode(
                                x3dpsail.SFString("Bounce")).setToField(
                                    x3dpsail.SFString("set_fraction"))).
                    addChild(x3dpsail.ROUTE().setFromNode(
                        x3dpsail.SFString("Bounce")).setFromField(
                            x3dpsail.SFString(
                                "translation_changed")).setToNode(
                                    x3dpsail.SFString("transform")).setToField(
                                        x3dpsail.SFString("set_translation"))))
示例#9
0
 ))).addField(
     x3dpsail
     .field()
     .setName(x3dpsail.SFString("orientation_changed"))
     .setAccessType(x3dpsail.SFString("outputOnly"))
     .setType(x3dpsail.SFString("SFRotation"))
 ).addField(
     x3dpsail
     .field()
     .setName(x3dpsail.SFString("outputViewpointString"))
     .setAccessType(x3dpsail.SFString("outputOnly"))
     .setType(x3dpsail.SFString("MFString"))
 )).addChild(x3dpsail.ProtoDeclare().setName(
     x3dpsail
     .SFString("NewWorldInfoNode")
 ).setProtoBody(x3dpsail.ProtoBody().addChild(x3dpsail.WorldInfo().setDEF(
     x3dpsail
     .SFString("ExamplePrototypeBody")
 )))).addChild(x3dpsail.ProtoInstance().setName(
     x3dpsail
     .SFString("NewWorldInfoNode")
 )).addChild(x3dpsail.ProtoDeclare().setName(
     x3dpsail
     .SFString("EmissiveMaterial")
 ).setProtoInterface(x3dpsail.ProtoInterface().addField(
     x3dpsail
     .field()
     .setName(x3dpsail.SFString("onlyColor"))
     .setAccessType(x3dpsail.SFString("inputOutput"))
     .setType(x3dpsail.SFString("SFColor"))
     .setValue(x3dpsail.SFString("1 0 0"))
示例#10
0
Scene9.addChildren(NavigationInfo10)
Background11 = x3dpsail.Background()
Background11.setBackUrl(["../resources/images/all_probes/stpeters_cross/stpeters_back.png","https://coderextreme.net/X3DJSONLD/images/all_probes/stpeters_cross/stpeters_back.png"])
Background11.setBottomUrl(["../resources/images/all_probes/stpeters_cross/stpeters_bottom.png","https://coderextreme.net/X3DJSONLD/images/all_probes/stpeters_cross/stpeters_bottom.png"])
Background11.setFrontUrl(["../resources/images/all_probes/stpeters_cross/stpeters_front.png","https://coderextreme.net/X3DJSONLD/images/all_probes/stpeters_cross/stpeters_front.png"])
Background11.setLeftUrl(["../resources/images/all_probes/stpeters_cross/stpeters_left.png","https://coderextreme.net/X3DJSONLD/images/all_probes/stpeters_cross/stpeters_left.png"])
Background11.setRightUrl(["../resources/images/all_probes/stpeters_cross/stpeters_right.png","https://coderextreme.net/X3DJSONLD/images/all_probes/stpeters_cross/stpeters_right.png"])
Background11.setTopUrl(["../resources/images/all_probes/stpeters_cross/stpeters_top.png","https://coderextreme.net/X3DJSONLD/images/all_probes/stpeters_cross/stpeters_top.png"])

Scene9.addChildren(Background11)
Viewpoint12 = x3dpsail.Viewpoint()
Viewpoint12.setPosition([0,0,20])
Viewpoint12.setDescription("Look at the bubbles flying")

Scene9.addChildren(Viewpoint12)
ProtoDeclare13 = x3dpsail.ProtoDeclare()
ProtoDeclare13.setName("Bubble")
ProtoBody14 = x3dpsail.ProtoBody()
Transform15 = x3dpsail.Transform()
Transform15.setDEF("transform")
Shape16 = x3dpsail.Shape()
Shape16.setDEF("myShape")
Appearance17 = x3dpsail.Appearance()
Material18 = x3dpsail.Material()
Material18.setDiffuseColor([0.7,0.7,0.7])
Material18.setSpecularColor([0.5,0.5,0.5])

Appearance17.setMaterial(Material18)
ComposedCubeMapTexture19 = x3dpsail.ComposedCubeMapTexture()
ComposedCubeMapTexture19.setDEF("texture")
ImageTexture20 = x3dpsail.ImageTexture()
示例#11
0
meta6.setContent("a white rubik cube")

head1.addMeta(meta6)

X3D0.setHead(head1)
Scene7 = x3dpsail.Scene()
NavigationInfo8 = x3dpsail.NavigationInfo()
NavigationInfo8.setType(["EXAMINE"])

Scene7.addChildren(NavigationInfo8)
Viewpoint9 = x3dpsail.Viewpoint()
Viewpoint9.setDescription("Rubiks Cube on Fire")
Viewpoint9.setPosition([0, 0, 12])

Scene7.addChildren(Viewpoint9)
ProtoDeclare10 = x3dpsail.ProtoDeclare()
ProtoDeclare10.setName("anyShape")
ProtoInterface11 = x3dpsail.ProtoInterface()
field12 = x3dpsail.field()
field12.setName("xtranslation")
field12.setAccessType("inputOutput")
field12.setType("SFVec3f")
field12.setValue("0 0 0")

ProtoInterface11.addField(field12)
field13 = x3dpsail.field()
field13.setName("myShape")
field13.setAccessType("inputOutput")
field13.setType("SFNode")
Sphere14 = x3dpsail.Sphere()
示例#12
0
                                 x3dpsail.SFString("generator")).setContent(
                                     x3dpsail.SFString("manual"))).
     addMeta(x3dpsail.meta().setName(
         x3dpsail.SFString("identifier")).setContent(
             x3dpsail.SFString(
                 "https://coderextreme.net/X3DJSONLD/abox.x3d"))).addMeta(
                     x3dpsail.meta().setName(
                         x3dpsail.SFString("description")).setContent(
                             x3dpsail.SFString("a box")))
 ).setScene(x3dpsail.Scene().addChild(x3dpsail.ProtoDeclare().setName(
     x3dpsail.SFString("anyShape")).setProtoInterface(
         x3dpsail.ProtoInterface().addField(x3dpsail.field().setName(
             x3dpsail.SFString("myShape")).setAccessType(
                 x3dpsail.SFString("inputOutput")).setType(
                     x3dpsail.SFString("MFNode")).addChild(
                         x3dpsail.Shape().setGeometry(x3dpsail.Sphere())))
     ).setProtoBody(x3dpsail.ProtoBody().addChild(
         x3dpsail.Transform().setIS(
             x3dpsail.IS().addConnect(x3dpsail.connect().setNodeField(
                 x3dpsail.SFString("children")).setProtoField(
                     x3dpsail.SFString("myShape"))))
     ))).addChild(x3dpsail.ProtoDeclare().setName(
         x3dpsail.SFString("one")).setProtoInterface(
             x3dpsail.ProtoInterface().addField(x3dpsail.field().setName(
                 x3dpsail.SFString("myShape")).setAccessType(
                     x3dpsail.SFString("inputOutput")).setType(
                         x3dpsail.SFString("MFNode")).addChild(
                             x3dpsail.Shape().setGeometry(
                                 x3dpsail.Cylinder())))
         ).setProtoBody(x3dpsail.ProtoBody().addChild(
             x3dpsail.Transform().addChild(x3dpsail.ProtoInstance().setName(
示例#13
0
                             x3dpsail.SFString(
                                 "a kind of rubik cube with spheres")))
 ).setScene(x3dpsail.Scene().addChild(x3dpsail.NavigationInfo().setType(
     x3dpsail.MFString(["EXAMINE"]))).addChild(
         x3dpsail.Viewpoint().setDescription(
             x3dpsail.SFString("Rubiks Cube")).setPosition(
                 x3dpsail.SFVec3f(0, 0, 12))
     ).addChild(x3dpsail.ProtoDeclare().setName(
         x3dpsail.SFString("sphere")).setProtoInterface(
             x3dpsail.ProtoInterface().addField(x3dpsail.field().setName(
                 x3dpsail.SFString("xtranslation")).setAccessType(
                     x3dpsail.SFString("inputOutput")).setType(
                         x3dpsail.SFString("SFVec3f")).setValue(
                             x3dpsail.SFString("0 0 0")))
         ).setProtoBody(x3dpsail.ProtoBody().addChild(
             x3dpsail.Transform().setIS(x3dpsail.IS().addConnect(
                 x3dpsail.connect().setNodeField(
                     x3dpsail.SFString("translation")).setProtoField(
                         x3dpsail.SFString("xtranslation")))).addChild(
                             x3dpsail.Shape().setGeometry(x3dpsail.Sphere(
                             )).setAppearance(
                                 x3dpsail.Appearance().setMaterial(
                                     x3dpsail.Material().setDiffuseColor(
                                         x3dpsail.SFColor(1, 1, 1)))))
         ))).addChild(x3dpsail.ProtoDeclare().setName(
             x3dpsail.SFString("three")).setProtoInterface(
                 x3dpsail.ProtoInterface().addField(
                     x3dpsail.field().setName(
                         x3dpsail.SFString("ytranslation")).setAccessType(
                             x3dpsail.SFString("inputOutput")).setType(
                                 x3dpsail.SFString("SFVec3f")).setValue(
                                     x3dpsail.SFString("0 0 0")))
ExternProtoDeclare18.addField(field22)
field23 = x3dpsail.field()
field23.setName("orientation_changed")
field23.setAccessType("outputOnly")
field23.setType("SFRotation")

ExternProtoDeclare18.addField(field23)
field24 = x3dpsail.field()
field24.setName("outputViewpointString")
field24.setAccessType("outputOnly")
field24.setType("MFString")

ExternProtoDeclare18.addField(field24)

Scene17.addChildren(ExternProtoDeclare18)
ProtoDeclare25 = x3dpsail.ProtoDeclare()
ProtoDeclare25.setName("NewWorldInfoNode")
ProtoBody26 = x3dpsail.ProtoBody()
WorldInfo27 = x3dpsail.WorldInfo()
WorldInfo27.setDEF("ExamplePrototypeBody")

ProtoBody26.addChildren(WorldInfo27)

ProtoDeclare25.setProtoBody(ProtoBody26)

Scene17.addChildren(ProtoDeclare25)
ProtoInstance28 = x3dpsail.ProtoInstance()
ProtoInstance28.setName("NewWorldInfoNode")

Scene17.addChildren(ProtoInstance28)
ProtoDeclare29 = x3dpsail.ProtoDeclare()
示例#15
0
head1.addMeta(meta7)
meta8 = x3dpsail.meta()
meta8.setName("identifier")
meta8.setContent("https://coderextreme.net/x3d/pp3.x3d")

head1.addMeta(meta8)
meta9 = x3dpsail.meta()
meta9.setName("generator")
meta9.setContent("manual")

head1.addMeta(meta9)

X3D0.setHead(head1)
Scene10 = x3dpsail.Scene()
ProtoDeclare11 = x3dpsail.ProtoDeclare()
ProtoDeclare11.setName("Process")
ProtoBody12 = x3dpsail.ProtoBody()
Group13 = x3dpsail.Group()
#left
Transform14 = x3dpsail.Transform()
Transform14.setScale([0.5,0.5,0.5])
Shape15 = x3dpsail.Shape()
Appearance16 = x3dpsail.Appearance()
Material17 = x3dpsail.Material()
Material17.setDiffuseColor([0.7,1,0])
Material17.setTransparency(0.5)

Appearance16.setMaterial(Material17)

Shape15.setAppearance(Appearance16)
示例#16
0
head1.addMeta(meta5)
meta6 = x3dpsail.meta()
meta6.setName("description")
meta6.setContent("beginnings of a force directed graph in 3D")

head1.addMeta(meta6)
meta7 = x3dpsail.meta()
meta7.setName("generator")
meta7.setContent("Vim, X3D-Edit, https://savage.nps.edu/X3D-Edit")

head1.addMeta(meta7)

X3D0.setHead(head1)
Scene8 = x3dpsail.Scene()
ProtoDeclare9 = x3dpsail.ProtoDeclare()
ProtoDeclare9.setName("node")
ProtoInterface10 = x3dpsail.ProtoInterface()
field11 = x3dpsail.field()
field11.setName("position")
field11.setAccessType("inputOutput")
field11.setType("SFVec3f")
field11.setValue("0 0 0")

ProtoInterface10.addField(field11)

ProtoDeclare9.setProtoInterface(ProtoInterface10)
ProtoBody12 = x3dpsail.ProtoBody()
Transform13 = x3dpsail.Transform()
Transform13.setDEF("transform")
IS14 = x3dpsail.IS()
示例#17
0
meta6.setContent("a green rubik cube")

head1.addMeta(meta6)

X3D0.setHead(head1)
Scene7 = x3dpsail.Scene()
NavigationInfo8 = x3dpsail.NavigationInfo()
NavigationInfo8.setType(["EXAMINE"])

Scene7.addChildren(NavigationInfo8)
Viewpoint9 = x3dpsail.Viewpoint()
Viewpoint9.setDescription("Rubiks Cube on Fire")
Viewpoint9.setPosition([0, 0, 12])

Scene7.addChildren(Viewpoint9)
ProtoDeclare10 = x3dpsail.ProtoDeclare()
ProtoDeclare10.setName("anyShape")
ProtoInterface11 = x3dpsail.ProtoInterface()
field12 = x3dpsail.field()
field12.setName("xtranslation")
field12.setAccessType("inputOutput")
field12.setType("SFVec3f")
field12.setValue("0 0 0")

ProtoInterface11.addField(field12)
field13 = x3dpsail.field()
field13.setName("myShape")
field13.setAccessType("inputOutput")
field13.setType("MFNode")
Shape14 = x3dpsail.Shape()
Sphere15 = x3dpsail.Sphere()
示例#18
0
        .addChild(x3dpsail.ProtoDeclare().setName(x3dpsail.SFString("x3dconnector"))
          .setProtoInterface(x3dpsail.ProtoInterface()
            .addField(x3dpsail.field().setName(x3dpsail.SFString("startnode")).setAccessType(x3dpsail.SFString("initializeOnly")).setType(x3dpsail.SFString("SFNode")))
            .addField(x3dpsail.field().setName(x3dpsail.SFString("endnode")).setAccessType(x3dpsail.SFString("initializeOnly")).setType(x3dpsail.SFString("SFNode")))
            .addField(x3dpsail.field().setName(x3dpsail.SFString("transnode")).setAccessType(x3dpsail.SFString("initializeOnly")).setType(x3dpsail.SFString("SFNode")))
            .addField(x3dpsail.field().setName(x3dpsail.SFString("rotscalenode")).setAccessType(x3dpsail.SFString("initializeOnly")).setType(x3dpsail.SFString("SFNode")))
            .addField(x3dpsail.field().setName(x3dpsail.SFString("set_startpoint")).setAccessType(x3dpsail.SFString("inputOnly")).setType(x3dpsail.SFString("SFVec3f")))
            .addField(x3dpsail.field().setName(x3dpsail.SFString("set_endpoint")).setAccessType(x3dpsail.SFString("inputOnly")).setType(x3dpsail.SFString("SFVec3f"))))
          .setProtoBody(x3dpsail.ProtoBody()
            .addChild(x3dpsail.Script().setDEF(x3dpsail.SFString("S1"))
              .addField(x3dpsail.field().setName(x3dpsail.SFString("startnode")).setAccessType(x3dpsail.SFString("initializeOnly")).setType(x3dpsail.SFString("SFNode")))
              .addField(x3dpsail.field().setName(x3dpsail.SFString("endnode")).setAccessType(x3dpsail.SFString("initializeOnly")).setType(x3dpsail.SFString("SFNode")))
              .addField(x3dpsail.field().setName(x3dpsail.SFString("transnode")).setAccessType(x3dpsail.SFString("initializeOnly")).setType(x3dpsail.SFString("SFNode")))
              .addField(x3dpsail.field().setName(x3dpsail.SFString("rotscalenode")).setAccessType(x3dpsail.SFString("initializeOnly")).setType(x3dpsail.SFString("SFNode")))
              .addField(x3dpsail.field().setName(x3dpsail.SFString("set_startpoint")).setAccessType(x3dpsail.SFString("inputOnly")).setType(x3dpsail.SFString("SFVec3f")))
              .addField(x3dpsail.field().setName(x3dpsail.SFString("set_endpoint")).setAccessType(x3dpsail.SFString("inputOnly")).setType(x3dpsail.SFString("SFVec3f")))
              .setIS(x3dpsail.IS()
                .addConnect(x3dpsail.connect().setNodeField(x3dpsail.SFString("startnode")).setProtoField(x3dpsail.SFString("startnode")))
                .addConnect(x3dpsail.connect().setNodeField(x3dpsail.SFString("endnode")).setProtoField(x3dpsail.SFString("endnode")))
                .addConnect(x3dpsail.connect().setNodeField(x3dpsail.SFString("transnode")).setProtoField(x3dpsail.SFString("transnode")))
                .addConnect(x3dpsail.connect().setNodeField(x3dpsail.SFString("rotscalenode")).setProtoField(x3dpsail.SFString("rotscalenode")))
                .addConnect(x3dpsail.connect().setNodeField(x3dpsail.SFString("set_startpoint")).setProtoField(x3dpsail.SFString("set_startpoint")))
                .addConnect(x3dpsail.connect().setNodeField(x3dpsail.SFString("set_endpoint")).setProtoField(x3dpsail.SFString("set_endpoint")))).setSourceCode('''ecmascript:\n"+
"        function recompute(startpoint,endpoint){\n"+
"	    if (typeof endpoint === 'undefined') {\n"+
"		return;\n"+
"	    }\n"+
"            var dif = endpoint.subtract(startpoint);\n"+
"            var dist = dif.length()*0.5;\n"+
"            var dif2 = dif.multiply(0.5);\n"+
"            var norm = dif.normalize();\n"+
"            var transl = startpoint.add(dif2);\n"+
"	    if (typeof Quaternion !== 'undefined') {\n"+
"		    return {\n"+
"			    scale : new SFVec3f(1.0,dist,1.0),\n"+
"			    translation : transl,\n"+
"			    rotation : new Quaternion.rotateFromTo(new SFVec3f(0.0,1.0,0.0), norm)\n"+
"		    };\n"+
"	    } else {\n"+
"		    return {\n"+
"			    scale : new SFVec3f(1.0,dist,1.0),\n"+
"			    translation : transl,\n"+
"			    rotation : new SFRotation(new SFVec3f(0.0,1.0,0.0),norm)\n"+
"		    };\n"+
"	    }\n"+
"	}\n"+
"	function recompute_and_route(startpoint, endpoint) {\n"+
"	      var trafo = recompute(startpoint, endpoint);\n"+
"	      transnode.translation = trafo.translation;\n"+
"	      rotscalenode.rotation = trafo.rotation;\n"+
"	      rotscalenode.scale = trafo.scale;\n"+
"	}\n"+
"        function initialize(){\n"+
"            recompute_and_route(startnode.translation,endnode.translation);\n"+
"        }\n"+
"        function set_startpoint(val,t){\n"+
"            recompute_and_route(val,endnode.translation);\n"+
"        }\n"+
"        function set_endpoint(val,t){\n"+
"            recompute_and_route(startnode.translation,val);\n"+
"        }''')
)))
示例#19
0
Material26.setDiffuseColor([0.2, 0.7, 0.7])

Appearance25.setMaterial(Material26)

Shape24.setAppearance(Appearance25)
Cylinder27 = x3dpsail.Cylinder()
Cylinder27.setRadius(0.1)

Shape24.setGeometry(Cylinder27)

Transform23.addChildren(Shape24)

Transform22.addChildren(Transform23)

Scene7.addChildren(Transform22)
ProtoDeclare28 = x3dpsail.ProtoDeclare()
ProtoDeclare28.setName("point")
ProtoInterface29 = x3dpsail.ProtoInterface()
field30 = x3dpsail.field()
field30.setName("translation")
field30.setAccessType("inputOutput")
field30.setType("SFVec3f")
field30.setValue("0 0 0")

ProtoInterface29.addField(field30)

ProtoDeclare28.setProtoInterface(ProtoInterface29)
ProtoBody31 = x3dpsail.ProtoBody()
Transform32 = x3dpsail.Transform()
Transform32.setDEF("node")
IS33 = x3dpsail.IS()
示例#20
0
Material54.setTransparency(0.5)

Appearance53.setMaterial(Material54)

Shape52.setAppearance(Appearance53)
Cylinder55 = x3dpsail.Cylinder()
Cylinder55.setRadius(0.05)

Shape52.setGeometry(Cylinder55)

Transform51.addChildren(Shape52)

Transform50.addChildren(Transform51)

Scene7.addChildren(Transform50)
ProtoDeclare56 = x3dpsail.ProtoDeclare()
ProtoDeclare56.setName("x3dconnector")
ProtoInterface57 = x3dpsail.ProtoInterface()
field58 = x3dpsail.field()
field58.setName("startnode")
field58.setAccessType("initializeOnly")
field58.setType("SFNode")

ProtoInterface57.addField(field58)
field59 = x3dpsail.field()
field59.setName("endnode")
field59.setAccessType("initializeOnly")
field59.setType("SFNode")

ProtoInterface57.addField(field59)
field60 = x3dpsail.field()
示例#21
0
head1.addMeta(meta4)
meta5 = x3dpsail.meta()
meta5.setName("identifier")
meta5.setContent("https://coderextreme.net/X3DJSONLD/abox.x3d")

head1.addMeta(meta5)
meta6 = x3dpsail.meta()
meta6.setName("description")
meta6.setContent("a box")

head1.addMeta(meta6)

X3D0.setHead(head1)
Scene7 = x3dpsail.Scene()
ProtoDeclare8 = x3dpsail.ProtoDeclare()
ProtoDeclare8.setName("anyShape")
ProtoInterface9 = x3dpsail.ProtoInterface()
field10 = x3dpsail.field()
field10.setName("myShape")
field10.setAccessType("inputOutput")
field10.setType("MFNode")
Shape11 = x3dpsail.Shape()
Sphere12 = x3dpsail.Sphere()

Shape11.setGeometry(Sphere12)

field10.addChildren(Shape11)

ProtoInterface9.addField(field10)
示例#22
0
    ).setScene(x3dpsail.Scene().addChild(x3dpsail.ProtoDeclare().setName(
        x3dpsail.SFString("node")).setProtoInterface(
            x3dpsail.ProtoInterface().addField(x3dpsail.field().setName(
                x3dpsail.SFString("position")).setAccessType(
                    x3dpsail.SFString("inputOutput")).setType(
                        x3dpsail.SFString("SFVec3f")).setValue(
                            x3dpsail.SFString("0 0 0")))
        ).setProtoBody(
            x3dpsail.ProtoBody().addChild(x3dpsail.Transform().setDEF(
                x3dpsail.SFString("transform")).setIS(x3dpsail.IS().addConnect(
                    x3dpsail.connect().setNodeField(
                        x3dpsail.SFString("translation")).setProtoField(
                            x3dpsail.SFString("position"))
                )).addChild(
                    x3dpsail.Shape().setGeometry(
                        x3dpsail.Sphere()).setAppearance(
                            x3dpsail.Appearance().setMaterial(
                                x3dpsail.Material().setDiffuseColor(
                                    x3dpsail.SFColor(1, 0, 0))))
                ).addChild(x3dpsail.Transform().setTranslation(
                    x3dpsail.SFVec3f(1, 0, 0)).addChild(
                        x3dpsail.Shape().setGeometry(x3dpsail.Text().setString(
                            x3dpsail.MFString(["Node"])).setFontStyle(
                                x3dpsail.FontStyle().setJustify(
                                    x3dpsail.MFString(["MIDDLE",
                                                       "MIDDLE"])).setSize(
                                                           x3dpsail.SFFloat(5))
                            )).setAppearance(x3dpsail.Appearance().setMaterial(
                                x3dpsail.Material().setDiffuseColor(
                                    x3dpsail.SFColor(0, 0, 1))))))).
            addChild(x3dpsail.PositionInterpolator().setDEF(
                x3dpsail.SFString("NodePosition")).setKey(
                    x3dpsail.MFFloat([0, 1])).setKeyValue(
                        x3dpsail.MFVec3f([0, 0, 0, 0, 5, 0
                                          ]))).
            addChild(x3dpsail.Script().setDEF(
                x3dpsail.SFString("MoveBall")).addField(
                    x3dpsail.field().setName(
                        x3dpsail.SFString("translation")).setAccessType(
                            x3dpsail.SFString("inputOutput")).setType(
                                x3dpsail.SFString("SFVec3f")).setValue(
                                    x3dpsail.SFString("50 50 0"))
                ).addField(x3dpsail.field().setName(
                    x3dpsail.SFString("old")).setAccessType(
                        x3dpsail.SFString("inputOutput")).setType(
                            x3dpsail.SFString("SFVec3f")).setValue(
                                x3dpsail.SFString("0 0 0")
                            )).addField(x3dpsail.field().setName(
                                x3dpsail.SFString("set_cycle")).setAccessType(
                                    x3dpsail.SFString("inputOnly")).setType(
                                        x3dpsail.SFString("SFTime"))).
                     addField(x3dpsail.field().setName(
                         x3dpsail.SFString("keyValue")).setAccessType(
                             x3dpsail.SFString("outputOnly")).setType(
                                 x3dpsail.SFString("MFVec3f"))).setSourceCode(
                                     '''ecmascript:\n"+
"					function set_cycle(value) {\n"+
"                                                old = translation;\n"+
"						translation = new SFVec3f(Math.random()*100-50, Math.random()*100-50, Math.random()*100-50);\n"+
"                                                keyValue = new MFVec3f([old, translation]);\n"+
"						// Browser.println(translation);\n"+
"					}''')).
            addChild(x3dpsail.TimeSensor().setDEF(
                x3dpsail.SFString("nodeClock")).setCycleInterval(
                    x3dpsail.SFTime(3)).setLoop(x3dpsail.SFBool(
                        True))).addChild(x3dpsail.ROUTE().setFromNode(
                            x3dpsail.SFString("nodeClock")).setFromField(
                                x3dpsail.SFString("cycleTime")).setToNode(
                                    x3dpsail.SFString("MoveBall")).setToField(
                                        x3dpsail.SFString("set_cycle"))).
            addChild(x3dpsail.ROUTE().setFromNode(
                x3dpsail.SFString("nodeClock")).setFromField(
                    x3dpsail.SFString("fraction_changed")).setToNode(
                        x3dpsail.SFString("NodePosition")).setToField(
                            x3dpsail.SFString("set_fraction"))
                     ).addChild(x3dpsail.ROUTE().setFromNode(
                         x3dpsail.SFString("MoveBall")).setFromField(
                             x3dpsail.SFString("keyValue")).setToNode(
                                 x3dpsail.SFString("NodePosition")).setToField(
                                     x3dpsail.SFString("keyValue"))).
            addChild(x3dpsail.ROUTE().setFromNode(
                x3dpsail.SFString("NodePosition")).setFromField(
                    x3dpsail.SFString("value_changed")).setToNode(
                        x3dpsail.SFString("transform")).setToField(
                            x3dpsail.SFString("set_translation")))
        )).addChild(x3dpsail.ProtoDeclare().setName(
示例#23
0
             ["../data/flowerproto.json#FlowerProto"])).addField(
                 x3dpsail.field().setName(
                     x3dpsail.SFString("vertex")).setAccessType(
                         x3dpsail.SFString("inputOutput")).setType(
                             x3dpsail.SFString("MFString"))
             ).addField(x3dpsail.field().setName(
                 x3dpsail.SFString("fragment")).setAccessType(
                     x3dpsail.SFString("inputOutput")).setType(
                         x3dpsail.SFString("MFString")))).
 addChild(x3dpsail.ProtoDeclare().setName(
     x3dpsail.SFString("flower")).setProtoBody(
         x3dpsail.ProtoBody().addChild(x3dpsail.Group().addChild(
             x3dpsail.ProtoInstance().setName(
                 x3dpsail.SFString("FlowerProto")
             ).addFieldValue(x3dpsail.fieldValue().setName(
                 x3dpsail.SFString("vertex")).setValue(
                     x3dpsail.SFString(
                         "\"../shaders/x3dom_flowers_chromatic.vs\"")
                 )).addFieldValue(x3dpsail.fieldValue().setName(
                     x3dpsail.SFString("fragment")).setValue(
                         x3dpsail.SFString(
                             "\"../shaders/common.fs\""))))))).addChild(
                                 x3dpsail.ProtoInstance().setName(
                                     x3dpsail.SFString("flower"))).
 addChild(x3dpsail.ProtoInstance().setName(
     x3dpsail.SFString("flower"))).addChild(
         x3dpsail.ProtoInstance().setName(
             x3dpsail.SFString("flower"))).addChild(
                 x3dpsail.ProtoInstance().setName(
                     x3dpsail.SFString("flower"))).addChild(
                         x3dpsail.ProtoInstance().setName(
示例#24
0
        .addChild(x3dpsail.ProtoDeclare().setName(x3dpsail.SFString("ArchPrototype")).setAppinfo(x3dpsail.SFString("Create an arch. Can modify general parameters: clearSpanWidth, riseHeight, depth, topAbutmentHeight, pierWidth, pierHeight. - Possibility to create shapes related to an arch: ArchHalf; IntradosOnly; ArchFilled; ArchHalfFilled; Lintel. See the reference file ArchModelingDiagrams.pdf to find further information. See also ArchPrototypeScript_more_readable.js.js."))
          .setProtoInterface(x3dpsail.ProtoInterface()
            #COLOR OF ARCH

            #INPUT PARAMETERS

            #General parameters: measures in meters

            #Parameters to create to create shapes related to arch: put true to apply

            .addField(x3dpsail.field().setName(x3dpsail.SFString("diffuseColor")).setAccessType(x3dpsail.SFString("inputOutput")).setAppinfo(x3dpsail.SFString("color of arch")).setType(x3dpsail.SFString("SFColor")).setValue(x3dpsail.SFString("0.2 0.8 0.8")))
            .addField(x3dpsail.field().setName(x3dpsail.SFString("emissiveColor")).setAccessType(x3dpsail.SFString("inputOutput")).setAppinfo(x3dpsail.SFString("color of arch")).setType(x3dpsail.SFString("SFColor")).setValue(x3dpsail.SFString("0.2 0.8 0.8")))
            .addField(x3dpsail.field().setName(x3dpsail.SFString("clearSpanWidth")).setAccessType(x3dpsail.SFString("initializeOnly")).setAppinfo(x3dpsail.SFString("clearSpanWidth: clearSpanWidth must be double of riseHeight to obtain an half circumference")).setType(x3dpsail.SFString("SFFloat")).setValue(x3dpsail.SFString("4")))
            .addField(x3dpsail.field().setName(x3dpsail.SFString("riseHeight")).setAccessType(x3dpsail.SFString("initializeOnly")).setAppinfo(x3dpsail.SFString("riseHeight: riseHeight must be half of clearSpanWidth to obtain an half circumference")).setType(x3dpsail.SFString("SFFloat")).setValue(x3dpsail.SFString("2")))
            .addField(x3dpsail.field().setName(x3dpsail.SFString("depth")).setAccessType(x3dpsail.SFString("initializeOnly")).setAppinfo(x3dpsail.SFString("depth")).setType(x3dpsail.SFString("SFFloat")).setValue(x3dpsail.SFString("3")))
            .addField(x3dpsail.field().setName(x3dpsail.SFString("topAbutmentHeight")).setAccessType(x3dpsail.SFString("initializeOnly")).setAppinfo(x3dpsail.SFString("topAbutmentHeight:topAbutmentHeight=0 means no topAbutment")).setType(x3dpsail.SFString("SFFloat")).setValue(x3dpsail.SFString("0.5")))
            .addField(x3dpsail.field().setName(x3dpsail.SFString("pierWidth")).setAccessType(x3dpsail.SFString("initializeOnly")).setAppinfo(x3dpsail.SFString("pierWidth:pierWidtht=0 means no pierWidth")).setType(x3dpsail.SFString("SFFloat")).setValue(x3dpsail.SFString("0.5")))
            .addField(x3dpsail.field().setName(x3dpsail.SFString("pierHeight")).setAccessType(x3dpsail.SFString("initializeOnly")).setAppinfo(x3dpsail.SFString("pierHeight: pierHeight=0 means no pierHeight")).setType(x3dpsail.SFString("SFFloat")).setValue(x3dpsail.SFString("1")))
            .addField(x3dpsail.field().setName(x3dpsail.SFString("archHalf")).setAccessType(x3dpsail.SFString("initializeOnly")).setAppinfo(x3dpsail.SFString("archHalf: can modify also clearSpanWidth, riseHeight, depth, pierWidth, pierHeight, topAbutmentHeight, archHalfExtensionWidth at purpose, clearSpanWidth measure refers to a full arc, consider clearSpanWidth/2 for the archHalf width")).setType(x3dpsail.SFString("SFBool")).setValue(x3dpsail.SFString("false")))
            .addField(x3dpsail.field().setName(x3dpsail.SFString("archHalfExtensionWidth")).setAccessType(x3dpsail.SFString("initializeOnly")).setAppinfo(x3dpsail.SFString("archHalfExtensionWidth: measure in meters, use only if archHalf=true, it is the width of the etension of the abutment of the archHalf. See the reference file ArchModelingDiagrams.pdf to find further information.")).setType(x3dpsail.SFString("SFFloat")).setValue(x3dpsail.SFString("0")))
            .addField(x3dpsail.field().setName(x3dpsail.SFString("onlyIntrados")).setAccessType(x3dpsail.SFString("initializeOnly")).setAppinfo(x3dpsail.SFString("onlyIntrados: note it is a flat curved surface, can modify also clearSpanWidth, riseHeight, depth at purpose, if needed apply archHalf=true.")).setType(x3dpsail.SFString("SFBool")).setValue(x3dpsail.SFString("false")))
            .addField(x3dpsail.field().setName(x3dpsail.SFString("archFilled")).setAccessType(x3dpsail.SFString("initializeOnly")).setAppinfo(x3dpsail.SFString("archFilled: note it is an half cylinder, can modify also clearSpanWidth, riseHeight, depth at purpose.")).setType(x3dpsail.SFString("SFBool")).setValue(x3dpsail.SFString("false")))
            .addField(x3dpsail.field().setName(x3dpsail.SFString("archHalfFilled")).setAccessType(x3dpsail.SFString("initializeOnly")).setAppinfo(x3dpsail.SFString("archHalfFilled: note it is a quarter cylinder, can modify also clearSpanWidth, riseHeight, depth at purpose, clearSpanWidth measure refers to a full arc, consider clearSpanWidth/2 for the archHalfFilled width.")).setType(x3dpsail.SFString("SFBool")).setValue(x3dpsail.SFString("false")))
            .addField(x3dpsail.field().setName(x3dpsail.SFString("lintel")).setAccessType(x3dpsail.SFString("initializeOnly")).setAppinfo(x3dpsail.SFString("lintel: no arc is rendered, but a lintel: topAbutmentHeight on pierHeight, total height is pierHeight + topAbutmentHeight, if needed apply archHalf=true.")).setType(x3dpsail.SFString("SFBool")).setValue(x3dpsail.SFString("false"))))
          .setProtoBody(x3dpsail.ProtoBody()
            #First node determines node type of this prototype

            #IndexedFaceset creates arch

            .addChild(x3dpsail.Transform().setDEF(x3dpsail.SFString("ArchTransform"))
              .addChild(x3dpsail.Shape().setDEF(x3dpsail.SFString("Arch"))
                #note that convex='false' (meaning concave geometry) is crucial for this IFS of a geometric chord to render properly

                .setGeometry(x3dpsail.IndexedFaceSet().setDEF(x3dpsail.SFString("ArchIndex")).setConvex(x3dpsail.SFBool(False)).setSolid(x3dpsail.SFBool(False))
                  .setCoord(x3dpsail.Coordinate().setDEF(x3dpsail.SFString("ArchChord"))))
                .setAppearance(x3dpsail.Appearance()
                  .setMaterial(x3dpsail.Material().setDEF(x3dpsail.SFString("MaterialNode"))
                    .setIS(x3dpsail.IS()
                      .addConnect(x3dpsail.connect().setNodeField(x3dpsail.SFString("emissiveColor")).setProtoField(x3dpsail.SFString("emissiveColor")))
                      .addConnect(x3dpsail.connect().setNodeField(x3dpsail.SFString("diffuseColor")).setProtoField(x3dpsail.SFString("diffuseColor"))))))))
            #Subsequent nodes do not render, but still must be a valid X3D subgraph

            #This embedded Script provides the X3D author with additional visibility and control over prototype inputs and outputs

            .addChild(x3dpsail.Script().setDEF(x3dpsail.SFString("ArchPrototypeScript")).setUrl(x3dpsail.MFString(["../node/ArchPrototypeScript.js"]))
              #INPUT PARAMETERS

              #General parameters

              #Parameters to create to create shapes related to arch: put true to apply

              #OUTPUT PARAMETERS

              .addField(x3dpsail.field().setName(x3dpsail.SFString("clearSpanWidth")).setAccessType(x3dpsail.SFString("initializeOnly")).setAppinfo(x3dpsail.SFString("user or default input for clearSpanWidth parameter")).setType(x3dpsail.SFString("SFFloat")))
              .addField(x3dpsail.field().setName(x3dpsail.SFString("riseHeight")).setAccessType(x3dpsail.SFString("initializeOnly")).setAppinfo(x3dpsail.SFString("user or default input for riseHeight parameter")).setType(x3dpsail.SFString("SFFloat")))
              .addField(x3dpsail.field().setName(x3dpsail.SFString("depth")).setAccessType(x3dpsail.SFString("initializeOnly")).setAppinfo(x3dpsail.SFString("user or default input for depth parameter")).setType(x3dpsail.SFString("SFFloat")))
              .addField(x3dpsail.field().setName(x3dpsail.SFString("topAbutmentHeight")).setAccessType(x3dpsail.SFString("initializeOnly")).setAppinfo(x3dpsail.SFString("user or default input for topAbutmentHeight parameter")).setType(x3dpsail.SFString("SFFloat")))
              .addField(x3dpsail.field().setName(x3dpsail.SFString("pierWidth")).setAccessType(x3dpsail.SFString("initializeOnly")).setAppinfo(x3dpsail.SFString("user or default input for pierWidth parameter")).setType(x3dpsail.SFString("SFFloat")))
              .addField(x3dpsail.field().setName(x3dpsail.SFString("pierHeight")).setAccessType(x3dpsail.SFString("initializeOnly")).setAppinfo(x3dpsail.SFString("user or default input for pierHeight parameter")).setType(x3dpsail.SFString("SFFloat")))
              .addField(x3dpsail.field().setName(x3dpsail.SFString("archHalf")).setAccessType(x3dpsail.SFString("initializeOnly")).setAppinfo(x3dpsail.SFString("user or default input for archHalf parameter")).setType(x3dpsail.SFString("SFBool")))
              .addField(x3dpsail.field().setName(x3dpsail.SFString("archHalfExtensionWidth")).setAccessType(x3dpsail.SFString("initializeOnly")).setAppinfo(x3dpsail.SFString("user or default input for archHalfExtensionWidth parameter")).setType(x3dpsail.SFString("SFFloat")))
              .addField(x3dpsail.field().setName(x3dpsail.SFString("onlyIntrados")).setAccessType(x3dpsail.SFString("initializeOnly")).setAppinfo(x3dpsail.SFString("user or default input for onlyIntrados parameter")).setType(x3dpsail.SFString("SFBool")))
              .addField(x3dpsail.field().setName(x3dpsail.SFString("archFilled")).setAccessType(x3dpsail.SFString("initializeOnly")).setAppinfo(x3dpsail.SFString("user or default input for archFilled parameter")).setType(x3dpsail.SFString("SFBool")))
              .addField(x3dpsail.field().setName(x3dpsail.SFString("archHalfFilled")).setAccessType(x3dpsail.SFString("initializeOnly")).setAppinfo(x3dpsail.SFString("user or default input for archHalfFilled parameter")).setType(x3dpsail.SFString("SFBool")))
              .addField(x3dpsail.field().setName(x3dpsail.SFString("lintel")).setAccessType(x3dpsail.SFString("initializeOnly")).setAppinfo(x3dpsail.SFString("user or default input for lintel parameter")).setType(x3dpsail.SFString("SFBool")))
              .addField(x3dpsail.field().setName(x3dpsail.SFString("computedScale")).setAccessType(x3dpsail.SFString("outputOnly")).setAppinfo(x3dpsail.SFString("computedScale: modify scale field - NOTE it is not used to modify the whole arch, but to modify clearSpanWidth, riseHeight, depth. It does not affect topAbutmentHeight, pierWidth, pierHeight, archHalfExtensionWidth")).setType(x3dpsail.SFString("SFVec3f")))
              .addField(x3dpsail.field().setName(x3dpsail.SFString("pointOut")).setAccessType(x3dpsail.SFString("outputOnly")).setAppinfo(x3dpsail.SFString("send computed points to the Coordinate node")).setType(x3dpsail.SFString("MFVec3f")))
              .addField(x3dpsail.field().setName(x3dpsail.SFString("indexOut")).setAccessType(x3dpsail.SFString("outputOnly")).setAppinfo(x3dpsail.SFString("send computed indices to the IndexedFaceSet node")).setType(x3dpsail.SFString("MFInt32")))
              .setIS(x3dpsail.IS()
                .addConnect(x3dpsail.connect().setNodeField(x3dpsail.SFString("clearSpanWidth")).setProtoField(x3dpsail.SFString("clearSpanWidth")))
                .addConnect(x3dpsail.connect().setNodeField(x3dpsail.SFString("riseHeight")).setProtoField(x3dpsail.SFString("riseHeight")))
                .addConnect(x3dpsail.connect().setNodeField(x3dpsail.SFString("depth")).setProtoField(x3dpsail.SFString("depth")))
                .addConnect(x3dpsail.connect().setNodeField(x3dpsail.SFString("pierWidth")).setProtoField(x3dpsail.SFString("pierWidth")))
                .addConnect(x3dpsail.connect().setNodeField(x3dpsail.SFString("topAbutmentHeight")).setProtoField(x3dpsail.SFString("topAbutmentHeight")))
                .addConnect(x3dpsail.connect().setNodeField(x3dpsail.SFString("pierHeight")).setProtoField(x3dpsail.SFString("pierHeight")))
                .addConnect(x3dpsail.connect().setNodeField(x3dpsail.SFString("archHalf")).setProtoField(x3dpsail.SFString("archHalf")))
                .addConnect(x3dpsail.connect().setNodeField(x3dpsail.SFString("archHalfExtensionWidth")).setProtoField(x3dpsail.SFString("archHalfExtensionWidth")))
                .addConnect(x3dpsail.connect().setNodeField(x3dpsail.SFString("onlyIntrados")).setProtoField(x3dpsail.SFString("onlyIntrados")))
                .addConnect(x3dpsail.connect().setNodeField(x3dpsail.SFString("archFilled")).setProtoField(x3dpsail.SFString("archFilled")))
                .addConnect(x3dpsail.connect().setNodeField(x3dpsail.SFString("archHalfFilled")).setProtoField(x3dpsail.SFString("archHalfFilled")))
                .addConnect(x3dpsail.connect().setNodeField(x3dpsail.SFString("lintel")).setProtoField(x3dpsail.SFString("lintel")))))
            .addChild(x3dpsail.ROUTE().setFromField(x3dpsail.SFString("computedScale")).setFromNode(x3dpsail.SFString("ArchPrototypeScript")).setToField(x3dpsail.SFString("scale")).setToNode(x3dpsail.SFString("ArchTransform")))
            .addChild(x3dpsail.ROUTE().setFromField(x3dpsail.SFString("pointOut")).setFromNode(x3dpsail.SFString("ArchPrototypeScript")).setToField(x3dpsail.SFString("point")).setToNode(x3dpsail.SFString("ArchChord")))
            .addChild(x3dpsail.ROUTE().setFromField(x3dpsail.SFString("indexOut")).setFromNode(x3dpsail.SFString("ArchPrototypeScript")).setToField(x3dpsail.SFString("set_coordIndex")).setToNode(x3dpsail.SFString("ArchIndex")))))