Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Namespace Members | Compound Members | File Members | Related Pages | Examples

A3DL::Object3D Class Reference

#include <object3d.hh>

Inheritance diagram for A3DL::Object3D:

MetaObject A3DL::Billboard A3DL::Cone A3DL::Cube A3DL::Cylinder A3DL::Model A3DL::PolygonMesh A3DL::Snow A3DL::Sphere List of all members.

Public Member Functions

Static Public Member Functions

Protected Attributes


Constructor & Destructor Documentation

A3DL::Object3D::Object3D (  MetaObject *  superobject  ) 
 

virtual A3DL::Object3D::~Object3D (   )  [virtual]
 


Member Function Documentation

virtual Material* A3DL::Object3D::getMaterial (  bool  createIfNone = true  )  [virtual]
 

Get material vobject.

virtual vector<Material*> A3DL::Object3D::getMaterials (   )  [virtual]
 

virtual void A3DL::Object3D::getOrientation (  double &  x,
double &  y,
double &  z,
double &  phi
)  throw (NoSuchObjectError, AccessControlError, RemoteError) [virtual]
 

Get the orientation of this 3D object in axis-angle rotation.

See setOrientation() for details.

Note:
This can be easily converted into a quaternion with the following math:
            quat.r = cos(phi/2.0);
            quat.x = x * sin(phi/2.0);
            quat.y = y * sin(phi/2.0);
            quat.z = z * sin(phi/2.0);
Parameters:
x X vector component
y Y vector component
z Z vector component
phi the rotation about the vector axis, in degrees
Exceptions:
NoSuchObjectError if "orientation" subobject does not exist, or is not a property.

virtual void A3DL::Object3D::getOrientationAsQuaternion (  double &  x,
double &  y,
double &  z,
double &  w
)  throw (NoSuchObjectError, AccessControlError, RemoteError) [virtual]
 

Convenience function to get the orientation of this 3D object as a quaternion, converting from A3DL's axis-angle representation.

Parameters:
x X vector component
y Y vector component
z Z vector component
phi the rotation about the vector axis, in degrees
Exceptions:
NoSuchObjectError if "orientation" subobject does not exist, or is not a property.

virtual void A3DL::Object3D::getOrientationAsQuaternionHT (  double &  x,
double &  y,
double &  z,
double &  w
)  throw (NoSuchObjectError, AccessControlError, RemoteError) [virtual]
 

Convenience function to get the hard transform (HT) orientation of this 3D object as a quaternion, converting from A3DL's axis-angle representation.

This transform is applied against the object before the normal orientation transform is applied and is not affected by hierarchical transforms.

Parameters:
x X vector component
y Y vector component
z Z vector component
phi the rotation about the vector axis, in degrees
Exceptions:
NoSuchObjectError if "orientation" subobject does not exist, or is not a property.

virtual void A3DL::Object3D::getOrientationHT (  double &  x,
double &  y,
double &  z,
double &  phi
)  throw (NoSuchObjectError, AccessControlError, RemoteError) [virtual]
 

Get the hard transform (HT) orientation of this 3D object in axis-angle rotation.

See setOrientation() for details. This transform is applied against the object before the normal orientation transform is applied and is not affected by hierarchical transforms.

Note:
This can be easily converted into a quaternion with the following math:
            quat.r = cos(phi/2.0);
            quat.x = x * sin(phi/2.0);
            quat.y = y * sin(phi/2.0);
            quat.z = z * sin(phi/2.0);
Parameters:
x X vector component
y Y vector component
z Z vector component
phi the rotation about the vector axis, in degrees
Exceptions:
NoSuchObjectError if "orientation" subobject does not exist, or is not a property.

virtual Property* A3DL::Object3D::getOrientationObj (   )  [virtual]
 

virtual void A3DL::Object3D::getPosition (  double &  x,
double &  y,
double &  z
)  throw (NoSuchObjectError, AccessControlError, RemoteError) [virtual]
 

Get position of this 3D object.

Parameters:
x X translation, relative to origin of parent object
y Y translation, relative to origin of parent object
z Z translation, relative to origin of parent object
Exceptions:
NoSuchObjectError if "position" subobject does not exist, or is not a property.

virtual void A3DL::Object3D::getPositionHT (  double &  x,
double &  y,
double &  z
)  throw (NoSuchObjectError, AccessControlError, RemoteError) [virtual]
 

Get the hard transform (HT) position of this 3D object.

This transform is applied against the object before the normal position transform is applied and is not affected by hierarchical transforms.

