Archon::X3D Namespace Reference

Holds an implementation of the Extensible 3D (X3D) specification (ISO/IEC FDIS 19775:200x). More...


Classes

struct  MaterialNode
 Server side representation of the equally named X3D node type. More...
struct  Material
 Server side representation of the equally named X3D node type. More...
struct  AppearanceNode
 Server side representation of the equally named X3D node type. More...
struct  Appearance
 Server side representation of the equally named X3D node type. More...
struct  BindableNode
 Server side representation of the equally named X3D node type. More...
struct  Background
 Server side representation of the equally named X3D node type. More...
struct  Fog
 Server side representation of the equally named X3D node type. More...
struct  Torus
 A torus goemetry node. More...
struct  FrameDrivenNode
struct  AbstractFileServer
struct  ExecutionContext
struct  MetadataObject
 Server side representation of the equally named X3D node type. More...
struct  Node
 Server side representation of the equally named X3D node type. More...
struct  ChildNode
 Server side representation of the equally named X3D node type. More...
struct  SensorNode
 Server side representation of the equally named X3D node type. More...
struct  MetadataDouble
 Server side representation of the equally named X3D node type. More...
struct  MetadataFloat
 Server side representation of the equally named X3D node type. More...
struct  MetadataInteger
 Server side representation of the equally named X3D node type. More...
struct  MetadataSet
 Server side representation of the equally named X3D node type. More...
struct  MetadataString
 Server side representation of the equally named X3D node type. More...
struct  CustomFieldBase
struct  CustomFieldNode
 The base of all nodes that can contain custom fields. More...
struct  SimpleCustomField
struct  SimpleSeqCustomField
struct  NodeCustomField
struct  NodeSequenceCustomField
struct  RouteTail
 Base class for tail of any route. More...
struct  RouteHead
 Base class for head of standard routes. More...
struct  Route
struct  ValueBase
struct  SimpleValueBase
struct  SimpleValue
struct  NodeValue
struct  NodeSequenceValue
struct  Event
struct  EventSource
struct  VrmlExporter
struct  SceneExpoter
 Abstract scene exporter. More...
struct  StaticField
struct  SimpleField
struct  SimpleSequenceField
struct  NodeField
struct  NodeSequenceField
struct  SFBool
struct  MFBool
struct  SFColor
struct  MFColor
struct  SFColorRGBA
struct  MFColorRGBA
struct  SFDouble
struct  MFDouble
struct  SFFloat
struct  MFFloat
struct  SFImage
struct  MFImage
struct  SFInt32
struct  MFInt32
struct  SFNode
struct  MFNode
struct  SFNodeVar
struct  MFNodeVar
struct  SFRotation
struct  MFRotation
struct  SFString
struct  MFString
struct  SFTime
struct  MFTime
struct  SFVec2d
struct  MFVec2d
struct  SFVec2f
struct  MFVec2f
struct  SFVec3d
struct  MFVec3d
struct  SFVec3f
struct  MFVec3f
struct  FontServer
 This class is responsible for locating font files and rendering them into OpenGL textures. More...
struct  RenderConfig
struct  GeometryNode
 Server side representation of the equally named X3D node type. More...
struct  Geometry3DNode
 Server side representation of the equally named X3D node type. More...
struct  Box
 Server side representation of the equally named X3D node type. More...
struct  Cone
 Server side representation of the equally named X3D node type. More...
struct  Cylinder
 Server side representation of the equally named X3D node type. More...
struct  IndexedLineSet
 Server side representation of the equally named X3D node type. More...
struct  PointSet
 Server side representation of the equally named X3D node type. More...
struct  Sphere
 Server side representation of the equally named X3D node type. More...
struct  ComposedGeometryNode
 Server side representation of the equally named X3D node type. More...
struct  ElevationGrid
 Server side representation of the equally named X3D node type. More...
struct  IndexedFaceSet
 Server side representation of the equally named X3D node type. More...
struct  ShapeNode
 Server side representation of the equally named X3D node type. More...
