Simbody  3.7
SimTK::Event Class Reference

An Event is "something that happens" during a Study that is advancing through time. More...

Classes

class  Cause
 These are all the possible causes for events. More...
 

Public Types

enum  Trigger {
  NoEventTrigger =0x0000,
  PositiveToNegative =0x0001,
  NegativeToPositive =0x0002,
  Falling =(PositiveToNegative),
  Rising =(NegativeToPositive),
  AnySignChange =(PositiveToNegative|NegativeToPositive)
}
 Triggered Events respond to zero crossings of their associated trigger function. More...
 

Static Public Member Functions

static const char * getCauseName (Cause)
 This is useful for debugging; it translates an Event::Cause into a readable string. More...
 
static std::string eventTriggerString (Trigger)
 This is useful for debugging; it translates an Event::Trigger or a mask formed by a union of Event::Triggers, into a readable string. More...
 
static Trigger classifyTransition (int before, int after)
 Classify a before/after sign transition. More...
 
static Trigger maskTransition (Trigger transition, Trigger mask)
 Given an observed transition, weed out ignorable ones using the supplied mask. More...
 

Detailed Description

An Event is "something that happens" during a Study that is advancing through time.

Its occurrence interrupts the normal flow of computation, allowing an event Handler to adjust the State prior to resuming the Study.

Events are allocated by Subsystems, but require some System global resources. All Events are given a unique EventId. Some Events require other State resources, such as slots for the values of trigger functions in the case of Triggered events.

Events can be allocated at Topology, Model, and Instance Stages. All Event resources are assigned when the Instance stage is realized. However, if an Event requires state variables, then it must be allocated by Model stage.

Member Enumeration Documentation

◆ Trigger

Triggered Events respond to zero crossings of their associated trigger function.

This enum defines constants for use in specifying which kind of zero crossing has been seen, or which kinds are considered interesting. For the latter purpose, these can be or'ed together to make a mask.

Enumerator
NoEventTrigger 
PositiveToNegative 
NegativeToPositive 
Falling 
Rising 
AnySignChange 

Member Function Documentation

◆ getCauseName()

static const char* SimTK::Event::getCauseName ( Cause  )
static

This is useful for debugging; it translates an Event::Cause into a readable string.

◆ eventTriggerString()

static std::string SimTK::Event::eventTriggerString ( Trigger  )
static

This is useful for debugging; it translates an Event::Trigger or a mask formed by a union of Event::Triggers, into a readable string.

◆ classifyTransition()

static Trigger SimTK::Event::classifyTransition ( int  before,
int  after 
)
inlinestatic

Classify a before/after sign transition.

Before and after must both be -1,0, or 1 as returned by the SimTK::sign() function applied to the trigger function value at the beginning and end of a step.

◆ maskTransition()

static Trigger SimTK::Event::maskTransition ( Trigger  transition,
Trigger  mask 
)
inlinestatic

Given an observed transition, weed out ignorable ones using the supplied mask.

That is, the return will indicate NoEventTrigger unless the original Trigger was present in the mask.


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