Parameters:
x X translation, relative to origin of parent object
y Y translation, relative to origin of parent object
z Z translation, relative to origin of parent object
Exceptions:
NoSuchObjectError if "position" subobject does not exist, or is not a property.

virtual Property* A3DL::Object3D::getPositionObj (   )  [virtual]
 

Get position property object.

PropertyAccessControl* A3DL::Object3D::getPropertyAccessControl (   )  [inline]
 

Reimplemented in A3DL::Snow.

Definition at line 51 of file object3d.hh.

virtual void A3DL::Object3D::getScaling (  double &  x,
double &  y,
double &  z
)  throw (NoSuchObjectError, AccessControlError, RemoteError) [virtual]
 

Get scaling factors of this 3D object.

Parameters:
x X scaling
y Y scaling
z Z scaling
Exceptions:
NoSuchObjectError if "scaling" subobject does not exist, or is not a property.

virtual void A3DL::Object3D::getScalingHT (  double &  x,
double &  y,
double &  z
)  throw (NoSuchObjectError, AccessControlError, RemoteError) [virtual]
 

Get the hard transform (HT) scaling of this 3D object.

This transform is applied against the object before the normal scaling transform is applied and is not affected by hierarchical transforms.

Parameters:
x X scaling
y Y scaling
z Z scaling
Exceptions:
NoSuchObjectError if "scaling" subobject does not exist, or is not a property.

virtual Property* A3DL::Object3D::getScalingObj (   )  [virtual]
 

void A3DL::Object3D::getThreeFloatProperty (  Vobject &  vob,
const string &  name,
double *  x,
double *  y,
double *  z
)  [static]
 

virtual const string A3DL::Object3D::getType (   )  [virtual]
 

Reimplemented in A3DL::Billboard, A3DL::Cone, A3DL::Cube, A3DL::Cylinder, A3DL::Model, A3DL::PolygonMesh, A3DL::Snow, and A3DL::Sphere.

virtual void A3DL::Object3D::initialize (   )  [virtual]
 

Initialize this object to have no property access control, position (0,0,0), orientation (0,1,0,0) and scaling(1,1,1).

MetaObject* A3DL::Object3D::new_Object3D (  MetaObject *  superobject,
const string &  type
)  [static]
 

void A3DL::Object3D::registerExtenders (   )  [static]
 

Reimplemented in A3DL::Billboard, A3DL::Cone, A3DL::Cube, A3DL::Cylinder, A3DL::Model, A3DL::PolygonMesh, A3DL::Snow, and A3DL::Sphere.

virtual void A3DL::Object3D::setMaterial (  Material *  obj  )  [virtual]
 

Set material vobject.

virtual void A3DL::Object3D::setOrientation (  double  x,
double  y,
double  z,
double  phi
)  throw (NoSuchObjectError, AccessControlError, RemoteError) [virtual]
 

Set the orientation of this 3D object in axis-angle rotation.

The first three parameters are a unit vector in world space which define an axis, the fourth parameter is a clockwise rotation about that axis. For example, [0 1 0 20] would specify a rotation of 20 degrees around a vector pointing straight up.

Note:
You can convert a quaternion into angle-axis rotation with the following math:
            phi = 2.0 * acos(quat.r);
            x = quat.x / sin(phi/2.0);
            y = quat.y / sin(phi/2.0);
            z = quat.z / sin(phi/2.0);
Parameters:
x X vector component
y Y vector component
z Z vector component
phi the rotation about the vector axis, in degrees
Exceptions:
NoSuchObjectError if "orientation" subobject does not exist, or is not a property.

virtual void A3DL::Object3D::setOrientationHT (  double  x,
double  y,
double  z,
double  phi
)  throw (NoSuchObjectError, AccessControlError, RemoteError) [virtual]
 

Set the hard transform (HT) orientation of this 3D object in axis-angle rotation.

This transform is applied against the object before the normal orientation transform is applied and is not affected by hierarchical transforms. The first three parameters are a unit vector in world space which define an axis, the fourth parameter is a clockwise rotation about that axis. For example, [0 1 0 20] would specify a rotation of 20 degrees around a vector pointing straight up.

Note:
You can convert a quaternion into angle-axis rotation with the following math:
            phi = 2.0 * acos(quat.r);
            x = quat.x / sin(phi/2.0);
            y = quat.y / sin(phi/2.0);
            z = quat.z / sin(phi/2.0);
Parameters:
x X vector component
y Y vector component
z Z vector component
phi the rotation about the vector axis, in degrees
Exceptions:
NoSuchObjectError if "orientation" subobject does not exist, or is not a property.

