VR-Forces 4.1.1 Class Documentation
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | Private Member Functions
DtAggregateSymbol Class Reference

Container symbol used to hold one or more other symbols derived from DtSymbol. More...

Inheritance diagram for DtAggregateSymbol:
Inheritance graph
[legend]

Public Types

enum  DtCenterCalculationStyle { DtNoCalculation = 0, DtWeighted, DtNotWeighted, DtCenterCalculationStyle_MAX }

Public Member Functions

 DtAggregateSymbol (const DtAggregateSymbol &orig)
 standard
DtAggregateSymboloperator= (const DtAggregateSymbol &orig)
virtual ~DtAggregateSymbol ()
 DtAggregateSymbol (DtSymbolDrawer &drawer)
 default constructor
DtSymbolclone () const
 Returns an instance of a symbol which is a copy of this.
virtual void shift (QPoint p)
 Move the center of this object by p amount.
virtual void setOrigin (int x, int y)
 Same as above.
virtual void setOrigin (const QPoint &position)
 Set the display coordinate that will become the 0,0 point for drawing this symbol.
virtual const DtDisplayPoint centerPoint () const
 Set/get the location of the center of the symbol.
virtual const QPoint origin () const
 returns the display origin for the symbol.
virtual void addAggregate (DtSymbol *symbols)
 Insert a new aggregate to the symbol list.
virtual void draw (QPainter &paint) const
 Draw -> draws itself and NOT its children.
virtual QSize bbox () const
 Calculate the size of the aggregate being drawe.
virtual QRect selBbox () const
 Get the selection box (area where you can select an item)
virtual QSize aggregatesBbox () const
 Calculates size of the composite based on its children.
virtual QPoint unweightedAggregateCenter () const
 This is the real center of all of the aggregate symbols together.
virtual QPoint weightedAggregateCenter () const
 An average of all the aggregate member centers put together.
virtual DtSymbolListcreateDeaggregateSymbols ()
 Crate the list of symbols out of this aggregate returns this list, AND removes all of the symbols out of the aggregate.
virtual void deaggregateSymbol (DtSymbol *s)
 deAgregate ONE particular symbol from the list
virtual bool overlapsSymbol (const DtSymbol &aSymbol, const DtSymbol_OverlapTest aTest=DtSymbol_BoxPieces, const float aTolerance=0) const
 Returns true if the two symbols overlap Different intersection tests are available.
virtual bool labelsOverlapsSymbol (const DtSymbol &aSymbol, const DtSymbol_OverlapTest aTest=DtSymbol_BoundingBox, const float aTolerance=0) const
 Just compare the labels of the object for overlap as opposed to the object itself.
virtual void setCalculationStyle (DtCenterCalculationStyle style)
 Automatically calculate what the aggregate representation center is supposed to be, according to the location.
- Public Member Functions inherited from DtCompositeSymbol
 DtCompositeSymbol (const DtCompositeSymbol &orig)
 standard
DtCompositeSymboloperator= (const DtCompositeSymbol &orig)
virtual ~DtCompositeSymbol ()
 DtCompositeSymbol (DtSymbolDrawer &drawer)
 default constructor
 DtCompositeSymbol (DtSymbolDrawer &drawer, const DtDisplayPoint &center)
virtual bool setLocationData (const QPolygon *)
 This function is used so that multipoint symbols have the same interface as single point symbols In the single point case, it takes the first value and sets the origin from that.
virtual void drawHidden (QPainter &paint) const
virtual bool select (const QPoint &point)
 Checks to see if any children symbols intersect.
virtual void addSymbol (DtSymbol *symbol, bool isALabel=false)
 Adds a child symbol to the composite.
virtual void removeSymbol (const DtSymbol *symbol, bool deleteSymbol=true, bool resetMainSymbol=false)
 Removes a child symbol from the composite.
