<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "http://www.web3d.org/specifications/x3d-3.0.dtd"><X3D profile='Immersive' version='3.0' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation=' http://www.web3d.org/specifications/x3d-3.0.xsd '>
<![CDATA[
ecmascript:
function initialize()
{
numOfPoints = 100;
if (radius < 0)
{
Browser.print ('[Arc2D] Warning: invalid value, radius=' + value + ' must instead be >= 0');
}
if ((startAngle < 0) || (startAngle >= 2 * Math.PI))
{
Browser.print ('[Arc2D] Warning: startAngle=' + startAngle + ' must be within range [0..2pi)'); // (]
}
if ((endAngle < 0) || (endAngle >= 2 * Math.PI))
{
Browser.print ('[Arc2D] Warning: endAngle=' + endAngle + ' must be within range [0..2pi)'); // (]
}
// equal startAngle, endAngle means draw full circle.
// high out-of-range endAngle is OK for local computation.
if (startAngle >= endAngle)
endAngle = endAngle + 2 * Math.PI;
differAng = Math.abs((endAngle - startAngle)) / numOfPoints;
for (i = 0; i <= numOfPoints; i++)
{
arcSet3d[i] = new SFVec3f (radius * Math.cos(startAngle + i * differAng), radius * Math.sin(startAngle + i * differAng), 0.0);
arcIndexSet3d[i] = i;
}
} // initialize
]]>
<![CDATA[
ecmascript:
function initialize()
{
if (radius < 0)
{
Browser.print ('[ArcClose2D] Warning: invalid value, radius=' + value + ' must instead be >= 0');
}
if ((startAngle < 0) || (startAngle >= 2 * Math.PI))
{
Browser.print ('[ArcClose2D] Warning: startAngle=' + startAngle + ' must be within range [0..2pi)'); //(]
}
if ((endAngle< 0) || (endAngle>= 2 * Math.PI))
{
Browser.print ('[ArcClose2D] Warning: endAngle=' + endAngle+ ' must be within range [0..2pi)'); // (]
}
// equal startAngle, endAngle means draw full circle.
// high out-of-range endAngle is OK for local computation.
if (startAngle >= endAngle)
endAngle = endAngle + 2*Math.PI;
numOfPoints = 100;
differAng = Math.abs((endAngle - startAngle))/numOfPoints;
for ( i=0 ; i<=numOfPoints ; i++)
{
if ( i == numOfPoints)
arcSet3d[i] = new SFVec3f (0.0, 0.0, 0.0);
else
arcSet3d[i] = new SFVec3f ( radius*Math.cos(startAngle + i*differAng), radius*Math.sin(startAngle + i*differAng), 0.0 );
}
k=0;
if (closureType =='PIE')
for ( i=0 ; i<numOfPoints ; i++)
{
pointIndex[k] = numOfPoints;
pointIndex[k+1] = i;
pointIndex[k+2] = i + 1;
pointIndex[k+3] = numOfPoints;
pointIndex[k+4] = -1;
k=k+5;
}
else
for ( i=0 ; i<numOfPoints-1 ; i++)
{
pointIndex[k] = 0;
pointIndex[k+1] = i;
pointIndex[k+2] = i + 1;
pointIndex[k+3] = 0;
pointIndex[k+4] = -1;
k=k+5;
}
} // initialize
]]>
<![CDATA[
ecmascript:
function initialize()
{
if (radius < 0)
{
Browser.print ('[ArcCloseUnfilled2D] Warning: invalid value, radius=' + value + ' must instead be >= 0');
}
if ((startAngle < 0) || (startAngle >= 2 * Math.PI))
{
Browser.print ('[ArcCloseUnfilled2D] Warning: startAngle=' + startAngle + ' must be within range [0..2pi)'); //(]
}
if ((endAngle< 0) || (endAngle>= 2 * Math.PI))
{
Browser.print ('[ArcCloseUnfilled2D] Warning: endAngle=' + endAngle+ ' must be within range [0..2pi)'); //(]
}
// equal startAngle, endAngle means draw full circle.
// high out-of-range endAngle is OK for local computation.
if (startAngle >= endAngle)
endAngle = endAngle + 2*Math.PI;
numOfPoints = 100;
differAng = Math.abs((endAngle - startAngle))/numOfPoints;
for ( i=0 ; i<=numOfPoints +1 ; i++)
{
if ( i == numOfPoints +1)
arcSet3d[i] = new SFVec3f (0.0, 0.0, 0.0);
else
arcSet3d[i] = new SFVec3f ( radius*Math.cos(startAngle + i*differAng), radius*Math.sin(startAngle + i*differAng), 0.0 );
}
if (closureType =='CHORD')
{
for ( i=0 ; i<=numOfPoints +1 ; i++)
{
if ( i == numOfPoints +1)
pointIndex[i] = 0.0;
else
pointIndex[i] = i;
}
}
else
{
for ( i=0 ; i<=numOfPoints +1 ; i++)
{
pointIndex[i] = i;
}
pointIndex[i] = 0.0;
}
} // initialize
]]>
<![CDATA[
ecmascript:
function initialize()
{
if (radius < 0)
{
Browser.print ('[Circle2D] Warning: invalid value, radius=' + value + ' must instead be >= 0');
}
numOfPoints = 100;
differAng = 2*Math.PI/numOfPoints;
for ( i=0 ; i<=numOfPoints ; i++)
{
circSet3d[i] = new SFVec3f ( radius*Math.cos(i*differAng), radius*Math.sin(i*differAng), 0.0 );
circIndexSet3d[i] = i;
}
} // initialize
]]>
<![CDATA[
ecmascript:
function initialize()
{
if (innerRadius < 0)
{
Browser.print ('[Disk2D] Warning: invalid value, innerRadius=' + value + ' must instead be >= 0');
}
if (outerRadius < 0)
{
Browser.print ('[Disk2D] Warning: invalid value, outerRadius=' + value + ' must instead be >= 0');
}
numOfPoints = 100.0;
diskSet3d = new MFVec3f();
diskIndexSet3d = new MFInt32();
differAng = 2 * Math.PI/numOfPoints;
for ( i=0 ; i<2*numOfPoints ; i++)
{
if ( i<numOfPoints)
diskSet3d[i] = new SFVec3f ( innerRadius*Math.cos(i*differAng), innerRadius*Math.sin(i*differAng), 0.0 );
else
diskSet3d[i] = new SFVec3f ( outerRadius*Math.cos((i-numOfPoints-1.0)*differAng), outerRadius*Math.sin((i-numOfPoints-1.0)*differAng), 0.0 );
}
k=0;
for (i=0 ; i<numOfPoints ; i++)
{
diskIndexSet3d[k] = i;
diskIndexSet3d[k+1] = i + numOfPoints;
diskIndexSet3d[k+2] = i + numOfPoints + 1;
diskIndexSet3d[k+3] = i;
diskIndexSet3d[k+4] = -1;
diskIndexSet3d[k+5] = i+1;
diskIndexSet3d[k+6] = i ;
diskIndexSet3d[k+7] = i + numOfPoints +1;
diskIndexSet3d[k+8] = i +1;
diskIndexSet3d[k+9] = -1;
if (i == numOfPoints-1)
{
diskIndexSet3d[k] = i;
diskIndexSet3d[k+1] = i + numOfPoints;
diskIndexSet3d[k+2] = numOfPoints;
diskIndexSet3d[k+3] = i;
diskIndexSet3d[k+4] = -1;
diskIndexSet3d[k+5] = 0;
diskIndexSet3d[k+6] = i;
diskIndexSet3d[k+7] = numOfPoints;
diskIndexSet3d[k+8] = 0;
diskIndexSet3d[k+9] = -1;
}
k=k+10;
}
} // initialize
]]>
<![CDATA[
ecmascript:
function initialize()
{
for ( i=0 ; i<lineSegments.length ; i++)
{
lineSegments3D[i] = new SFVec3f ( lineSegments[i].x, lineSegments[i].y, 0.0 );
lineSegmentsIndex[i] = i;
}
lineSegmentsIndex[i] = -1;
} // initialize
]]>
<![CDATA[
ecmascript:
function initialize()
{
for ( i=0 ; i<points.length ; i++)
{
points3D[i] = new SFVec3f ( points[i].x, points[i].y, 0.0 );
}
} // initialize
]]>
<![CDATA[
ecmascript:
function initialize()
{
xDim = size[0];
yDim = size[1];
pointSet3d[0] = new SFVec3f ( (-xDim / 2.0), (yDim / 2.0), 0.0 );
pointSet3d[1] = new SFVec3f ( (-xDim / 2.0), (-yDim / 2.0), 0.0 );
pointSet3d[2] = new SFVec3f ( (xDim / 2.0), (-yDim / 2.0), 0.0 );
pointSet3d[3] = new SFVec3f ( (xDim / 2.0), (yDim / 2.0), 0.0 );
} // initialize
]]>
<![CDATA[
ecmascript:
function initialize()
{
xDim = size[0];
yDim = size[1];
pointSet3d[0] = new SFVec3f ( (-xDim / 2.0), (yDim / 2.0), 0.0 );
pointSet3d[1] = new SFVec3f ( (-xDim / 2.0), (-yDim / 2.0), 0.0 );
pointSet3d[2] = new SFVec3f ( (xDim / 2.0), (-yDim / 2.0), 0.0 );
pointSet3d[3] = new SFVec3f ( (xDim / 2.0), (yDim / 2.0), 0.0 );
} // initialize
]]>
<![CDATA[
ecmascript:
function initialize()
{
numbOfTriangles = Math.floor(vertices.length/3);
for ( i=0 ; i<3*numbOfTriangles ; i++)
{
triangleSet3D[i] = new SFVec3f ( vertices[i].x, vertices[i].y, 0.0 );
}
k=0;
for (i=0; i<numbOfTriangles; i++)
{
triangleSetIndex[k] = k - i ;
triangleSetIndex[k+1] = k - i + 1 ;
triangleSetIndex[k+2] = k - i + 2 ;
triangleSetIndex[k+3] = -1 ;
k=k+4;
}
} // initialize
]]>
<!-- Tag color codes: <Node DEF='idName' attribute='value'/> <Prototype name='ProtoName'> <field name='fieldName'/> </Prototype> -->