Tissue Forge C++ 0.2.1
Interactive, particle-based physics, chemistry and biology modeling and simulation environment
Loading...
Searching...
No Matches
TissueForge::event Namespace Reference

Tissue Forge event system. More...

Classes

struct  Event
 
struct  EventBase
 
struct  EventBaseList
 
struct  EventListT
 
struct  KeyEvent
 
struct  ParticleEvent
 
struct  ParticleEventSingle
 
struct  ParticleTimeEvent
 
struct  TimeEvent
 

Typedefs

template<typename event_t >
using EventMethodT = HRESULT (*)(const event_t&)
 
using EventMethod = EventMethodT<Event>
 
using EventList = EventListT<Event>
 
template<typename event_t >
using ParticleEventParticleSelectorT = ParticleHandle* (*)(const event_t&)
 
using ParticleEventMethod = EventMethodT<ParticleEvent>
 
using ParticleEventParticleSelector = ParticleEventParticleSelectorT<ParticleEvent>
 
typedef std::unordered_map< ParticleEventParticleSelectorEnum, ParticleEventParticleSelector > ParticleEventParticleSelectorMapType
 
typedef std::unordered_map< std::string, ParticleEventParticleSelectorEnum > ParticleEventParticleSelectorNameMapType
 
using ParticleEventList = EventListT<ParticleEvent>
 
using ParticleTimeEventMethod = EventMethodT<ParticleTimeEvent>
 
using ParticleTimeEventNextTimeSetter = FloatP_t (*)(ParticleTimeEvent&, const FloatP_t&)
 
using ParticleTimeEventParticleSelector = ParticleEventParticleSelectorT<ParticleTimeEvent>
 
typedef std::unordered_map< ParticleTimeEventParticleSelectorEnum, ParticleTimeEventParticleSelector > ParticleTimeEventParticleSelectorMapType
 
typedef std::unordered_map< std::string, ParticleTimeEventParticleSelectorEnum > ParticleTimeEventParticleSelectorNameMapType
 
typedef std::unordered_map< ParticleTimeEventTimeSetterEnum, ParticleTimeEventNextTimeSetter > ParticleTimeEventNextTimeSetterMapType
 
typedef std::unordered_map< std::string, ParticleTimeEventTimeSetterEnumParticleTimeEventNextTimeSetterNameMapType
 
using ParticleTimeEventList = EventListT<ParticleTimeEvent>
 
using TimeEventMethod = EventMethodT<TimeEvent>
 
using TimeEventNextTimeSetter = FloatP_t (*)(TimeEvent&, const FloatP_t&)
 
typedef std::unordered_map< TimeEventTimeSetterEnum, TimeEventNextTimeSetter > TimeEventNextTimeSetterMapType
 
typedef std::unordered_map< std::string, TimeEventTimeSetterEnum > TimeEventNextTimeSetterNameMapType
 
using TimeEventList = EventListT<TimeEvent>
 
using KeyEventDelegateType = HRESULT (*)(Magnum::Platform::GlfwApplication::KeyEvent*)
 
using KeyEventHandlerType = HRESULT (*)(struct KeyEvent*)
 
typedef size_t KeyEventDelegateHandle
 
typedef size_t KeyEventHandlerHandle
 

Enumerations

enum class  EventFlag : unsigned int { REMOVE }
 
enum class  ParticleEventParticleSelectorEnum : unsigned int { LARGEST , UNIFORM , DEFAULT }
 
enum class  ParticleTimeEventParticleSelectorEnum : unsigned int { LARGEST , UNIFORM , DEFAULT }
 
enum class  ParticleTimeEventTimeSetterEnum : unsigned int { DETERMINISTIC , EXPONENTIAL , DEFAULT }
 keys for selecting a next time setter
 
enum class  TimeEventTimeSetterEnum : unsigned int { DEFAULT = 0 , DETERMINISTIC , EXPONENTIAL }
 

Functions

EventonEvent (EventMethod *invokeMethod, EventMethod *predicateMethod)
 Creates an event using prescribed invoke and predicate functions.
 
HRESULT event_func_invoke (EventBase &event, const FloatP_t &time)
 
HRESULT eventListEval (EventBaseList *eventList, const FloatP_t &time)
 
ParticleHandleparticleSelectorUniform (const int16_t &typeId, const int32_t &nr_parts)
 Selects a particle according to a uniform random distribution by event target type.
 
ParticleHandleparticleSelectorLargest (const int16_t &typeId)
 Selects largest particle by event target type.
 
