VR-Forces 4.3 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
makVrv::DtIntervisibilityDriver Class Reference

This driver will manage the creation, modification and removal of intervisibility objects. More...

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

Classes

class  DtIntervisibilityConnection
 Connection for the DtIntervisibilityDriver. More...
struct  OriginalInformation
 Editing information. More...

Public Types

typedef boost::unordered_map
< DtElementID,
DtIntervisibilityElement * > 
ElementMap
typedef boost::unordered_map
< DtElementID,
DtIntervisibilityStateListener * > 
ListenerMap
typedef std::pair< DtElementID,
DtVector
AttachPoint
typedef std::vector< AttachPointAttachPoints

Public Member Functions

 DtIntervisibilityDriver (DtDe &, const std::string &className)
 CTOR.
virtual ~DtIntervisibilityDriver ()
 DTOR.
virtual bool autoStart () const
 Override to return true (does not look at configuration)
DtIntervisibilityStateListenerfindListener (DtElementID id)
DtIntervisibilityElementfindElement (DtElementID id)
virtual DtIntervisibilityElementcreateIntervisibilityLine (const DtVector &startPoint, const DtVector &endPoint)
 Create and return a new intervisibility line with given start and end points.
virtual void createIntervisibilityLine (const AttachPoints &=AttachPoints())
 Creates a new intervisibility line object by using the event processor with the newly create element.
const DtUnicodeintervisibilityLine () const
 String which represents the internal keyword used to create an intervisibility line.
virtual DtIntervisibilityElementcreateIntervisibilityFan (const DtVector &startPoint, const DtVector &endPoint)
 Create and return a new intervisibility fan with given start and end points.
virtual void createIntervisibilityFan (const AttachPoints &=AttachPoints())
 Creates a new intervisibility fan object by using the event processor.
const DtUnicodeintervisibilityFan () const
 String which represents the internal keyword used to create an intervisibility fan.
virtual DtIntervisibilityElementcreateIntervisibilityEntityFan (const DtVector &startPoint, const DtVector &endPoint)
 Create and return a new intervisibility entity fan with given start and end points.
virtual void createIntervisibilityEntityFan (const AttachPoints &=AttachPoints())
 Creates a new intervisibility entity fan object by using the event processor.
const DtUnicodeintervisibilityEntityFan () const
 String which represents the internal keyword used to create an intervisibility entity fan.
void addListenerCreator (const std::string &, DtIntervisibilityStateListenerCreator *)
 Adds a new listener creator given the keyword.
virtual void cancelChanges ()
 Cancel current creation and remove temporary symbol.
virtual void destroy (DtElementID id)
 Given the particular ID, destroys (removes) the object and also removes from selection.
virtual void destroyAll ()
 Destroys all intervisibility elements.
virtual void setAllowCreating (bool)
 Sets whether or not the processor is enabled for creating.
virtual void setAllowEditing (bool)
 Sets whether or not the processor supports editing of objects.
virtual DtIntervisibilityElementcreate (const DtUnicode &definition, const DtVector &startPoint, const DtVector &endPoint)
 Create and return a new element with the points as the starting points.
virtual void intervisibilityObjectsShown (bool show)
const std::string & className () const
 Returns the driver's class name.
DtBaseConnectionconnection ()
 Returns the driver's connection.
const DtBaseConnectionconnection () const
 Returns the driver's connection (const).
- Public Member Functions inherited from makVrv::DtDriver
 DtDriver (DtAgentManager &agentManager, const std::string &instanceName)
 CTOR.
virtual ~DtDriver ()
 DTOR.
virtual void realizeConfiguration (const DtConfiguration &configuration)
 Realize the driver using the configuration.
virtual DtConfiguration createConfiguration () const
 Create a configuration for the driver.
DtAgentManageragentManager ()
 Get the master scene for this host.
virtual DtAgentManagerInterfacesceneInterface ()
 Get the scene manager interface for creating agents.
bool started () const
 Get this driver's active state.
virtual const std::string & instanceName () const
 Get this driver's instance name.
virtual void setAutoStart (bool autoStart)
 Set whether this driver automatically starts if it is persistent.
virtual bool isWindowDependent () const
 Get whether this driver is set to automatically start when the first window is created and stop when the last window is destroyed.
virtual void setIsWindowDependent (bool dep)
 Set whether this driver is set to automatically start when the first window is created and stop when the last window is destroyed.