virtual void removeSymbol (int iIndex, bool deleteSymbol=true, bool resetMainSymbol=false)
virtual void removeAllSymbols (const QVector< DtSymbol * > &except=QVector< DtSymbol * >())
 Removes all child symbols from the composite.
virtual DtSymbolsetMainSymbol (DtSymbol *symbol)
 Set/get the center symbol.
virtual DtSymbolmainSymbol () const
virtual DtSymbolgetSymbolByName (const QString &name)
 Get a symbol by using its name.
virtual bool isComposite ()
 Returns true if this symbol is a combination of others (this returns true)
virtual DtSymbolListchildrenList () const
virtual DtSymbolListlabelList () const
virtual bool show (DtShowHideContext module)
 Show this symbol and any other symbol in the hidden list.
virtual bool hide (DtShowHideContext module)
 Hide symbols that are shown and put into hidden list.
virtual void setDrawOrder ()
 Creates the draw order list for the symbols.
virtual DtSymboleditableSymbol ()
 Returns the symbol that can be edited via an event handler.
virtual int labelOffset (const DtSymbol *s) const
 Returns the label offset from the main symbols bounding box.
virtual void setLabelOffset (int i)
virtual const QPoint & lowestLabelOffset () const
 Returns the parent offset of the last label drawn.
virtual void setTransparencyLevel (int i)
 Transparency information.
virtual void hideAllChildren (DtShowHideContext iModule=DtDefaultShowHideContext)
 Hides all children but keeps main symbol shown.
virtual void showAllChildren (DtShowHideContext iModule=DtDefaultShowHideContext)
 Shows all children.
virtual void setShadowText (bool b)
 Cycles through all children and set shadow text to be true (if they are TTS symbol).
virtual void blockSignals (bool)
 Blocks signals from being emitted from this symbol.
virtual bool originIsCenterOfMass () const
 Asks main symbol if the origin is center of call.
virtual void setCacheSymbolAsBitmap (bool)
 Get/set whether or not the drawer should cache this symbol as a bitmap.
virtual void setShowIndicatorOption (int)
int showIndicatorOption () const
virtual DtShowHideContext mapIndicatorOptionToContext (int) const
virtual void setHighlight (const bool highlight)
 Set/get the highlight flag (whether the symbol should be drawn highlighted).
virtual bool editMode ()
 Extends the editMode functions from basic DtySymbol to propagate correctly.
virtual void setEditMode (bool onOff)
virtual void reset ()
 Resets any relevant information associated with this symbol.
- Public Member Functions inherited from DtSymbol
virtual ~DtSymbol ()
 destructor
 DtSymbol (const DtSymbol &orig)
 copy constructor
DtSymboloperator= (const DtSymbol &orig)
 assignment operator Note that the copy constructor, by default, make the symbol non editable even if the source is editable
 DtSymbol (DtSymbolDrawer &drawer)
 Drawer is non-const since it does memory management.
virtual void copyDataFrom (const DtSymbol *symbol)
 Differs from the equal operator in that this method could copy a different set of data than the = operator.
virtual void setName (const QString &name)
 The specific name of this symbol.
virtual const QString & name () const
virtual bool highlight () const
virtual bool selected () const
virtual const DtDisplayPoint topLeftPoint () const
 The real visual top left corner of the symbol in display coordinates.
virtual const QPolygon * getLocationData () const
 Provided for a simpler interface to subclasses.
virtual const DtSymbolDrawerdrawer () const
virtual QRect brect () const
virtual void clearOffsetToParent ()
 Set/get the offset to the parent.
virtual void setOffsetToParent (const QPoint &offsetToParent)
virtual const QPoint * offsetToParent () const
 if the offsetToParent blit has been cleared, this returns null
virtual void show ()
 Use this method to show the symbol regardless of how many contexts have hidden it.
virtual void hide ()
 Use this method to hide a symbol without context. Same as hide(DtDefaultShowHideContext)
