package net.x3djsonld.data;
import org.web3d.x3d.jsail.Core.*;
import org.web3d.x3d.jsail.fields.*;
import org.web3d.x3d.jsail.Geometry3D.*;
import org.web3d.x3d.jsail.Grouping.*;
import org.web3d.x3d.jsail.Navigation.*;
import org.web3d.x3d.jsail.Rendering.*;
import org.web3d.x3d.jsail.Shape.*;
import org.web3d.x3d.jsail.Texturing.*;
// Javadoc annotations follow, see below for source.
/**
*
Test a collide value of false. A Collision node with a collide value of false has Shape node containing primitive geometry as its children. In addition the "root" Collision node has child Collision node with collide values of "true" for an IndexedFaceSet, an ElevationGrid and Extrusion geomtry children. Because collide is false for the root Collide node, collisions between the viewer avatar and geometry are not detected, and the viewer should be able to "enter" and "move through" all geometry.
Related links: collidefalse.java source, collidefalse catalog page, X3D Resources, X3D Scene Authoring Hints, and X3D Tooltips.
Scene Meta Information
meta tags |
Document Metadata |
title |
collidefalse.x3d |
MovingImage |
collidefalse-movie.mpg |
reference |
http://www.nist.gov/vrml.html |
reference |
http://www.itl.nist.gov/div897/ctg/vrml/vrml.html |
creator |
http://www.itl.nist.gov/div897/ctg/vrml/members.html |
disclaimer |
This file was provided by the National Institute of Standards and Technology, and is part of the X3D Conformance Test Suite, available at http://www.nist.gov/vrml.html The information contained within this file is provided for use in establishing conformance to the ISO VRML97 Specification. Conformance to this test does not imply recommendation or endorsement by the National Institute of Standards and Technology. This software can be redistributed and/or modified freely provided that any derivative works bear some notice that they are derived from it, and any modified versions bear some notice that they have been modified. |
info |
Correct definition and compliance of this conformance scene is maintained by the X3D Working Group, https://www.web3d.org/working-groups/x3d |
translator |
Michael Kass NIST, Don Brutzman NPS |
translated |
21 January 2001 |
modified |
20 October 2019 |
description |
Test a collide value of false. A Collision node with a collide value of false has Shape node containing primitive geometry as its children. In addition the "root" Collision node has child Collision node with collide values of "true" for an IndexedFaceSet, an ElevationGrid and Extrusion geomtry children. Because collide is false for the root Collide node, collisions between the viewer avatar and geometry are not detected, and the viewer should be able to "enter" and "move through" all geometry. |
identifier |
https://www.web3d.org/x3d/content/examples/ConformanceNist/GroupingNodes/Collision/collidefalse.x3d |
generator |
Vrml97ToX3dNist, http://ovrt.nist.gov/v2_x3d.html |
generator |
X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit |
license |
../../license.html |
|
This program uses the
X3D Java Scene Access Interface Library (X3DJSAIL).
It has been produced using the
X3dToJava.xslt
stylesheet to create Java source code from an .x3d
model.
* @author http://www.itl.nist.gov/div897/ctg/vrml/members.html
*/
public class collidefalse
{
/** Default constructor to create this object. */
public collidefalse ()
{
initialize();
}
/** Create and initialize the X3D model for this object. */
public final void initialize()
{
x3dModel = new X3D().setProfile(X3D.PROFILE_IMMERSIVE).setVersion(X3D.VERSION_3_0)
.setHead(new head()
.addMeta(new meta().setName(meta.NAME_TITLE ).setContent("collidefalse.x3d"))
.addMeta(new meta().setName(meta.NAME_MOVINGIMAGE).setContent("collidefalse-movie.mpg"))
.addMeta(new meta().setName(meta.NAME_REFERENCE ).setContent("http://www.nist.gov/vrml.html"))
.addMeta(new meta().setName(meta.NAME_REFERENCE ).setContent("http://www.itl.nist.gov/div897/ctg/vrml/vrml.html"))
.addMeta(new meta().setName(meta.NAME_CREATOR ).setContent("http://www.itl.nist.gov/div897/ctg/vrml/members.html"))
.addMeta(new meta().setName("disclaimer").setContent("This file was provided by the National Institute of Standards and Technology, and is part of the X3D Conformance Test Suite, available at http://www.nist.gov/vrml.html The information contained within this file is provided for use in establishing conformance to the ISO VRML97 Specification. Conformance to this test does not imply recommendation or endorsement by the National Institute of Standards and Technology. This software can be redistributed and/or modified freely provided that any derivative works bear some notice that they are derived from it, and any modified versions bear some notice that they have been modified."))
.addMeta(new meta().setName(meta.NAME_INFO ).setContent("Correct definition and compliance of this conformance scene is maintained by the X3D Working Group, https://www.web3d.org/working-groups/x3d"))
.addMeta(new meta().setName(meta.NAME_TRANSLATOR ).setContent("Michael Kass NIST, Don Brutzman NPS"))
.addMeta(new meta().setName(meta.NAME_TRANSLATED ).setContent("21 January 2001"))
.addMeta(new meta().setName(meta.NAME_MODIFIED ).setContent("20 October 2019"))
.addMeta(new meta().setName(meta.NAME_DESCRIPTION).setContent("Test a collide value of false. A Collision node with a collide value of false has Shape node containing primitive geometry as its children. In addition the \"root\" Collision node has child Collision node with collide values of \"true\" for an IndexedFaceSet, an ElevationGrid and Extrusion geomtry children. Because collide is false for the root Collide node, collisions between the viewer avatar and geometry are not detected, and the viewer should be able to \"enter\" and \"move through\" all geometry."))
.addMeta(new meta().setName(meta.NAME_IDENTIFIER ).setContent("https://www.web3d.org/x3d/content/examples/ConformanceNist/GroupingNodes/Collision/collidefalse.x3d"))
.addMeta(new meta().setName(meta.NAME_GENERATOR ).setContent("Vrml97ToX3dNist, http://ovrt.nist.gov/v2_x3d.html"))
.addMeta(new meta().setName(meta.NAME_GENERATOR ).setContent("X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit"))
.addMeta(new meta().setName(meta.NAME_LICENSE ).setContent("../../license.html")))
.setScene(new Scene()
.addChild(new WorldInfo().setTitle("collidefalse.x3d"))
.addChild(new Collision().setEnabled(false)
.addChild(new Collision()
.addChild(new Transform().setTranslation(-1.18587,-0.651405,-5.5323)
.addChild(new Shape()
.setAppearance(new Appearance()
.setMaterial(new Material()))
.setGeometry(new ElevationGrid().setSolid(false).setXDimension(21).setXSpacing(0.1).setZDimension(21).setZSpacing(0.1).setHeight(getElevationGrid_7_20_height())))))
.addChild(new Transform().setScale(0.572482,0.572482,0.572481).setTranslation(-3.09391,1.81029,-4.5)
.addChild(new Shape()
.setAppearance(new Appearance()
.setMaterial(new Material()))
.setGeometry(new Box())))
.addChild(new Transform().setScale(0.569915,0.569915,0.569916).setTranslation(-1.2262,1.80172,-4.501)
.addChild(new Shape()
.setAppearance(new Appearance()
.setMaterial(new Material()))
.setGeometry(new Cylinder())))
.addChild(new Transform().setScale(0.588,0.588,0.588).setTranslation(0.881025,1.8041,-4.50144)
.addChild(new Shape()
.setAppearance(new Appearance()
.setMaterial(new Material()))
.setGeometry(new Cone())))
.addChild(new Transform().setScale(0.679594,0.679594,0.679594).setTranslation(3.02017,1.79012,-4.50144)
.addChild(new Shape()
.setAppearance(new Appearance()
.setMaterial(new Material()))
.setGeometry(new Sphere())))
.addChild(new Collision()
.addChild(new Transform().setScale(0.313408,0.313408,0.313407).setTranslation(-3.07052,-0.154345,-4.50195)
.addChild(new Shape()
.setAppearance(new Appearance()
.setMaterial(new Material()))
.setGeometry(new Extrusion().setCrossSection(new MFVec2f(new double[] {1,0,0.92388,0.382683,0.707107,0.707106,0.382684,0.923879,1.26759e-006,1,-0.382682,0.92388,-0.707105,0.707108,-0.923879,0.382685,-1,2.53518e-006,-0.923881,-0.382681,-0.707109,-0.707105,-0.382687,-0.923878,-3.80277e-006,-1.0,0.38268,-0.923881,0.707104,-0.70711,0.923878,-0.382688,1.0,0.0})).setOrientation(0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0).setScale(new MFVec2f(new double[] {1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0})).setSolid(false).setSpine(new MFVec3f(new double[] {-1.58296,-1.01245,0.0,-1.21333,-1.39814,0.0,-0.618718,-1.41421,0.0,0.0,-1.0,0.0,0.0,1.0,0.0,0.554436,1.39814,0.0,1.18119,1.39814,0.0,1.56688,1.01245,0.0}))))))
.addChild(new Collision()
.addChild(new Transform().setScale(0.615111,0.615111,0.615112).setTranslation(2.87214,-0.147732,-4.50195)
.addChild(new Shape()
.setAppearance(new Appearance()
.setMaterial(new Material()))
.setGeometry(new IndexedFaceSet().setCreaseAngle(0.5).setCoordIndex(new int[] {0,1,3,2,-1,4,5,7,6,-1,6,7,1,0,-1,2,3,5,4,-1,6,0,2,4,-1,1,7,5,3,-1}).setTexCoordIndex(new int[] {0,1,3,2,-1,0,1,3,2,-1,0,1,3,2,-1,0,1,3,2,-1,0,1,3,2,-1,0,1,3,2,-1})
.setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-2.0,1.0,1.0,-2.0,-1.0,1.0,2.0,1.0,1.0,2.0,-1.0,1.0,2.0,1.0,-1.0,2.0,-1.0,-1.0,-2.0,1.0,-1.0,-2.0,-1.0,-1.0})))
.setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {0.0,1.0,0.0,0.0,1.0,1.0,1.0,0.0})))))))));
}
// end of initialize() method
/** Define subarrays using type double[] */
private double[] getElevationGrid_7_20_height_1()
{
double[] value = {0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0233242,0.0461275,0.0679003,0.0881563,0.106443,0.122352,0.135528,0.145676,0.152571,0.156057,0.156057,0.152571,0.145676,0.135528,0.122352,0.106443,0.0881566,0.0679006,0.0461278,0.0233246,0.0,0.0461275,0.0912245,0.134284,0.174343,0.210508,0.241971,0.268028,0.288098,0.301733,0.308627,0.308627,0.301733,0.288099,0.268029,0.241971,0.210509,0.174344,0.134284,0.0912253,0.0461283,0.0,0.0679003,0.134284,0.197668,0.256636,0.309871,0.356185,0.394542,0.424085,0.444155,0.454304,0.454304,0.444155,0.424085,0.394542,0.356185,0.309872,0.256637,0.197669,0.134285,0.0679015,0.0,0.0881563,0.174343,0.256636,0.333195,0.402312,0.462442,0.512241,0.550598,0.576656,0.589832,0.589832,0.576656,0.550599,0.512242,0.462443,0.402313,0.333197,0.256637,0.174345,0.0881578,0.0,0.106443,0.210508,0.309871,0.402312,0.485766,0.558369,0.618498,0.664812,0.696275,0.712184,0.712184,0.696275,0.664813,0.618499,0.55837,0.485767,0.402314,0.309873,0.21051,0.106445,0.0,0.122352,0.241971,0.356185,0.462442,0.558369,0.641823,0.710939,0.764175,0.80034,0.818627,0.818627,0.800341,0.764176,0.710941,0.641824,0.55837,0.462444,0.356187,0.241973,0.122354,0.0,0.135528,0.268028,0.394542,0.512241,0.618498,0.710939,0.787499,0.846468,0.886527,0.906783,0.906784,0.886528,0.846468,0.7875,0.710941,0.6185,0.512243,0.394544,0.268031,0.13553,0.0,0.145676,0.288098,0.424085,0.550598,0.664812,0.764175,0.846468,0.909852,0.952911,0.974684,0.974684,0.952911,0.909852,0.846469,0.764177,0.664814,0.5506,0.424087,0.288101,0.145679,0.0,0.152571,0.301733,0.444155,0.576656,0.696275,0.80034,0.886527,0.952911,0.998008,1.02081,1.02081,0.998009,0.952912,0.886529,0.800342,0.696277,0.576658,0.444158,0.301736,0.152573,0.0,0.156057,0.308627,0.454304,0.589832,0.712184,0.818627,0.906783,0.974684,1.02081,1.04414,1.04414,1.02081,0.974685,0.906785,0.818629,0.712186,0.589834,0.454306,0.30863,0.156059,0.0,0.156057,0.308627,0.454304,0.589832,0.712184,0.818627,0.906784,0.974684,1.02081,1.04414,1.04414,1.02081,0.974685,0.906785,0.818629,0.712186,0.589834,0.454306,0.30863,0.156059,0.0,0.152571,0.301733,0.444155,0.576656,0.696275,0.800341,0.886528,0.952911,0.998009,1.02081,1.02081,0.998009,0.952912,0.886529,0.800342,0.696277,0.576658,0.444158,0.301736,0.152573,0.0,0.145676,0.288099,0.424085,0.550599,0.664813,0.764176,0.846468,0.909852,0.952912,0.974685,0.974685,0.952912,0.909853,0.84647,0.764177,0.664815,0.550601,0.424088,0.288101,0.145679,0.0,0.135528,0.268029,0.394542,0.512242,0.618499,0.710941,0.7875,0.846469,0.886529,0.906785,0.906785,0.886529,0.84647,0.787502,0.710942,0.618501,0.512244,0.394544,0.268031,0.135531,0.0,0.122352,0.241971,0.356185,0.462443,0.55837,0.641824,0.710941,0.764177,0.800342,0.818629,0.818629,0.800342,0.764177,0.710942,0.641825,0.558372,0.462445,0.356187,0.241974,0.122354,0.0,0.106443,0.210509,0.309872,0.402313,0.485767,0.55837,0.6185,0.664814,0.696277,0.712186,0.712186,0.696277,0.664815,0.618501,0.558372,0.485769,0.402315,0.309874,0.210511,0.106445,0.0,0.0881566,0.174344,0.256637,0.333197,0.402314,0.462444,0.512243,0.5506,0.576658,0.589834,0.589834,0.576658,0.550601,0.512244,0.462445,0.402315,0.333198,0.256638,0.174345,0.0881582,0.0,0.0679006,0.134284,0.197669,0.256637,0.309873,0.356187,0.394544,0.424087,0.444158,0.454306,0.454306,0.444158,0.424088,0.394544,0.356187,0.309874,0.256638,0.19767,0.134286,0.0679018,0.0,0.0461278,0.0912253,0.134285,0.174345,0.21051,0.241973,0.268031,0.288101,0.301736,0.30863,0.30863,0.301736,0.288101,0.268031,0.241974,0.210511,0.174345,0.134286,0.0912261,0.0461287,0.0,0.0233246,0.0461283,0.0679015,0.0881578,0.106445,0.122354,0.13553,0.145679,0.152573,0.156059,0.156059,0.152573,0.145679,0.135531,0.122354,0.106445,0.0881582,0.0679018,0.0461287,0.0233251};
return value;
}
/** Large attribute array: ElevationGrid height field, scene-graph level=7, element #20, 441 total numbers.
* Reassemble split array as single method to improve readability and runnability.
* Provide large array values via separate methods, hoping to avoid 'code too large' Java compilation errors.
* Individual Java methods (including aggregated initializations) are limited to 64KB.
* @see https://stackoverflow.com/questions/2407912/code-too-large-compilation-error-in-java
* @see https://stackoverflow.com/questions/11437905/java-too-many-constants-jvm-error
*/
private MFFloat getElevationGrid_7_20_height()
{
MFFloat ElevationGrid_7_20_height = new MFFloat()/*2.finalize*/
.append(new MFFloat(getElevationGrid_7_20_height_1()));
return ElevationGrid_7_20_height;
}
/** The initialized model object, created within initialize() method. */
private X3D x3dModel;
/**
* Provide a
* shallow copy
* of the X3D model.
* @see X3D
* @return collidefalse model
*/
public X3D getX3dModel()
{
return x3dModel;
}
/**
* Default main() method provided for test purposes, uses CommandLine to set global ConfigurationProperties for this object.
* @param args array of input parameters, provided as arguments
* @see X3D.handleArguments(args)
* @see X3D.validationReport()
* @see CommandLine
* @see CommandLine.USAGE
* @see ConfigurationProperties
*/
public static void main(String args[])
{
X3D thisExampleX3dModel = new collidefalse().getX3dModel();
boolean hasArguments = (args != null) && (args.length > 0);
boolean validate = true; // default
boolean argumentsLoadNewModel = false;
String fileName = new String();
if (args != null)
{
for (String arg : args)
{
if (arg.toLowerCase().startsWith("-v") || arg.toLowerCase().contains("validate"))
{
validate = true; // making sure
}
if (arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_X3D) ||
arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_CLASSICVRML) ||
arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_X3DB) ||
arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_VRML97) ||
arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_EXI) ||
arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_GZIP) ||
arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_ZIP) ||
arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_HTML) ||
arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_XHTML))
{
argumentsLoadNewModel = true;
fileName = arg;
}
}
}
if (argumentsLoadNewModel)
System.out.println("WARNING: \"collidefalse\" model invocation is attempting to load file \"" + fileName + "\" instead of simply validating itself... file loading ignored.");
else if (hasArguments) // if no arguments provided, this method produces usage warning
thisExampleX3dModel.handleArguments(args);
if (validate)
{
System.out.print("Java program \"collidefalse\" self-validation test results: ");
String validationResults = thisExampleX3dModel.validationReport();
if (validationResults.startsWith("\n"))
System.out.println();
System.out.println(validationResults.trim());
}
}
}