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