virtual void addIgnoreContext (DtShowHideContext)
 Add/remove contexts for hide() to ignore.
virtual void removeIgnoreContext (DtShowHideContext)
const QVector
< DtShowHideContext > & 
ignoreContexts () const
virtual bool isShown () const
virtual DtSymbolparent () const
virtual void setParent (DtSymbol *dad)
virtual DtSymbolGeometry geometry () const
virtual void setGeometry (DtSymbolGeometry geom)
virtual void setCategoryTag (const QString &name)
 A tag is the name of this type of symbol such as velocity vector name or force or whatever.
virtual const QString & categoryTag () const
virtual bool select (const QPoint &aPoint, const QSize &rectangleSize)
 Returns true if the rectangle intersects the symbol, if the symbol is selectable.
virtual void setSelectable (bool value)
 Set/get the ability to select with this symbol.
virtual bool isSelectable () const
virtual void setEditable (bool b)
 Accessors for whether or not this line can be edited.
virtual bool editable () const
virtual void setAllowEditOnSelection (bool b)
 Sets the fact that even if this symbol is not marked editable, it can become editable upon selection (myHighlight is true)
virtual bool allowEditOnSelection () const
virtual void setInternalSelectable (bool value)
 The following two functions are internal values kept in order to make sure that if an object has been filter modified and not shown, that it will not be selectable.
virtual bool isInternalSelectable () const
virtual void setAddToDrawOrder (bool b)
 Add this item to the draw order regardless of whether or not it is visible on the screen.
virtual bool addToDrawOrder () const
virtual bool overlapsAreaSymbol (const DtSymbol &aSymbol, const DtSymbol_OverlapTest aTest=DtSymbol_BoxPieces, const float aTolerance=0) const
 handles the case when aSymbol spans an area, such as a bitmap or a text symbol.
virtual bool overlapsLineSymbol (DtSymbol &aSymbol, const float aTolerance=0) const
 handles the case when aSymbol is composed of line segments, such as a line, polygon, or route.
virtual bool isOriginal () const
 Returns true if this symbol is an original symbol, otherwise return false.
virtual DtStaticAnimDatastaticAnimData () const
virtual void setDrawOnComposite (DtSymbolCompositeDrawOptions opt)
 If true, will not draw this symbol if it is part of a composite symbol.
virtual bool drawOnComposite () const
virtual
DtSymbolCompositeDrawOptions 
drawOnCompositeValue () const
virtual bool drawFirst () const
 If true, this symbol will always be drawn first.
virtual void setDrawFirst (bool b)
virtual bool drawLast () const
 If true, this symbol will always be drawn last.
virtual void setDrawLast (bool b)
virtual bool selectAdditionalSymbols (QList< DtSymbol * > &additionalSymbols)
 This routine is called during symbol selection time to see if the selection of this symbol requires other symbols to be selected as well.
virtual void setColor (const QColor &color)
 Noop function to allow subclasses to override.
virtual void clearColor ()
 Noop function to allow subclasses to clear out any color information.
virtual bool adjustPoints (QPolygon &pnts, bool constrain)
 Opportunity to adjust the point array to some desired other points.
virtual void setDragClone (DtSymbol *clone)
 Contains the symbol that is being dragged that represents this symbol.
virtual DtSymboldragClone () const
virtual double scaleBy () const
virtual void enableVisibilityChange (bool b)
virtual void scheduleDisplayComplete (int)
 Sets a QTimer for the specified amount of time to fire off and then call the displayComplete() slot.
virtual void setShouldSelect (bool)
virtual bool shouldSelect () const
virtual int transparencyLevel () const
virtual bool needsTransparentRedraw () const
 Will return true if there is no cached image or internal variables have changed such that the cached image needs a redraw.
virtual QPixmap * transparentImage () const
virtual QPixmap * cacheTransparentImage (const QPixmap &pixmap)
virtual QPixmap * cacheTransparentImage (const QImage &image)
virtual bool wantsTransparentDraw () const
 Will return true if transparent percent is not 0 or 100.
