From e2e37cced861b98de8c1a7c9c0d3a50d2d90e433 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Wed, 22 May 2024 21:25:21 +0200 Subject: Fix line endlings --- indra/newview/lltoolgrab.h | 318 ++++++++++++++++++++++----------------------- 1 file changed, 159 insertions(+), 159 deletions(-) (limited to 'indra/newview/lltoolgrab.h') diff --git a/indra/newview/lltoolgrab.h b/indra/newview/lltoolgrab.h index 36a8a0a3c5..7806cbc24f 100644 --- a/indra/newview/lltoolgrab.h +++ b/indra/newview/lltoolgrab.h @@ -1,159 +1,159 @@ -/** - * @file lltoolgrab.h - * @brief LLToolGrab class header file - * - * $LicenseInfo:firstyear=2001&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2010, Linden Research, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA - * $/LicenseInfo$ - */ - -#ifndef LL_TOOLGRAB_H -#define LL_TOOLGRAB_H - -#include "lltool.h" -#include "v3math.h" -#include "llquaternion.h" -#include "llsingleton.h" -#include "lluuid.h" -#include "llviewerwindow.h" // for LLPickInfo - -class LLView; -class LLTextBox; -class LLViewerObject; -class LLPickInfo; - - -// Message utilities -void send_ObjectGrab_message(LLViewerObject* object, const LLPickInfo & pick, const LLVector3 &grab_offset); -void send_ObjectDeGrab_message(LLViewerObject* object, const LLPickInfo & pick); - -const MASK DEFAULT_GRAB_MASK = MASK_CONTROL; - -/** - * LLToolGrabBase contains most of the semantics of LLToolGrab. It's just that - * LLToolGrab is an LLSingleton, but we also explicitly instantiate - * LLToolGrabBase as part of LLToolCompGun. You can't just make an extra - * instance of an LLSingleton! - */ -class LLToolGrabBase : public LLTool -{ -public: - LLToolGrabBase(LLToolComposite* composite=NULL); - ~LLToolGrabBase(); - - /*virtual*/ bool handleHover(S32 x, S32 y, MASK mask); - /*virtual*/ bool handleMouseDown(S32 x, S32 y, MASK mask); - /*virtual*/ bool handleMouseUp(S32 x, S32 y, MASK mask); - /*virtual*/ bool handleDoubleClick(S32 x, S32 y, MASK mask); - /*virtual*/ void render(); // 3D elements - /*virtual*/ void draw(); // 2D elements - - virtual void handleSelect(); - virtual void handleDeselect(); - - virtual LLViewerObject* getEditingObject(); - virtual LLVector3d getEditingPointGlobal(); - virtual bool isEditing(); - virtual void stopEditing(); - - virtual void onMouseCaptureLost(); - - bool hasGrabOffset() { return true; } // HACK - LLVector3 getGrabOffset(S32 x, S32 y); // HACK - - // Capture the mouse and start grabbing. - bool handleObjectHit(const LLPickInfo& info); - - // Certain grabs should not highlight the "Build" toolbar button - bool getHideBuildHighlight() { return mHideBuildHighlight; } - - void setClickedInMouselook(bool is_clickedInMouselook) {mClickedInMouselook = is_clickedInMouselook;} - - static void pickCallback(const LLPickInfo& pick_info); -private: - LLVector3d getGrabPointGlobal(); - void startGrab(); - void stopGrab(); - - void startSpin(); - void stopSpin(); - - void handleHoverSpin(S32 x, S32 y, MASK mask); - void handleHoverActive(S32 x, S32 y, MASK mask); - void handleHoverNonPhysical(S32 x, S32 y, MASK mask); - void handleHoverInactive(S32 x, S32 y, MASK mask); - void handleHoverFailed(S32 x, S32 y, MASK mask); - -private: - enum EGrabMode { GRAB_INACTIVE, GRAB_ACTIVE_CENTER, GRAB_NONPHYSICAL, GRAB_LOCKED, GRAB_NOOBJECT }; - - EGrabMode mMode; - - bool mVerticalDragging; - - bool mHitLand; - - LLTimer mGrabTimer; // send simulator time between hover movements - - LLVector3 mGrabOffsetFromCenterInitial; // meters from CG of object - LLVector3d mGrabHiddenOffsetFromCamera; // in cursor hidden drag, how far is grab offset from camera - - LLVector3d mDragStartPointGlobal; // projected into world - LLVector3d mDragStartFromCamera; // drag start relative to camera - - LLPickInfo mGrabPick; - - S32 mLastMouseX; - S32 mLastMouseY; - S32 mAccumDeltaX; // since cursor hidden, how far have you moved? - S32 mAccumDeltaY; - bool mHasMoved; // has mouse moved off center at all? - bool mOutsideSlop; // has mouse moved outside center 5 pixels? - bool mDeselectedThisClick; - bool mValidSelection; - - S32 mLastFace; - LLVector2 mLastUVCoords; - LLVector2 mLastSTCoords; - LLVector3 mLastIntersection; - LLVector3 mLastNormal; - LLVector3 mLastBinormal; - LLVector3 mLastGrabPos; - - - bool mSpinGrabbing; - LLQuaternion mSpinRotation; - - bool mHideBuildHighlight; - - bool mClickedInMouselook; -}; - -/// This is the LLSingleton instance of LLToolGrab. -class LLToolGrab : public LLToolGrabBase, public LLSingleton -{ - LLSINGLETON_EMPTY_CTOR(LLToolGrab); -}; - -extern bool gGrabBtnVertical; -extern bool gGrabBtnSpin; -extern LLTool* gGrabTransientTool; - -#endif // LL_TOOLGRAB_H +/** + * @file lltoolgrab.h + * @brief LLToolGrab class header file + * + * $LicenseInfo:firstyear=2001&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2010, Linden Research, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA + * $/LicenseInfo$ + */ + +#ifndef LL_TOOLGRAB_H +#define LL_TOOLGRAB_H + +#include "lltool.h" +#include "v3math.h" +#include "llquaternion.h" +#include "llsingleton.h" +#include "lluuid.h" +#include "llviewerwindow.h" // for LLPickInfo + +class LLView; +class LLTextBox; +class LLViewerObject; +class LLPickInfo; + + +// Message utilities +void send_ObjectGrab_message(LLViewerObject* object, const LLPickInfo & pick, const LLVector3 &grab_offset); +void send_ObjectDeGrab_message(LLViewerObject* object, const LLPickInfo & pick); + +const MASK DEFAULT_GRAB_MASK = MASK_CONTROL; + +/** + * LLToolGrabBase contains most of the semantics of LLToolGrab. It's just that + * LLToolGrab is an LLSingleton, but we also explicitly instantiate + * LLToolGrabBase as part of LLToolCompGun. You can't just make an extra + * instance of an LLSingleton! + */ +class LLToolGrabBase : public LLTool +{ +public: + LLToolGrabBase(LLToolComposite* composite=NULL); + ~LLToolGrabBase(); + + /*virtual*/ bool handleHover(S32 x, S32 y, MASK mask); + /*virtual*/ bool handleMouseDown(S32 x, S32 y, MASK mask); + /*virtual*/ bool handleMouseUp(S32 x, S32 y, MASK mask); + /*virtual*/ bool handleDoubleClick(S32 x, S32 y, MASK mask); + /*virtual*/ void render(); // 3D elements + /*virtual*/ void draw(); // 2D elements + + virtual void handleSelect(); + virtual void handleDeselect(); + + virtual LLViewerObject* getEditingObject(); + virtual LLVector3d getEditingPointGlobal(); + virtual bool isEditing(); + virtual void stopEditing(); + + virtual void onMouseCaptureLost(); + + bool hasGrabOffset() { return true; } // HACK + LLVector3 getGrabOffset(S32 x, S32 y); // HACK + + // Capture the mouse and start grabbing. + bool handleObjectHit(const LLPickInfo& info); + + // Certain grabs should not highlight the "Build" toolbar button + bool getHideBuildHighlight() { return mHideBuildHighlight; } + + void setClickedInMouselook(bool is_clickedInMouselook) {mClickedInMouselook = is_clickedInMouselook;} + + static void pickCallback(const LLPickInfo& pick_info); +private: + LLVector3d getGrabPointGlobal(); + void startGrab(); + void stopGrab(); + + void startSpin(); + void stopSpin(); + + void handleHoverSpin(S32 x, S32 y, MASK mask); + void handleHoverActive(S32 x, S32 y, MASK mask); + void handleHoverNonPhysical(S32 x, S32 y, MASK mask); + void handleHoverInactive(S32 x, S32 y, MASK mask); + void handleHoverFailed(S32 x, S32 y, MASK mask); + +private: + enum EGrabMode { GRAB_INACTIVE, GRAB_ACTIVE_CENTER, GRAB_NONPHYSICAL, GRAB_LOCKED, GRAB_NOOBJECT }; + + EGrabMode mMode; + + bool mVerticalDragging; + + bool mHitLand; + + LLTimer mGrabTimer; // send simulator time between hover movements + + LLVector3 mGrabOffsetFromCenterInitial; // meters from CG of object + LLVector3d mGrabHiddenOffsetFromCamera; // in cursor hidden drag, how far is grab offset from camera + + LLVector3d mDragStartPointGlobal; // projected into world + LLVector3d mDragStartFromCamera; // drag start relative to camera + + LLPickInfo mGrabPick; + + S32 mLastMouseX; + S32 mLastMouseY; + S32 mAccumDeltaX; // since cursor hidden, how far have you moved? + S32 mAccumDeltaY; + bool mHasMoved; // has mouse moved off center at all? + bool mOutsideSlop; // has mouse moved outside center 5 pixels? + bool mDeselectedThisClick; + bool mValidSelection; + + S32 mLastFace; + LLVector2 mLastUVCoords; + LLVector2 mLastSTCoords; + LLVector3 mLastIntersection; + LLVector3 mLastNormal; + LLVector3 mLastBinormal; + LLVector3 mLastGrabPos; + + + bool mSpinGrabbing; + LLQuaternion mSpinRotation; + + bool mHideBuildHighlight; + + bool mClickedInMouselook; +}; + +/// This is the LLSingleton instance of LLToolGrab. +class LLToolGrab : public LLToolGrabBase, public LLSingleton +{ + LLSINGLETON_EMPTY_CTOR(LLToolGrab); +}; + +extern bool gGrabBtnVertical; +extern bool gGrabBtnSpin; +extern LLTool* gGrabTransientTool; + +#endif // LL_TOOLGRAB_H -- cgit v1.2.3