virtual void setIsUserControllable (bool)
 Set whether this driver can be started and stopped by the user.
virtual bool isUserControllable () const
 Get whether this driver can be started and stopped by the user.
virtual void setIsPersistent (bool per)
 Set if the driver is persistent and should be saved between runs.
virtual bool isPersistent () const
 Get if the driver is persistent and should be saved between runs.
virtual bool isOnDriverSelectionList () const
 Returns whether or not this driver is to be automatically started/stopped from the driver selection list.
virtual void setOnDriverSelectionList (bool)
 Sets whether or not this item is on the driver selection list.
bool objectFromAgentManager (const DtUniqueID &id) const
 check to see if the object was created using this driver's agent manager.

Static Public Member Functions

static DtIntervisibilityDriverfindDriver (DtDe &de)
 Returns the current intervisibility driver in the driver manager.
static std::string theInstanceName ()
 Returns the driver's instance (display) name.

Protected Types

typedef boost::unordered_map
< DtElementID,
OriginalInformation
Editing
typedef std::map< std::string,
DtIntervisibilityStateListenerCreator * > 
ListenerCreatorMap

Protected Member Functions

virtual
DtBasicEditingEventProcessor
createEventProcessor () const
 Pure interface that must be implemented to be considered a shape driver creates the event processor used for mouse and keyboard controls.
virtual
DtIntervisibilityStateListener
createListener (const std::string &definition) const
 Creates a new listener to be used with the element being created.
virtual DtIntervisibilityElementcreateElement (DtIntervisibilityStateListener *, const DtUnicode &definition) const
 Creates a new shape element for the given listener.
virtual void create (const DtUnicode &elementDefinitionName, const AttachPoints &=AttachPoints())
 Creates a new element object by using the event processor.
virtual bool onTick ()
 call for each tick
virtual bool onStart ()
 Start the host output.
virtual bool onStop ()
 Stop the host output.
virtual void completeSetup ()
 Makes final connections.
virtual void slot_onCurrentSelectionChanged (const DtSelectionManager::IdSet &selected, const DtSelectionManager::IdSet &deselected)
 Select/deselect objects.
virtual void select (const DtSelectionManager::IdSet &, bool)
 Select/deselect all items in list.
virtual void connectProcessorSignals ()
 Connects up to event processor to handle signals.
virtual void slot_locationChanged (DtVector, double altAboveGround)
 Signal sent when the mouse location has changed via a mouse move.
virtual void slot_altitudeChanged (DtVector, double)
 Signal sent when the altitude has changed.
virtual void slot_altitudeIsDragging (bool)
 Called when altitude has entered/left dragging mode.
virtual void slot_place (DtUniqueID, DtVector, double altAboveGround)
 Signal sent on left click of mouse on terrain or object.
virtual void finishEditing ()
 Called to finish the current creation and make object permanent.
virtual void slot_dragStart (const DtSelectionManager::IdSet &set, const DtVector &)
 Called when a drag operation is about to start, stash off information about current objects (in case of cancel) and proceed to allow editing.
virtual void modifyEditingObjects (const DtVector &pos, double altAboveGround)
 Modifies all the objects being edited based on the new point and altitude.
virtual void resetSelectionForEditableObjects ()
 Called after complete or cancel to reset selection state to original state.
virtual DtVector clamp (const DtVector &, double altAboveGround) const
 Clamps point to terrain, then applies delta altitude.
virtual void elementsRemoved (const DtElementData::UniqueIdList &)
 Called when a simulation item is removed.
void installElementDefinitions (DtElementDefinitionManager &manager)
 Creates and installed procedural element definitions into the manager.
- Protected Member Functions inherited from makVrv::DtDriver
void applyChangesAndDelete (DtElementChanges *changes)
 Function for apply changes from a changes object and deleting it.
void reportElementCreated (DtElementID id, DtElementID parentId, DtElementEntry::ElementType type)
 Report an element created.
void reportElementAttribute (DtElementID id, DtElementAttribute *attribute)
 Report an element attribute changed.
void reportElementDestroyed (DtElementID id)
 Report an element destroyed.
void start ()
 Start the driver.
void stop ()
 Stop the driver.
bool tick ()
 Tick the host driver.
virtual void slot_displayEngineAdded (const DtDeRecord &igRecord)
 Called when a display engine is added.
virtual void setInstanceName (const std::string &name)
 set the Instance name.
virtual void installAccessories ()
 Installs accessories on this driver.
