The HOpObjectTranslate class translates a selected object. More...
#include <HOpObjectTranslate.h>
Public Member Functions | |
virtual HBaseOperator * | Clone () |
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 |
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:
More Detailed Description: see event methods.
HOpObjectTranslate::HOpObjectTranslate | ( | HBaseView * | view, |
int | DoRepeat = 0 , |
||
int | DoCapture = 1 |
||
) |
Constructs an HOpObjectTranslate object.
view | A pointer to an HBaseView object, |
DoRepeat | An integer denoting whether this is a repeatable operator. This parameter has been deprecated. |
DoCapture | An 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. |
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.
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.
hevent | An HEventInfo object containing information about the current event. |
key_count | The number of keys in the full segment path. |
full_path_keys | The keys of each segment in the full segment path. |
matrix_out | A pointer to an array of 16 floats. Called by reference, returned to user. |
virtual const char* HOpObjectTranslate::GetName | ( | ) | [virtual] |
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.
hevent | An HEventInfo object containing information about the current event. |
Reimplemented from HBaseOperator.
virtual int HOpObjectTranslate::OnLButtonDown | ( | HEventInfo & | hevent | ) | [virtual] |
OnLButtonDown records the first pointer position and initializes the translation mechanism.
hevent | An HEventInfo object containing information about the current 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.
hevent | An HEventInfo object containing information about the current 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.
hevent | An HEventInfo object containing information about the current 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.
hevent | An HEventInfo object containing information about the current event. |
bool HOpObjectTranslate::m_bInitialMatrix [protected] |
The initial modelling matrix.
bool HOpObjectTranslate::m_bTemporarySelection [protected] |
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.