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