ParticleHandleparticleEventParticleSelectorUniform (const ParticleEvent &event)
 Selects a particle according to a uniform random distribution by event target type.
 
ParticleHandleparticleEventParticleSelectorLargest (const ParticleEvent &event)
 Selects largest particle by event target type.
 
ParticleEventParticleSelector * getParticleEventParticleSelector (ParticleEventParticleSelectorEnum selectorEnum)
 Gets the particle selector on an event.
 
ParticleEventParticleSelector * getParticleEventParticleSelectorN (std::string setterName)
 Gets the particle selector on an event.
 
ParticleEventonParticleEvent (ParticleType *targetType, ParticleEventMethod *invokeMethod, ParticleEventMethod *predicateMethod)
 Creates a particle event using prescribed invoke and predicate functions.
 
ParticleEventSingleonParticleEventSingle (ParticleType *targetType, ParticleEventMethod *invokeMethod, ParticleEventMethod *predicateMethod)
 Creates a single particle event using prescribed invoke and predicate functions.
 
FloatP_t particleTimeEventSetNextTimeExponential (ParticleTimeEvent &event, const FloatP_t &time)
 Sets the next time on an event according to an exponential distribution of the event period.
 
FloatP_t particleTimeEventSetNextTimeDeterministic (ParticleTimeEvent &event, const FloatP_t &time)
 Sets the next time on an event according to the period of the event.
 
ParticleHandleparticleTimeEventParticleSelectorUniform (const ParticleTimeEvent &event)
 Selects a particle according to a uniform random distribution by event target type.
 
ParticleHandleparticleTimeEventParticleSelectorLargest (const ParticleTimeEvent &event)
 Selects largest particle by event target type.
 
ParticleTimeEventParticleSelector * getParticleTimeEventParticleSelector (ParticleTimeEventParticleSelectorEnum selectorEnum)
 Gets the particle selector on an event.
 
ParticleTimeEventParticleSelector * getParticleTimeEventParticleSelectorN (std::string setterName)
 Gets the particle selector on an event.
 
ParticleTimeEventNextTimeSetter * getParticleTimeEventNextTimeSetter (ParticleTimeEventTimeSetterEnum setterEnum)
 Gets the next time on an event according to an exponential distribution of the event period.
 
ParticleTimeEventNextTimeSetter * getParticleTimeEventNextTimeSetterN (std::string setterName)
 Gets the next time on an event according to an exponential distribution of the event period.
 
ParticleTimeEventonParticleTimeEvent (ParticleType *targetType, const FloatP_t &period, ParticleTimeEventMethod *invokeMethod, ParticleTimeEventMethod *predicateMethod=NULL, unsigned int nextTimeSetterEnum=0, const FloatP_t &start_time=0, const FloatP_t &end_time=-1, unsigned int particleSelectorEnum=0)
 Creates a time-dependent particle event using prescribed invoke and predicate functions.
 
ParticleTimeEventonParticleTimeEventN (ParticleType *targetType, const FloatP_t &period, ParticleTimeEventMethod *invokeMethod, ParticleTimeEventMethod *predicateMethod=NULL, const std::string &distribution="default", const FloatP_t &start_time=0, const FloatP_t &end_time=-1, const std::string &selector="default")
 Creates a time-dependent particle event using prescribed invoke and predicate functions.
 
HRESULT defaultTimeEventPredicateEval (const FloatP_t &next_time, const FloatP_t &start_time=-1, const FloatP_t &end_time=-1)
 
FloatP_t timeEventSetNextTimeExponential (TimeEvent &event, const FloatP_t &time)
 
FloatP_t timeEventSetNextTimeDeterministic (TimeEvent &event, const FloatP_t &time)
 
TimeEventNextTimeSetter * getTimeEventNextTimeSetter (TimeEventTimeSetterEnum setterEnum)
 
TimeEventNextTimeSetter * getTimeEventNextTimeSetterN (std::string setterName)
 
TimeEventonTimeEvent (const FloatP_t &period, TimeEventMethod *invokeMethod, TimeEventMethod *predicateMethod=NULL, const unsigned int &nextTimeSetterEnum=0, const FloatP_t &start_time=0, const FloatP_t &end_time=-1)
 Creates a time-dependent event using prescribed invoke and predicate functions.
 
TimeEventonTimeEventN (const FloatP_t &period, TimeEventMethod *invokeMethod, TimeEventMethod *predicateMethod=NULL, const std::string &distribution="default", const FloatP_t &start_time=0, const FloatP_t &end_time=-1)
 Creates a time-dependent event using prescribed invoke and predicate functions.
 

