DD::Image::AxisOp Class Reference

AxisOp is the base class for all the 3D objects. It simply contains a transform matrix. More...

Inherits DD::Image::Op, and DD::Image::LookAt.

Inherited by DD::Image::CameraOp.

List of all members.

Public Member Functions

 AxisOp (Node *, int defaultLookAtAxis=kAxisZPlus)
int minimum_inputs () const
int maximum_inputs () const
virtual const char * input_label (int input, char *) const
virtual Oplookat_input () const
 override from LookAt to add the look at pipe to input 1
virtual bool lookAtEnabled () const
 by default all the axis look at pipe is disabled
bool test_input (int, Op *) const
AxisOpinput0 () const
int display3d () const
bool selectable () const
void display3d (int v)
void selectable (bool v)
virtual bool isGuiInteractive (Axis_KnobI::Transformation knob) const
 return true if a particular knob transformation is modifiable by user interaction in gui
Axis_KnobI * getAxis ()
const char * node_shape () const
unsigned node_color () const
void knobs (Knob_Callback)
HandlesMode doAnyHandles (ViewerContext *)
void build_handles (ViewerContext *)
void draw_handle (ViewerContext *)
int display3d ()
const Matrix4local () const
void matrix (const Matrix4 &m)
const Matrix4matrix () const
const Matrix4imatrix ()
virtual void matrixAt (const DD::Image::OutputContext &context, DD::Image::Matrix4 &matrix) const
const char * Class () const
const char * node_help () const
virtual void print_info (std::ostream &o) const

Static Public Attributes

static const Description description

Protected Member Functions

void _validate (bool for_real)

Protected Attributes

Matrix4 localtransform_
 Local matrix that Axis_Knob fills in.
Matrix4 local_
Matrix4 matrix_
 Local matrix after look at performed.
Matrix4 imatrix_
 Inverse object matrix.
bool inversion_updated
 Whether imatrix_ is valid.
Axis_KnobI * axis_knob
 reference to the transformation knob
WorldMatrixProvider * _worldMatrixProvider
int display3d_
 GUI display setting.
bool selectable_
 GUI selectable checkmark.

Friends

std::ostream & operator<< (std::ostream &, const AxisOp &)

Detailed Description

AxisOp is the base class for all the 3D objects. It simply contains a transform matrix.


Member Function Documentation

void AxisOp::_validate ( bool  for_real) [protected, virtual]

Validate our parent axis first, then concatenate the local transform with that. If the resulting matrix has changed, update the inversion flag and XYZ vectors.

Reimplemented from DD::Image::Op.

Reimplemented in DD::Image::ComplexLightOp.

References imatrix(), DD::Image::Op::input0(), inversion_updated, localtransform_, DD::Image::LookAt::lookAt(), lookat_input(), matrix_, and DD::Image::Op::validate().

bool AxisOp::test_input ( int  input,
Op op 
) const [virtual]

Only AxisOp and NULL work.

Reimplemented from DD::Image::Op.

void AxisOp::build_handles ( ViewerContext ctx) [virtual]
const Matrix4 & AxisOp::imatrix ( )

Return the inverse object matrix. If the inversion has been marked invalid, calculate it now, otherwise return the current one.

References DD::Image::Matrix4::determinant(), imatrix_, DD::Image::Matrix4::inverse(), inversion_updated, DD::Image::Matrix4::makeIdentity(), and matrix_.

Referenced by _validate().


Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  ,
const AxisOp  
) [friend]

Not implemented in the library but you can define it


Member Data Documentation

Local matrix after look at performed.

Object matrix - local&parent

Referenced by _validate(), and imatrix().