Alphabetical Class Index  Class Hierarchy   File Members   Compound Members   File List  

HOpObjectTranslate Class Reference

The HOpObjectTranslate class translates a selected object. More...

#include <HOpObjectTranslate.h>

List of all members.

Public Member Functions

virtual HBaseOperatorClone ()
virtual const char * GetName ()
 HOpObjectTranslate (HBaseView *view, int DoRepeat=0, int DoCapture=1)
virtual int OnLButtonDblClk (HEventInfo &hevent)
virtual int OnLButtonDown (HEventInfo &hevent)
virtual int OnLButtonDownAndMove (HEventInfo &hevent)
virtual int OnLButtonUp (HEventInfo &hevent)
virtual void UpdateKeyList (void *data)

Public Attributes

HPoint m_ptRecent
HPoint m_ptRecentVP

Protected Member Functions

void Cleanup ()
int GetMatrix (HEventInfo &hevent, int key_count, HC_KEY const *full_path_keys, float *matrix_out)
void Init ()
int UpdateMousePos (HEventInfo &hevent)

Protected Attributes

bool m_bInitialMatrix
bool m_bTemporarySelection
HKeyList * m_KeyList
HPoint m_ptLast

Detailed Description

The HOpObjectTranslate class translates a selected object.

HOpObjectTranslates implements three of the mouse event handlers defined on the base class and maps the event information to HOOPS routines which translates the currently selected objects. This provides the basic functionality for applying a translation transform to an object (as opposed to a global panning of the camera which affects the entire scene). The operation consists of the following steps:

  1. Left Button Down: The operation is initiated and an object is selected.
  2. Left Button Down and Drag: The object is translated using spriting.
  3. Left Button Up: The translation is finalized and the operation ends.

More Detailed Description: see event methods.


Constructor & Destructor Documentation

HOpObjectTranslate::HOpObjectTranslate ( HBaseView view,
int  DoRepeat = 0,
int  DoCapture = 1 
)

Constructs an HOpObjectTranslate object.

Parameters:
viewA pointer to an HBaseView object,
DoRepeatAn integer denoting whether this is a repeatable operator. This parameter has been deprecated.
DoCaptureAn integer denoting whether the mouse state should be captured, which means that all mouse events should be received after a mousedown, even if it leaves the window. This parameter has been deprecated.

Member Function Documentation

void HOpObjectTranslate::Cleanup ( ) [protected]

This method cleans up the selected entities and turns off spriting if appropriate.

virtual HBaseOperator* HOpObjectTranslate::Clone ( ) [virtual]

Creates a new operator which is a copy of the current operator. The user is responsible for deleting the newly created operator.

Returns:
A pointer to the newly created HOpObjectTranslate object.

Reimplemented from HBaseOperator.

Reimplemented in HOpObjectClash, and HOpCreateCuttingPlane.

int HOpObjectTranslate::GetMatrix ( HEventInfo hevent,
int  key_count,
HC_KEY const *  full_path_keys,
float *  matrix_out 
) [protected]

For internal use only. This method does the computation work to compose a translation matrix that makes objects follow the mouse pointer. It copies the matrix contents into matrix_out so that they may be applied to arbitrary targets. It takes key as an argument because the required transformation can depend on segments' pre-existing modelling matrices. Currently, it assumes that the input key is a segment.

Parameters:
heventAn HEventInfo object containing information about the current event.
key_countThe number of keys in the full segment path.
full_path_keysThe keys of each segment in the full segment path.
matrix_outA pointer to an array of 16 floats. Called by reference, returned to user.
Returns:
An integer value indicating success or failure.
virtual const char* HOpObjectTranslate::GetName ( ) [virtual]
Returns:
A pointer to a character string denoting the name of the operator which is 'HOpObjectTranslate'.

Reimplemented from HBaseOperator.

Reimplemented in HOpObjectClash, and HOpCreateCuttingPlane.

void HOpObjectTranslate::Init ( ) [protected]

This method initializes the selected entities and turns on spriting.

virtual int HOpObjectTranslate::OnLButtonDblClk ( HEventInfo hevent) [virtual]

OnLButtonDblClk translates the object back to its original location.

Parameters:
heventAn HEventInfo object containing information about the current event.
Returns:
An HOperatorReturn indicating the status of the event.

Reimplemented from HBaseOperator.

virtual int HOpObjectTranslate::OnLButtonDown ( HEventInfo hevent) [virtual]

OnLButtonDown records the first pointer position and initializes the translation mechanism.

Parameters:
heventAn HEventInfo object containing information about the current event.
Returns:
An HOperatorReturn indicating the status of the event.

Reimplemented from HBaseOperator.

Reimplemented in HOpObjectClash, and HOpCreateCuttingPlane.

virtual int HOpObjectTranslate::OnLButtonDownAndMove ( HEventInfo hevent) [virtual]

OnLButtonDownAndMove computes the translation transform based on the distance between the first and current pointer positions, and translates the object accordingly.

Parameters:
heventAn HEventInfo object containing information about the current event.
Returns:
An HOperatorReturn indicating the status of the event.

Reimplemented from HBaseOperator.

Reimplemented in HOpObjectClash.

virtual int HOpObjectTranslate::OnLButtonUp ( HEventInfo hevent) [virtual]

OnLButtonUp cleans up the construction segments used during the transformation and ends the operation.

Parameters:
heventAn HEventInfo object containing information about the current event.
Returns:
An HOperatorReturn indicating the status of the event.

Reimplemented from HBaseOperator.

Reimplemented in HOpObjectClash, and HOpCreateCuttingPlane.

virtual void HOpObjectTranslate::UpdateKeyList ( void *  data) [virtual]

This method is used to update the list of keys to translate when the selection list changes.

Reimplemented in HOpObjectClash.

int HOpObjectTranslate::UpdateMousePos ( HEventInfo hevent) [protected]

For internal use only. This method updates the internal state needed for matrix calculations.

Parameters:
heventAn HEventInfo object containing information about the current event.
Returns:
An integer value indicating success or failure.

Member Data Documentation

The initial modelling matrix.

This boolean indicates whether object was temporarily selected.

HKeyList* HOpObjectTranslate::m_KeyList [protected]

A List of keys to translate (copied from selection set).

A pointer to the current position in world coordinates.

A pointer to the current position in viewpoint (screen) coordinates.


The documentation for this class was generated from the following file: