VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Types | Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Private Attributes | Friends
makVrv::DtWidgetPicker Class Reference

The picker class which allocates and does picking operations on widgets.

Inheritance diagram for makVrv::DtWidgetPicker:
Inheritance graph
[legend]

Classes

struct  MousePickRecord
 

Public Types

enum  MousePickType {
  NO_EVENT = 0, LEFT_MOUSE_PRESS, LEFT_MOUSE_RELEASE, LEFT_MOUSE_DOUBLECLICK,
  MIDDLE_MOUSE_PRESS, MIDDLE_MOUSE_RELEASE, MIDDLE_MOUSE_DOUBLECLICK, RIGHT_MOUSE_PRESS,
  RIGHT_MOUSE_RELEASE, RIGHT_MOUSE_DOUBLECLICK, MOUSE_MOVE, MOUSE_WHEEL
}
 

Public Member Functions

virtual ~DtWidgetPicker ()
 
 DtWidgetPicker ()=delete
 
 DtWidgetPicker (const DtWidgetPicker &rhs)=delete
 
DtWidgetPickeroperator= (const DtWidgetPicker &rhs)=delete
 
virtual unsigned int numberOfWidgets () const
 
virtual void releaseResources (bool renderer)
 
virtual DtFrameBufferObjectframeBufferObject (void)
 
virtual DtPickableQuadallocatePickableQuad ()
 
virtual DtPickableTriangleallocatePickableTriangle ()
 
virtual DtPickableLineallocatePickableLine ()
 
virtual DtPickableDecalProjectorallocatePickableDecalProjector (DtDecalProjectorComponentInterface *component)
 
virtual void registerPickableDecalProjector (DtPickableDecalProjector *widget)
 
virtual void unregisterPickableDecalProjector (DtPickableDecalProjector *widget)
 
virtual bool requiresScenePick () const
 
virtual void pick (const MousePickRecord &rec, bool geocentric, double cameraPosition[3], const DtObserverRenderData &observerRenderData, double cameraMatrix[16], const int viewport[4])
 
virtual const DtPickableWidgetfindWidgetFromLastPick () const
 
virtual bool signalEvents ()
 
virtual void clearEvents ()
 

Public Attributes

boost::signalslib::signal< void()> signal_destroyed
 

Protected Types

using WidgetIdMap = std::unordered_map< unsigned int, DtPickableWidget * >
 

Protected Member Functions

 DtWidgetPicker (DtDe &de, DtOverlayResourceProvider &provider)
 
virtual DtPickableWidgetcalculateWidgetFromLastPick ()
 
virtual void debugRender ()
 
virtual DtQuadProxyallocateQuad ()
 
virtual DtLineSegmentallocateLine ()
 
virtual DtTriangleProxyallocateTriangle ()
 
virtual unsigned int widgetCreated (DtPickableWidget *)
 
virtual void widgetToBeDeleted (DtPickableWidget *)
 
virtual bool allocateResources ()
 

Protected Attributes

DtOverlayResourceProvidermyProvider
 
DtFrameBufferObjectmyFrameBuffer
 
DtPixelBufferObjectmyPixelBuffer
 
DtTextureObjectmySampleTexture
 
DtQuadRenderermyQuadRenderer
 
DtLineRenderermyLineRenderer
 
DtTriangleRenderermyTriangleRenderer
 
std::unordered_map
< DtPickableDecalProjector
*, unsigned int
myPickableDecalProjectors
 
int myDesiredWidth
 
int myDesiredHeight
 
bool myPendingEventFlag
 
MousePickRecord myPendingEvent
 
DtPickableWidgetmyMouseFocusWidget
 
WidgetIdMap myWidgetIds
 
unsigned int myFreeId
 
DtDemyDe
 
std::vector< unsigned intmyColorBuffer
 

Private Attributes

friend DtWidgetPickerCreator
 

Friends

class DtPickableWidget
 
class DtPickableQuad
 
class DtPickableLine
 
class DtPickableTriangle
 

Member Typedef Documentation

using makVrv::DtWidgetPicker::WidgetIdMap = std::unordered_map<unsigned int, DtPickableWidget*>
protected

Member Enumeration Documentation

Enumerator
NO_EVENT 
LEFT_MOUSE_PRESS 
LEFT_MOUSE_RELEASE 
LEFT_MOUSE_DOUBLECLICK 
MIDDLE_MOUSE_PRESS 
MIDDLE_MOUSE_RELEASE 
MIDDLE_MOUSE_DOUBLECLICK 
RIGHT_MOUSE_PRESS 
RIGHT_MOUSE_RELEASE 
RIGHT_MOUSE_DOUBLECLICK 
MOUSE_MOVE 
MOUSE_WHEEL 

Constructor & Destructor Documentation

virtual makVrv::DtWidgetPicker::~DtWidgetPicker ( )
virtual

destructor

makVrv::DtWidgetPicker::DtWidgetPicker ( )
delete

not allowed

makVrv::DtWidgetPicker::DtWidgetPicker ( const DtWidgetPicker rhs)
delete

not allowed

makVrv::DtWidgetPicker::DtWidgetPicker ( DtDe de,
DtOverlayResourceProvider provider 
)
protected

Protected Constructor Use DtWidgetPickerCreator to create an instance of this class.

Member Function Documentation

DtWidgetPicker& makVrv::DtWidgetPicker::operator= ( const DtWidgetPicker rhs)
delete

not allowed

virtual unsigned int makVrv::DtWidgetPicker::numberOfWidgets ( ) const
virtual

Get the number of widgets.

virtual void makVrv::DtWidgetPicker::releaseResources ( bool  renderer)
virtual

Deallocate any resources. Renderer boolean is part of a hack to get widgets pickable again.

virtual DtFrameBufferObject* makVrv::DtWidgetPicker::frameBufferObject ( void  )
virtual
virtual DtPickableQuad* makVrv::DtWidgetPicker::allocatePickableQuad ( )
virtual

Allocate a widget quad, delete when done.

virtual DtPickableTriangle* makVrv::DtWidgetPicker::allocatePickableTriangle ( )
virtual

Allocate a widget quad, delete when done.

virtual DtPickableLine* makVrv::DtWidgetPicker::allocatePickableLine ( )
virtual

Allocate a widget quad, delete when done.

virtual DtPickableDecalProjector* makVrv::DtWidgetPicker::allocatePickableDecalProjector ( DtDecalProjectorComponentInterface component)
virtual

Allocate a widget decal projector, delete when done.

virtual void makVrv::DtWidgetPicker::registerPickableDecalProjector ( DtPickableDecalProjector widget)
virtual

Registers the pickable decal projector widget with this picker. The picker does not own the widget. The widget will call this in it's constuctor (no need to call it manually).

virtual void makVrv::DtWidgetPicker::unregisterPickableDecalProjector ( DtPickableDecalProjector widget)
virtual

Unregisters the pickable decal projector widget with this picker. The picker does not own the widget. The widget will call this in it's deconstuctor (no need to call it manually).

virtual bool makVrv::DtWidgetPicker::requiresScenePick ( ) const
virtual

Returns true if this widget picker requires a scene pick prior to calling the pick method. This is used for recording a support node hit location from the mouse cursor position.

virtual void makVrv::DtWidgetPicker::pick ( const MousePickRecord rec,
bool  geocentric,
double  cameraPosition[3],
const DtObserverRenderData observerRenderData,
double  cameraMatrix[16],
const int  viewport[4] 
)
virtual

Pick at (int x, int y); As picking can be slow, start your pick, after updates but before rendering.

Parameters
viewport[4]- the viewport position and dimensions (x, y, width, height)
virtual const DtPickableWidget* makVrv::DtWidgetPicker::findWidgetFromLastPick ( ) const
virtual

Attempt to get the widget from the last pick.

virtual bool makVrv::DtWidgetPicker::signalEvents ( )
virtual

Done during the update phase.

Reimplemented in makVrf::DtVrfWidgetPicker.

virtual void makVrv::DtWidgetPicker::clearEvents ( )
virtual

Clear any pending events.

virtual DtPickableWidget* makVrv::DtWidgetPicker::calculateWidgetFromLastPick ( )
protectedvirtual

Get the widget at last pick. After rendering process the last pick.

virtual void makVrv::DtWidgetPicker::debugRender ( )
protectedvirtual
virtual DtQuadProxy* makVrv::DtWidgetPicker::allocateQuad ( )
protectedvirtual

Allocate a widget quad, delete when done.

virtual DtLineSegment* makVrv::DtWidgetPicker::allocateLine ( )
protectedvirtual

Allocate a widget quad, delete when done.

virtual DtTriangleProxy* makVrv::DtWidgetPicker::allocateTriangle ( )
protectedvirtual

Allocate a triangle.

virtual unsigned int makVrv::DtWidgetPicker::widgetCreated ( DtPickableWidget )
protectedvirtual

Called when a widget is created.

virtual void makVrv::DtWidgetPicker::widgetToBeDeleted ( DtPickableWidget )
protectedvirtual

Called when a widget is to be deleted.

virtual bool makVrv::DtWidgetPicker::allocateResources ( )
protectedvirtual

Friends And Related Function Documentation

friend class DtPickableWidget
friend
friend class DtPickableQuad
friend
friend class DtPickableLine
friend
friend class DtPickableTriangle
friend

Member Data Documentation

friend makVrv::DtWidgetPicker::DtWidgetPickerCreator
private
boost::signalslib::signal<void ()> makVrv::DtWidgetPicker::signal_destroyed

Boost signal sent during widget picker destruction. Called from destructor.

DtOverlayResourceProvider& makVrv::DtWidgetPicker::myProvider
protected
DtFrameBufferObject* makVrv::DtWidgetPicker::myFrameBuffer
protected
DtPixelBufferObject* makVrv::DtWidgetPicker::myPixelBuffer
protected
DtTextureObject* makVrv::DtWidgetPicker::mySampleTexture
protected
DtQuadRenderer* makVrv::DtWidgetPicker::myQuadRenderer
protected
DtLineRenderer* makVrv::DtWidgetPicker::myLineRenderer
protected
DtTriangleRenderer* makVrv::DtWidgetPicker::myTriangleRenderer
protected
std::unordered_map<DtPickableDecalProjector*, unsigned int> makVrv::DtWidgetPicker::myPickableDecalProjectors
protected
int makVrv::DtWidgetPicker::myDesiredWidth
protected
int makVrv::DtWidgetPicker::myDesiredHeight
protected
bool makVrv::DtWidgetPicker::myPendingEventFlag
protected
MousePickRecord makVrv::DtWidgetPicker::myPendingEvent
protected
DtPickableWidget* makVrv::DtWidgetPicker::myMouseFocusWidget
protected
WidgetIdMap makVrv::DtWidgetPicker::myWidgetIds
protected
unsigned int makVrv::DtWidgetPicker::myFreeId
protected
DtDe& makVrv::DtWidgetPicker::myDe
protected
std::vector<unsigned int> makVrv::DtWidgetPicker::myColorBuffer
protected

The documentation for this class was generated from the following file:

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)