LLManipRotate Class Reference

#include <llmaniprotate.h>

Inheritance diagram for LLManipRotate:

Inheritance graph
[legend]
Collaboration diagram for LLManipRotate:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 LLManipRotate (LLToolComposite *composite)
virtual BOOL handleMouseDown (S32 x, S32 y, MASK mask)
virtual BOOL handleMouseUp (S32 x, S32 y, MASK mask)
virtual BOOL handleHover (S32 x, S32 y, MASK mask)
virtual void render ()
virtual void handleSelect ()
virtual void handleDeselect ()
virtual BOOL handleMouseDownOnPart (S32 x, S32 y, MASK mask)
virtual void highlightManipulators (S32 x, S32 y)
virtual BOOL canAffectSelection ()

Private Member Functions

void updateHoverView ()
void drag (S32 x, S32 y)
LLVector3 projectToSphere (F32 x, F32 y, BOOL *on_sphere)
void renderSnapGuides ()
void renderActiveRing (F32 radius, F32 width, const LLColor4 &center_color, const LLColor4 &side_color)
BOOL updateVisiblity ()
LLVector3 findNearestPointOnRing (S32 x, S32 y, const LLVector3 &center, const LLVector3 &axis)
LLQuaternion dragUnconstrained (S32 x, S32 y)
LLQuaternion dragConstrained (S32 x, S32 y)
LLVector3 getConstraintAxis ()
S32 getObjectAxisClosestToMouse (LLVector3 &axis)

Static Private Member Functions

static void mouseToRay (S32 x, S32 y, LLVector3 *ray_pt, LLVector3 *ray_dir)
static LLVector3 intersectMouseWithSphere (S32 x, S32 y, const LLVector3 &sphere_center, F32 sphere_radius)
static LLVector3 intersectRayWithSphere (const LLVector3 &ray_pt, const LLVector3 &ray_dir, const LLVector3 &sphere_center, F32 sphere_radius)

Private Attributes

LLVector3d mRotationCenter
LLCoordGL mCenterScreen
LLQuaternion mRotation
LLVector3 mMouseDown
LLVector3 mMouseCur
F32 mRadiusMeters
LLVector3 mCenterToCam
LLVector3 mCenterToCamNorm
F32 mCenterToCamMag
LLVector3 mCenterToProfilePlane
F32 mCenterToProfilePlaneMag
EManipPart mManipPart
BOOL mSendUpdateOnMouseUp
BOOL mSmoothRotate
BOOL mCamEdgeOn
LLVector4 mManipulatorVertices [6]
LLVector4 mManipulatorScales

Classes

class  ManipulatorHandle


Detailed Description

Definition at line 46 of file llmaniprotate.h.


Constructor & Destructor Documentation

LLManipRotate::LLManipRotate ( LLToolComposite composite  ) 

Definition at line 88 of file llmaniprotate.cpp.


Member Function Documentation

BOOL LLManipRotate::handleMouseDown ( S32  x,
S32  y,
MASK  mask 
) [virtual]

Reimplemented from LLTool.

Definition at line 359 of file llmaniprotate.cpp.

References FALSE, gViewerWindow, handleMouseDownOnPart(), LLViewerWindow::lastObjectHit(), LLManip::LL_NO_PART, LLManip::mHighlightedPart, LLManip::mObjectSelection, and TRUE.

Here is the call graph for this function:

BOOL LLManipRotate::handleMouseUp ( S32  x,
S32  y,
MASK  mask 
) [virtual]

BOOL LLManipRotate::handleHover ( S32  x,
S32  y,
MASK  mask 
) [virtual]

Reimplemented from LLManip.

Definition at line 475 of file llmaniprotate.cpp.

References drag(), FALSE, gViewerWindow, LLTool::hasMouseCapture(), highlightManipulators(), lldebugst, llendl, LLManip::mObjectSelection, LLViewerWindow::setCursor(), LLTool::setMouseCapture(), TRUE, and UI_CURSOR_TOOLROTATE.

Referenced by handleMouseUp().

Here is the call graph for this function:

Here is the caller graph for this function:

void LLManipRotate::render (  )  [virtual]

void LLManipRotate::handleSelect (  )  [virtual]

void LLManipRotate::handleDeselect (  )  [virtual]

Reimplemented from LLManip.

Definition at line 116 of file llmaniprotate.cpp.

References LLManip::handleDeselect(), LLManip::LL_NO_PART, LLManip::mHighlightedPart, and mManipPart.

Here is the call graph for this function:

BOOL LLManipRotate::handleMouseDownOnPart ( S32  x,
S32  y,
MASK  mask 
) [virtual]

void LLManipRotate::highlightManipulators ( S32  x,
S32  y 
) [virtual]

BOOL LLManipRotate::canAffectSelection (  )  [virtual]

Implements LLManip.

Definition at line 1866 of file llmaniprotate.cpp.

References LLControlGroup::getBOOL(), gSavedSettings, LLManip::mObjectSelection, LLViewerObject::permModify(), and LLViewerObject::permMove().

Referenced by handleMouseDownOnPart().

Here is the call graph for this function:

Here is the caller graph for this function:

void LLManipRotate::updateHoverView (  )  [private]

void LLManipRotate::drag ( S32  x,
S32  y 
) [private]

Definition at line 516 of file llmaniprotate.cpp.