struct  Shape
 Server side representation of the equally named X3D node type. More...
struct  GeometricPropertyNode
 Server side representation of the equally named X3D node type. More...
struct  ColorNode
 Server side representation of the equally named X3D node type. More...
struct  CoordinateNode
 Server side representation of the equally named X3D node type. More...
struct  NormalNode
 Server side representation of the equally named X3D node type. More...
struct  Color
 Server side representation of the equally named X3D node type. More...
struct  ColorRGBA
 Server side representation of the equally named X3D node type. More...
struct  Coordinate
 Server side representation of the equally named X3D node type. More...
struct  Normal
 Server side representation of the equally named X3D node type. More...
struct  BoundedObject
 Server side representation of the equally named X3D node type. More...
struct  GroupingNode
 Server side representation of the equally named X3D node type. More...
struct  Group
 Server side representation of the equally named X3D node type. More...
struct  Switch
 Server side representation of the equally named X3D node type. More...
struct  Transform
 Server side representation of the equally named X3D node type. More...
struct  InterpolatorNode
 Server side representation of the equally named X3D node type. More...
struct  ColorInterpolator
 Server side representation of the equally named X3D node type. More...
struct  CoordinateInterpolator
 Server side representation of the equally named X3D node type. More...
struct  CoordinateInterpolator2D
 Server side representation of the equally named X3D node type. More...
struct  NormalInterpolator
 Server side representation of the equally named X3D node type. More...
struct  OrientationInterpolator
 Server side representation of the equally named X3D node type. More...
struct  PositionInterpolator
 Server side representation of the equally named X3D node type. More...
struct  PositionInterpolator2D
 Server side representation of the equally named X3D node type. More...
struct  ScalarInterpolator
 Server side representation of the equally named X3D node type. More...
struct  LightNode
 Server side representation of the equally named X3D node type. More...
struct  DirectionalLight
 Server side representation of the equally named X3D node type. More...
struct  PointLight
 Server side representation of the equally named X3D node type. More...
struct  SpotLight
 Server side representation of the equally named X3D node type. More...
struct  ImageLoadTracker
struct  Loader
 Manage URI content loading in an asynchronious manner. More...
struct  PointingDeviceSensorNode
 Server side representation of the equally named X3D node type. More...
struct  DragSensorNode
 Server side representation of the equally named X3D node type. More...
struct  PlaneSensor
 Server side representation of the equally named X3D node type. More...
struct  SphereSensor
 Server side representation of the equally named X3D node type. More...
struct  CylinderSensor
 Server side representation of the equally named X3D node type. More...
struct  TouchSensorNode
 Server side representation of the equally named X3D node type. More...
struct  TouchSensor
 Server side representation of the equally named X3D node type. More...
struct  Billboard
 Server side representation of the equally named X3D node type. More...
struct  Viewpoint
 Server side representation of the equally named X3D node type. More...
struct  UrlObject
 Server side representation of the equally named X3D node type. More...
struct  SubSceneNode
 Base class for nodes which can contain sub-scenes. More...
struct  Inline
 Server side representation of the equally named X3D node type. More...
struct  ApplicationLink
 The "glue" that links 3-D Console applications into the scene graph. More...
struct  NodeNameInUseException
struct  NodeBase
 The common virtual base for all abstract and concrete X3D nodes. More...
struct  ProgressTracker
struct  Parser
struct  SceneBase
struct  Scene
struct  SerializedScene
struct  ScriptNode
 Server side representation of the equally named X3D node type. More...
struct  Script
 Server side representation of the equally named X3D node type. More...
struct  Server
struct  FontStyleNode
 Server side representation of the equally named X3D node type. More...
struct  FontStyle
 Server side representation of the equally named X3D node type. More...
struct  TextNode
 Server side representation of the equally named X3D node type. More...
struct  Text
 Server side representation of the equally named X3D node type. More...
struct  TextureCoordinateNode
 Server side representation of the equally named X3D node type. More...
struct  TextureCoordinate
 Server side representation of the equally named X3D node type. More...
