Stage Class Reference

This class is basically a glorified enumerated type, type-safe and range checked but permitting convenient (if limited) arithmetic. More...

#include <Stage.h>

Inheritance diagram for Stage:
Enumeration< Stage >

List of all members.

Public Types

enum  Num {
  EmptyIndex = 0, TopologyIndex = 1, ModelIndex = 2, InstanceIndex = 3,
  TimeIndex = 4, PositionIndex = 5, VelocityIndex = 6, DynamicsIndex = 7,
  AccelerationIndex = 8, ReportIndex = 9, InfinityIndex = 10
}

Public Member Functions

Stage next () const
Stage prev () const
void invalidate (Stage tooHigh)
bool isInRuntimeRange () const

Static Public Attributes

static const Stage Empty
static const Stage Topology
static const Stage Model
static const Stage Instance
static const Stage Time
static const Stage Position
static const Stage Velocity
static const Stage Dynamics
static const Stage Acceleration
static const Stage Report
static const Stage Infinity
static const Stage LowestValid
static const Stage HighestValid
static const int NValid = InfinityIndex-EmptyIndex+1
static const Stage LowestRuntime
static const Stage HighestRuntime
static const int NRuntime = ReportIndex-ModelIndex+1

Friends

class Enumeration< Stage >

Detailed Description

This class is basically a glorified enumerated type, type-safe and range checked but permitting convenient (if limited) arithmetic.

Constants look like Stage::Position, and loops can be written like for(Stage s=StageLowestValid; s <= Stage::HighestValid; ++s) ... Stage constants (of type Stage::Num) are implicitly converted to type Stage when necessary. If you want to use a Stage in a switch statement you have to use the Stage::Num indices rather than a Stage constant as case labels.

There is no default construction -- all Stage variables must be initialized explicitly. (I would like them to initialize to Stage::Empty but the Enumeration<> template doesn't allow that.)


Member Enumeration Documentation

enum Num
Enumerator:
EmptyIndex 
TopologyIndex 
ModelIndex 
InstanceIndex 
TimeIndex 
PositionIndex 
VelocityIndex 
DynamicsIndex 
AccelerationIndex 
ReportIndex 
InfinityIndex 

Member Function Documentation

void invalidate ( Stage  tooHigh  )  [inline]
bool isInRuntimeRange (  )  const [inline]
Stage next (  )  const [inline]
Stage prev (  )  const [inline]

Referenced by Stage::invalidate().


Friends And Related Function Documentation

friend class Enumeration< Stage > [friend]

Member Data Documentation

const Stage Acceleration [static]
const Stage Dynamics [static]
const Stage Empty [static]
const Stage HighestRuntime [static]

Referenced by Stage::isInRuntimeRange().

const Stage HighestValid [static]
const Stage Infinity [static]
const Stage Instance [static]
const Stage LowestRuntime [static]

Referenced by Stage::isInRuntimeRange().

const Stage LowestValid [static]
const Stage Model [static]
const int NRuntime = ReportIndex-ModelIndex+1 [static]
const int NValid = InfinityIndex-EmptyIndex+1 [static]
const Stage Position [static]
const Stage Report [static]
const Stage Time [static]
const Stage Topology [static]
const Stage Velocity [static]

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

Generated on Wed Dec 30 11:05:28 2009 for SimTKcore by  doxygen 1.6.1