VR-Forces 4.0.4 Class Documentation
include/bhave3DGui/boxDrawEventProcessor.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 2011 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 ******************************************************************************/
00005 
00006 #pragma once
00007 
00008 #include <bhave3DGui/bhave3DGuiDefines.h>
00009 
00010 #include <vrfGuiCore/vrfGuiCore.h>
00011 #include <vrvCore/DtEventProcessorInterface.h>
00012 
00013 #include <vrvCore/DtSelectionManager.h>
00014 #include <vrvCore/DtElementEntry.h>
00015 #include <vrvCore/DtDe.h>
00016 #include <vrvCore/DtIntersector.h>
00017 #include <geometry/point.h>
00018 
00019 namespace makVrv
00020 {
00021    class DtOverlayPolygonModelAgent;
00022    class DtSceneObjectAgent;
00023 }
00024 
00025 
00026 namespace BHAVE
00027 {
00028    namespace BHAVE3DGui
00029    {
00032       class DT_DLL_bhave3DGui DtBoxDrawEventProcessor : public makVrv::DtEventProcessorInterface
00033       {
00034       public:
00035 
00037          DtBoxDrawEventProcessor(makVrv::DtDe& de);
00038 
00040          virtual ~DtBoxDrawEventProcessor();
00041 
00042          virtual const std::string& className() {return theClassName;};
00043 
00046          virtual bool processMouseEvent( const makVrv::DtMouseEvent& ev, makVrv::DtChannel& channel);    
00047          virtual bool processKeyboardEvent( const makVrv::DtKeyEvent& ev, makVrv::DtChannel& channel) {return false;};   
00048 
00050          virtual void cleanupBox();
00051 
00052          static void setCurrentMousePosition(makVrv::DtDe&, int x, int y);
00053          static void setCurrentMousePosition(int x, int y);
00054          static void getCurrentMousePosition(int& x, int& y);
00055 
00056          virtual bool isActive() const;
00057          virtual void setIsActive(bool active);
00058 
00059          virtual void saveLastPoints();
00060          virtual void restoreLastPoints();
00061 
00062          boost::signal<void (const makVrv::DtIntersectorResult&, const makVrv::DtIntersectorResult&,
00063                              const makVrv::DtIntersectorResult&, const makVrv::DtIntersectorResult&)> signal_changedBoxPosition;
00064 
00065          boost::signal<void ()> signal_boxCreated;
00066 
00067          boost::signal<void (int x, int y)> signal_boxCreationStart;
00068 
00069       protected:
00070         
00072          virtual void createBox(int modelSet);
00073 
00075          virtual void setBoxFromExtents(makVrv::DtChannel& channel, int anchorX, int anchorY, int toX, int toY);
00076 
00077       protected:
00078          makVrv::DtDe&  myDe;
00079          makVrv::DtOverlayPolygonModelAgent* myBox;  
00080          static makVrv::DtUniqueID           theLineId;
00081          makVrv::DtSceneObjectAgent*         mySceneObjectAgent;
00082          bool                                myIsActive;
00083          int                                 myInitialMousePositionX;
00084          int                                 myInitialMousePositionY;
00085          static int                          theCurrentMousePositionX;
00086          static int                          theCurrentMousePositionY;
00087          static std::string                  theClassName;
00088          makVrv::DtIntersectorResult         myNW;
00089          makVrv::DtIntersectorResult         myNE;
00090          makVrv::DtIntersectorResult         mySE;
00091          makVrv::DtIntersectorResult         mySW;
00092          bool                                myBoxStarted;
00093          DtPoint                             myLastNW;
00094          DtPoint                             myLastNE;
00095          DtPoint                             myLastSE;
00096          DtPoint                             myLastSW;
00097       };
00098    }
00099 }

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)