Develop Biology
The language of life
bio::cellular::OrganSystem Class Reference

#include <OrganSystem.h>

+ Inheritance diagram for bio::cellular::OrganSystem:
+ Collaboration diagram for bio::cellular::OrganSystem:

Public Member Functions

 BIO_DISAMBIGUATE_ALL_CLASS_METHODS (cellular, OrganSystem) BIO_DEFAULT_IDENTIFIABLE_CONSTRUCTORS(cellular
 
 filter::Cellular ()) virtual ~OrganSystem()
 
virtual Code Organogenesis ()
 
OrganSystemPerspective::Instance ()
 
- Public Member Functions inherited from bio::chemical::LinearMotif< Organ * >
 LinearMotif (const Contents *contents, physical::Perspective< StandardDimension > *perspective=NULL)
 
 LinearMotif (const LinearMotif< Organ * > &toCopy)
 
 LinearMotif (physical::Perspective< StandardDimension > *perspective=NULL)
 
virtual ~LinearMotif ()
 
virtual Organ * AddImplementation (Organ * content)
 
virtual Code Attenuate (const physical::Wave *other)
 
 BIO_DISAMBIGUATE_REQUIRED_CLASS_METHODS (chemical, LinearMotif< Organ * >) BIO_DISAMBIGUATE_OPTIONAL_CLASS_METHODS(physical
 
virtual void ClearImplementation ()
 
virtual Organ * CreateImplementation (StandardDimension id)
 
virtual Code Disattenuate (const physical::Wave *other)
 
virtual Emission ForEachImplementation (ExcitationBase *excitation)
 
virtual Organ * GetByIdImplementation (StandardDimension id)
 
virtual const Organ * GetByIdImplementation (StandardDimension id) const
 
virtual Organ * GetByNameImplementation (Name name)
 
virtual const Organ * GetByNameImplementation (Name name) const
 
virtual Organ * GetOrCreateByIdImplementation (StandardDimension id)
 
virtual Organ * GetOrCreateByNameImplementation (Name name)
 
virtual std::string GetStringFromImplementation (std::string separator=", ")
 
physical::Perspective< StandardDimension > * GetStructuralPerspective ()
 
const physical::Perspective< StandardDimension > * GetStructuralPerspective () const
 
virtual bool HasImplementation (const Organ * &content) const
 
virtual void ImportImplementation (const LinearMotif< Organ * > *other)
 
virtual Code InsertImplementation (Organ * toAdd, const Position position=BOTTOM, const StandardDimension optionalPositionArg=0, const bool transferSubContents=false)
 
- Public Member Functions inherited from bio::chemical::Elementary< LinearMotif< Organ * > >
 Elementary ()
 
 Elementary (const Properties properties)
 
virtual ~Elementary ()
 
void RegisterProperties (const Properties properties)
 
- Public Member Functions inherited from bio::chemical::Class< LinearMotif< Organ * > >
 BIO_DISAMBIGUATE_ALL_CLASS_METHODS (physical, LinearMotif< Organ * >) Class(LinearMotif< Organ * > *object
 
- Public Member Functions inherited from bio::physical::Class< T >
 Class (T *object, Symmetry *symmetry=NULL)
 
virtual ~Class ()
 
virtual WaveAsWave ()
 
virtual const WaveAsWave () const
 
virtual WaveClone () const
 
T * Convert (Wave *wave)
 
virtual operator T* ()
 
virtual operator Wave * ()
 
- Public Member Functions inherited from bio::physical::Wave
 Wave (Symmetry *symmetry=NULL)
 
virtual ~Wave ()
 
virtual chemical::AtomAsAtom ()
 
virtual const chemical::AtomAsAtom () const
 
virtual WaveAsWave ()
 
virtual const WaveAsWave () const
 
virtual Code Attenuate (const Wave *other)
 
virtual WaveClone () const
 
virtual WaveDemodulate ()
 
virtual const WaveDemodulate () const
 
virtual Code Disattenuate (const Wave *other)
 
virtual Properties GetProperties () const
 
virtual WaveModulate (Wave *signal)
 
virtual Waveoperator* ()
 
virtual const Waveoperator* () const
 
virtual Waveoperator* (Wave *signal)
 
virtual void operator+ (const Wave *other)
 
virtual void operator- (const Wave *other)
 
virtual void operator| (Symmetry *symmetry)
 
virtual Code Reify (Symmetry *symmetry)
 
virtual SymmetrySpin () const
 
- Public Member Functions inherited from bio::physical::Identifiable< StandardDimension >
 BIO_DISAMBIGUATE_ALL_CLASS_METHODS (physical, Identifiable< StandardDimension >) explicit Identifiable(Perspective< StandardDimension > *perspective
 
void CloneIntoName (Name name)
 
- Public Member Functions inherited from bio::physical::Observer< Perspective< StandardDimension > >
 Observer (const Observer &other)
 
 Observer (Perspective *perspective=NULL)
 
virtual ~Observer ()
 
virtual PerspectiveGetPerspective () const
 
virtual void SetPerspective (Perspective *perspective)
 
- Public Member Functions inherited from bio::physical::Class< Identifiable< StandardDimension > >
 Class (Identifiable< StandardDimension > *object, Symmetry *symmetry=NULL)
 
virtual ~Class ()
 
virtual WaveAsWave ()
 
virtual const WaveAsWave () const
 
virtual WaveClone () const
 
Identifiable< StandardDimension > * Convert (Wave *wave)
 
virtual operator Identifiable< StandardDimension > * ()
 
virtual operator Wave * ()
 
- Public Member Functions inherited from bio::log::Writer
 Writer (Engine *logEngine, Filter logFilter)
 
virtual ~Writer ()
 
 BIO_DISAMBIGUATE_ALL_CLASS_METHODS (physical, Writer) Writer()
 
void ExternalLog (Filter logFilter, Level level, const char *format,...) const
 
EngineGetLogEngine ()
 
const EngineGetLogEngine () const
 
bool HasLogEngine () const
 
virtual void SetLogEngine (Engine *logEngine)
 
- Public Member Functions inherited from bio::physical::Filterable
 Filterable (Filter filter)
 
virtual ~Filterable ()
 
 BIO_DISAMBIGUATE_ALL_CLASS_METHODS (physical, Filterable) Filterable()
 
Filter GetFilter () const
 
virtual void InitializeImplementation (ByteStreams args)
 
virtual Code Reify (Symmetry *symmetry)
 
virtual void SetFilter (Filter filter)
 
virtual SymmetrySpin () const
 
- Public Member Functions inherited from bio::physical::Class< Filterable >
 Class (Filterable *object, Symmetry *symmetry=NULL)
 
virtual ~Class ()
 
virtual WaveAsWave ()
 
virtual const WaveAsWave () const
 
virtual WaveClone () const
 
FilterableConvert (Wave *wave)
 
virtual operator Filterable * ()
 
virtual operator Wave * ()
 
- Public Member Functions inherited from bio::physical::Class< Writer >
 Class (Writer *object, Symmetry *symmetry=NULL)
 
virtual ~Class ()
 
virtual WaveAsWave ()
 
virtual const WaveAsWave () const
 
virtual WaveClone () const
 
Writer * Convert (Wave *wave)
 
virtual operator Wave * ()
 
virtual operator Writer * ()
 
- Public Member Functions inherited from bio::chemical::Atom
 Atom (const Atom &other)
 
virtual ~Atom ()
 
template<typename T >
As ()
 
template<typename T >
const T As () const
 
template<typename T >
AsBonded ()
 
template<typename T >
const T AsBonded () const
 
template<typename T >
AsBondedQuantum ()
 
template<typename T >
const T AsBondedQuantum () const
 
virtual Code Attenuate (const Wave *other)
 
 BIO_DISAMBIGUATE_ALL_CLASS_METHODS (physical, Atom) explicit Atom()
 
template<typename T >
bool BreakBond (T toDisassociate, BondType type=bond_type::Unknown())
 
virtual Code Disattenuate (const Wave *other)
 
template<typename T >
bool FormBond (T toBond, BondType type=bond_type::Unknown())
 
BondsGetAllBonds ()
 
const BondsGetAllBonds () const
 
WaveGetBonded (Valence position)
 
const WaveGetBonded (Valence position) const
 
template<typename T >
Valence GetBondPosition () const
 
Valence GetBondPosition (AtomicNumber bondedId) const
 
Valence GetBondPosition (Name typeName) const
 
template<typename T >
BondType GetBondType () const
 
BondType GetBondType (Valence position) const
 
template<typename T >
 operator T ()
 
virtual Code Reify (physical::Symmetry *symmetry)
 
virtual physical::SymmetrySpin () const
 
- Public Member Functions inherited from bio::physical::Class< Atom >
 Class (Atom *object, Symmetry *symmetry=NULL)
 
virtual ~Class ()
 
virtual WaveAsWave ()
 
virtual const WaveAsWave () const
 
virtual WaveClone () const
 
Atom * Convert (Wave *wave)
 
virtual operator Atom * ()
 
virtual operator Wave * ()
 
- Public Member Functions inherited from bio::chemical::UnorderedMotif< Organ * >
 UnorderedMotif (const Contents *contents)
 
 UnorderedMotif (const UnorderedMotif< Organ * > *toCopy)
 
virtual ~UnorderedMotif ()
 
virtual Organ * AddImplementation (const Organ * content)
 
 BIO_DISAMBIGUATE_ALL_CLASS_METHODS (chemical, UnorderedMotif< Organ * >) UnorderedMotif()
 
virtual void ClearImplementation ()
 
virtual unsigned long GetCountImplementation () const
 
virtual unsigned int GetNumMatchingImplementation (const Container *other) const
 
virtual std::string GetStringFromImplementation (std::string separator=", ")
 
virtual bool HasAllImplementation (const Container *contents) const
 
virtual bool HasImplementation (const Organ * content) const
 
virtual void ImportImplementation (const UnorderedMotif< Organ * > *other)
 
virtual Organ * RemoveImplementation (const Organ * content)
 
- Public Member Functions inherited from bio::chemical::Class< UnorderedMotif< Organ * > >
 BIO_DISAMBIGUATE_ALL_CLASS_METHODS (physical, UnorderedMotif< Organ * >) Class(UnorderedMotif< Organ * > *object
 
- Public Member Functions inherited from bio::chemical::AbstractMotif
 AbstractMotif ()
 
virtual ~AbstractMotif ()
 
virtual void ClearImplementation ()
 
virtual ContainerGetAllImplementation ()
 
virtual const ContainerGetAllImplementation () const
 
virtual unsigned long GetCountImplementation () const
 
virtual std::string GetStringFromImplementation (std::string separator=", ")
 
virtual void ImportImplementation (const void *other)
 

Public Attributes

 OrganSystem
 
- Public Attributes inherited from bio::chemical::LinearMotif< Organ * >
physical::Perspective< StandardDimension > * m_perspective
 
- Public Attributes inherited from bio::chemical::Class< LinearMotif< Organ * > >
physical::Perspective< StandardDimension > Filter filter
 
physical::Perspective< StandardDimension > * perspective
 
- Public Attributes inherited from bio::physical::Identifiable< StandardDimension >
Id m_id
 
- Public Attributes inherited from bio::chemical::Class< UnorderedMotif< Organ * > >
physical::Perspective< StandardDimension > Filter filter
 
physical::Perspective< StandardDimension > * perspective
 

Additional Inherited Members

- Public Types inherited from bio::chemical::LinearMotif< Organ * >
typedef physical::Line Contents
 
- Public Types inherited from bio::physical::Identifiable< StandardDimension >
typedef StandardDimension Id
 
typedef std::vector< IdIds
 
- Public Types inherited from bio::physical::Observer< Perspective< StandardDimension > >
typedef Perspective< StandardDimension > Perspective
 
- Public Types inherited from bio::chemical::UnorderedMotif< Organ * >
typedef physical::Arrangement< Organ * > Contents
 
- Static Public Member Functions inherited from bio::chemical::LinearMotif< Organ * >
static LinearMotif< Organ * > Properties GetClassProperties ()
 
- Static Public Member Functions inherited from bio::physical::Wave
static Properties GetResonanceBetween (const Wave *wave, const Properties &properties)
 
static Properties GetResonanceBetween (const Wave *wave1, const Wave *wave2)
 
static Properties GetResonanceBetween (ConstWaves waves)
 
- Static Public Member Functions inherited from bio::chemical::AbstractMotif
static Properties GetClassProperties ()
 
- Static Public Attributes inherited from bio::chemical::Elementary< LinearMotif< Organ * > >
static bool hasRegistered
 
- Protected Member Functions inherited from bio::physical::Observer< Perspective< StandardDimension > >
virtual void InitializeImplementation (ByteStreams args)
 
- Protected Member Functions inherited from bio::VirtualBase
 VirtualBase ()
 
virtual ~VirtualBase ()
 
void Initialize (ByteStream arg1)
 
void Initialize (ByteStream arg1, ByteStream arg2)
 
void Initialize (ByteStream arg1, ByteStream arg2, ByteStream arg3)
 
void Initialize (ByteStreams args)
 
virtual void InitializeImplementation (ByteStreams args)=0
 
- Protected Member Functions inherited from bio::log::Writer
virtual void InitializeImplementation (ByteStreams args)
 
void Log (Level level, const char *format,...) const
 
- Protected Member Functions inherited from bio::chemical::Atom
virtual bool BreakBondImplementation (Wave *toDisassociate, AtomicNumber id, BondType type)
 
virtual bool FormBondImplementation (Wave *toBond, AtomicNumber id, BondType type)
 
- Protected Attributes inherited from bio::physical::Class< T >
T * m_object
 
- Protected Attributes inherited from bio::physical::Wave
Wavem_signal
 
Symmetrym_symmetry
 
- Protected Attributes inherited from bio::VirtualBase
bool m_hasBeenInitialized
 
- Protected Attributes inherited from bio::physical::Class< Identifiable< StandardDimension > >
Identifiable< StandardDimension > * m_object
 
- Protected Attributes inherited from bio::physical::Filterable
Filter m_filter
 
- Protected Attributes inherited from bio::physical::Class< Filterable >
Filterablem_object
 
- Protected Attributes inherited from bio::physical::Class< Writer >
Writer * m_object
 
- Protected Attributes inherited from bio::chemical::Atom
Bonds m_bonds
 
- Protected Attributes inherited from bio::physical::Class< Atom >
Atom * m_object
 
- Protected Attributes inherited from bio::chemical::AbstractMotif
Containerm_contents
 

Detailed Description

OrganSystems are very similar to Organs. The only difference is that they contain logic for combining multiple Organs. For example, the heart relies on vasculature to move blood around the body. This requires a Heart Organ as well as integrations into all other Tissues in order to supply the BloodStream. In order to accommodate this functionality, we must invasively add functionality to other Organs. Because the modification of existing Organs can lead to more errors and make debugging more difficult, it is not recommended that you take advantage of OrganSystem machinery unless you absolutely need to. However, if you do need to make system-wide modifications, these methods are available to you.

Definition at line 42 of file OrganSystem.h.

Member Function Documentation

◆ BIO_DISAMBIGUATE_ALL_CLASS_METHODS()

bio::cellular::OrganSystem::BIO_DISAMBIGUATE_ALL_CLASS_METHODS ( cellular  ,
OrganSystem   
)

Ensure virtual methods point to Class implementations. Standard ctors.

◆ filter::Cellular()

bio::cellular::OrganSystem::filter::Cellular ( )

◆ Organogenesis()

Code bio::cellular::OrganSystem::Organogenesis ( )
virtual

Create all Organs and, if necessary, link them. Call the parent method (OrganSystem::Organogenesis()) when done to initialize all Organs (calls Organ::BuildMobilome() and Organ::SpecializeTissues()).

Definition at line 34 of file OrganSystem.cpp.

35{
36 Code ret = code::Success();
37 Container* organs = GetAll< Organ* >();
38 BIO_SANITIZE(organs, ,
40 Organ* organBuffer;
41 for (
42 SmartIterator org = organs->Begin();
43 !org.IsAtEnd();
44 ++org
45 )
46 {
47 organBuffer = org;
48 organBuffer->SetEnvironment(this);
49 if (organBuffer->BuildMobilome() != code::Success() && ret == code::Success())
50 {
51 ret = code::UnknownError();
52 }
53 if (organBuffer->GrowTissues() != code::Success() && ret == code::Success())
54 {
55 ret = code::UnknownError();
56 }
57 if (organBuffer->SpecializeTissues() != code::Success() && ret == code::Success())
58 {
59 ret = code::UnknownError();
60 }
61 }
62 return ret;
63}
#define BIO_SANITIZE(test, success, failure)
Code CouldNotFindValue1()
Code UnknownError()
Code Success()

References bio::Container::Begin(), BIO_SANITIZE, bio::cellular::Organ::BuildMobilome(), bio::code::CouldNotFindValue1(), bio::cellular::Organ::GrowTissues(), bio::SmartIterator::IsAtEnd(), bio::molecular::EnvironmentDependent< T >::SetEnvironment(), bio::cellular::Organ::SpecializeTissues(), bio::code::Success(), and bio::code::UnknownError().

Referenced by bio::organic::Organism::Morphogenesis().

◆ OrganSystemPerspective::Instance()

& bio::cellular::OrganSystem::OrganSystemPerspective::Instance ( )

Member Data Documentation

◆ OrganSystem

bio::cellular::OrganSystem::OrganSystem

Definition at line 57 of file OrganSystem.h.


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