76 template<
typename CallbackT,
typename... Args>
77 static IndexCallback generate( CallbackT callback, Args&&... args );
92 template<
typename CallbackT,
typename... Args>
93 void execute(
const agx::Name& name,
agx::UInt numElements, CallbackT callback, Args&&... args );
103 template<
typename CallbackT,
typename... Args>
128 : callback( callback ), name( name ), numElements( numElements )
132 IndexCallback callback;
136 using ExecStack = std::stack<ExecData>;
163 ExecStack m_execStack;
168 template<
typename CallbackT,
typename... Args>
172 return std::bind( callback, std::placeholders::_1, std::forward<Args>( args )... );
175 template<
typename CallbackT,
typename... Args>
181 template<
typename CallbackT,
typename... Args>
184 this->
execute(
generate( std::forward<CallbackT>( callback ), std::forward<Args>( args )... ), name, numElements, jobSize );
#define AGXPHYSICS_EXPORT
Utility entrance to the task system, simplifying parallelization of algorithms.
std::function< void(agx::UInt)> IndexCallback
Default callback signature with current index.
static IndexCallback generate(CallbackT callback, Args &&... args)
Generates IndexCallback given function and arguments.
void executeEx(const agx::Name &name, agx::UInt numElements, agx::UInt jobSize, CallbackT callback, Args &&... args)
Execute callback given name, numElements and args (additional arguments to callback).
void execute(IndexCallback callback, const agx::Name &name, agx::UInt numElements, agx::UInt jobSize=agx::InvalidIndex)
Execute callback given name and numElements.
IndexLambdaKernel()
Default Constructor.
virtual ~IndexLambdaKernel()
Reference counted object - protected destructor.
Representation of a name string.
A range job executes a kernel implementation on a subset of the data.
void execute()
Execute the task.
The agx namespace contains the dynamics/math part of the AGX Dynamics API.
AGXCORE_EXPORT const InvalidIndexStruct InvalidIndex