[x3d-public] Fwd: JSweet translation of X3DJSAIL to JavaScript: need specific design goals first

John Carlson yottzumm at gmail.com
Fri Apr 10 21:24:02 PDT 2020


Here's the nodejs script that works!

John
var java = require('java');
var autoclass = require('./X3Dautoclass');
var ProtoInstance0 = null;
var ProtoInstance1 = null;
      var X3D0 =  new
autoclass.X3D().setProfileSync("Immersive").setVersionSync("3.3")
      .setHeadSync(new autoclass.head()
        .addMetaSync(new
autoclass.meta().setNameSync("title").setContentSync("abox.x3d"))
        .addMetaSync(new
autoclass.meta().setNameSync("creator").setContentSync("John Carlson"))
        .addMetaSync(new
autoclass.meta().setNameSync("generator").setContentSync("manual"))
        .addMetaSync(new
autoclass.meta().setNameSync("identifier").setContentSync("
https://coderextreme.net/X3DJSONLD/abox.x3d"))
        .addMetaSync(new
autoclass.meta().setNameSync("description").setContentSync("a box")))
      .setSceneSync(new autoclass.Scene()
        .addChildSync(new autoclass.ProtoDeclare().setNameSync("anyShape")
          .setProtoInterfaceSync(new autoclass.ProtoInterface()
            .addFieldSync(new
autoclass.field().setTypeSync(autoclass.field.TYPE_MFNODE).setNameSync("myShape").setAccessTypeSync(autoclass.field.ACCESSTYPE_INPUTOUTPUT)
              .addChildSync(new autoclass.Shape()
                .setGeometrySync(new autoclass.Sphere()))))
          .setProtoBodySync(new autoclass.ProtoBody()
            .addChildSync(new autoclass.Transform()
              .setISSync(new autoclass.IS()
                .addConnectSync(new
autoclass.connect().setNodeFieldSync("children").setProtoFieldSync("myShape"))))))
        .addChildSync(new autoclass.ProtoDeclare().setNameSync("one")
          .setProtoInterfaceSync(new autoclass.ProtoInterface()
            .addFieldSync(new
autoclass.field().setTypeSync(autoclass.field.TYPE_MFNODE).setNameSync("myShape").setAccessTypeSync(autoclass.field.ACCESSTYPE_INPUTOUTPUT)
              .addChildSync(new autoclass.Shape()
                .setGeometrySync(new autoclass.Cylinder()))))
          .setProtoBodySync(new autoclass.ProtoBody()
            .addChildSync(new autoclass.Transform()
              .addChildSync(ProtoInstance0 = new
autoclass.ProtoInstance().setNameSync("anyShape")
                .setISSync(new autoclass.IS()
                  .addConnectSync(new
autoclass.connect().setNodeFieldSync("myShape").setProtoFieldSync("myShape")))))))
        .addChildSync(ProtoInstance1 = new
autoclass.ProtoInstance().setNameSync("one")))      ;
ProtoInstance1
          .addFieldValueSync(new
autoclass.fieldValue().setNameSync("myShape")
            .addChildSync(new autoclass.Shape()
              .setGeometrySync(new
autoclass.Box().setSizeSync(java.newArray("float", [java.newFloat(140),
java.newFloat(140), java.newFloat(140)])))));
    X3D0.toFileX3D("../data/abox.new.x3d");

---------- Forwarded message ---------
From: John Carlson <yottzumm at gmail.com>
Date: Fri, Apr 10, 2020 at 11:21 PM
Subject: Re: JSweet translation of X3DJSAIL to JavaScript: need specific
design goals first
To: Don Brutzman <brutzman at nps.edu>
Cc: Andreas Plesch <andreasplesch at gmail.com>, Katie Unger <kunger at ssdllc.biz>,
X3D Graphics public mailing list <x3d-public at web3d.org>


var java = require('java');
java.options.push("-Djava.awt.headless=true");
java.options.push("-Xmx1000m");
//java.options.push("-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005");
java.classpath.push("X3DJSAIL.3.3.full.jar");
java.classpath.push("pythonSAI/X3DJSAIL.3.3.full.jar");
java.classpath.push("../pythonSAI/X3DJSAIL.3.3.full.jar");
java.classpath.push("../../pythonSAI/X3DJSAIL.3.3.full.jar");
java.classpath.push("../../../pythonSAI/X3DJSAIL.3.3.full.jar");
java.classpath.push("../../../../pythonSAI/X3DJSAIL.3.3.full.jar");
module.exports = {
Anchor : java.import('org.web3d.x3d.jsail.Networking.AnchorObject'),
Appearance : java.import('org.web3d.x3d.jsail.Shape.AppearanceObject'),
Arc2D : java.import('org.web3d.x3d.jsail.Geometry2D.Arc2DObject'),
ArcClose2D : java.import('org.web3d.x3d.jsail.Geometry2D.ArcClose2DObject'),
AudioClip : java.import('org.web3d.x3d.jsail.Sound.AudioClipObject'),
Background :
java.import('org.web3d.x3d.jsail.EnvironmentalEffects.BackgroundObject'),
BallJoint :
java.import('org.web3d.x3d.jsail.RigidBodyPhysics.BallJointObject'),
Billboard : java.import('org.web3d.x3d.jsail.Navigation.BillboardObject'),
BlendedVolumeStyle :
java.import('org.web3d.x3d.jsail.VolumeRendering.BlendedVolumeStyleObject'),
BooleanFilter :
java.import('org.web3d.x3d.jsail.EventUtilities.BooleanFilterObject'),
BooleanSequencer :
java.import('org.web3d.x3d.jsail.EventUtilities.BooleanSequencerObject'),
BooleanToggle :
java.import('org.web3d.x3d.jsail.EventUtilities.BooleanToggleObject'),
BooleanTrigger :
java.import('org.web3d.x3d.jsail.EventUtilities.BooleanTriggerObject'),
BoundaryEnhancementVolumeStyle :
java.import('org.web3d.x3d.jsail.VolumeRendering.BoundaryEnhancementVolumeStyleObject'),
BoundedPhysicsModel :
java.import('org.web3d.x3d.jsail.ParticleSystems.BoundedPhysicsModelObject'),
Box : java.import('org.web3d.x3d.jsail.Geometry3D.BoxObject'),
CADAssembly :
java.import('org.web3d.x3d.jsail.CADGeometry.CADAssemblyObject'),
CADFace : java.import('org.web3d.x3d.jsail.CADGeometry.CADFaceObject'),
CADLayer : java.import('org.web3d.x3d.jsail.CADGeometry.CADLayerObject'),
CADPart : java.import('org.web3d.x3d.jsail.CADGeometry.CADPartObject'),
CartoonVolumeStyle :
java.import('org.web3d.x3d.jsail.VolumeRendering.CartoonVolumeStyleObject'),
Circle2D : java.import('org.web3d.x3d.jsail.Geometry2D.Circle2DObject'),
ClipPlane : java.import('org.web3d.x3d.jsail.Rendering.ClipPlaneObject'),
CollidableOffset :
java.import('org.web3d.x3d.jsail.RigidBodyPhysics.CollidableOffsetObject'),
CollidableShape :
java.import('org.web3d.x3d.jsail.RigidBodyPhysics.CollidableShapeObject'),
Collision : java.import('org.web3d.x3d.jsail.Navigation.CollisionObject'),
CollisionCollection :
java.import('org.web3d.x3d.jsail.RigidBodyPhysics.CollisionCollectionObject'),
CollisionSensor :
java.import('org.web3d.x3d.jsail.RigidBodyPhysics.CollisionSensorObject'),
CollisionSpace :
java.import('org.web3d.x3d.jsail.RigidBodyPhysics.CollisionSpaceObject'),
Color : java.import('org.web3d.x3d.jsail.Rendering.ColorObject'),
ColorChaser :
java.import('org.web3d.x3d.jsail.Followers.ColorChaserObject'),
ColorDamper :
java.import('org.web3d.x3d.jsail.Followers.ColorDamperObject'),
ColorInterpolator :
java.import('org.web3d.x3d.jsail.Interpolation.ColorInterpolatorObject'),
ColorRGBA : java.import('org.web3d.x3d.jsail.Rendering.ColorRGBAObject'),
ComposedCubeMapTexture :
java.import('org.web3d.x3d.jsail.CubeMapTexturing.ComposedCubeMapTextureObject'),
ComposedShader :
java.import('org.web3d.x3d.jsail.Shaders.ComposedShaderObject'),
ComposedTexture3D :
java.import('org.web3d.x3d.jsail.Texturing3D.ComposedTexture3DObject'),
ComposedVolumeStyle :
java.import('org.web3d.x3d.jsail.VolumeRendering.ComposedVolumeStyleObject'),
Cone : java.import('org.web3d.x3d.jsail.Geometry3D.ConeObject'),
ConeEmitter :
java.import('org.web3d.x3d.jsail.ParticleSystems.ConeEmitterObject'),
Contact : java.import('org.web3d.x3d.jsail.RigidBodyPhysics.ContactObject'),
Contour2D : java.import('org.web3d.x3d.jsail.NURBS.Contour2DObject'),
ContourPolyline2D :
java.import('org.web3d.x3d.jsail.NURBS.ContourPolyline2DObject'),
Coordinate : java.import('org.web3d.x3d.jsail.Rendering.CoordinateObject'),
CoordinateChaser :
java.import('org.web3d.x3d.jsail.Followers.CoordinateChaserObject'),
CoordinateDamper :
java.import('org.web3d.x3d.jsail.Followers.CoordinateDamperObject'),
CoordinateDouble :
java.import('org.web3d.x3d.jsail.NURBS.CoordinateDoubleObject'),
CoordinateInterpolator :
java.import('org.web3d.x3d.jsail.Interpolation.CoordinateInterpolatorObject'),
CoordinateInterpolator2D :
java.import('org.web3d.x3d.jsail.Interpolation.CoordinateInterpolator2DObject'),
Cylinder : java.import('org.web3d.x3d.jsail.Geometry3D.CylinderObject'),
CylinderSensor :
java.import('org.web3d.x3d.jsail.PointingDeviceSensor.CylinderSensorObject'),
DirectionalLight :
java.import('org.web3d.x3d.jsail.Lighting.DirectionalLightObject'),
DISEntityManager :
java.import('org.web3d.x3d.jsail.DIS.DISEntityManagerObject'),
DISEntityTypeMapping :
java.import('org.web3d.x3d.jsail.DIS.DISEntityTypeMappingObject'),
Disk2D : java.import('org.web3d.x3d.jsail.Geometry2D.Disk2DObject'),
DoubleAxisHingeJoint :
java.import('org.web3d.x3d.jsail.RigidBodyPhysics.DoubleAxisHingeJointObject'),
EaseInEaseOut :
java.import('org.web3d.x3d.jsail.Interpolation.EaseInEaseOutObject'),
EdgeEnhancementVolumeStyle :
java.import('org.web3d.x3d.jsail.VolumeRendering.EdgeEnhancementVolumeStyleObject'),
ElevationGrid :
java.import('org.web3d.x3d.jsail.Geometry3D.ElevationGridObject'),
EspduTransform :
java.import('org.web3d.x3d.jsail.DIS.EspduTransformObject'),
ExplosionEmitter :
java.import('org.web3d.x3d.jsail.ParticleSystems.ExplosionEmitterObject'),
Extrusion : java.import('org.web3d.x3d.jsail.Geometry3D.ExtrusionObject'),
FillProperties :
java.import('org.web3d.x3d.jsail.Shape.FillPropertiesObject'),
FloatVertexAttribute :
java.import('org.web3d.x3d.jsail.Shaders.FloatVertexAttributeObject'),
Fog : java.import('org.web3d.x3d.jsail.EnvironmentalEffects.FogObject'),
FogCoordinate :
java.import('org.web3d.x3d.jsail.EnvironmentalEffects.FogCoordinateObject'),
FontStyle : java.import('org.web3d.x3d.jsail.Text.FontStyleObject'),
ForcePhysicsModel :
java.import('org.web3d.x3d.jsail.ParticleSystems.ForcePhysicsModelObject'),
GeneratedCubeMapTexture :
java.import('org.web3d.x3d.jsail.CubeMapTexturing.GeneratedCubeMapTextureObject'),
GeoCoordinate :
java.import('org.web3d.x3d.jsail.Geospatial.GeoCoordinateObject'),
GeoElevationGrid :
java.import('org.web3d.x3d.jsail.Geospatial.GeoElevationGridObject'),
GeoLocation :
java.import('org.web3d.x3d.jsail.Geospatial.GeoLocationObject'),
GeoLOD : java.import('org.web3d.x3d.jsail.Geospatial.GeoLODObject'),
GeoMetadata :
java.import('org.web3d.x3d.jsail.Geospatial.GeoMetadataObject'),
GeoOrigin : java.import('org.web3d.x3d.jsail.Geospatial.GeoOriginObject'),
GeoPositionInterpolator :
java.import('org.web3d.x3d.jsail.Geospatial.GeoPositionInterpolatorObject'),
GeoProximitySensor :
java.import('org.web3d.x3d.jsail.Geospatial.GeoProximitySensorObject'),
GeoTouchSensor :
java.import('org.web3d.x3d.jsail.Geospatial.GeoTouchSensorObject'),
GeoTransform :
java.import('org.web3d.x3d.jsail.Geospatial.GeoTransformObject'),
GeoViewpoint :
java.import('org.web3d.x3d.jsail.Geospatial.GeoViewpointObject'),
Group : java.import('org.web3d.x3d.jsail.Grouping.GroupObject'),
HAnimDisplacer :
java.import('org.web3d.x3d.jsail.HAnim.HAnimDisplacerObject'),
HAnimHumanoid :
java.import('org.web3d.x3d.jsail.HAnim.HAnimHumanoidObject'),
HAnimJoint : java.import('org.web3d.x3d.jsail.HAnim.HAnimJointObject'),
HAnimSegment : java.import('org.web3d.x3d.jsail.HAnim.HAnimSegmentObject'),
HAnimSite : java.import('org.web3d.x3d.jsail.HAnim.HAnimSiteObject'),
ImageCubeMapTexture :
java.import('org.web3d.x3d.jsail.CubeMapTexturing.ImageCubeMapTextureObject'),
ImageTexture :
java.import('org.web3d.x3d.jsail.Texturing.ImageTextureObject'),
ImageTexture3D :
java.import('org.web3d.x3d.jsail.Texturing3D.ImageTexture3DObject'),
IndexedFaceSet :
java.import('org.web3d.x3d.jsail.Geometry3D.IndexedFaceSetObject'),
IndexedLineSet :
java.import('org.web3d.x3d.jsail.Rendering.IndexedLineSetObject'),
IndexedQuadSet :
java.import('org.web3d.x3d.jsail.CADGeometry.IndexedQuadSetObject'),
IndexedTriangleFanSet :
java.import('org.web3d.x3d.jsail.Rendering.IndexedTriangleFanSetObject'),
IndexedTriangleSet :
java.import('org.web3d.x3d.jsail.Rendering.IndexedTriangleSetObject'),
IndexedTriangleStripSet :
java.import('org.web3d.x3d.jsail.Rendering.IndexedTriangleStripSetObject'),
Inline : java.import('org.web3d.x3d.jsail.Networking.InlineObject'),
IntegerSequencer :
java.import('org.web3d.x3d.jsail.EventUtilities.IntegerSequencerObject'),
IntegerTrigger :
java.import('org.web3d.x3d.jsail.EventUtilities.IntegerTriggerObject'),
IsoSurfaceVolumeData :
java.import('org.web3d.x3d.jsail.VolumeRendering.IsoSurfaceVolumeDataObject'),
KeySensor :
java.import('org.web3d.x3d.jsail.KeyDeviceSensor.KeySensorObject'),
Layer : java.import('org.web3d.x3d.jsail.Layering.LayerObject'),
LayerSet : java.import('org.web3d.x3d.jsail.Layering.LayerSetObject'),
Layout : java.import('org.web3d.x3d.jsail.Layout.LayoutObject'),
LayoutGroup : java.import('org.web3d.x3d.jsail.Layout.LayoutGroupObject'),
LayoutLayer : java.import('org.web3d.x3d.jsail.Layout.LayoutLayerObject'),
LinePickSensor :
java.import('org.web3d.x3d.jsail.Picking.LinePickSensorObject'),
LineProperties :
java.import('org.web3d.x3d.jsail.Shape.LinePropertiesObject'),
LineSet : java.import('org.web3d.x3d.jsail.Rendering.LineSetObject'),
LoadSensor : java.import('org.web3d.x3d.jsail.Networking.LoadSensorObject'),
LocalFog :
java.import('org.web3d.x3d.jsail.EnvironmentalEffects.LocalFogObject'),
LOD : java.import('org.web3d.x3d.jsail.Navigation.LODObject'),
Material : java.import('org.web3d.x3d.jsail.Shape.MaterialObject'),
Matrix3VertexAttribute :
java.import('org.web3d.x3d.jsail.Shaders.Matrix3VertexAttributeObject'),
Matrix4VertexAttribute :
java.import('org.web3d.x3d.jsail.Shaders.Matrix4VertexAttributeObject'),
MetadataBoolean :
java.import('org.web3d.x3d.jsail.Core.MetadataBooleanObject'),
MetadataDouble :
java.import('org.web3d.x3d.jsail.Core.MetadataDoubleObject'),
MetadataFloat : java.import('org.web3d.x3d.jsail.Core.MetadataFloatObject'),
MetadataInteger :
java.import('org.web3d.x3d.jsail.Core.MetadataIntegerObject'),
MetadataSet : java.import('org.web3d.x3d.jsail.Core.MetadataSetObject'),
MetadataString :
java.import('org.web3d.x3d.jsail.Core.MetadataStringObject'),
MotorJoint :
java.import('org.web3d.x3d.jsail.RigidBodyPhysics.MotorJointObject'),
MovieTexture :
java.import('org.web3d.x3d.jsail.Texturing.MovieTextureObject'),
MultiTexture :
java.import('org.web3d.x3d.jsail.Texturing.MultiTextureObject'),
MultiTextureCoordinate :
java.import('org.web3d.x3d.jsail.Texturing.MultiTextureCoordinateObject'),
MultiTextureTransform :
java.import('org.web3d.x3d.jsail.Texturing.MultiTextureTransformObject'),
NavigationInfo :
java.import('org.web3d.x3d.jsail.Navigation.NavigationInfoObject'),
Normal : java.import('org.web3d.x3d.jsail.Rendering.NormalObject'),
NormalInterpolator :
java.import('org.web3d.x3d.jsail.Interpolation.NormalInterpolatorObject'),
NurbsCurve : java.import('org.web3d.x3d.jsail.NURBS.NurbsCurveObject'),
NurbsCurve2D : java.import('org.web3d.x3d.jsail.NURBS.NurbsCurve2DObject'),
NurbsOrientationInterpolator :
java.import('org.web3d.x3d.jsail.NURBS.NurbsOrientationInterpolatorObject'),
NurbsPatchSurface :
java.import('org.web3d.x3d.jsail.NURBS.NurbsPatchSurfaceObject'),
NurbsPositionInterpolator :
java.import('org.web3d.x3d.jsail.NURBS.NurbsPositionInterpolatorObject'),
NurbsSet : java.import('org.web3d.x3d.jsail.NURBS.NurbsSetObject'),
NurbsSurfaceInterpolator :
java.import('org.web3d.x3d.jsail.NURBS.NurbsSurfaceInterpolatorObject'),
NurbsSweptSurface :
java.import('org.web3d.x3d.jsail.NURBS.NurbsSweptSurfaceObject'),
NurbsSwungSurface :
java.import('org.web3d.x3d.jsail.NURBS.NurbsSwungSurfaceObject'),
NurbsTextureCoordinate :
java.import('org.web3d.x3d.jsail.NURBS.NurbsTextureCoordinateObject'),
NurbsTrimmedSurface :
java.import('org.web3d.x3d.jsail.NURBS.NurbsTrimmedSurfaceObject'),
OpacityMapVolumeStyle :
java.import('org.web3d.x3d.jsail.VolumeRendering.OpacityMapVolumeStyleObject'),
OrientationChaser :
java.import('org.web3d.x3d.jsail.Followers.OrientationChaserObject'),
OrientationDamper :
java.import('org.web3d.x3d.jsail.Followers.OrientationDamperObject'),
OrientationInterpolator :
java.import('org.web3d.x3d.jsail.Interpolation.OrientationInterpolatorObject'),
OrthoViewpoint :
java.import('org.web3d.x3d.jsail.Navigation.OrthoViewpointObject'),
PackagedShader :
java.import('org.web3d.x3d.jsail.Shaders.PackagedShaderObject'),
ParticleSystem :
java.import('org.web3d.x3d.jsail.ParticleSystems.ParticleSystemObject'),
PickableGroup :
java.import('org.web3d.x3d.jsail.Picking.PickableGroupObject'),
PixelTexture :
java.import('org.web3d.x3d.jsail.Texturing.PixelTextureObject'),
PixelTexture3D :
java.import('org.web3d.x3d.jsail.Texturing3D.PixelTexture3DObject'),
PlaneSensor :
java.import('org.web3d.x3d.jsail.PointingDeviceSensor.PlaneSensorObject'),
PointEmitter :
java.import('org.web3d.x3d.jsail.ParticleSystems.PointEmitterObject'),
PointLight : java.import('org.web3d.x3d.jsail.Lighting.PointLightObject'),
PointPickSensor :
java.import('org.web3d.x3d.jsail.Picking.PointPickSensorObject'),
PointSet : java.import('org.web3d.x3d.jsail.Rendering.PointSetObject'),
Polyline2D : java.import('org.web3d.x3d.jsail.Geometry2D.Polyline2DObject'),
PolylineEmitter :
java.import('org.web3d.x3d.jsail.ParticleSystems.PolylineEmitterObject'),
Polypoint2D :
java.import('org.web3d.x3d.jsail.Geometry2D.Polypoint2DObject'),
PositionChaser :
java.import('org.web3d.x3d.jsail.Followers.PositionChaserObject'),
PositionChaser2D :
java.import('org.web3d.x3d.jsail.Followers.PositionChaser2DObject'),
PositionDamper :
java.import('org.web3d.x3d.jsail.Followers.PositionDamperObject'),
PositionDamper2D :
java.import('org.web3d.x3d.jsail.Followers.PositionDamper2DObject'),
PositionInterpolator :
java.import('org.web3d.x3d.jsail.Interpolation.PositionInterpolatorObject'),
PositionInterpolator2D :
java.import('org.web3d.x3d.jsail.Interpolation.PositionInterpolator2DObject'),
PrimitivePickSensor :
java.import('org.web3d.x3d.jsail.Picking.PrimitivePickSensorObject'),
ProgramShader :
java.import('org.web3d.x3d.jsail.Shaders.ProgramShaderObject'),
ProjectionVolumeStyle :
java.import('org.web3d.x3d.jsail.VolumeRendering.ProjectionVolumeStyleObject'),
ProtoInstance : java.import('org.web3d.x3d.jsail.Core.ProtoInstanceObject'),
ProximitySensor :
java.import('org.web3d.x3d.jsail.EnvironmentalSensor.ProximitySensorObject'),
QuadSet : java.import('org.web3d.x3d.jsail.CADGeometry.QuadSetObject'),
ReceiverPdu : java.import('org.web3d.x3d.jsail.DIS.ReceiverPduObject'),
Rectangle2D :
java.import('org.web3d.x3d.jsail.Geometry2D.Rectangle2DObject'),
RigidBody :
java.import('org.web3d.x3d.jsail.RigidBodyPhysics.RigidBodyObject'),
RigidBodyCollection :
java.import('org.web3d.x3d.jsail.RigidBodyPhysics.RigidBodyCollectionObject'),
ScalarChaser :
java.import('org.web3d.x3d.jsail.Followers.ScalarChaserObject'),
ScalarDamper :
java.import('org.web3d.x3d.jsail.Followers.ScalarDamperObject'),
ScalarInterpolator :
java.import('org.web3d.x3d.jsail.Interpolation.ScalarInterpolatorObject'),
ScreenFontStyle :
java.import('org.web3d.x3d.jsail.Layout.ScreenFontStyleObject'),
ScreenGroup : java.import('org.web3d.x3d.jsail.Layout.ScreenGroupObject'),
Script : java.import('org.web3d.x3d.jsail.Scripting.ScriptObject'),
SegmentedVolumeData :
java.import('org.web3d.x3d.jsail.VolumeRendering.SegmentedVolumeDataObject'),
ShadedVolumeStyle :
java.import('org.web3d.x3d.jsail.VolumeRendering.ShadedVolumeStyleObject'),
ShaderPart : java.import('org.web3d.x3d.jsail.Shaders.ShaderPartObject'),
ShaderProgram :
java.import('org.web3d.x3d.jsail.Shaders.ShaderProgramObject'),
Shape : java.import('org.web3d.x3d.jsail.Shape.ShapeObject'),
SignalPdu : java.import('org.web3d.x3d.jsail.DIS.SignalPduObject'),
SilhouetteEnhancementVolumeStyle :
java.import('org.web3d.x3d.jsail.VolumeRendering.SilhouetteEnhancementVolumeStyleObject'),
SingleAxisHingeJoint :
java.import('org.web3d.x3d.jsail.RigidBodyPhysics.SingleAxisHingeJointObject'),
SliderJoint :
java.import('org.web3d.x3d.jsail.RigidBodyPhysics.SliderJointObject'),
Sound : java.import('org.web3d.x3d.jsail.Sound.SoundObject'),
Sphere : java.import('org.web3d.x3d.jsail.Geometry3D.SphereObject'),
SphereSensor :
java.import('org.web3d.x3d.jsail.PointingDeviceSensor.SphereSensorObject'),
SplinePositionInterpolator :
java.import('org.web3d.x3d.jsail.Interpolation.SplinePositionInterpolatorObject'),
SplinePositionInterpolator2D :
java.import('org.web3d.x3d.jsail.Interpolation.SplinePositionInterpolator2DObject'),
SplineScalarInterpolator :
java.import('org.web3d.x3d.jsail.Interpolation.SplineScalarInterpolatorObject'),
SpotLight : java.import('org.web3d.x3d.jsail.Lighting.SpotLightObject'),
SquadOrientationInterpolator :
java.import('org.web3d.x3d.jsail.Interpolation.SquadOrientationInterpolatorObject'),
StaticGroup : java.import('org.web3d.x3d.jsail.Grouping.StaticGroupObject'),
StringSensor :
java.import('org.web3d.x3d.jsail.KeyDeviceSensor.StringSensorObject'),
SurfaceEmitter :
java.import('org.web3d.x3d.jsail.ParticleSystems.SurfaceEmitterObject'),
Switch : java.import('org.web3d.x3d.jsail.Grouping.SwitchObject'),
TexCoordChaser2D :
java.import('org.web3d.x3d.jsail.Followers.TexCoordChaser2DObject'),
TexCoordDamper2D :
java.import('org.web3d.x3d.jsail.Followers.TexCoordDamper2DObject'),
Text : java.import('org.web3d.x3d.jsail.Text.TextObject'),
TextureBackground :
java.import('org.web3d.x3d.jsail.EnvironmentalEffects.TextureBackgroundObject'),
TextureCoordinate :
java.import('org.web3d.x3d.jsail.Texturing.TextureCoordinateObject'),
TextureCoordinate3D :
java.import('org.web3d.x3d.jsail.Texturing3D.TextureCoordinate3DObject'),
TextureCoordinate4D :
java.import('org.web3d.x3d.jsail.Texturing3D.TextureCoordinate4DObject'),
TextureCoordinateGenerator :
java.import('org.web3d.x3d.jsail.Texturing.TextureCoordinateGeneratorObject'),
TextureProperties :
java.import('org.web3d.x3d.jsail.Texturing.TexturePropertiesObject'),
TextureTransform :
java.import('org.web3d.x3d.jsail.Texturing.TextureTransformObject'),
TextureTransform3D :
java.import('org.web3d.x3d.jsail.Texturing3D.TextureTransform3DObject'),
TextureTransformMatrix3D :
java.import('org.web3d.x3d.jsail.Texturing3D.TextureTransformMatrix3DObject'),
TimeSensor : java.import('org.web3d.x3d.jsail.Time.TimeSensorObject'),
TimeTrigger :
java.import('org.web3d.x3d.jsail.EventUtilities.TimeTriggerObject'),
ToneMappedVolumeStyle :
java.import('org.web3d.x3d.jsail.VolumeRendering.ToneMappedVolumeStyleObject'),
TouchSensor :
java.import('org.web3d.x3d.jsail.PointingDeviceSensor.TouchSensorObject'),
Transform : java.import('org.web3d.x3d.jsail.Grouping.TransformObject'),
TransformSensor :
java.import('org.web3d.x3d.jsail.EnvironmentalSensor.TransformSensorObject'),
TransmitterPdu :
java.import('org.web3d.x3d.jsail.DIS.TransmitterPduObject'),
TriangleFanSet :
java.import('org.web3d.x3d.jsail.Rendering.TriangleFanSetObject'),
TriangleSet :
java.import('org.web3d.x3d.jsail.Rendering.TriangleSetObject'),
TriangleSet2D :
java.import('org.web3d.x3d.jsail.Geometry2D.TriangleSet2DObject'),
TriangleStripSet :
java.import('org.web3d.x3d.jsail.Rendering.TriangleStripSetObject'),
TwoSidedMaterial :
java.import('org.web3d.x3d.jsail.Shape.TwoSidedMaterialObject'),
UniversalJoint :
java.import('org.web3d.x3d.jsail.RigidBodyPhysics.UniversalJointObject'),
Viewpoint : java.import('org.web3d.x3d.jsail.Navigation.ViewpointObject'),
ViewpointGroup :
java.import('org.web3d.x3d.jsail.Navigation.ViewpointGroupObject'),
Viewport : java.import('org.web3d.x3d.jsail.Layering.ViewportObject'),
VisibilitySensor :
java.import('org.web3d.x3d.jsail.EnvironmentalSensor.VisibilitySensorObject'),
VolumeData :
java.import('org.web3d.x3d.jsail.VolumeRendering.VolumeDataObject'),
VolumeEmitter :
java.import('org.web3d.x3d.jsail.ParticleSystems.VolumeEmitterObject'),
VolumePickSensor :
java.import('org.web3d.x3d.jsail.Picking.VolumePickSensorObject'),
WindPhysicsModel :
java.import('org.web3d.x3d.jsail.ParticleSystems.WindPhysicsModelObject'),
WorldInfo : java.import('org.web3d.x3d.jsail.Core.WorldInfoObject'),
component : java.import('org.web3d.x3d.jsail.Core.componentObject'),
connect : java.import('org.web3d.x3d.jsail.Core.connectObject'),
EXPORT : java.import('org.web3d.x3d.jsail.Networking.EXPORTObject'),
ExternProtoDeclare :
java.import('org.web3d.x3d.jsail.Core.ExternProtoDeclareObject'),
field : java.import('org.web3d.x3d.jsail.Core.fieldObject'),
fieldValue : java.import('org.web3d.x3d.jsail.Core.fieldValueObject'),
head : java.import('org.web3d.x3d.jsail.Core.headObject'),
IMPORT : java.import('org.web3d.x3d.jsail.Networking.IMPORTObject'),
IS : java.import('org.web3d.x3d.jsail.Core.ISObject'),
meta : java.import('org.web3d.x3d.jsail.Core.metaObject'),
ProtoBody : java.import('org.web3d.x3d.jsail.Core.ProtoBodyObject'),
ProtoDeclare : java.import('org.web3d.x3d.jsail.Core.ProtoDeclareObject'),
ProtoInterface :
java.import('org.web3d.x3d.jsail.Core.ProtoInterfaceObject'),
ROUTE : java.import('org.web3d.x3d.jsail.Core.ROUTEObject'),
Scene : java.import('org.web3d.x3d.jsail.Core.SceneObject'),
unit : java.import('org.web3d.x3d.jsail.Core.unitObject'),
X3D : java.import('org.web3d.x3d.jsail.Core.X3DObject'),
SFBool : java.import('org.web3d.x3d.jsail.fields.SFBoolObject'),
MFBool : java.import('org.web3d.x3d.jsail.fields.MFBoolObject'),
SFColor : java.import('org.web3d.x3d.jsail.fields.SFColorObject'),
MFColor : java.import('org.web3d.x3d.jsail.fields.MFColorObject'),
SFColorRGBA : java.import('org.web3d.x3d.jsail.fields.SFColorRGBAObject'),
MFColorRGBA : java.import('org.web3d.x3d.jsail.fields.MFColorRGBAObject'),
SFDouble : java.import('org.web3d.x3d.jsail.fields.SFDoubleObject'),
MFDouble : java.import('org.web3d.x3d.jsail.fields.MFDoubleObject'),
SFFloat : java.import('org.web3d.x3d.jsail.fields.SFFloatObject'),
MFFloat : java.import('org.web3d.x3d.jsail.fields.MFFloatObject'),
SFImage : java.import('org.web3d.x3d.jsail.fields.SFImageObject'),
MFImage : java.import('org.web3d.x3d.jsail.fields.MFImageObject'),
SFInt32 : java.import('org.web3d.x3d.jsail.fields.SFInt32Object'),
MFInt32 : java.import('org.web3d.x3d.jsail.fields.MFInt32Object'),
SFMatrix3d : java.import('org.web3d.x3d.jsail.fields.SFMatrix3dObject'),
MFMatrix3d : java.import('org.web3d.x3d.jsail.fields.MFMatrix3dObject'),
SFMatrix3f : java.import('org.web3d.x3d.jsail.fields.SFMatrix3fObject'),
MFMatrix3f : java.import('org.web3d.x3d.jsail.fields.MFMatrix3fObject'),
SFMatrix4d : java.import('org.web3d.x3d.jsail.fields.SFMatrix4dObject'),
MFMatrix4d : java.import('org.web3d.x3d.jsail.fields.MFMatrix4dObject'),
SFMatrix4f : java.import('org.web3d.x3d.jsail.fields.SFMatrix4fObject'),
MFMatrix4f : java.import('org.web3d.x3d.jsail.fields.MFMatrix4fObject'),
SFString : java.import('org.web3d.x3d.jsail.fields.SFStringObject'),
SFNode : java.import('org.web3d.x3d.jsail.fields.SFNodeObject'),
MFNode : java.import('org.web3d.x3d.jsail.fields.MFNodeObject'),
SFRotation : java.import('org.web3d.x3d.jsail.fields.SFRotationObject'),
MFRotation : java.import('org.web3d.x3d.jsail.fields.MFRotationObject'),
MFString : java.import('org.web3d.x3d.jsail.fields.MFStringObject'),
SFTime : java.import('org.web3d.x3d.jsail.fields.SFTimeObject'),
MFTime : java.import('org.web3d.x3d.jsail.fields.MFTimeObject'),
SFVec2d : java.import('org.web3d.x3d.jsail.fields.SFVec2dObject'),
MFVec2d : java.import('org.web3d.x3d.jsail.fields.MFVec2dObject'),
SFVec2f : java.import('org.web3d.x3d.jsail.fields.SFVec2fObject'),
MFVec2f : java.import('org.web3d.x3d.jsail.fields.MFVec2fObject'),
SFVec3d : java.import('org.web3d.x3d.jsail.fields.SFVec3dObject'),
MFVec3d : java.import('org.web3d.x3d.jsail.fields.MFVec3dObject'),
SFVec3f : java.import('org.web3d.x3d.jsail.fields.SFVec3fObject'),
MFVec3f : java.import('org.web3d.x3d.jsail.fields.MFVec3fObject'),
SFVec4d : java.import('org.web3d.x3d.jsail.fields.SFVec4dObject'),
MFVec4d : java.import('org.web3d.x3d.jsail.fields.MFVec4dObject'),
SFVec4f : java.import('org.web3d.x3d.jsail.fields.SFVec4fObject'),
MFVec4f : java.import('org.web3d.x3d.jsail.fields.MFVec4fObject'),
ConfigurationProperties :
java.import("org.web3d.x3d.jsail.ConfigurationProperties"),
CommentsBlock : java.import("org.web3d.x3d.jsail.Core.CommentsBlock")
}

On Fri, Apr 10, 2020 at 11:20 PM John Carlson <yottzumm at gmail.com> wrote:

> This seems to be a better version, that uses require correctly.  My next
> email will be an example that actually works!.
>
> John
>
> On Fri, Apr 10, 2020 at 10:34 PM John Carlson <yottzumm at gmail.com> wrote:
>
>> A real quick copy paste of autoclass.py and some tweaks produce the
>> following JavaScript file (runs).  I welcome your tests. Currently, one
>> must add "Sync" after method call names, but I think there's a way to
>> override that.  You may find that running asynchronously may lead to
>> issues, not sure.
>>
>> If this seems like a good approach, I will start work on a JavaScript
>> serializer.
>>
>> This code ran last time I tried it.
>>
>> I think we may have to put this into a module, and reference all classes
>> from a root. "x3d"?
>>
>> var java = require('java');
>> java.options.push("-Djava.awt.headless=true");
>> java.options.push("-Xmx1000m");
>>
>> //java.options.push('-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005');
>>
>> java.classpath.push("X3DJSAIL.3.3.full.jar");
>>
>> var CommentsBlock = java.import('org.web3d.x3d.jsail.Core.CommentsBlock');
>> var Anchor = java.import('org.web3d.x3d.jsail.Networking.AnchorObject');
>> var Appearance =
>> java.import('org.web3d.x3d.jsail.Shape.AppearanceObject');
>> var Arc2D = java.import('org.web3d.x3d.jsail.Geometry2D.Arc2DObject');
>> var ArcClose2D =
>> java.import('org.web3d.x3d.jsail.Geometry2D.ArcClose2DObject');
>> var AudioClip = java.import('org.web3d.x3d.jsail.Sound.AudioClipObject');
>> var Background =
>> java.import('org.web3d.x3d.jsail.EnvironmentalEffects.BackgroundObject');
>> var BallJoint =
>> java.import('org.web3d.x3d.jsail.RigidBodyPhysics.BallJointObject');
>> var Billboard =
>> java.import('org.web3d.x3d.jsail.Navigation.BillboardObject');
>> var BlendedVolumeStyle =
>> java.import('org.web3d.x3d.jsail.VolumeRendering.BlendedVolumeStyleObject');
>> var BooleanFilter =
>> java.import('org.web3d.x3d.jsail.EventUtilities.BooleanFilterObject');
>> var BooleanSequencer =
>> java.import('org.web3d.x3d.jsail.EventUtilities.BooleanSequencerObject');
>> var BooleanToggle =
>> java.import('org.web3d.x3d.jsail.EventUtilities.BooleanToggleObject');
>> var BooleanTrigger =
>> java.import('org.web3d.x3d.jsail.EventUtilities.BooleanTriggerObject');
>> var BoundaryEnhancementVolumeStyle =
>> java.import('org.web3d.x3d.jsail.VolumeRendering.BoundaryEnhancementVolumeStyleObject');
>> var BoundedPhysicsModel =
>> java.import('org.web3d.x3d.jsail.ParticleSystems.BoundedPhysicsModelObject');
>> var Box = java.import('org.web3d.x3d.jsail.Geometry3D.BoxObject');
>> var CADAssembly =
>> java.import('org.web3d.x3d.jsail.CADGeometry.CADAssemblyObject');
>> var CADFace =
>> java.import('org.web3d.x3d.jsail.CADGeometry.CADFaceObject');
>> var CADLayer =
>> java.import('org.web3d.x3d.jsail.CADGeometry.CADLayerObject');
>> var CADPart =
>> java.import('org.web3d.x3d.jsail.CADGeometry.CADPartObject');
>> var CartoonVolumeStyle =
>> java.import('org.web3d.x3d.jsail.VolumeRendering.CartoonVolumeStyleObject');
>> var Circle2D =
>> java.import('org.web3d.x3d.jsail.Geometry2D.Circle2DObject');
>> var ClipPlane =
>> java.import('org.web3d.x3d.jsail.Rendering.ClipPlaneObject');
>> var CollidableOffset =
>> java.import('org.web3d.x3d.jsail.RigidBodyPhysics.CollidableOffsetObject');
>> var CollidableShape =
>> java.import('org.web3d.x3d.jsail.RigidBodyPhysics.CollidableShapeObject');
>> var Collision =
>> java.import('org.web3d.x3d.jsail.Navigation.CollisionObject');
>> var CollisionCollection =
>> java.import('org.web3d.x3d.jsail.RigidBodyPhysics.CollisionCollectionObject');
>> var CollisionSensor =
>> java.import('org.web3d.x3d.jsail.RigidBodyPhysics.CollisionSensorObject');
>> var CollisionSpace =
>> java.import('org.web3d.x3d.jsail.RigidBodyPhysics.CollisionSpaceObject');
>> var Color = java.import('org.web3d.x3d.jsail.Rendering.ColorObject');
>> var ColorChaser =
>> java.import('org.web3d.x3d.jsail.Followers.ColorChaserObject');
>> var ColorDamper =
>> java.import('org.web3d.x3d.jsail.Followers.ColorDamperObject');
>> var ColorInterpolator =
>> java.import('org.web3d.x3d.jsail.Interpolation.ColorInterpolatorObject');
>> var ColorRGBA =
>> java.import('org.web3d.x3d.jsail.Rendering.ColorRGBAObject');
>> var ComposedCubeMapTexture =
>> java.import('org.web3d.x3d.jsail.CubeMapTexturing.ComposedCubeMapTextureObject');
>> var ComposedShader =
>> java.import('org.web3d.x3d.jsail.Shaders.ComposedShaderObject');
>> var ComposedTexture3D =
>> java.import('org.web3d.x3d.jsail.Texturing3D.ComposedTexture3DObject');
>> var ComposedVolumeStyle =
>> java.import('org.web3d.x3d.jsail.VolumeRendering.ComposedVolumeStyleObject');
>> var Cone = java.import('org.web3d.x3d.jsail.Geometry3D.ConeObject');
>> var ConeEmitter =
>> java.import('org.web3d.x3d.jsail.ParticleSystems.ConeEmitterObject');
>> var Contact =
>> java.import('org.web3d.x3d.jsail.RigidBodyPhysics.ContactObject');
>> var Contour2D = java.import('org.web3d.x3d.jsail.NURBS.Contour2DObject');
>> var ContourPolyline2D =
>> java.import('org.web3d.x3d.jsail.NURBS.ContourPolyline2DObject');
>> var Coordinate =
>> java.import('org.web3d.x3d.jsail.Rendering.CoordinateObject');
>> var CoordinateChaser =
>> java.import('org.web3d.x3d.jsail.Followers.CoordinateChaserObject');
>> var CoordinateDamper =
>> java.import('org.web3d.x3d.jsail.Followers.CoordinateDamperObject');
>> var CoordinateDouble =
>> java.import('org.web3d.x3d.jsail.NURBS.CoordinateDoubleObject');
>> var CoordinateInterpolator =
>> java.import('org.web3d.x3d.jsail.Interpolation.CoordinateInterpolatorObject');
>> var CoordinateInterpolator2D =
>> java.import('org.web3d.x3d.jsail.Interpolation.CoordinateInterpolator2DObject');
>> var Cylinder =
>> java.import('org.web3d.x3d.jsail.Geometry3D.CylinderObject');
>> var CylinderSensor =
>> java.import('org.web3d.x3d.jsail.PointingDeviceSensor.CylinderSensorObject');
>> var DirectionalLight =
>> java.import('org.web3d.x3d.jsail.Lighting.DirectionalLightObject');
>> var DISEntityManager =
>> java.import('org.web3d.x3d.jsail.DIS.DISEntityManagerObject');
>> var DISEntityTypeMapping =
>> java.import('org.web3d.x3d.jsail.DIS.DISEntityTypeMappingObject');
>> var Disk2D = java.import('org.web3d.x3d.jsail.Geometry2D.Disk2DObject');
>> var DoubleAxisHingeJoint =
>> java.import('org.web3d.x3d.jsail.RigidBodyPhysics.DoubleAxisHingeJointObject');
>> var EaseInEaseOut =
>> java.import('org.web3d.x3d.jsail.Interpolation.EaseInEaseOutObject');
>> var EdgeEnhancementVolumeStyle =
>> java.import('org.web3d.x3d.jsail.VolumeRendering.EdgeEnhancementVolumeStyleObject');
>> var ElevationGrid =
>> java.import('org.web3d.x3d.jsail.Geometry3D.ElevationGridObject');
>> var EspduTransform =
>> java.import('org.web3d.x3d.jsail.DIS.EspduTransformObject');
>> var ExplosionEmitter =
>> java.import('org.web3d.x3d.jsail.ParticleSystems.ExplosionEmitterObject');
>> var Extrusion =
>> java.import('org.web3d.x3d.jsail.Geometry3D.ExtrusionObject');
>> var FillProperties =
>> java.import('org.web3d.x3d.jsail.Shape.FillPropertiesObject');
>> var FloatVertexAttribute =
>> java.import('org.web3d.x3d.jsail.Shaders.FloatVertexAttributeObject');
>> var Fog =
>> java.import('org.web3d.x3d.jsail.EnvironmentalEffects.FogObject');
>> var FogCoordinate =
>> java.import('org.web3d.x3d.jsail.EnvironmentalEffects.FogCoordinateObject');
>> var FontStyle = java.import('org.web3d.x3d.jsail.Text.FontStyleObject');
>> var ForcePhysicsModel =
>> java.import('org.web3d.x3d.jsail.ParticleSystems.ForcePhysicsModelObject');
>> var GeneratedCubeMapTexture =
>> java.import('org.web3d.x3d.jsail.CubeMapTexturing.GeneratedCubeMapTextureObject');
>> var GeoCoordinate =
>> java.import('org.web3d.x3d.jsail.Geospatial.GeoCoordinateObject');
>> var GeoElevationGrid =
>> java.import('org.web3d.x3d.jsail.Geospatial.GeoElevationGridObject');
>> var GeoLocation =
>> java.import('org.web3d.x3d.jsail.Geospatial.GeoLocationObject');
>> var GeoLOD = java.import('org.web3d.x3d.jsail.Geospatial.GeoLODObject');
>> var GeoMetadata =
>> java.import('org.web3d.x3d.jsail.Geospatial.GeoMetadataObject');
>> var GeoOrigin =
>> java.import('org.web3d.x3d.jsail.Geospatial.GeoOriginObject');
>> var GeoPositionInterpolator =
>> java.import('org.web3d.x3d.jsail.Geospatial.GeoPositionInterpolatorObject');
>> var GeoProximitySensor =
>> java.import('org.web3d.x3d.jsail.Geospatial.GeoProximitySensorObject');
>> var GeoTouchSensor =
>> java.import('org.web3d.x3d.jsail.Geospatial.GeoTouchSensorObject');
>> var GeoTransform =
>> java.import('org.web3d.x3d.jsail.Geospatial.GeoTransformObject');
>> var GeoViewpoint =
>> java.import('org.web3d.x3d.jsail.Geospatial.GeoViewpointObject');
>> var Group = java.import('org.web3d.x3d.jsail.Grouping.GroupObject');
>> var HAnimDisplacer =
>> java.import('org.web3d.x3d.jsail.HAnim.HAnimDisplacerObject');
>> var HAnimHumanoid =
>> java.import('org.web3d.x3d.jsail.HAnim.HAnimHumanoidObject');
>> var HAnimJoint =
>> java.import('org.web3d.x3d.jsail.HAnim.HAnimJointObject');
>> var HAnimSegment =
>> java.import('org.web3d.x3d.jsail.HAnim.HAnimSegmentObject');
>> var HAnimSite = java.import('org.web3d.x3d.jsail.HAnim.HAnimSiteObject');
>> var ImageCubeMapTexture =
>> java.import('org.web3d.x3d.jsail.CubeMapTexturing.ImageCubeMapTextureObject');
>> var ImageTexture =
>> java.import('org.web3d.x3d.jsail.Texturing.ImageTextureObject');
>> var ImageTexture3D =
>> java.import('org.web3d.x3d.jsail.Texturing3D.ImageTexture3DObject');
>> var IndexedFaceSet =
>> java.import('org.web3d.x3d.jsail.Geometry3D.IndexedFaceSetObject');
>> var IndexedLineSet =
>> java.import('org.web3d.x3d.jsail.Rendering.IndexedLineSetObject');
>> var IndexedQuadSet =
>> java.import('org.web3d.x3d.jsail.CADGeometry.IndexedQuadSetObject');
>> var IndexedTriangleFanSet =
>> java.import('org.web3d.x3d.jsail.Rendering.IndexedTriangleFanSetObject');
>> var IndexedTriangleSet =
>> java.import('org.web3d.x3d.jsail.Rendering.IndexedTriangleSetObject');
>> var IndexedTriangleStripSet =
>> java.import('org.web3d.x3d.jsail.Rendering.IndexedTriangleStripSetObject');
>> var Inline = java.import('org.web3d.x3d.jsail.Networking.InlineObject');
>> var IntegerSequencer =
>> java.import('org.web3d.x3d.jsail.EventUtilities.IntegerSequencerObject');
>> var IntegerTrigger =
>> java.import('org.web3d.x3d.jsail.EventUtilities.IntegerTriggerObject');
>> var IsoSurfaceVolumeData =
>> java.import('org.web3d.x3d.jsail.VolumeRendering.IsoSurfaceVolumeDataObject');
>> var KeySensor =
>> java.import('org.web3d.x3d.jsail.KeyDeviceSensor.KeySensorObject');
>> var Layer = java.import('org.web3d.x3d.jsail.Layering.LayerObject');
>> var LayerSet = java.import('org.web3d.x3d.jsail.Layering.LayerSetObject');
>> var Layout = java.import('org.web3d.x3d.jsail.Layout.LayoutObject');
>> var LayoutGroup =
>> java.import('org.web3d.x3d.jsail.Layout.LayoutGroupObject');
>> var LayoutLayer =
>> java.import('org.web3d.x3d.jsail.Layout.LayoutLayerObject');
>> var LinePickSensor =
>> java.import('org.web3d.x3d.jsail.Picking.LinePickSensorObject');
>> var LineProperties =
>> java.import('org.web3d.x3d.jsail.Shape.LinePropertiesObject');
>> var LineSet = java.import('org.web3d.x3d.jsail.Rendering.LineSetObject');
>> var LoadSensor =
>> java.import('org.web3d.x3d.jsail.Networking.LoadSensorObject');
>> var LocalFog =
>> java.import('org.web3d.x3d.jsail.EnvironmentalEffects.LocalFogObject');
>> var LOD = java.import('org.web3d.x3d.jsail.Navigation.LODObject');
>> var Material = java.import('org.web3d.x3d.jsail.Shape.MaterialObject');
>> var Matrix3VertexAttribute =
>> java.import('org.web3d.x3d.jsail.Shaders.Matrix3VertexAttributeObject');
>> var Matrix4VertexAttribute =
>> java.import('org.web3d.x3d.jsail.Shaders.Matrix4VertexAttributeObject');
>> var MetadataBoolean =
>> java.import('org.web3d.x3d.jsail.Core.MetadataBooleanObject');
>> var MetadataDouble =
>> java.import('org.web3d.x3d.jsail.Core.MetadataDoubleObject');
>> var MetadataFloat =
>> java.import('org.web3d.x3d.jsail.Core.MetadataFloatObject');
>> var MetadataInteger =
>> java.import('org.web3d.x3d.jsail.Core.MetadataIntegerObject');
>> var MetadataSet =
>> java.import('org.web3d.x3d.jsail.Core.MetadataSetObject');
>> var MetadataString =
>> java.import('org.web3d.x3d.jsail.Core.MetadataStringObject');
>> var MotorJoint =
>> java.import('org.web3d.x3d.jsail.RigidBodyPhysics.MotorJointObject');
>> var MovieTexture =
>> java.import('org.web3d.x3d.jsail.Texturing.MovieTextureObject');
>> var MultiTexture =
>> java.import('org.web3d.x3d.jsail.Texturing.MultiTextureObject');
>> var MultiTextureCoordinate =
>> java.import('org.web3d.x3d.jsail.Texturing.MultiTextureCoordinateObject');
>> var MultiTextureTransform =
>> java.import('org.web3d.x3d.jsail.Texturing.MultiTextureTransformObject');
>> var NavigationInfo =
>> java.import('org.web3d.x3d.jsail.Navigation.NavigationInfoObject');
>> var Normal = java.import('org.web3d.x3d.jsail.Rendering.NormalObject');
>> var NormalInterpolator =
>> java.import('org.web3d.x3d.jsail.Interpolation.NormalInterpolatorObject');
>> var NurbsCurve =
>> java.import('org.web3d.x3d.jsail.NURBS.NurbsCurveObject');
>> var NurbsCurve2D =
>> java.import('org.web3d.x3d.jsail.NURBS.NurbsCurve2DObject');
>> var NurbsOrientationInterpolator =
>> java.import('org.web3d.x3d.jsail.NURBS.NurbsOrientationInterpolatorObject');
>> var NurbsPatchSurface =
>> java.import('org.web3d.x3d.jsail.NURBS.NurbsPatchSurfaceObject');
>> var NurbsPositionInterpolator =
>> java.import('org.web3d.x3d.jsail.NURBS.NurbsPositionInterpolatorObject');
>> var NurbsSet = java.import('org.web3d.x3d.jsail.NURBS.NurbsSetObject');
>> var NurbsSurfaceInterpolator =
>> java.import('org.web3d.x3d.jsail.NURBS.NurbsSurfaceInterpolatorObject');
>> var NurbsSweptSurface =
>> java.import('org.web3d.x3d.jsail.NURBS.NurbsSweptSurfaceObject');
>> var NurbsSwungSurface =
>> java.import('org.web3d.x3d.jsail.NURBS.NurbsSwungSurfaceObject');
>> var NurbsTextureCoordinate =
>> java.import('org.web3d.x3d.jsail.NURBS.NurbsTextureCoordinateObject');
>> var NurbsTrimmedSurface =
>> java.import('org.web3d.x3d.jsail.NURBS.NurbsTrimmedSurfaceObject');
>> var OpacityMapVolumeStyle =
>> java.import('org.web3d.x3d.jsail.VolumeRendering.OpacityMapVolumeStyleObject');
>> var OrientationChaser =
>> java.import('org.web3d.x3d.jsail.Followers.OrientationChaserObject');
>> var OrientationDamper =
>> java.import('org.web3d.x3d.jsail.Followers.OrientationDamperObject');
>> var OrientationInterpolator =
>> java.import('org.web3d.x3d.jsail.Interpolation.OrientationInterpolatorObject');
>> var OrthoViewpoint =
>> java.import('org.web3d.x3d.jsail.Navigation.OrthoViewpointObject');
>> var PackagedShader =
>> java.import('org.web3d.x3d.jsail.Shaders.PackagedShaderObject');
>> var ParticleSystem =
>> java.import('org.web3d.x3d.jsail.ParticleSystems.ParticleSystemObject');
>> var PickableGroup =
>> java.import('org.web3d.x3d.jsail.Picking.PickableGroupObject');
>> var PixelTexture =
>> java.import('org.web3d.x3d.jsail.Texturing.PixelTextureObject');
>> var PixelTexture3D =
>> java.import('org.web3d.x3d.jsail.Texturing3D.PixelTexture3DObject');
>> var PlaneSensor =
>> java.import('org.web3d.x3d.jsail.PointingDeviceSensor.PlaneSensorObject');
>> var PointEmitter =
>> java.import('org.web3d.x3d.jsail.ParticleSystems.PointEmitterObject');
>> var PointLight =
>> java.import('org.web3d.x3d.jsail.Lighting.PointLightObject');
>> var PointPickSensor =
>> java.import('org.web3d.x3d.jsail.Picking.PointPickSensorObject');
>> var PointSet =
>> java.import('org.web3d.x3d.jsail.Rendering.PointSetObject');
>> var Polyline2D =
>> java.import('org.web3d.x3d.jsail.Geometry2D.Polyline2DObject');
>> var PolylineEmitter =
>> java.import('org.web3d.x3d.jsail.ParticleSystems.PolylineEmitterObject');
>> var Polypoint2D =
>> java.import('org.web3d.x3d.jsail.Geometry2D.Polypoint2DObject');
>> var PositionChaser =
>> java.import('org.web3d.x3d.jsail.Followers.PositionChaserObject');
>> var PositionChaser2D =
>> java.import('org.web3d.x3d.jsail.Followers.PositionChaser2DObject');
>> var PositionDamper =
>> java.import('org.web3d.x3d.jsail.Followers.PositionDamperObject');
>> var PositionDamper2D =
>> java.import('org.web3d.x3d.jsail.Followers.PositionDamper2DObject');
>> var PositionInterpolator =
>> java.import('org.web3d.x3d.jsail.Interpolation.PositionInterpolatorObject');
>> var PositionInterpolator2D =
>> java.import('org.web3d.x3d.jsail.Interpolation.PositionInterpolator2DObject');
>> var PrimitivePickSensor =
>> java.import('org.web3d.x3d.jsail.Picking.PrimitivePickSensorObject');
>> var ProgramShader =
>> java.import('org.web3d.x3d.jsail.Shaders.ProgramShaderObject');
>> var ProjectionVolumeStyle =
>> java.import('org.web3d.x3d.jsail.VolumeRendering.ProjectionVolumeStyleObject');
>> var ProtoInstance =
>> java.import('org.web3d.x3d.jsail.Core.ProtoInstanceObject');
>> var ProximitySensor =
>> java.import('org.web3d.x3d.jsail.EnvironmentalSensor.ProximitySensorObject');
>> var QuadSet =
>> java.import('org.web3d.x3d.jsail.CADGeometry.QuadSetObject');
>> var ReceiverPdu =
>> java.import('org.web3d.x3d.jsail.DIS.ReceiverPduObject');
>> var Rectangle2D =
>> java.import('org.web3d.x3d.jsail.Geometry2D.Rectangle2DObject');
>> var RigidBody =
>> java.import('org.web3d.x3d.jsail.RigidBodyPhysics.RigidBodyObject');
>> var RigidBodyCollection =
>> java.import('org.web3d.x3d.jsail.RigidBodyPhysics.RigidBodyCollectionObject');
>> var ScalarChaser =
>> java.import('org.web3d.x3d.jsail.Followers.ScalarChaserObject');
>> var ScalarDamper =
>> java.import('org.web3d.x3d.jsail.Followers.ScalarDamperObject');
>> var ScalarInterpolator =
>> java.import('org.web3d.x3d.jsail.Interpolation.ScalarInterpolatorObject');
>> var ScreenFontStyle =
>> java.import('org.web3d.x3d.jsail.Layout.ScreenFontStyleObject');
>> var ScreenGroup =
>> java.import('org.web3d.x3d.jsail.Layout.ScreenGroupObject');
>> var Script = java.import('org.web3d.x3d.jsail.Scripting.ScriptObject');
>> var SegmentedVolumeData =
>> java.import('org.web3d.x3d.jsail.VolumeRendering.SegmentedVolumeDataObject');
>> var ShadedVolumeStyle =
>> java.import('org.web3d.x3d.jsail.VolumeRendering.ShadedVolumeStyleObject');
>> var ShaderPart =
>> java.import('org.web3d.x3d.jsail.Shaders.ShaderPartObject');
>> var ShaderProgram =
>> java.import('org.web3d.x3d.jsail.Shaders.ShaderProgramObject');
>> var Shape = java.import('org.web3d.x3d.jsail.Shape.ShapeObject');
>> var SignalPdu = java.import('org.web3d.x3d.jsail.DIS.SignalPduObject');
>> var SilhouetteEnhancementVolumeStyle =
>> java.import('org.web3d.x3d.jsail.VolumeRendering.SilhouetteEnhancementVolumeStyleObject');
>> var SingleAxisHingeJoint =
>> java.import('org.web3d.x3d.jsail.RigidBodyPhysics.SingleAxisHingeJointObject');
>> var SliderJoint =
>> java.import('org.web3d.x3d.jsail.RigidBodyPhysics.SliderJointObject');
>> var Sound = java.import('org.web3d.x3d.jsail.Sound.SoundObject');
>> var Sphere = java.import('org.web3d.x3d.jsail.Geometry3D.SphereObject');
>> var SphereSensor =
>> java.import('org.web3d.x3d.jsail.PointingDeviceSensor.SphereSensorObject');
>> var SplinePositionInterpolator =
>> java.import('org.web3d.x3d.jsail.Interpolation.SplinePositionInterpolatorObject');
>> var SplinePositionInterpolator2D =
>> java.import('org.web3d.x3d.jsail.Interpolation.SplinePositionInterpolator2DObject');
>> var SplineScalarInterpolator =
>> java.import('org.web3d.x3d.jsail.Interpolation.SplineScalarInterpolatorObject');
>> var SpotLight =
>> java.import('org.web3d.x3d.jsail.Lighting.SpotLightObject');
>> var SquadOrientationInterpolator =
>> java.import('org.web3d.x3d.jsail.Interpolation.SquadOrientationInterpolatorObject');
>> var StaticGroup =
>> java.import('org.web3d.x3d.jsail.Grouping.StaticGroupObject');
>> var StringSensor =
>> java.import('org.web3d.x3d.jsail.KeyDeviceSensor.StringSensorObject');
>> var SurfaceEmitter =
>> java.import('org.web3d.x3d.jsail.ParticleSystems.SurfaceEmitterObject');
>> var Switch = java.import('org.web3d.x3d.jsail.Grouping.SwitchObject');
>> var TexCoordChaser2D =
>> java.import('org.web3d.x3d.jsail.Followers.TexCoordChaser2DObject');
>> var TexCoordDamper2D =
>> java.import('org.web3d.x3d.jsail.Followers.TexCoordDamper2DObject');
>> var Text = java.import('org.web3d.x3d.jsail.Text.TextObject');
>> var TextureBackground =
>> java.import('org.web3d.x3d.jsail.EnvironmentalEffects.TextureBackgroundObject');
>> var TextureCoordinate =
>> java.import('org.web3d.x3d.jsail.Texturing.TextureCoordinateObject');
>> var TextureCoordinate3D =
>> java.import('org.web3d.x3d.jsail.Texturing3D.TextureCoordinate3DObject');
>> var TextureCoordinate4D =
>> java.import('org.web3d.x3d.jsail.Texturing3D.TextureCoordinate4DObject');
>> var TextureCoordinateGenerator =
>> java.import('org.web3d.x3d.jsail.Texturing.TextureCoordinateGeneratorObject');
>> var TextureProperties =
>> java.import('org.web3d.x3d.jsail.Texturing.TexturePropertiesObject');
>> var TextureTransform =
>> java.import('org.web3d.x3d.jsail.Texturing.TextureTransformObject');
>> var TextureTransform3D =
>> java.import('org.web3d.x3d.jsail.Texturing3D.TextureTransform3DObject');
>> var TextureTransformMatrix3D =
>> java.import('org.web3d.x3d.jsail.Texturing3D.TextureTransformMatrix3DObject');
>> var TimeSensor = java.import('org.web3d.x3d.jsail.Time.TimeSensorObject');
>> var TimeTrigger =
>> java.import('org.web3d.x3d.jsail.EventUtilities.TimeTriggerObject');
>> var ToneMappedVolumeStyle =
>> java.import('org.web3d.x3d.jsail.VolumeRendering.ToneMappedVolumeStyleObject');
>> var TouchSensor =
>> java.import('org.web3d.x3d.jsail.PointingDeviceSensor.TouchSensorObject');
>> var Transform =
>> java.import('org.web3d.x3d.jsail.Grouping.TransformObject');
>> var TransformSensor =
>> java.import('org.web3d.x3d.jsail.EnvironmentalSensor.TransformSensorObject');
>> var TransmitterPdu =
>> java.import('org.web3d.x3d.jsail.DIS.TransmitterPduObject');
>> var TriangleFanSet =
>> java.import('org.web3d.x3d.jsail.Rendering.TriangleFanSetObject');
>> var TriangleSet =
>> java.import('org.web3d.x3d.jsail.Rendering.TriangleSetObject');
>> var TriangleSet2D =
>> java.import('org.web3d.x3d.jsail.Geometry2D.TriangleSet2DObject');
>> var TriangleStripSet =
>> java.import('org.web3d.x3d.jsail.Rendering.TriangleStripSetObject');
>> var TwoSidedMaterial =
>> java.import('org.web3d.x3d.jsail.Shape.TwoSidedMaterialObject');
>> var UniversalJoint =
>> java.import('org.web3d.x3d.jsail.RigidBodyPhysics.UniversalJointObject');
>> var Viewpoint =
>> java.import('org.web3d.x3d.jsail.Navigation.ViewpointObject');
>> var ViewpointGroup =
>> java.import('org.web3d.x3d.jsail.Navigation.ViewpointGroupObject');
>> var Viewport = java.import('org.web3d.x3d.jsail.Layering.ViewportObject');
>> var VisibilitySensor =
>> java.import('org.web3d.x3d.jsail.EnvironmentalSensor.VisibilitySensorObject');
>> var VolumeData =
>> java.import('org.web3d.x3d.jsail.VolumeRendering.VolumeDataObject');
>> var VolumeEmitter =
>> java.import('org.web3d.x3d.jsail.ParticleSystems.VolumeEmitterObject');
>> var VolumePickSensor =
>> java.import('org.web3d.x3d.jsail.Picking.VolumePickSensorObject');
>> var WindPhysicsModel =
>> java.import('org.web3d.x3d.jsail.ParticleSystems.WindPhysicsModelObject');
>> var WorldInfo = java.import('org.web3d.x3d.jsail.Core.WorldInfoObject');
>> var component = java.import('org.web3d.x3d.jsail.Core.componentObject');
>> var connect = java.import('org.web3d.x3d.jsail.Core.connectObject');
>> var EXPORT = java.import('org.web3d.x3d.jsail.Networking.EXPORTObject');
>> var ExternProtoDeclare =
>> java.import('org.web3d.x3d.jsail.Core.ExternProtoDeclareObject');
>> var field = java.import('org.web3d.x3d.jsail.Core.fieldObject');
>> var fieldValue = java.import('org.web3d.x3d.jsail.Core.fieldValueObject');
>> var head = java.import('org.web3d.x3d.jsail.Core.headObject');
>> var IMPORT = java.import('org.web3d.x3d.jsail.Networking.IMPORTObject');
>> var IS = java.import('org.web3d.x3d.jsail.Core.ISObject');
>> var meta = java.import('org.web3d.x3d.jsail.Core.metaObject');
>> var ProtoBody = java.import('org.web3d.x3d.jsail.Core.ProtoBodyObject');
>> var ProtoDeclare =
>> java.import('org.web3d.x3d.jsail.Core.ProtoDeclareObject');
>> var ProtoInterface =
>> java.import('org.web3d.x3d.jsail.Core.ProtoInterfaceObject');
>> var ROUTE = java.import('org.web3d.x3d.jsail.Core.ROUTEObject');
>> var Scene = java.import('org.web3d.x3d.jsail.Core.SceneObject');
>> var unit = java.import('org.web3d.x3d.jsail.Core.unitObject');
>> var X3D = java.import('org.web3d.x3d.jsail.Core.X3DObject');
>> var SFBool = java.import('org.web3d.x3d.jsail.fields.SFBoolObject');
>> var MFBool = java.import('org.web3d.x3d.jsail.fields.MFBoolObject');
>> var SFColor = java.import('org.web3d.x3d.jsail.fields.SFColorObject');
>> var MFColor = java.import('org.web3d.x3d.jsail.fields.MFColorObject');
>> var SFColorRGBA =
>> java.import('org.web3d.x3d.jsail.fields.SFColorRGBAObject');
>> var MFColorRGBA =
>> java.import('org.web3d.x3d.jsail.fields.MFColorRGBAObject');
>> var SFDouble = java.import('org.web3d.x3d.jsail.fields.SFDoubleObject');
>> var MFDouble = java.import('org.web3d.x3d.jsail.fields.MFDoubleObject');
>> var SFFloat = java.import('org.web3d.x3d.jsail.fields.SFFloatObject');
>> var MFFloat = java.import('org.web3d.x3d.jsail.fields.MFFloatObject');
>> var SFImage = java.import('org.web3d.x3d.jsail.fields.SFImageObject');
>> var MFImage = java.import('org.web3d.x3d.jsail.fields.MFImageObject');
>> var SFInt32 = java.import('org.web3d.x3d.jsail.fields.SFInt32Object');
>> var MFInt32 = java.import('org.web3d.x3d.jsail.fields.MFInt32Object');
>> var SFMatrix3d =
>> java.import('org.web3d.x3d.jsail.fields.SFMatrix3dObject');
>> var MFMatrix3d =
>> java.import('org.web3d.x3d.jsail.fields.MFMatrix3dObject');
>> var SFMatrix3f =
>> java.import('org.web3d.x3d.jsail.fields.SFMatrix3fObject');
>> var MFMatrix3f =
>> java.import('org.web3d.x3d.jsail.fields.MFMatrix3fObject');
>> var SFMatrix4d =
>> java.import('org.web3d.x3d.jsail.fields.SFMatrix4dObject');
>> var MFMatrix4d =
>> java.import('org.web3d.x3d.jsail.fields.MFMatrix4dObject');
>> var SFMatrix4f =
>> java.import('org.web3d.x3d.jsail.fields.SFMatrix4fObject');
>> var MFMatrix4f =
>> java.import('org.web3d.x3d.jsail.fields.MFMatrix4fObject');
>> var SFString = java.import('org.web3d.x3d.jsail.fields.SFStringObject');
>> var SFRotation =
>> java.import('org.web3d.x3d.jsail.fields.SFRotationObject');
>> var MFRotation =
>> java.import('org.web3d.x3d.jsail.fields.MFRotationObject');
>> var MFString = java.import('org.web3d.x3d.jsail.fields.MFStringObject');
>> var SFTime = java.import('org.web3d.x3d.jsail.fields.SFTimeObject');
>> var MFTime = java.import('org.web3d.x3d.jsail.fields.MFTimeObject');
>> var SFVec2d = java.import('org.web3d.x3d.jsail.fields.SFVec2dObject');
>> var MFVec2d = java.import('org.web3d.x3d.jsail.fields.MFVec2dObject');
>> var SFVec2f = java.import('org.web3d.x3d.jsail.fields.SFVec2fObject');
>> var MFVec2f = java.import('org.web3d.x3d.jsail.fields.MFVec2fObject');
>> var SFVec3d = java.import('org.web3d.x3d.jsail.fields.SFVec3dObject');
>> var MFVec3d = java.import('org.web3d.x3d.jsail.fields.MFVec3dObject');
>> var SFVec3f = java.import('org.web3d.x3d.jsail.fields.SFVec3fObject');
>> var MFVec3f = java.import('org.web3d.x3d.jsail.fields.MFVec3fObject');
>> var SFVec4d = java.import('org.web3d.x3d.jsail.fields.SFVec4dObject');
>> var MFVec4d = java.import('org.web3d.x3d.jsail.fields.MFVec4dObject');
>> var SFVec4f = java.import('org.web3d.x3d.jsail.fields.SFVec4fObject');
>> var MFVec4f = java.import('org.web3d.x3d.jsail.fields.MFVec4fObject');
>>
>> On Fri, Apr 10, 2020 at 10:03 PM John Carlson <yottzumm at gmail.com> wrote:
>>
>>> I discovered a way forward:
>>> https://github.com/joeferner/node-java#import Makes a Java class work
>>> like a JavaScript class, in my reading.  I will proceed to write a nodejs
>>> file which creates all the classes, if we are in agreement that this is a
>>> nodejs-only solution and we want it. node-java is the npm java I was
>>> talking about.  This will primarily make an X3DJSAIL derivative, and will
>>> not be native JavaScript. I am not really into generating a bunch of
>>> untested code at this point, and it seems like X3DJSAIL is becoming a crown
>>> jewel again.  I do think that something like PhantomJS is better for
>>> testing webapps rather than creating a nodejs app to do it. I still test my
>>> webapps by hand unfortunately!
>>>
>>> However, I think we may have discussed this solution some time back, and
>>> it may be worth reviewing the email.
>>>
>>> It does tie us to an external source code out of our control, but is
>>> that any different netbeans?
>>>
>>> Will we run into the same problems as PyJNIus?
>>>
>>> It seems like we could create some test cases pretty quickly, that is,
>>> use the same ones that cause PyJNIus to fail.
>>>
>>> I'm not sure when I'll get to this.
>>>
>>> Note that this will likely NOT be like the SAI reference implementation
>>> for ECMAScript.
>>> This will be a Java derivative that builds on previous work.
>>>
>>> I welcome people who want to help with the JSweet solution, but that
>>> won't be SAI either.
>>>
>>> Perhaps we should have server-side SAI and client-side SAI?
>>>
>>> John
>>>
>>> On Fri, Apr 10, 2020 at 7:46 PM John Carlson <yottzumm at gmail.com> wrote:
>>>
>>>> So here's a description of my Java<->node.js bridge for RunSaxon.java.
>>>>
>>>> I have a file, runAndSend.js that imports another javascript file,
>>>> allsaxon.js
>>>>
>>>> runAndSend.js has the following code:
>>>> -----------------------------------------------------
>>>> var runsaxon = require('./allsaxon');
>>>> var config = require('./config');
>>>> var fs = require("fs");
>>>>
>>>> function runAndSend(args, callback) {
>>>>         runsaxon(args);
>>>> ----------------------------------------------------
>>>> allsaxon.js looks like this:
>>>> ----------------------------------------------------
>>>> var java = require("java");
>>>> java.options.push("-Djava.awt.headless=true");
>>>> java.options.push("-Xmx1000m");
>>>>
>>>> //java.options.push('-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005');
>>>> java.classpath.push("saxon9he.jar");
>>>> java.classpath.push("../saxon9he.jar");
>>>> java.classpath.push("../../saxon9he.jar");
>>>> java.classpath.push("../../../saxon9he.jar");
>>>>
>>>> java.classpath.push("target/classes");
>>>> java.classpath.push("../target/classes");
>>>> java.classpath.push("../../target/classes");
>>>> java.classpath.push("../../../target/classes");
>>>>
>>>> java.classpath.push("target/X3DJSONLD-1.0-SNAPSHOT.jar");
>>>> java.classpath.push("../target/X3DJSONLD-1.0-SNAPSHOT.jar");
>>>> java.classpath.push("../../target/X3DJSONLD-1.0-SNAPSHOT.jar");
>>>> java.classpath.push("../../../target/X3DJSONLD-1.0-SNAPSHOT.jar");
>>>>
>>>> function translate(infiles) {
>>>>         java.callStaticMethodSync("net.coderextreme.RunSaxon", "main",
>>>> infiles);
>>>> }
>>>>
>>>> if (typeof module === 'object')  {
>>>>         module.exports = translate;
>>>> }
>>>>
>>>> ---------------------------------------------------------------------------------------------------------
>>>> I have forgotten if there are class level interfaces to the underlying
>>>> Java code, as we had in PyJNIus.   That would require research. We may run
>>>> into the same issues as PyJNIus.
>>>>
>>>> In any cases, it would require mirroring the entire X3DJSAIL package,
>>>> so it would be best if we probably wrote a stylesheet that put out this
>>>> binding JavaScript code, whatever that may be.
>>>>
>>>> Here is the repository for npm (or node) java:
>>>>
>>>> https://github.com/joeferner/node-java
>>>> <https://github.com/joeferner/node-java#javaNewInstance>
>>>>
>>>> It seems to me that we need some python or xslt code to read the X3DUOM
>>>> and produce the glue code. Possibly only at the class level, but more
>>>> likely at the method and instance level, not sure.  That requires more
>>>> research.  I suggest someone take the Transform specification and convert
>>>> it to the necessary glue code.  For me, I don't "need" this glue code as I
>>>> am happy with Nashorn presently.  So it would probably be best to apply
>>>> some $$ to make me need this glue code.  That is, I am pretty much happy
>>>> with a Java/Nashorn server-side and JavaScript client-side solution.  I
>>>> don't really need a JavaScript server-side solution.
>>>>
>>>> So who exactly needs a JavaScript server solution, and why aren't they
>>>> speaking up?
>>>>
>>>> Thanks,
>>>>
>>>> John
>>>>
>>>>
>>>> On Fri, Apr 10, 2020 at 7:24 PM John Carlson <yottzumm at gmail.com>
>>>> wrote:
>>>>
>>>>>
>>>>>
>>>>> On Tue, Mar 24, 2020 at 8:20 AM Don Brutzman wrote:
>>>>>
>>>>> Authoring use-case environments are
>>>>>> 1. Script inside X3D scene graph,
>>>>>> 2. Script in outer HTML5 web page,
>>>>>> 3. Standalone programmatic use in node.js
>>>>>>
>>>>>> Now get specific.
>>>>>>
>>>>>
>>>>> Not yet.   We need to discuss the environments.   X_ITE does inside
>>>>> X3D, and with the addition of X_ITE_DOM, in outer HTML5. X3DOM does
>>>>> outer HTML5. X3DJSAIL is a standalone library.
>>>>>
>>>>> So what we really need is a standalone EAI for node.js without
>>>>> rendering except to an encoding.  Can we turn either X3DJSAIL, X_ITE or
>>>>> X3DOM into such an environment?  I provided a solution for Nashorn on top
>>>>> of X3DJSAIL, but not a solution for node.js. Have we had any take up on the
>>>>> Nashorn solution, enough to warrant a node.js solution?
>>>>>
>>>>> So I would recommend that before researching all the various
>>>>> Transforms, that we just try to develop a single Transform.js class for
>>>>> node.js, with an encoding rendering.  It will be throwaway code, just a
>>>>> proof of concept.
>>>>>
>>>>> Suggestions for next steps are welcome, and I will review Don's email
>>>>> again and see what he said.
>>>>>
>>>>> For node.js, I believe there are packages that emulate the browser
>>>>> enviroment, i think that jsdom (?) and xmldom are two popular ones, so we
>>>>> can look at turning node.js into a headless browser.   There are also ways
>>>>> to run browsers in headless mode, PhantomJs comes to mind, but I haven't
>>>>> researched this extensively.
>>>>>
>>>>> There are environments for running Java and node.js together, as I
>>>>> demonstrated with RunSaxon.java in X3DJSONLD.  My approach for that was
>>>>> simplistic, and won't really work for a multiclass approach.  There is also
>>>>> the java npm package that may lead towards a solution.
>>>>>
>>>>> So a possible path forward is generating the glue code between node.js
>>>>> and Java, similar to what we did for PyJNIus.
>>>>>
>>>>> I suggest that we do a very simple single class solution, not unlike
>>>>> the RunSaxon.java solution. This required various node.js files.   I think
>>>>> the new solution will be more complex to deal with the npm java
>>>>> peculiarities.
>>>>>
>>>>> So this is throwaway code for now, just a single class.
>>>>>
>>>>> Note that I have been stripping RunSaxon code out of my code, since
>>>>> I have a XML to JSON solution.
>>>>>
>>>>> What do you think?
>>>>>
>>>>> John
>>>>>
>>>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20200410/764ecf89/attachment-0001.html>


More information about the x3d-public mailing list