struct  AppearanceChildNode
 Server side representation of the equally named X3D node type. More...
struct  TextureTransformNode
 Server side representation of the equally named X3D node type. More...
struct  TextureTransform
 Server side representation of the equally named X3D node type. More...
struct  TextureNode
 Server side representation of the equally named X3D node type. More...
struct  Texture2DNode
 Server side representation of the equally named X3D node type. More...
struct  ImageTexture
 Server side representation of the equally named X3D node type. More...
struct  PixelTexture
 Server side representation of the equally named X3D node type. More...
struct  TimeDependentNode
 Server side representation of the equally named X3D node type. More...
struct  TimeSensor
 Server side representation of the equally named X3D node type. More...
struct  FieldType
 Runtime representation of an X3D field type. More...
struct  FieldBase
 Virtual base class for all field definitions. More...
struct  SequenceFieldBase
 Base class for all kinds of fields which are dynamic length sequences. More...
struct  NodeFieldBase
 Base class for all kinds of fields of type SFNode or MFNode. More...
struct  NodeSequenceFieldBase
 Base class for all kinds of fields of type MFNode. More...
struct  NodeType
 Runtime representation of an X3D node type. More...
struct  TexUsage
struct  Viewer

Namespaces

namespace  ECMA
namespace  Proxy
 Holds an implementation of the C++ language bindings of the Scene Access Interface (SAI) to applications written in C++.
namespace  SAI
 Holds the implementation of the SAI (Scene Access Interface).
namespace  VRML
 Holds the parser that understands the VRML encoding of X3D scene files.
namespace  XML
 Holds the parser that understands the XML encoding of X3D scene files.

Functions