virtual void A3DL::Object3D::setOrientationObj (  Property *  obj  )  [virtual]
 

virtual void A3DL::Object3D::setOrientationWithQuaternion (  double  x,
double  y,
double  z,
double  phi
)  throw (NoSuchObjectError, AccessControlError, RemoteError) [virtual]
 

Convenience function to set the orientation of this 3D object using a quaternion, which is then converted to A3DL's axis-angle notation.

Parameters:
x X vector component
y Y vector component
z Z vector component
phi the rotation about the vector axis, in degrees
Exceptions:
NoSuchObjectError if "orientation" subobject does not exist, or is not a property.

virtual void A3DL::Object3D::setOrientationWithQuaternionHT (  double  x,
double  y,
double  z,
double  phi
)  throw (NoSuchObjectError, AccessControlError, RemoteError) [virtual]
 

Convenience function to set the hard transform (HT) orientation of this 3D object using a quaternion, which is then converted to A3DL's axis-angle notation.

This transform is applied against the object before the normal orientation transform is applied and is not affected by hierarchical transforms.

Parameters:
x X vector component
y Y vector component
z Z vector component
phi the rotation about the vector axis, in degrees
Exceptions:
NoSuchObjectError if "orientation" subobject does not exist, or is not a property.

void A3DL::Object3D::setOrInsertChild (  const string &  name,
Vobject *  obj
) 
 

Referenced by A3DL::Model::setModelObj().

virtual void A3DL::Object3D::setPosition (  double  x,
double  y,
double  z
)  throw (NoSuchObjectError, AccessControlError, RemoteError) [virtual]
 

Set position of this 3D object.

Parameters:
x X translation, relative to origin of parent object
y Y translation, relative to origin of parent object
z Z translation, relative to origin of parent object
Exceptions:
NoSuchObjectError if "position" subobject does not exist, or is not a property.

virtual void A3DL::Object3D::setPositionHT (  double  x,
double  y,
double  z
)  throw (NoSuchObjectError, AccessControlError, RemoteError) [virtual]
 

Set the hard transform (HT) position of this 3D object.

This transform is applied against the object before the normal position transform is applied and is not affected by hierarchical transforms.

Parameters:
x X translation, relative to origin of parent object
y Y translation, relative to origin of parent object
z Z translation, relative to origin of parent object
Exceptions:
NoSuchObjectError if "position" subobject does not exist, or is not a property.

virtual void A3DL::Object3D::setPositionObj (  Property *  obj  )  [virtual]
 

Set position property object.

void A3DL::Object3D::setPropertyAccessControl (  PropertyAccessControl *  pac  )  [inline]
 

Reimplemented in A3DL::Snow.

Definition at line 50 of file object3d.hh.

virtual void A3DL::Object3D::setScaling (  double  x,
double  y,
double  z
)  throw (NoSuchObjectError, AccessControlError, RemoteError) [virtual]
 

Set scaling factors of this 3D object.

Parameters:
x X scaling
y Y scaling
z Z scaling
Exceptions:
NoSuchObjectError if "scaling" subobject does not exist, or is not a property.

virtual void A3DL::Object3D::setScalingHT (  double  x,
double  y,
double  z
)  throw (NoSuchObjectError, AccessControlError, RemoteError) [virtual]
 

Set the hard transform (HT) scaling this 3D object.

This transform is applied against the object before the normal scaling transform is applied and is not affected by hierarchical transforms.

Parameters:
x X scaling
y Y scaling
z Z scaling
Exceptions:
NoSuchObjectError if "scaling" subobject does not exist, or is not a property.

virtual void A3DL::Object3D::setScalingObj (  Property *  obj  )  [virtual]
 

void A3DL::Object3D::setThreeFloatProperty (  Vobject &  vob,
const string &  name,
double  x,
double  y,
double  z,
PropertyAccessControl *  ac
)  [static]
 


Member Data Documentation

PropertyAccessControl* A3DL::Object3D::accesscontrol [protected]
 

Definition at line 45 of file object3d.hh.

Referenced by A3DL::PolygonMesh::setDoubleSided(), A3DL::Model::setModel(), A3DL::Model::setModelToFile(), A3DL::PolygonMesh::setNormals(), A3DL::PolygonMesh::setPolygons(), A3DL::PolygonMesh::setTexels(), A3DL::PolygonMesh::setTextureSpaces(), and A3DL::PolygonMesh::setVertices().


The documentation for this class was generated from the following file:
Generated on Tue Aug 12 03:55:59 2003 for Interreality Project - VOS by doxygen 1.3.2