Detailed Description

Tissue Forge event system.

Function Documentation

◆ getParticleEventParticleSelector()

ParticleEventParticleSelector * TissueForge::event::getParticleEventParticleSelector ( ParticleEventParticleSelectorEnum selectorEnum)

Gets the particle selector on an event.

Parameters
selectorEnumselector enum
Returns
ParticleEventParticleSelector*

◆ getParticleEventParticleSelectorN()

ParticleEventParticleSelector * TissueForge::event::getParticleEventParticleSelectorN ( std::string setterName)

Gets the particle selector on an event.

Parameters
setterNamename of selector
Returns
ParticleEventParticleSelector*

◆ getParticleTimeEventNextTimeSetter()

ParticleTimeEventNextTimeSetter * TissueForge::event::getParticleTimeEventNextTimeSetter ( ParticleTimeEventTimeSetterEnum setterEnum)

Gets the next time on an event according to an exponential distribution of the event period.

Parameters
setterEnumsetter enum
Returns
ParticleTimeEventNextTimeSetter*

◆ getParticleTimeEventNextTimeSetterN()

ParticleTimeEventNextTimeSetter * TissueForge::event::getParticleTimeEventNextTimeSetterN ( std::string setterName)

Gets the next time on an event according to an exponential distribution of the event period.

Parameters
setterNamename of setter
Returns
ParticleTimeEventNextTimeSetter*

◆ getParticleTimeEventParticleSelector()

ParticleTimeEventParticleSelector * TissueForge::event::getParticleTimeEventParticleSelector ( ParticleTimeEventParticleSelectorEnum selectorEnum)

Gets the particle selector on an event.

Parameters
selectorEnumselector enum
Returns
ParticleTimeEventParticleSelector*

◆ getParticleTimeEventParticleSelectorN()

ParticleTimeEventParticleSelector * TissueForge::event::getParticleTimeEventParticleSelectorN ( std::string setterName)

Gets the particle selector on an event.

Parameters
setterNamename of selector
Returns
ParticleTimeEventParticleSelector*

◆ onEvent()

Event * TissueForge::event::onEvent ( EventMethod * invokeMethod,
EventMethod * predicateMethod )

Creates an event using prescribed invoke and predicate functions.

Parameters
invokeMethodan invoke function; evaluated when an event occurs
predicateMethoda predicate function; evaluated to determine if an event occurs
Returns
Event*

◆ onParticleEvent()

ParticleEvent * TissueForge::event::onParticleEvent ( ParticleType * targetType,
ParticleEventMethod * invokeMethod,
ParticleEventMethod * predicateMethod )

Creates a particle event using prescribed invoke and predicate functions.

Parameters
targetTypetarget particle type
invokeMethodan invoke function; evaluated when an event occurs
predicateMethoda predicate function; evaluated to determine if an event occurs
Returns
ParticleEvent*

◆ onParticleEventSingle()

ParticleEventSingle * TissueForge::event::onParticleEventSingle ( ParticleType * targetType,
ParticleEventMethod * invokeMethod,
ParticleEventMethod * predicateMethod )

Creates a single particle event using prescribed invoke and predicate functions.

Parameters
targetTypetarget particle type
invokeMethodan invoke function; evaluated when an event occurs
predicateMethoda predicate function; evaluated to determine if an event occurs
Returns
ParticleEventSingle*

◆ onParticleTimeEvent()

ParticleTimeEvent * TissueForge::event::onParticleTimeEvent ( ParticleType * targetType,
const FloatP_t & period,
ParticleTimeEventMethod * invokeMethod,
ParticleTimeEventMethod * predicateMethod = NULL,
unsigned int nextTimeSetterEnum = 0,
const FloatP_t & start_time = 0,
const FloatP_t & end_time = -1,
unsigned int particleSelectorEnum = 0 )

Creates a time-dependent particle event using prescribed invoke and predicate functions.

Parameters
targetTypetarget particle type
periodperiod of evaluations
invokeMethodan invoke function; evaluated when an event occurs
predicateMethoda predicate function; evaluated to determine if an event occurs
nextTimeSetterEnumenum of function that sets the next evaulation time
start_timetime at which evaluations begin
end_timetime at which evaluations end
particleSelectorEnumenum of function that selects the next particle
Returns
ParticleTimeEvent*

◆ onParticleTimeEventN()