void initializeAppearComponent ()
void initializeAuxComponent ()
void renderNormals (const vector< Vector3 > &, const RenderConfig *)
void initializeCoreComponent ()
template<typename T>
string dumpValue (const vector< T > &v)
string dumpValue (string v)
string dumpValue (bool v)
string dumpValue (int v)
string dumpValue (double v)
string dumpValue (Vector2 v)
string dumpValue (Vector3 v)
string dumpValue (Vector4 v)
string dumpValue (Rotation3 v)
string dumpValue (const Image &v)
string dumpValue (const Time &v)
bool exceptionCatchInfo (Utilities::Exception::Formatter format, string &result)
void stepIn ()
void stepOut ()
void noNode ()
void resuseNode (NodeBase *n, string name)
void nodeBegin (NodeBase *n, string name, bool empty)
void nodeEnd (NodeBase *n)
void simpleFieldBegin (NodeBase *n, const FieldBase *f)
void simpleFieldEnd ()
void emptySimpleSequence ()
void simpleSequenceBegin ()
void simpleSequenceEnd ()
void nodeFieldBegin (NodeBase *n, const FieldBase *f)
void nodeFieldEnd ()
void emptyNodeSequence ()
void nodeSequenceBegin ()
template<class N, typename T>
const SimpleField< N, T > * newPrivateField (string n, const FieldType *t, T N::*v)
template<class N, typename T>
const SimpleField< N, T > * newEventIn (string n, const FieldType *t, T N::*v, Time N::*p)
template<class N, typename T>
const SimpleField< N, T > * newEventIn (string n, const FieldType *t, bool(N::*f)(const T &, const Time &), Time N::*p)
template<class N, typename T>
const SimpleField< N, T > * newExposedField (string n, const FieldType *t, T N::*v, EventSource N::*s, Time N::*p)
template<class N, typename T>
const SimpleField< N, T > * newExposedField (string n, const FieldType *t, T N::*v, bool(N::*f)(const T &, const Time &), EventSource N::*s, Time N::*p)
template<class N, typename T>
const SimpleField< N, T > * newEventOut (string n, const FieldType *t, T N::*v, EventSource N::*s)
template<class N, typename T>
const SimpleSequenceField<
N, T > * 
newPrivateField (string n, const FieldType *t, vector< T > N::*v)
template<class N, typename T>
const SimpleSequenceField<
N, T > * 
newEventIn (string n, const FieldType *t, vector< T > N::*v, Time N::*p)
template<class N, typename T>
const SimpleSequenceField<
N, T > * 
newEventIn (string n, const FieldType *t, bool(N::*f)(const vector< T > &, const Time &), Time N::*p)
template<class N, typename T>
const SimpleSequenceField<
N, T > * 
newExposedField (string n, const FieldType *t, vector< T > N::*v, EventSource N::*s, Time N::*p)
template<class N, typename T>
const SimpleSequenceField<
N, T > * 
newExposedField (string n, const FieldType *t, vector< T > N::*v, bool(N::*f)(const vector< T > &, const Time &), EventSource N::*s, Time N::*p)
template<class N, typename T>
const SimpleSequenceField<
N, T > * 
newEventOut (string n, const FieldType *t, vector< T > N::*v, EventSource N::*s)
template<class N, typename C>
const NodeField< N, C > * newPrivateField (string n, Ref< C > N::*v)
template<class N, typename C>
const NodeField< N, C > * newEventIn (string n, Ref< C > N::*v, Time N::*p)
template<class N, typename C>
const NodeField< N, C > * newEventIn (string n, bool(N::*f)(const Ref< C > &, const Time &), Time N::*p)
template<class N, typename C>
const NodeField< N, C > * newExposedField (string n, Ref< C > N::*v, EventSource N::*s, Time N::*p)
template<class N, typename C>
const NodeField< N, C > * newExposedField (string n, Ref< C > N::*v, bool(N::*f)(const Ref< C > &, const Time &), EventSource N::*s, Time N::*p)
template<class N, typename C>
const NodeField< N, C > * newEventOut (string n, Ref< C > N::*v, EventSource N::*s)
template<class N, typename C>
const NodeSequenceField< N,
C > * 
newPrivateField (string n, vector< Ref< C > > N::*v)
template<class N, typename C>
const NodeSequenceField< N,
C > * 
newEventIn (string n, vector< Ref< C > > N::*v, Time N::*p)
template<class N, typename C>
const NodeSequenceField< N,
C > * 
newEventIn (string n, bool(N::*f)(const vector< Ref< C > > &, const Time &), Time N::*p)
template<class N, typename C>
const NodeSequenceField< N,
C > * 
newExposedField (string n, vector< Ref< C > > N::*v, EventSource N::*s, Time N::*p)
template<class N, typename C>
const NodeSequenceField< N,
C > * 
newExposedField (string n, vector< Ref< C > > N::*v, bool(N::*f)(const vector< Ref< C > > &, const Time &), EventSource N::*s, Time N::*p)
template<class N, typename C>
const NodeSequenceField< N,
C > * 
newEventOut (string n, vector< Ref< C > > N::*v, EventSource N::*s)
void initializeFieldTypes ()
void initializeGeometryComponent ()
void initializeGeopropComponent ()
void initializeGroupComponent ()
 Initialize the runtime type information for the Aggregation and transformation component The following components must be initialized first:
  • Core Component.

void initializeInterpolationComponent ()
Vector3 normalInterp (double x, double x1, double x2, Vector3 y1, Vector3 y2)
Rotation3 rotInterp (double x, double x1, double x2, Rotation3 y1, Rotation3 y2)
void initializeLightComponent ()
void initializeMouseComponent ()
void initializeNavigateComponent ()
void initializeNetworkComponent ()
virtual string getSpecifier () const =0
 Must return the unique specifier for this serialized scene file format.
virtual bool checkSignature (Ref< Stream::Reader >) const =0
 Check if the initial characters from the passed stream identifies the stream contents as being of this format.
virtual bool checkSuffix (string suffix) const =0
 Check if the passed suffix is a proper file name suffix for this file format.
