From 420b91db29485df39fd6e724e782c449158811cb Mon Sep 17 00:00:00 2001 From: James Cook Date: Tue, 2 Jan 2007 08:33:20 +0000 Subject: Print done when done. --- indra/newview/lltoolbrush.h | 88 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 indra/newview/lltoolbrush.h (limited to 'indra/newview/lltoolbrush.h') diff --git a/indra/newview/lltoolbrush.h b/indra/newview/lltoolbrush.h new file mode 100644 index 0000000000..3cae7559a3 --- /dev/null +++ b/indra/newview/lltoolbrush.h @@ -0,0 +1,88 @@ +/** + * @file lltoolbrush.h + * @brief toolbrush class header file + * + * Copyright (c) 2002-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +#ifndef LL_LLTOOLBRUSH_H +#define LL_LLTOOLBRUSH_H + +#include "lltool.h" +#include "v3math.h" +#include "lleditmenuhandler.h" + +class LLSurface; +class LLVector3d; +class LLViewerRegion; + +template class LLLinkedList; + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// Class LLToolBrushLand +// +// A toolbrush that modifies the land. +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +class LLToolBrushLand : public LLTool, public LLEditMenuHandler +{ +public: + LLToolBrushLand(); + + // x,y in window coords, 0,0 = left,bot + 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 handleSelect(); + virtual void handleDeselect(); + + // isAlwaysRendered() - return true if this is a tool that should + // always be rendered regardless of selection. + virtual BOOL isAlwaysRendered() { return TRUE; } + + // Draw the area that will be affected. + virtual void render(); + + // on Idle is where the land modification actually occurs + static void onIdle(void* brush_tool); + + void onMouseCaptureLost(); + + void modifyLandInSelectionGlobal(); + virtual void undo(); + virtual BOOL canUndo() { return TRUE; } + + virtual void redo(); + virtual BOOL canRedo() { return FALSE; } + + +protected: + void brush( void ); + void modifyLandAtPointGlobal( const LLVector3d &spot, MASK mask ); + + void determineAffectedRegions(LLLinkedList& regions, + const LLVector3d& spot) const; + void renderOverlay(LLSurface& land, const LLVector3& pos_region, + const LLVector3& pos_world); + + // Does region allow terraform, or are we a god? + bool canTerraform(LLViewerRegion* regionp) const; + + // Modal dialog that you can't terraform the region + void alertNoTerraform(LLViewerRegion* regionp); + +protected: + F32 mStartingZ; + S32 mMouseX; + S32 mMouseY; + S32 mBrushIndex; + BOOL mGotHover; + BOOL mLastShowParcelOwners; + BOOL mBrushSelected; + LLLinkedList mLastAffectedRegions; +}; + +extern LLToolBrushLand *gToolLand; + +#endif // LL_LLTOOLBRUSH_H -- cgit v1.2.3