ParticleTimeEvent * TissueForge::event::onParticleTimeEventN ( ParticleType * targetType,
const FloatP_t & period,
ParticleTimeEventMethod * invokeMethod,
ParticleTimeEventMethod * predicateMethod = NULL,
const std::string & distribution = "default",
const FloatP_t & start_time = 0,
const FloatP_t & end_time = -1,
const std::string & selector = "default" )

Creates a time-dependent particle event using prescribed invoke and predicate functions.

Parameters
targetTypetarget particle type
periodperiod of evaluations
invokeMethodan invoke function; evaluated when an event occurs
predicateMethoda predicate function; evaluated to determine if an event occurs
distributionname of function that sets the next evaulation time
start_timetime at which evaluations begin
end_timetime at which evaluations end
selectorname of function that selects the next particle
Returns
ParticleTimeEvent*

◆ onTimeEvent()

TimeEvent * TissueForge::event::onTimeEvent ( const FloatP_t & period,
TimeEventMethod * invokeMethod,
TimeEventMethod * predicateMethod = NULL,
const unsigned int & nextTimeSetterEnum = 0,
const FloatP_t & start_time = 0,
const FloatP_t & end_time = -1 )

Creates a time-dependent event using prescribed invoke and predicate functions.

Parameters
periodperiod of evaluations
invokeMethodan invoke function; evaluated when an event occurs
predicateMethoda predicate function; evaluated to determine if an event occurs
nextTimeSetterEnumenum selecting the function that sets the next evaulation time
start_timetime at which evaluations begin
end_timetime at which evaluations end
Returns
TimeEvent*

◆ onTimeEventN()

TimeEvent * TissueForge::event::onTimeEventN ( const FloatP_t & period,
TimeEventMethod * invokeMethod,
TimeEventMethod * predicateMethod = NULL,
const std::string & distribution = "default",
const FloatP_t & start_time = 0,
const FloatP_t & end_time = -1 )

Creates a time-dependent event using prescribed invoke and predicate functions.

Parameters
periodperiod of evaluations
invokeMethodan invoke function; evaluated when an event occurs
predicateMethoda predicate function; evaluated to determine if an event occurs
distributionname of the function that sets the next evaulation time
start_timetime at which evaluations begin
end_timetime at which evaluations end
Returns
TimeEvent*

◆ particleEventParticleSelectorLargest()

ParticleHandle * TissueForge::event::particleEventParticleSelectorLargest ( const ParticleEvent & event)

Selects largest particle by event target type.

Parameters
event
Returns
ParticleHandle*

◆ particleEventParticleSelectorUniform()

ParticleHandle * TissueForge::event::particleEventParticleSelectorUniform ( const ParticleEvent & event)

Selects a particle according to a uniform random distribution by event target type.

Parameters
event
Returns
ParticleHandle*

◆ particleSelectorLargest()

ParticleHandle * TissueForge::event::particleSelectorLargest ( const int16_t & typeId)

Selects largest particle by event target type.

Parameters
typeIdid of type
Returns
ParticleHandle*

◆ particleSelectorUniform()

ParticleHandle * TissueForge::event::particleSelectorUniform ( const int16_t & typeId,
const int32_t & nr_parts )

Selects a particle according to a uniform random distribution by event target type.

Parameters
typeIdid of type
nr_partsnumber of particles of the type
Returns
ParticleHandle*

◆ particleTimeEventParticleSelectorLargest()

ParticleHandle * TissueForge::event::particleTimeEventParticleSelectorLargest ( const ParticleTimeEvent & event)

Selects largest particle by event target type.

Parameters
event
Returns
ParticleHandle*

◆ particleTimeEventParticleSelectorUniform()

ParticleHandle * TissueForge::event::particleTimeEventParticleSelectorUniform ( const ParticleTimeEvent & event)

Selects a particle according to a uniform random distribution by event target type.

Parameters
event
Returns
ParticleHandle*

◆ particleTimeEventSetNextTimeDeterministic()

FloatP_t TissueForge::event::particleTimeEventSetNextTimeDeterministic ( ParticleTimeEvent & event,
const FloatP_t & time )

Sets the next time on an event according to the period of the event.

Parameters
event
time

◆ particleTimeEventSetNextTimeExponential()

FloatP_t TissueForge::event::particleTimeEventSetNextTimeExponential ( ParticleTimeEvent & event,
const FloatP_t & time )

Sets the next time on an event according to an exponential distribution of the event period.

Parameters
event
time