bool operator== (const DtSymbol &orig) const
bool operator!= (const DtSymbol &orig) const
virtual DtSymbolDrawersymbolDrawer ()
 Sets the new drawer to be the supplied drawer.
virtual DtSymbolDrawersetDrawer (const DtSymbolDrawer &)
virtual DtSymbolDrawerbackupDrawer () const
 Returns the drawer that was set as a backup.
virtual void setBackupDrawer (DtSymbolDrawer *)
virtual bool removeIfOffScreen () const
 Return true/false if this symbol should be removed if it is off screen By default is true.
void setRemoveIfOffScreen (bool b)
 Default is true.
virtual void setSymbolDisplayOptions (DtSymbolDisplayOptions *)
virtual const
DtSymbolDisplayOptions
symbolDisplayOptions () const
virtual DtSymbolDisplayOptionssymbolDisplayOptions ()
virtual int displayOptionsCache () const
void setAdjustPoints (bool)
bool adjustPoints () const
const QVector
< DtShowHideContext > & 
hiddenByModules () const
 Routines to access which modules this symbol is hidden by.
bool hiddenByModule (DtShowHideContext module) const
bool cacheSymbolAsBitmap () const
virtual const QString & bitmapSymbolCacheKey () const
 Returns a cache key that can be used to lookup in a bitmap cache.

Static Public Member Functions

static DtAggregateSymbolcreateAggregate (DtSymbolDrawer &drawer, DtSymbolList *symbols)
 Create Aggregate Symbol out of a list of symbols.
- Static Public Member Functions inherited from DtCompositeSymbol
static DtSymbolcreate (DtSymbolDrawer &drawer)
- Static Public Member Functions inherited from DtSymbol
static DtNullDrawernullDrawer ()

Protected Attributes

DtCenterCalculationStyle myCalculationStyle
- Protected Attributes inherited from DtCompositeSymbol
DtSymbolListmyChildrenList
DtSymbolListmyLabelList
DtSymbolmyMainSymbol
DtSymbolListmyDrawOrder
DtSymbolListmySelectedChildren
int myLabelOffset
QPoint myLastParentOffset
bool myShadowText
int myShowIndicatorOption
- Protected Attributes inherited from DtSymbol
DtSymbolDrawermySymbolDrawer
DtSymbolDrawermyBackupDrawer
QPoint myOrigin
bool myActiveOffsetToParent
QPoint myOffsetToParent
bool myHighlight
bool myIsShown
bool myIsSelectable
bool myEditable
bool myInternalSelectable
QString myName
QString myCategoryTag
DtSymbolGeometry myGeometry
DtSymbolmyParent
DtSymbolmyDragClone
 If this symbol is being dragged, then this will point to the symbol that was cloned for the drag.
bool myIsOriginal
bool myAllowEditOnSelection
bool myAddToDrawOrder
double myScaleFactor
DtStaticAnimDatamyStaticAnimData
bool myEmitVisibilityChange
DtSymbol_DrawOrder myDrawOrder
QTimer * myTimer
DtSymbolCompositeDrawOptions myDrawOnComposite
bool myShouldSelect
 Set to true if part of a composite and a user has selected a part of the composite that should be selected.
int myTransparencyLevel
 Information for symbol transparency and transparent drawing.
QPixmap * myTransparentImage
DtSymbolmyTransparentCachedSymbol
DtSymbolDisplayOptionsmySymbolDisplayOptions
bool myAdjustPoints
QVector< DtShowHideContextmyHiddenByModules
QVector< DtShowHideContextmyIgnoreContexts
bool myRemoveIfOffscreen
bool myCacheSymbolAsBitmap
bool myEditMode
QString mySymbolBitmapCacheKey

Private Member Functions

 DtAggregateSymbol ()
 Not implemented. Private to ensure it is only constructed with a drawer.