virtual void uninstallAccessories ()
 Removes accessories from this driver.

Protected Attributes

DtDemyDe
ElementMap myElements
ListenerMap myListeners
DtBasicEditingEventProcessormyProcessor
std::string myClassName
DtBaseConnectionmyConnection
bool myAllowEditing
bool myAllowCreating
bool myDistribute
DtSignalConnectionManager myConnections
DtIntervisibilityElementmyCreatingElement
 If creating an element via the mouse, these parameters will not not be NULL.
DtIntervisibilityStateListenermyCreationListener
DtSignalConnectionManager myProcessorConnections
Editing myEditing
DtVector myEditingAnchorLocation
ListenerCreatorMap myListenerCreatorMap
 Map that will keep track of listener creator by string type.
DtChannelmyHiddenChannel
- Protected Attributes inherited from makVrv::DtDriver
DtAgentManagermyAgentManager
bool myStartedFlag
std::string myName
DtConfiguration myConfiguration
bool myPersistentFlag
bool myUserControllableFlag
bool myRequestStateDiffPendingFlag
DtElementChanges myChanges

Detailed Description

This driver will manage the creation, modification and removal of intervisibility objects.

Will use the event processor for mouse and keyboard processing if necessary.

Member Typedef Documentation

Constructor & Destructor Documentation

makVrv::DtIntervisibilityDriver::DtIntervisibilityDriver ( DtDe ,
const std::string &  className 
)

CTOR.

virtual makVrv::DtIntervisibilityDriver::~DtIntervisibilityDriver ( )
virtual

DTOR.

Member Function Documentation

virtual bool makVrv::DtIntervisibilityDriver::autoStart ( ) const
virtual

Override to return true (does not look at configuration)

Reimplemented from makVrv::DtDriver.

DtIntervisibilityStateListener* makVrv::DtIntervisibilityDriver::findListener ( DtElementID  id)
DtIntervisibilityElement* makVrv::DtIntervisibilityDriver::findElement ( DtElementID  id)
virtual DtIntervisibilityElement* makVrv::DtIntervisibilityDriver::createIntervisibilityLine ( const DtVector startPoint,
const DtVector endPoint 
)
virtual

Create and return a new intervisibility line with given start and end points.

virtual void makVrv::DtIntervisibilityDriver::createIntervisibilityLine ( const AttachPoints = AttachPoints())
virtual

Creates a new intervisibility line object by using the event processor with the newly create element.

If attach points are given, one point for each attach point will be created and then the final point will be put into create mode if the continueCreation parameter is true

const DtUnicode& makVrv::DtIntervisibilityDriver::intervisibilityLine ( ) const

String which represents the internal keyword used to create an intervisibility line.

virtual DtIntervisibilityElement* makVrv::DtIntervisibilityDriver::createIntervisibilityFan ( const DtVector startPoint,
const DtVector endPoint 
)
virtual

Create and return a new intervisibility fan with given start and end points.

virtual void makVrv::DtIntervisibilityDriver::createIntervisibilityFan ( const AttachPoints = AttachPoints())
virtual

Creates a new intervisibility fan object by using the event processor.

If creation is successful will emit a signal with the newly create element. If attach points are given, one point for each attach point will be created and then the final point will be put into create mode if the continueCreation parameter is true

const DtUnicode& makVrv::DtIntervisibilityDriver::intervisibilityFan ( ) const

String which represents the internal keyword used to create an intervisibility fan.

virtual DtIntervisibilityElement* makVrv::DtIntervisibilityDriver::createIntervisibilityEntityFan ( const DtVector startPoint,
const DtVector endPoint 
)
virtual

Create and return a new intervisibility entity fan with given start and end points.

virtual void makVrv::DtIntervisibilityDriver::createIntervisibilityEntityFan ( const AttachPoints = AttachPoints())
virtual

Creates a new intervisibility entity fan object by using the event processor.

If creation is successful will emit a signal with the newly create element. If attach points are given, one point for each attach point will be created and then the final point will be put into create mode if the continueCreation parameter is true

const DtUnicode& makVrv::DtIntervisibilityDriver::intervisibilityEntityFan ( ) const

String which represents the internal keyword used to create an intervisibility entity fan.

void makVrv::DtIntervisibilityDriver::addListenerCreator ( const std::string &  ,
DtIntervisibilityStateListenerCreator  
)

Adds a new listener creator given the keyword.

If one exists, replace.

