AlLinearLight
 
 
 

Encapsulates the creation, deletion, and manipulation of linear lights.

Synopsis

#include <AlLinearLight.h>
class AlLinearLight: public AlDirectionLight
	AlLinearLight();
virtual	~AlLinearLight();
virtual AlObject*	copyWrapper() const;
statusCode	create();
AlObjectType	type() const;
statusCode	axis( double&, double&, double& ) const;
statusCode	setAxis( double, double, double );
statusCode	endpoint( double&, double&, double& ) const;

Description

A linear light emits light in all directions. A linear light would be used, for instance, to simulate a fluorescent light tube. The length of the line is defined by the light’s axis.

To determine the endpoints of this light, use the worldPosition() method and the endpoint() method.

Although this class inherits methods to access the ’look at’ and ’up’ nodes of a light, they are not used. The direction and twist of an area light is changed by translating and rotating the transformation of the light’s position node.

AlLinearLight::AlLinearLight()

Description

Constructs an AlLinearLight wrapper object.

AlLinearLight::~AlLinearLight()

Description

Deletes an AlLinearLight wrapper object.

statusCode AlLinearLight::create()

Description

Creates all the DAG nodes for this light and adds them to the universe. The DAG nodes are for ’position’, ’look at’ and ’up’, and another DAG node that groups these three together.

Return Codes

sSuccess - everything was successful

sInsufficientMemory - not enough memory available

sAlreadyCreated - light is already created

AlObjectType AlLinearLight::type() const

Description

Returns the class identifier kLinearLightType.

statusCode AlLinearLight::axis( double &x, double &y, double &z) const

Description

Returns the linear light’s axis in x,y & z.

Arguments

> x - is the light’s axis in the x direction

> y - is the light’s axis in the y direction

> z - is the light’s axis in the z direction

Return Codes

sSuccess - axis returned

sInvalidObject - the light was not valid

sFailure - an error occurred

statusCode AlLinearLight::setAxis( double x, double y, double z )

Description

Sets the axis of the light to be x,y, & z. The given axis must be non-zero.

Arguments

< x - is the light’s new axis in the x direction

< y - is the light’s new axis in the y direction

< z - is the light’s new axis in the z direction

Return Codes

sSuccess - axis set

sInvalidArgument - the (x,y,z) forms a zero (or nearly zero) vector

sInvalidObject - the light was not valid

sFailure - an error occurred

statusCode AlLinearLight::endpoint( double &x, double &y, double &z ) const

Description

Returns the endpoint of this linear light in world space. This point and the world position of this light form the line that makes this light a linear light.

Arguments

> x - is the endpoint in the x direction

> y - is the endpoint in the y direction

> z - is the endpoint in the z direction

Return Codes

sSuccess - endpoint retrieved

sInvalidObject - object invalid

sFailure - an error occurred