Additional Inherited Members

- Public Slots inherited from DtSymbol
virtual void invalidateStaticAnimData ()
 This gets called when modified symbols exist and the original symbol has been destroyed.
virtual void displayComplete ()
 Call when the display of this symbol is complete.
virtual void clearDragClone (QObject *)
 Called when the drag clone is destroyed outside of this context, we will be notified in that case to clear out this symbols internal pointer.
- Signals inherited from DtSymbol
void originalSymbolDestroyed ()
 Sent when an original symbol has been destroyed - (so that the drawer can remove that cache)
void destroyed (const DtSymbol *)
 Called when we are destroyed, this will give our drawers a chance to update any cached information.
void originChanged (const DtSymbol *)
 Sent when setOrigin is called with a different origin.
void visibilityChanged (const DtSymbol *)
 Sent when visibility change sending is enabled and a symbol is shown or hidden when it wasn't before.
void displayComplete (const DtSymbol *)
 Called from displayComplete()
- Protected Slots inherited from DtCompositeSymbol
virtual void symbolDestroyed (const DtSymbol *s)
 Called when this symbol is destroyed outside of this composite symbol.
virtual void symbolRemoved (const DtSymbol *s)
 Removes a symbol without deleting it.
- Protected Member Functions inherited from DtCompositeSymbol
virtual bool transparentCacheChanged () const
virtual void cacheTransparentVariables ()
virtual void setChildrenList (DtSymbolList *list)
 Sets the symbol children list.
virtual bool forceUpdate () const
 If any children want to redraw, this symbol needs to be redrawn.
virtual void draw (DtSymbol *symbol, QPainter &paint) const
 Draws the symbol.
virtual void drawHidden (DtSymbol *symbol, QPainter &paint) const
virtual void setScaleBy (double factor)
 Scaling factors.
virtual bool isScalable () const
 Return true/false if this is a scalable symbol. By default returns false.
virtual void setupSelect ()
 Called before a selection is made, clears out the mySelectedChildren list.
virtual void selectSymbols ()
virtual void wasHidden (DtSymbol *sym)
 The following two methods are only called if the parent is hidden Called when a child symbol of this symbol is hidden.
virtual void wasShown (DtSymbol *sym)
 Called when a child symbol of this symbol is shown.
- Static Protected Attributes inherited from DtSymbol
static DtNullDrawer theNullDrawer

Detailed Description

Container symbol used to hold one or more other symbols derived from DtSymbol.

These symbols do not actually get shown on the screen, but instead some other global representation happens. DtAggregateSymbols could be used to display PseudoAggregates/Aggregates in your simulation.

Member Enumeration Documentation

Enumerator:
DtNoCalculation 

no calculation, you set the center

DtWeighted 

calculate center with a weighted average

DtNotWeighted 

calculate center with a bounding box

DtCenterCalculationStyle_MAX 

Hook for derived class extensions.

Constructor & Destructor Documentation

DtAggregateSymbol::DtAggregateSymbol ( const DtAggregateSymbol orig)

standard

virtual DtAggregateSymbol::~DtAggregateSymbol ( )
virtual
DtAggregateSymbol::DtAggregateSymbol ( DtSymbolDrawer drawer)

default constructor

DtAggregateSymbol::DtAggregateSymbol ( )
private

Not implemented. Private to ensure it is only constructed with a drawer.

Member Function Documentation

DtAggregateSymbol& DtAggregateSymbol::operator= ( const DtAggregateSymbol orig)
DtSymbol* DtAggregateSymbol::clone ( ) const
virtual

Returns an instance of a symbol which is a copy of this.

The caller is responsible for freeing the memory.

Reimplemented from DtCompositeSymbol.

virtual void DtAggregateSymbol::shift ( QPoint  p)
virtual

Move the center of this object by p amount.

Reimplemented from DtCompositeSymbol.