virtual void makVrv::DtIntervisibilityDriver::cancelChanges ( )
virtual

Cancel current creation and remove temporary symbol.

Reimplemented in makVrf::DtVrfGuiIntervisibilityDriver.

virtual void makVrv::DtIntervisibilityDriver::destroy ( DtElementID  id)
virtual

Given the particular ID, destroys (removes) the object and also removes from selection.

virtual void makVrv::DtIntervisibilityDriver::destroyAll ( )
virtual

Destroys all intervisibility elements.

virtual void makVrv::DtIntervisibilityDriver::setAllowCreating ( bool  )
virtual

Sets whether or not the processor is enabled for creating.

If true, will also enable the processor. If false, will set internal flag however will not disable the processor if it is also enabled for editing

virtual void makVrv::DtIntervisibilityDriver::setAllowEditing ( bool  )
virtual

Sets whether or not the processor supports editing of objects.

If an object is selected, signals will be sent for double click and possible drag/drop operations. If these operations are not valid for editing the selected items, override this class and implement the methods which will determine if editing is allowed (for example, canEdit)

virtual DtIntervisibilityElement* makVrv::DtIntervisibilityDriver::create ( const DtUnicode definition,
const DtVector startPoint,
const DtVector endPoint 
)
virtual

Create and return a new element with the points as the starting points.

virtual void makVrv::DtIntervisibilityDriver::intervisibilityObjectsShown ( bool  show)
virtual
static DtIntervisibilityDriver* makVrv::DtIntervisibilityDriver::findDriver ( DtDe de)
static

Returns the current intervisibility driver in the driver manager.

Reimplemented in makVrf::DtVrfGuiIntervisibilityDriver.

const std::string& makVrv::DtIntervisibilityDriver::className ( ) const
inlinevirtual

Returns the driver's class name.

Implements makVrv::DtDriver.

static std::string makVrv::DtIntervisibilityDriver::theInstanceName ( )
static

Returns the driver's instance (display) name.

DtBaseConnection* makVrv::DtIntervisibilityDriver::connection ( )
inline

Returns the driver's connection.

const DtBaseConnection* makVrv::DtIntervisibilityDriver::connection ( ) const
inline

Returns the driver's connection (const).

virtual DtBasicEditingEventProcessor* makVrv::DtIntervisibilityDriver::createEventProcessor ( ) const
protectedvirtual

Pure interface that must be implemented to be considered a shape driver creates the event processor used for mouse and keyboard controls.

virtual DtIntervisibilityStateListener* makVrv::DtIntervisibilityDriver::createListener ( const std::string &  definition) const
protectedvirtual

Creates a new listener to be used with the element being created.

virtual DtIntervisibilityElement* makVrv::DtIntervisibilityDriver::createElement ( DtIntervisibilityStateListener ,
const DtUnicode definition 
) const
protectedvirtual

Creates a new shape element for the given listener.

virtual void makVrv::DtIntervisibilityDriver::create ( const DtUnicode elementDefinitionName,
const AttachPoints = AttachPoints() 
)
protectedvirtual

Creates a new element object by using the event processor.

If creation is successful will emit a signal with the newly create element. If attach points are given, one point for each attach point will be created and then the final point will be put into create mode if the continueCreation parameter is true

Reimplemented in makVrf::DtVrfGuiIntervisibilityDriver.

virtual bool makVrv::DtIntervisibilityDriver::onTick ( )
protectedvirtual

call for each tick

Implements makVrv::DtDriver.

virtual bool makVrv::DtIntervisibilityDriver::onStart ( )
protectedvirtual

Start the host output.

Create all object for an existing host connection. Should return true if start succeeded, and false if unable to start.

Implements makVrv::DtDriver.

virtual bool makVrv::DtIntervisibilityDriver::onStop ( )
protectedvirtual

Stop the host output.

All scene object created by the host should be destroyed. Should return true if stop succeeded, and false if unable to stop.

Implements makVrv::DtDriver.

virtual void makVrv::DtIntervisibilityDriver::completeSetup ( )
protectedvirtual

Makes final connections.

virtual void makVrv::DtIntervisibilityDriver::slot_onCurrentSelectionChanged ( const DtSelectionManager::IdSet selected,
const DtSelectionManager::IdSet deselected 
)
protectedvirtual

Select/deselect objects.

virtual void makVrv::DtIntervisibilityDriver::select ( const DtSelectionManager::IdSet ,
bool   
)
protectedvirtual

