64template<
class T, 
class argType = 
int, 
class arg2Type = 
int>
 
   75        if( 
dynamic_cast<T*
>( obj ) )
 
   77            if( findThis == 
nullptr )
 
   79            else if( findThis == obj )
 
   83        if( 
dynamic_cast<Group*
>( obj ) )
 
   86            auto* grp = 
dynamic_cast<Group*
>( obj );
 
   87            for( 
unsigned int i = 0; i < grp->Count(); i++ )
 
   89                if( 
Contained( ( *grp )[ i ], findThis ) )
 
  106            for( 
unsigned int i = 0; i < grp->
Count(); i++ )
 
  108                T* specific = 
dynamic_cast<T*
>( ( *grp )[ i ] );
 
  111                    if( findThis == 
nullptr )
 
  113                    else if( findThis == specific )
 
  126        Group* newGrp = 
nullptr;
 
  129            for( 
unsigned int i = 0; i < grp->
Count(); i++ )
 
  131                T* specific = 
dynamic_cast<T*
>( ( *grp )[ i ] );
 
  135                        newGrp = 
new Group();
 
  161        if( 
dynamic_cast<T*
>( obj ) && n > 0 )
 
  163            T* specific = 
dynamic_cast<T*
>( obj );
 
  167        else if( 
dynamic_cast<Group*
>( obj ) )
 
  170            auto* grp = 
dynamic_cast<Group*
>( obj );
 
  171            for( 
unsigned int i = 0; i < grp->Count(); i++ )
 
  190        if( 
dynamic_cast<T*
>( obj ) )
 
  192            T* specific = 
dynamic_cast<T*
>( obj );
 
  193            foundValue  = specific->*variablePtr;
 
  194            foundOne    = Traverse::FOUND_EQUAL;
 
  197        if( 
dynamic_cast<Group*
>( obj ) )
 
  200            auto*   grp = 
dynamic_cast<Group*
>( obj );
 
  202            for( 
unsigned int i = 0; i < grp->Count(); i++ )
 
  205                if( result != Traverse::NOT_FOUND )
 
  207                    if( result == Traverse::FOUND_EQUAL )
 
  209                        if( tempVal == foundValue )
 
  211                            foundOne = Traverse::FOUND_EQUAL;
 
  215                            foundOne = Traverse::FOUND_NOT_EQUAL;
 
  219                        foundOne = Traverse::FOUND_NOT_EQUAL;
 
  222                    foundValue = tempVal;
 
  237        bool foundOne = 
false;
 
  239        if( 
dynamic_cast<T*
>( obj ) )
 
  241            T* specific = 
dynamic_cast<T*
>( obj );
 
  242            ( specific->*method )();
 
  246        if( 
dynamic_cast<Group*
>( obj ) )
 
  249            auto* grp = 
dynamic_cast<Group*
>( obj );
 
  250            for( 
unsigned int i = 0; i < grp->Count(); i++ )
 
  252                if( 
Call( ( *grp )[ i ], method ) )
 
  268        bool foundOne = 
false;
 
  270        if( 
dynamic_cast<T*
>( obj ) )
 
  272            T* specific = 
dynamic_cast<T*
>( obj );
 
  273            ( specific->*method )( arg1 );
 
  277        if( 
dynamic_cast<Group*
>( obj ) )
 
  280            auto* grp = 
dynamic_cast<Group*
>( obj );
 
  281            for( 
unsigned int i = 0; i < grp->Count(); i++ )
 
  283                if( 
Call( ( *grp )[ i ], method, arg1 ) )
 
  300        bool foundOne = 
false;
 
  302        if( 
dynamic_cast<T*
>( obj ) )
 
  304            T* specific = 
dynamic_cast<T*
>( obj );
 
  305            ( specific->*method )( arg1, arg2 );
 
  309        if( 
dynamic_cast<Group*
>( obj ) )
 
  312            auto* grp = 
dynamic_cast<Group*
>( obj );
 
  313            for( 
unsigned int i = 0; i < grp->Count(); i++ )
 
  315                if( 
Call( ( *grp )[ i ], method, arg1, arg2 ) )
 
  331        bool foundOne = 
false;
 
  333        if( 
dynamic_cast<T*
>( obj ) )
 
  335            T* specific = 
dynamic_cast<T*
>( obj );
 
  336            ( specific->*method )( arg1 );
 
  340        if( 
dynamic_cast<Group*
>( obj ) )
 
  343            auto* grp = 
