diff options
| author | Andrey Lihatskiy <alihatskiy@productengine.com> | 2024-05-22 20:51:58 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-22 20:51:58 +0300 |
| commit | 6cc7dd09d5e69cf57e6de7fb568a0ad2693f9c9a (patch) | |
| tree | fab23811a5cedc1ebf01479c852ee92ff62b636c /indra/newview/llpathfindingpathtool.h | |
| parent | ef8f4819822288e044ea719feb6af7a1f4df4c4e (diff) | |
| parent | 7bb5afc11ee5a6af78302a8d76a9a619e2baaab2 (diff) | |
Merge pull request #1545 from Ansariel/DRTVWR-600-maint-A
Merge main into DRTVWR-600-maint-a
Diffstat (limited to 'indra/newview/llpathfindingpathtool.h')
| -rw-r--r-- | indra/newview/llpathfindingpathtool.h | 276 |
1 files changed, 138 insertions, 138 deletions
diff --git a/indra/newview/llpathfindingpathtool.h b/indra/newview/llpathfindingpathtool.h index f9b3e170f4..c263c8ad76 100644 --- a/indra/newview/llpathfindingpathtool.h +++ b/indra/newview/llpathfindingpathtool.h @@ -1,138 +1,138 @@ -/** -* @file llpathfindingpathtool.h -* @brief Header file for llpathfindingpathtool -* @author Stinson@lindenlab.com -* -* $LicenseInfo:firstyear=2012&license=viewerlgpl$ -* Second Life Viewer Source Code -* Copyright (C) 2012, 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_LLPATHFINDINGPATHTOOL_H -#define LL_LLPATHFINDINGPATHTOOL_H - -#include <boost/function.hpp> -#include <boost/signals2.hpp> - -#include "llpathinglib.h" -#include "llsingleton.h" -#include "lltool.h" - -class LLPathfindingPathTool : public LLTool, public LLSingleton<LLPathfindingPathTool> -{ - LLSINGLETON(LLPathfindingPathTool); - virtual ~LLPathfindingPathTool(); - -public: - typedef enum - { - kPathStatusUnknown, - kPathStatusChooseStartAndEndPoints, - kPathStatusChooseStartPoint, - kPathStatusChooseEndPoint, - kPathStatusHasValidPath, - kPathStatusHasInvalidPath, - kPathStatusNotEnabled, - kPathStatusNotImplemented, - kPathStatusError - } EPathStatus; - - typedef enum - { - kCharacterTypeNone, - kCharacterTypeA, - kCharacterTypeB, - kCharacterTypeC, - kCharacterTypeD - } ECharacterType; - - typedef boost::function<void (void)> path_event_callback_t; - typedef boost::signals2::signal<void (void)> path_event_signal_t; - typedef boost::signals2::connection path_event_slot_t; - - virtual bool handleMouseDown(S32 pX, S32 pY, MASK pMask) override; - virtual bool handleMouseUp(S32 pX, S32 pY, MASK pMask) override; - virtual bool handleMiddleMouseDown(S32 pX, S32 pY, MASK pMask) override; - virtual bool handleMiddleMouseUp(S32 pX, S32 pY, MASK pMask) override; - virtual bool handleRightMouseDown(S32 pX, S32 pY, MASK pMask) override; - virtual bool handleRightMouseUp(S32 pX, S32 pY, MASK pMask) override; - virtual bool handleDoubleClick(S32 x, S32 y, MASK mask) override; - - virtual bool handleHover(S32 pX, S32 pY, MASK pMask) override; - - virtual bool handleKey(KEY pKey, MASK pMask) override; - - EPathStatus getPathStatus() const; - - F32 getCharacterWidth() const; - void setCharacterWidth(F32 pCharacterWidth); - - ECharacterType getCharacterType() const; - void setCharacterType(ECharacterType pCharacterType); - - bool isRenderPath() const; - void clearPath(); - - path_event_slot_t registerPathEventListener(path_event_callback_t pPathEventCallback); - -protected: - -private: - bool isAnyPathToolModKeys(MASK pMask) const; - bool isPointAModKeys(MASK pMask) const; - bool isPointBModKeys(MASK pMask) const; - bool isCameraModKeys(MASK pMask) const; - - void getRayPoints(S32 pX, S32 pY, LLVector3 &pRayStart, LLVector3 &pRayEnd) const; - void computeFinalPoints(S32 pX, S32 pY, MASK pMask); - void computeTempPoints(S32 pX, S32 pY, MASK pMask); - - void setFinalA(const LLVector3 &pStartPoint, const LLVector3 &pEndPoint); - bool hasFinalA() const; - const LLVector3 &getFinalAStart() const; - const LLVector3 &getFinalAEnd() const; - - void setTempA(const LLVector3 &pStartPoint, const LLVector3 &pEndPoint); - bool hasTempA() const; - - void setFinalB(const LLVector3 &pStartPoint, const LLVector3 &pEndPoint); - bool hasFinalB() const; - const LLVector3 &getFinalBStart() const; - const LLVector3 &getFinalBEnd() const; - - void setTempB(const LLVector3 &pStartPoint, const LLVector3 &pEndPoint); - bool hasTempB() const; - - void clearFinal(); - void clearTemp(); - - void computeFinalPath(); - void computeTempPath(); - - LLPathingLib::PathingPacket mFinalPathData; - LLPathingLib::PathingPacket mTempPathData; - LLPathingLib::LLPLResult mPathResult; - ECharacterType mCharacterType; - path_event_signal_t mPathEventSignal; - bool mIsLeftMouseButtonHeld; - bool mIsMiddleMouseButtonHeld; - bool mIsRightMouseButtonHeld; -}; - -#endif // LL_LLPATHFINDINGPATHTOOL_H +/**
+* @file llpathfindingpathtool.h
+* @brief Header file for llpathfindingpathtool
+* @author Stinson@lindenlab.com
+*
+* $LicenseInfo:firstyear=2012&license=viewerlgpl$
+* Second Life Viewer Source Code
+* Copyright (C) 2012, 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_LLPATHFINDINGPATHTOOL_H
+#define LL_LLPATHFINDINGPATHTOOL_H
+
+#include <boost/function.hpp>
+#include <boost/signals2.hpp>
+
+#include "llpathinglib.h"
+#include "llsingleton.h"
+#include "lltool.h"
+
+class LLPathfindingPathTool : public LLTool, public LLSingleton<LLPathfindingPathTool>
+{
+ LLSINGLETON(LLPathfindingPathTool);
+ virtual ~LLPathfindingPathTool();
+
+public:
+ typedef enum
+ {
+ kPathStatusUnknown,
+ kPathStatusChooseStartAndEndPoints,
+ kPathStatusChooseStartPoint,
+ kPathStatusChooseEndPoint,
+ kPathStatusHasValidPath,
+ kPathStatusHasInvalidPath,
+ kPathStatusNotEnabled,
+ kPathStatusNotImplemented,
+ kPathStatusError
+ } EPathStatus;
+
+ typedef enum
+ {
+ kCharacterTypeNone,
+ kCharacterTypeA,
+ kCharacterTypeB,
+ kCharacterTypeC,
+ kCharacterTypeD
+ } ECharacterType;
+
+ typedef boost::function<void (void)> path_event_callback_t;
+ typedef boost::signals2::signal<void (void)> path_event_signal_t;
+ typedef boost::signals2::connection path_event_slot_t;
+
+ virtual bool handleMouseDown(S32 pX, S32 pY, MASK pMask) override;
+ virtual bool handleMouseUp(S32 pX, S32 pY, MASK pMask) override;
+ virtual bool handleMiddleMouseDown(S32 pX, S32 pY, MASK pMask) override;
+ virtual bool handleMiddleMouseUp(S32 pX, S32 pY, MASK pMask) override;
+ virtual bool handleRightMouseDown(S32 pX, S32 pY, MASK pMask) override;
+ virtual bool handleRightMouseUp(S32 pX, S32 pY, MASK pMask) override;
+ virtual bool handleDoubleClick(S32 x, S32 y, MASK mask) override;
+
+ virtual bool handleHover(S32 pX, S32 pY, MASK pMask) override;
+
+ virtual bool handleKey(KEY pKey, MASK pMask) override;
+
+ EPathStatus getPathStatus() const;
+
+ F32 getCharacterWidth() const;
+ void setCharacterWidth(F32 pCharacterWidth);
+
+ ECharacterType getCharacterType() const;
+ void setCharacterType(ECharacterType pCharacterType);
+
+ bool isRenderPath() const;
+ void clearPath();
+
+ path_event_slot_t registerPathEventListener(path_event_callback_t pPathEventCallback);
+
+protected:
+
+private:
+ bool isAnyPathToolModKeys(MASK pMask) const;
+ bool isPointAModKeys(MASK pMask) const;
+ bool isPointBModKeys(MASK pMask) const;
+ bool isCameraModKeys(MASK pMask) const;
+
+ void getRayPoints(S32 pX, S32 pY, LLVector3 &pRayStart, LLVector3 &pRayEnd) const;
+ void computeFinalPoints(S32 pX, S32 pY, MASK pMask);
+ void computeTempPoints(S32 pX, S32 pY, MASK pMask);
+
+ void setFinalA(const LLVector3 &pStartPoint, const LLVector3 &pEndPoint);
+ bool hasFinalA() const;
+ const LLVector3 &getFinalAStart() const;
+ const LLVector3 &getFinalAEnd() const;
+
+ void setTempA(const LLVector3 &pStartPoint, const LLVector3 &pEndPoint);
+ bool hasTempA() const;
+
+ void setFinalB(const LLVector3 &pStartPoint, const LLVector3 &pEndPoint);
+ bool hasFinalB() const;
+ const LLVector3 &getFinalBStart() const;
+ const LLVector3 &getFinalBEnd() const;
+
+ void setTempB(const LLVector3 &pStartPoint, const LLVector3 &pEndPoint);
+ bool hasTempB() const;
+
+ void clearFinal();
+ void clearTemp();
+
+ void computeFinalPath();
+ void computeTempPath();
+
+ LLPathingLib::PathingPacket mFinalPathData;
+ LLPathingLib::PathingPacket mTempPathData;
+ LLPathingLib::LLPLResult mPathResult;
+ ECharacterType mCharacterType;
+ path_event_signal_t mPathEventSignal;
+ bool mIsLeftMouseButtonHeld;
+ bool mIsMiddleMouseButtonHeld;
+ bool mIsRightMouseButtonHeld;
+};
+
+#endif // LL_LLPATHFINDINGPATHTOOL_H
|