Select/deselect all items in list.

virtual void makVrv::DtIntervisibilityDriver::connectProcessorSignals ( )
protectedvirtual

Connects up to event processor to handle signals.

virtual void makVrv::DtIntervisibilityDriver::slot_locationChanged ( DtVector  ,
double  altAboveGround 
)
protectedvirtual

Signal sent when the mouse location has changed via a mouse move.

Vector is in local database coordinates

virtual void makVrv::DtIntervisibilityDriver::slot_altitudeChanged ( DtVector  ,
double   
)
protectedvirtual

Signal sent when the altitude has changed.

virtual void makVrv::DtIntervisibilityDriver::slot_altitudeIsDragging ( bool  )
protectedvirtual

Called when altitude has entered/left dragging mode.

virtual void makVrv::DtIntervisibilityDriver::slot_place ( DtUniqueID  ,
DtVector  ,
double  altAboveGround 
)
protectedvirtual

Signal sent on left click of mouse on terrain or object.

ID is the item clicked on. Vector is in local database coordinates

virtual void makVrv::DtIntervisibilityDriver::finishEditing ( )
protectedvirtual

Called to finish the current creation and make object permanent.

Reimplemented in makVrf::DtVrfGuiIntervisibilityDriver.

virtual void makVrv::DtIntervisibilityDriver::slot_dragStart ( const DtSelectionManager::IdSet set,
const DtVector  
)
protectedvirtual

Called when a drag operation is about to start, stash off information about current objects (in case of cancel) and proceed to allow editing.

virtual void makVrv::DtIntervisibilityDriver::modifyEditingObjects ( const DtVector pos,
double  altAboveGround 
)
protectedvirtual

Modifies all the objects being edited based on the new point and altitude.

Altitude will be applied as a delta from the height above ground at the anchor position

virtual void makVrv::DtIntervisibilityDriver::resetSelectionForEditableObjects ( )
protectedvirtual

Called after complete or cancel to reset selection state to original state.

Should not be called directly

virtual DtVector makVrv::DtIntervisibilityDriver::clamp ( const DtVector ,
double  altAboveGround 
) const
protectedvirtual

Clamps point to terrain, then applies delta altitude.

Reimplemented in makVrf::DtVrfGuiIntervisibilityDriver.

virtual void makVrv::DtIntervisibilityDriver::elementsRemoved ( const DtElementData::UniqueIdList )
protectedvirtual

Called when a simulation item is removed.

If attached to an intervisibility object will remove that object

void makVrv::DtIntervisibilityDriver::installElementDefinitions ( DtElementDefinitionManager manager)
protected

Creates and installed procedural element definitions into the manager.

Member Data Documentation

DtDe& makVrv::DtIntervisibilityDriver::myDe
protected
ElementMap makVrv::DtIntervisibilityDriver::myElements
protected
ListenerMap makVrv::DtIntervisibilityDriver::myListeners
protected
DtBasicEditingEventProcessor* makVrv::DtIntervisibilityDriver::myProcessor
protected
std::string makVrv::DtIntervisibilityDriver::myClassName
protected
DtBaseConnection* makVrv::DtIntervisibilityDriver::myConnection
protected
bool makVrv::DtIntervisibilityDriver::myAllowEditing
protected
bool makVrv::DtIntervisibilityDriver::myAllowCreating
protected
bool makVrv::DtIntervisibilityDriver::myDistribute
protected
DtSignalConnectionManager makVrv::DtIntervisibilityDriver::myConnections
protected
DtIntervisibilityElement* makVrv::DtIntervisibilityDriver::myCreatingElement
protected

If creating an element via the mouse, these parameters will not not be NULL.

DtIntervisibilityStateListener* makVrv::DtIntervisibilityDriver::myCreationListener
protected
DtSignalConnectionManager makVrv::DtIntervisibilityDriver::myProcessorConnections
protected
Editing makVrv::DtIntervisibilityDriver::myEditing
protected
DtVector makVrv::DtIntervisibilityDriver::myEditingAnchorLocation
protected
ListenerCreatorMap makVrv::DtIntervisibilityDriver::myListenerCreatorMap
protected

Map that will keep track of listener creator by string type.

DtChannel* makVrv::DtIntervisibilityDriver::myHiddenChannel
protected

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

Document ID: Generated on Wed Mar 11 21:20:57 EDT 2015 from SVN revision 150940
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)