/* Copyright 2003-2005 ROBLOX Corporation, All Rights Reserved */ #pragma once #include "Tool/ToolsArrow.h" #include "AppDraw/HandleType.h" #include "Util/NormalId.h" namespace RBX { extern const char* const sResizeTool; class ResizeTool : public Named { private: typedef Named Super; void findTargetPV(const shared_ptr& inputObject); void capturedDrag(int axisDelta); /*override*/ bool drawConnectors() const {return true;} // default mouse command no draw connectors protected: // IAdornable /*override*/ void render3dAdorn(Adorn* adorn); /*override*/ void render2d(Adorn* adorn); // Tool /*override*/ void onMouseHover(const shared_ptr& inputObject); /*override*/ shared_ptr onMouseDown(const shared_ptr& inputObject); /*override*/ void onMouseMove(const shared_ptr& inputObject); /*override*/ shared_ptr onMouseUp(const shared_ptr& inputObject); /*override*/ const std::string getCursorName() const; weak_ptr targetPV; bool overHandle; NormalId localNormalId; Vector3 hitPointGrid; Vector2int16 down; int moveAxis; int movePerp; int moveIncrement; public: ResizeTool(Workspace* workspace) : Named(workspace), overHandle(false), moveAxis(0), movePerp(0) {} /*override*/ shared_ptr isSticky() const {return Creatable::create(workspace);} }; } // namespace RBX