virtual void DtAggregateSymbol::setOrigin ( int  x,
int  y 
)
virtual

Same as above.

Reimplemented from DtSymbol.

virtual void DtAggregateSymbol::setOrigin ( const QPoint &  center)
virtual

Set the display coordinate that will become the 0,0 point for drawing this symbol.

On most symbols, this will be the same as the center point, but this doesn not need to be the case

Reimplemented from DtSymbol.

virtual const DtDisplayPoint DtAggregateSymbol::centerPoint ( ) const
virtual

Set/get the location of the center of the symbol.

Also set the children if they have the offset variable

Reimplemented from DtCompositeSymbol.

virtual const QPoint DtAggregateSymbol::origin ( ) const
virtual

returns the display origin for the symbol.

On most symbols, this will be the same as the center point, but this doesn not need to be the case

Reimplemented from DtSymbol.

static DtAggregateSymbol* DtAggregateSymbol::createAggregate ( DtSymbolDrawer drawer,
DtSymbolList symbols 
)
static

Create Aggregate Symbol out of a list of symbols.

returns the aggregate

virtual void DtAggregateSymbol::addAggregate ( DtSymbol symbols)
virtual

Insert a new aggregate to the symbol list.

virtual void DtAggregateSymbol::draw ( QPainter &  paint) const
virtual

Draw -> draws itself and NOT its children.

Reimplemented from DtCompositeSymbol.

virtual QSize DtAggregateSymbol::bbox ( ) const
virtual

Calculate the size of the aggregate being drawe.

Reimplemented from DtCompositeSymbol.

virtual QRect DtAggregateSymbol::selBbox ( ) const
virtual

Get the selection box (area where you can select an item)

  • this queries the drawer

Reimplemented from DtCompositeSymbol.

virtual QSize DtAggregateSymbol::aggregatesBbox ( ) const
virtual

Calculates size of the composite based on its children.

virtual QPoint DtAggregateSymbol::unweightedAggregateCenter ( ) const
virtual

This is the real center of all of the aggregate symbols together.

virtual QPoint DtAggregateSymbol::weightedAggregateCenter ( ) const
virtual

An average of all the aggregate member centers put together.

This function should give results more in line with what you expect in an aggregate symbol.

virtual DtSymbolList* DtAggregateSymbol::createDeaggregateSymbols ( )
virtual

Crate the list of symbols out of this aggregate returns this list, AND removes all of the symbols out of the aggregate.

virtual void DtAggregateSymbol::deaggregateSymbol ( DtSymbol s)
virtual

deAgregate ONE particular symbol from the list

virtual bool DtAggregateSymbol::overlapsSymbol ( const DtSymbol aSymbol,
const DtSymbol_OverlapTest  aTest = DtSymbol_BoxPieces,
const float  aTolerance = 0 
) const
virtual

Returns true if the two symbols overlap Different intersection tests are available.

Less exact tests are faster. Tolerance controls the overlap. Use the default of 0 for symbols which can touch but not overlap. Positive numbers force more space between symbols, negative numbers allow for overlap.

Reimplemented from DtCompositeSymbol.

virtual bool DtAggregateSymbol::labelsOverlapsSymbol ( const DtSymbol aSymbol,
const DtSymbol_OverlapTest  aTest = DtSymbol_BoundingBox,
const float  aTolerance = 0 
) const
virtual

Just compare the labels of the object for overlap as opposed to the object itself.

Reimplemented from DtCompositeSymbol.

virtual void DtAggregateSymbol::setCalculationStyle ( DtCenterCalculationStyle  style)
virtual

Automatically calculate what the aggregate representation center is supposed to be, according to the location.

of the sub aggregates.

Member Data Documentation

DtCenterCalculationStyle DtAggregateSymbol::myCalculationStyle
protected

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

Document ID: Generated on Mon Apr 8 19:24:01 EDT 2013 from SVN revision 125877
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)