dynamic_cast<Group*
>( obj );
 
  344            for( 
unsigned int i = 0; i < grp->Count(); i++ )
 
  346                if( 
Call( ( *grp )[ i ], method, arg1 ) )
 
  366        argType rval       = notFoundValue;
 
  367        bool    weFoundOne = 
false;
 
  370        if( 
dynamic_cast<T*
>( obj ) )
 
  372            T* specific = 
dynamic_cast<T*
>( obj );
 
  374            rval       = ( specific->*method )();
 
  378        if( 
dynamic_cast<Group*
>( obj ) )
 
  382            auto*   grp = 
dynamic_cast<Group*
>( obj );
 
  383            for( 
unsigned int i = 0; i < grp->Count(); i++ )
 
  385                bool foundOneThisIndex;
 
  386                temp = 
ReturnCall( ( *grp )[ i ], method, notFoundValue, multipleValue, &foundOneThisIndex );
 
  388                if( foundOneThisIndex )
 
  396                            rval = multipleValue;
 
  412            *rvalFoundOne = weFoundOne;
 
  431        if( 
dynamic_cast<Group*
>( obj ) )
 
  436            auto*    grp = 
dynamic_cast<Group*
>( obj );
 
  437            for( 
unsigned int i = 0; i < grp->Count(); i++ )
 
  439                temp = 
Call( ( *grp )[ i ], method, tempColor );
 
  450                        foundColor = tempColor;
 
  456                    if( foundColor != tempColor )
 
  464        else if( 
dynamic_cast<T*
>( obj ) )
 
  466            T* specific = 
dynamic_cast<T*
>( obj );
 
  467            foundColor  = ( specific->*method )();
 
Definition: gls_color.h:54
unsigned int Count() const
Definition: group.h:173
virtual void InsertObject(DisplayObject *obj, bool reparent=true, bool recalculateBoundingbox=true, int loc=-1)
Definition: traverser.h:66
static T * GetNth(DisplayObject *obj, const int n)
Definition: traverser.h:149
void(T::* void_CallMethod_void)()
Typedef for a function pointer with no arguments or return value.
Definition: traverser.h:229
static bool Call(DisplayObject *obj, void_CallMethod_argType method, const argType arg1)
Definition: traverser.h:266
static Group * AllMatchingNoChildren(Group *grp)
Definition: traverser.h:124
static int Call(DisplayObject *obj, GlsColor_CallMethod_void method, GlsColor &foundColor)
Definition: traverser.h:427
static bool Call(DisplayObject *obj, void_CallMethod_argTypeRef method, argType &arg1)
Definition: traverser.h:329
static T * GetNthRecurse(DisplayObject *obj, int &n)
Definition: traverser.h:159
static bool Call(DisplayObject *obj, void_CallMethod_argType_arg2Type method, argType arg1, arg2Type arg2)
Definition: traverser.h:298
argType(T::* argType_CallMethod_void)()
Typedef for a function pointer with no arguments, and has a return value.
Definition: traverser.h:353
GlsColor(T::* GlsColor_CallMethod_void)()
Typedef for a function pointer that has no arguments, and returns a GlsColor.
Definition: traverser.h:417
static bool Contained(DisplayObject *obj, DisplayObject *findThis=nullptr)
Definition: traverser.h:73
static argType ReturnCall(DisplayObject *obj, argType_CallMethod_void method, const argType notFoundValue=argType(0), const argType multipleValue=argType(-1), bool *rvalFoundOne=nullptr)
Definition: traverser.h:364
void(T::* void_CallMethod_argType)(argType)
Typedef for a function pointer taking one argument and no return value.
Definition: traverser.h:259
static bool Call(DisplayObject *obj, void_CallMethod_void method)
Definition: traverser.h:235
void(T::* void_CallMethod_argType_arg2Type)(argType, arg2Type)
Typedef for a function pointer taking two arguments and no return value.
Definition: traverser.h:290
void(T::* void_CallMethod_argTypeRef)(argType &)
Typedef for a function pointer taking one argument as a reference, no return value.
Definition: traverser.h:322
static bool ContainedNoChildren(Group *grp, DisplayObject *findThis=nullptr)
Definition: traverser.h:101
static Traverse::ResultEnum GetValue(DisplayObject *obj, argType T::*variablePtr, argType &foundValue)
Definition: traverser.h:186
The disti::DisplayObject class and global enumerations.
The Color class: Implements a 4 component RGBA color.
The disti::Group class. Implements groups of objects.
Force inclusion of the DirectShow library.
Definition: bmpimage.h:47
ResultEnum
Definition: traverser.h:55