References LLAgent::clearFocusObject(), LLWorld::clipToVisibleRegions(), dialog_refresh_all(), dragConstrained(), dragUnconstrained(), FALSE, gAgent, LLSingleton< LLSelectMgr >::getInstance(), LLSingleton< LLWorld >::getInstance(), LLSelectNode::getObject(), LLXform::getParent(), LLAgent::getPosAgentFromGlobal(), LLAgent::getPosGlobalFromAgent(), LLXform::getPosition(), LLViewerObject::getPositionAgent(), LLViewerObject::getPositionEdit(), LLViewerObject::getRenderPosition(), LLViewerObject::getRenderRotation(), LLXform::getRotation(), LLViewerObject::getRotationEdit(), LLViewerObject::getRotationRegion(), LLSelectMgr::getSelection(), LLManip::getSelection(), LLXform::getWorldPosition(), LLXform::getWorldRotation(), i, LLViewerObject::isAttachment(), LLPrimitive::isAvatar(), LLXform::isRootEdit(), LLViewerObject::isSelected(), LLManip::LL_ROT_GENERAL, LLViewerObject::mDrawable, LLSelectNode::mIndividualSelection, LLSelectNode::mLastPositionLocal, LLSelectNode::mLastRotation, mManipPart, LLManip::mObjectSelection, mRotation, mRotationCenter, LLSelectNode::mSavedPositionGlobal, LLSelectNode::mSavedPositionLocal, LLSelectNode::mSavedRotation, mSmoothRotate, LLPointer< Type >::notNull(), LLViewerObject::permModify(), LLViewerObject::permMove(), LLManip::rebuild(), LLXform::setPosition(), LLViewerObject::setPosition(), LLViewerObject::setRotation(), LLQuaternion::transQuat(), LLSelectMgr::updateSelectionCenter(), and updateVisiblity().

Referenced by handleHover().

Here is the call graph for this function:

Here is the caller graph for this function:

LLVector3 LLManipRotate::projectToSphere ( F32  x,
F32  y,
BOOL on_sphere 
) [private]

Definition at line 502 of file llmaniprotate.cpp.

References SQ_RADIUS.

void LLManipRotate::renderSnapGuides (  )  [private]

void LLManipRotate::renderActiveRing ( F32  radius,
F32  width,
const LLColor4 center_color,
const LLColor4 side_color 
) [private]

Definition at line 725 of file llmaniprotate.cpp.

References CIRCLE_STEPS, FALSE, gl_ring(), and TRUE.

Referenced by render().

Here is the call graph for this function:

Here is the caller graph for this function:

BOOL LLManipRotate::updateVisiblity (  )  [private]

LLVector3 LLManipRotate::findNearestPointOnRing ( S32  x,
S32  y,
const LLVector3 center,
const LLVector3 axis 
) [private]

Definition at line 442 of file llmaniprotate.cpp.

References LLManip::getMousePointOnPlaneAgent(), mRadiusMeters, and LLVector3::normVec().

Referenced by handleMouseDownOnPart().

Here is the call graph for this function:

Here is the caller graph for this function:

LLQuaternion LLManipRotate::dragUnconstrained ( S32  x,
S32  y 
) [private]

LLQuaternion LLManipRotate::dragConstrained ( S32  x,
S32  y 
) [private]

LLVector3 LLManipRotate::getConstraintAxis (  )  [private]

S32 LLManipRotate::getObjectAxisClosestToMouse ( LLVector3 axis  )  [private]

void LLManipRotate::mouseToRay ( S32  x,
S32  y,
LLVector3 ray_pt,
LLVector3 ray_dir 
) [static, private]

LLVector3 LLManipRotate::intersectMouseWithSphere ( S32  x,
S32  y,
const LLVector3 sphere_center,
F32  sphere_radius 
) [static, private]

Definition at line 1608 of file llmaniprotate.cpp.

References intersectRayWithSphere(), and mouseToRay().

Referenced by dragUnconstrained(), and handleMouseDownOnPart().

Here is the call graph for this function:

Here is the caller graph for this function:

LLVector3 LLManipRotate::intersectRayWithSphere ( const LLVector3 ray_pt,
const LLVector3 ray_dir,
const LLVector3 sphere_center,
F32  sphere_radius 
) [static, private]

Definition at line 1616 of file llmaniprotate.cpp.

References dot(), LLVector3::normVec(), and LLVector3::zero.

Referenced by intersectMouseWithSphere().

Here is the call graph for this function:

Here is the caller graph for this function:


Member Data Documentation

Definition at line 97 of file llmaniprotate.h.

Referenced by dragUnconstrained(), and updateVisiblity().

Definition at line 100 of file llmaniprotate.h.

Referenced by drag().

Definition at line 103 of file llmaniprotate.h.

Referenced by dragConstrained(), dragUnconstrained(), and handleMouseDownOnPart().

Definition at line 106 of file llmaniprotate.h.

Referenced by dragConstrained(), handleMouseDownOnPart(), and updateVisiblity().

Definition at line 108 of file llmaniprotate.h.

Referenced by updateVisiblity().

Definition at line 109 of file llmaniprotate.h.

Referenced by dragUnconstrained(), render(), and updateVisiblity().

Definition at line 110 of file llmaniprotate.h.

Referenced by dragUnconstrained(), and updateVisiblity().

Definition at line 114 of file llmaniprotate.h.

Definition at line 116 of file llmaniprotate.h.

Referenced by drag(), and dragConstrained().

Definition at line 117 of file llmaniprotate.h.

Referenced by dragConstrained(), renderSnapGuides(), and updateVisiblity().

Definition at line 119 of file llmaniprotate.h.

Definition at line 120 of file llmaniprotate.h.

Referenced by render().


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

Generated on Fri May 16 08:52:03 2008 for SecondLife by  doxygen 1.5.5