90 &ReactionPerspective::Instance(),
141 template < typename T >
160 template <
typename T >
174 template <
typename T >
234 template <
typename T >
249 template <
typename T >
253 return (*Cast< const T* >(RESULT))(
reactants),
260 template <
typename T >
265 return (*Cast< const T* >(RESULT))(&
reactants),
281 template <
typename T >
289 substances.push_back(reactant1);
290 substances.push_back(reactant2);
291 substances.push_back(reactant3);
#define BIO_DEFAULT_IDENTIFIABLE_CONSTRUCTORS(ns, class,...)
#define BIO_SANITIZE_AT_SAFETY_LEVEL_2(test, success, failure)
#define BIO_SANITIZE_WITH_CACHE(test, success, failure)
static Products Attempt(Substances &substances)
BIO_DISAMBIGUATE_ALL_CLASS_METHODS(chemical, Reaction) BIO_DEFAULT_IDENTIFIABLE_CONSTRUCTORS(chemical
virtual bool ReactantsMeetRequirements(const Reactants *toCheck) const
static Products Attempt(Reactants *reactants)
Reactants m_requiredReactants
const Reactants * reactants
static const T * Initiate()
virtual Products operator()(Reactants *reactants) const
static Products Attempt(Substance *reactant1, Substance *reactant2=NULL, Substance *reactant3=NULL)
void Require(const typename UnorderedMotif< Property >::Contents *properties, const typename UnorderedMotif< State >::Contents *states)
void Require(const T *substance)
& ReactionPerspective::Instance()
virtual Products Process(Reactants *reactants) const
std::vector< Substance * > Substances