virtual Ref< Sceneload (Ref< Stream::Reader >, ProgressTracker *, Logger *) const =0 throw (InvalidFormatException, IOException, UnexpectedException)
virtual void save (Ref< Scene >, Ref< Stream::Writer >, ProgressTracker *, Logger *) const =0 throw (IOException, UnexpectedException)
virtual ~Format ()
 Ensures proper destruction of derived classes.
void initializeScriptComponent ()
void initializeTextComponent ()
void addFontPath (string p)
void initializeTextureComponent ()
void initializeTimeComponent ()
void initialize ()
 This function must be called prior to any use of the X3D library.

Variables

Archon::X3D::VrmlExporter s
string containerField = ""
string indent = ""
const unsigned fieldTypeIndexRoof = 30
Archon::X3D::SerializedScene getNumberOfFormats
 This class represents one single serialized scene format.


Detailed Description

Holds an implementation of the Extensible 3D (X3D) specification (ISO/IEC FDIS 19775:200x).

See also:
http://www.web3d.org/x3d/specifications/ISO-IEC-19775-IS-X3DAbstractSpecification
At the time of this writing, the implementation is far from complete with respect to the X3D specification.

X3D is a specification of a rendering engine based on a spatial scene graph.

The X3D implementation in this namesapce constitutes the heart of 3-D Console and adds many new features on top of the X3D specification. New features are added as needed by 3-D Console, but does always seek not to break compatibility with the X3D specification.


Function Documentation

virtual bool Archon::X3D::checkSuffix string  suffix  )  const [pure virtual]
 

Check if the passed suffix is a proper file name suffix for this file format.

Parameters:
suffix Shall always be in lowercase.

virtual string Archon::X3D::getSpecifier  )  const [pure virtual]
 

Must return the unique specifier for this serialized scene file format.

The specifier is the sub-field of the MIME type. That is, the part of the MIME type after "model/x3d+".

void Archon::X3D::initializeNetworkComponent  ) 
 

Todo:
I think the AplicationLink node is defined in a way that allows defining them in X3D files.
If so, this should be prevented. Well, does it even need to be defined as a type here? And, could it not be moved to X3D::SAI?.

Definition at line 49 of file network.C.

References fields, Archon::X3D::ApplicationLink::instantiate(), Archon::X3D::Inline::instantiate(), Archon::X3D::NodeType::newAbstract(), Archon::X3D::NodeType::newConcrete(), newExposedField(), Archon::X3D::ApplicationLink::type, Archon::X3D::Inline::type, Archon::X3D::SFBool::type, Archon::X3D::ChildNode::type, Archon::X3D::SubSceneNode::type, Archon::X3D::UrlObject::type, and Archon::X3D::MFString::type.

Referenced by initialize().

Vector3 Archon::X3D::normalInterp double  x,
double  x1,
double  x2,
Vector3  y1,
Vector3  y2
 

Todo:
Huh, this is heavy, could it be done in an other more afficient way? Maybe using quaternions.

Nothe that the outer-most linear interpolation serves only to soften the transistion from y1 to y2. Without it, numerical error has too big an impact on the visual result.

Definition at line 202 of file interpolation.C.

References Archon::Math::dot(), Archon::Math::linInterp(), n, and Archon::Math::BasicVector< T, N >::normalize().

Referenced by rotInterp().

Rotation3 Archon::X3D::rotInterp double  x,
double  x1,
double  x2,
Rotation3  y1,
Rotation3  y2
 

Todo:
Is this the right way to interpolate between orientations.
It may not be what the X3D spec intends. An alternative sollution would be based on interpolation with quaternions. Sounds better - dosn't it? :-)

Definition at line 221 of file interpolation.C.

References Archon::Math::Rotation3::angle, Archon::Math::Rotation3::axis, Archon::Math::linInterp(), and normalInterp().


Variable Documentation

struct Archon::X3D::SerializedScene Archon::X3D::getNumberOfFormats
 

This class represents one single serialized scene format.

It could be VRML or it could be XML or it could be anything else.

It is an abstract base class or interface listing the methods required for loading and saving scenes.


Generated on Sun Jul 30 22:58:23 2006 for Archon by  doxygen 1.4.4