libbio
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
bio::chemical::Miscibility Class Reference

#include <Miscibility.h>

Inheritance diagram for bio::chemical::Miscibility:
Inheritance graph
[legend]
Collaboration diagram for bio::chemical::Miscibility:
Collaboration graph
[legend]

Public Member Functions

 Miscibility ()
 
 Miscibility (const Property &property)
 
 Miscibility (const Name &name)
 
virtual ~Miscibility ()
 
void SetSuperposition (const Superposition &superposition)
 
const SuperpositionGetSuperposition () const
 
void SetPassthrough (bool passthrough)
 
bool IsPassthrough () const
 
virtual Pointer< const WaveGetDisplacement (Pointer< const Substance > substance) const
 
virtual Pointer< physical::InterferenceGetInterference () const
 
virtual Pointer< physical::InterferenceGetInterferenceFor (Pointer< const physical::Wave > target, Pointer< const physical::Wave > displacement) const
 
void SetInterference (Pointer< physical::Interference > interference)
 
virtual bool Apply (Pointer< Substance > target, Pointer< const Substance > other) const
 
- Public Member Functions inherited from bio::physical::Class< Miscibility >
 Class (Pointer< Miscibility > object, Pointer< Symmetry > symmetry=NULL)
 
 Class (Pointer< Miscibility > object, SymmetryFactory symmetryFactory)
 
 Class (const Class &other)
 
virtual ~Class ()
 
virtual Pointer< Miscibility > GetWaveObject ()
 
virtual Pointer< const Miscibility > GetWaveObject () const
 
virtual operator Miscibility & ()
 
virtual operator const Miscibility & () const
 
virtual Pointer< WaveClone () const
 
Pointer< WaveAsWave ()
 
Pointer< const WaveAsWave () const
 
virtual operator Pointer< Wave > ()
 
- Public Member Functions inherited from bio::physical::Wave
 Wave (Pointer< Symmetry > symmetry=NULL)
 
 Wave (const Wave &other)
 
Waveoperator= (const Wave &other)
 
virtual ~Wave ()
 
virtual Properties GetProperties () const
 
virtual Pointer< const SymmetrySpin () const
 
Pointer< const SymmetryGetSymmetry () const
 
virtual Code Reify (Pointer< const Symmetry > symmetry)
 
virtual bool Superpose (Pointer< const Wave > displacement, Pointer< Interference > pattern)
 
virtual Pointer< WaveSuperpose (const ConstWaves &displacement, Pointer< Interference > pattern)
 
virtual Pointer< WaveModulate (Pointer< Wave > signal)
 
virtual Pointer< WaveDemodulate ()
 
virtual Pointer< const WaveDemodulate () const
 
virtual Code Attenuate (Pointer< const Wave > other)
 
virtual Code Disattenuate (Pointer< const Wave > other)
 
Pointer< WaveAsWave ()
 
Pointer< const WaveAsWave () const
 
virtual Pointer< chemical::AtomAsAtom ()
 
virtual Pointer< const chemical::AtomAsAtom () const
 
virtual void operator| (Pointer< Symmetry > symmetry)
 
virtual Pointer< Waveoperator* (Pointer< Wave > signal)
 
virtual Pointer< Waveoperator* ()
 
virtual Pointer< const Waveoperator* () const
 
virtual void operator+ (Pointer< const Wave > other)
 
virtual void operator- (Pointer< const Wave > other)
 
uint16_t GetTypeId () const
 
void SetTypeId (uint16_t typeId)
 
- Public Member Functions inherited from bio::physical::Identifiable< Property >
 Identifiable (Pointer< Perspective< Property > > perspective=NULL)
 
 Identifiable (const Name &name, Pointer< Perspective< Property > > perspective=NULL)
 
 Identifiable (Identifier id, Pointer< Perspective< Property > > perspective=NULL)
 
 Identifiable (const Identifiable &other)
 
virtual ~Identifiable ()
 
virtual operator Property () const
 
virtual bool operator== (const Identifier id) const
 
virtual bool operator== (const Name &name) const
 
virtual bool operator== (const Identifiable< Property > &other) const
 
virtual Name GetName () const
 
virtual Identifier GetId () const
 
virtual bool SetName (const Name &name)
 
virtual bool SetId (Identifier id)
 
virtual bool IsName (const Name &name) const
 
virtual bool IsNameInsensitive (const Name &name) const
 
virtual bool IsId (Identifier id) const
 
virtual void SetPerspective (Pointer< Perspective< Property > > perspective)
 
- Public Member Functions inherited from bio::physical::Class< T >
 Class (Pointer< T > object, Pointer< Symmetry > symmetry=NULL)
 
 Class (Pointer< T > object, SymmetryFactory symmetryFactory)
 
 Class (const Class &other)
 
virtual ~Class ()
 
virtual Pointer< TGetWaveObject ()
 
virtual Pointer< const TGetWaveObject () const
 
virtual operator T& ()
 
virtual operator const T & () const
 
virtual Pointer< WaveClone () const
 
Pointer< WaveAsWave ()
 
Pointer< const WaveAsWave () const
 
virtual operator Pointer< Wave > ()
 
- Public Member Functions inherited from bio::physical::Observer< PERSPECTIVE >
 Observer (Pointer< Perspective > perspective=NULL)
 
 Observer (const Observer &other)
 
virtual ~Observer ()
 
virtual void SetPerspective (Pointer< Perspective > perspective)
 
virtual Pointer< PerspectiveGetPerspective () const
 

Static Public Member Functions

static void RegisterDefaults ()
 
- Static Public Member Functions inherited from bio::physical::Class< Miscibility >
static Pointer< Miscibility > Convert (Pointer< Wave > wave)
 
- Static Public Member Functions inherited from bio::physical::Wave
static Properties GetResonanceBetween (ConstWaves waves)
 
static Properties GetResonanceBetween (Pointer< const Wave > wave1, Pointer< const Wave > wave2)
 
static Properties GetResonanceBetween (Pointer< const Wave > wave, const Properties &properties)
 
- Static Public Member Functions inherited from bio::physical::Class< T >
static Pointer< TConvert (Pointer< Wave > wave)
 

Protected Attributes

Pointer< physical::InterferencemInterference
 
Superposition mSuperposition
 
bool mIsPassthrough
 
- Protected Attributes inherited from bio::physical::Class< Miscibility >
Pointer< Miscibility > mObject
 
- Protected Attributes inherited from bio::physical::Wave
LazyPointer< SymmetrymSymmetry
 
bool mHasSignal
 
uint16_t mTypeId
 
- Protected Attributes inherited from bio::physical::Class< T >
Pointer< TmObject
 
- Protected Attributes inherited from bio::VirtualBase
bool mHasBeenInitialized
 

Additional Inherited Members

- Public Types inherited from bio::physical::Identifiable< Property >
typedef Property Identifier
 
typedef Arrangement< IdentifierIds
 
- Public Types inherited from bio::physical::Observer< PERSPECTIVE >
typedef PERSPECTIVE Perspective
 
- Protected Member Functions inherited from bio::physical::Identifiable< Property >
virtual void InitializeImplementation (ByteStreams &args)
 
friend::std::ostream & operator<< (std::ostream &out, const Identifiable< Property > &t)
 
- Protected Member Functions inherited from bio::VirtualBase
 VirtualBase ()
 
virtual ~VirtualBase ()
 
void Initialize (ByteStreams &args)
 
void Initialize (ByteStream arg1)
 
void Initialize (ByteStream arg1, ByteStream arg2)
 
void Initialize (ByteStream arg1, ByteStream arg2, ByteStream arg3)
 

Detailed Description

Miscibilities map the Properties of a Substance to an Interference pattern that can be used to Superpose one Substance on another.
This is accomplished by mapping a Property name to a Miscibility. To get the Miscibility for a given Property, you can call MiscibilityPerspective::Instance()->GetTypeFromNameAs< Pointer< Miscibility > >(PropertyPerspective::Instance().GetNameFromId(PROPERTY));
The Superposing of Substances is handled by the Mix() Reaction.

Constructor & Destructor Documentation

◆ Miscibility() [1/3]

bio::chemical::Miscibility::Miscibility ( )

Ensure virtual methods point to Class implementations.
Id should be set later.

◆ Miscibility() [2/3]

bio::chemical::Miscibility::Miscibility ( const Property property)
Parameters
propertywhat *this applies to.

◆ Miscibility() [3/3]

bio::chemical::Miscibility::Miscibility ( const Name name)
Parameters
namethe name of the Property that *this applies to.

◆ ~Miscibility()

bio::chemical::Miscibility::~Miscibility ( )
virtual

Will delete mInterference if it is not NULL.

Member Function Documentation

◆ Apply()

bool bio::chemical::Miscibility::Apply ( Pointer< Substance target,
Pointer< const Substance other 
) const
virtual

Apply *this to mix two Substances.

Parameters
target
other
Returns
whether or not the mix was applied.

◆ GetDisplacement()

Pointer< const physical::Wave > bio::chemical::Miscibility::GetDisplacement ( Pointer< const Substance substance) const
virtual

Get the right sub-object (or bonded object) of the given Substance for use in Wave::Superpose.
The Wave returned should be able to be ForceCasted to the expected object per the given Interference.
For example, if the

Parameters
substance
Returns

◆ GetInterference()

Pointer< physical::Interference > bio::chemical::Miscibility::GetInterference ( ) const
virtual

Get the Interference pattern that can be used to Superpose one Substance on another.

Returns
a Clone() of mInterference

◆ GetInterferenceFor()

Pointer< physical::Interference > bio::chemical::Miscibility::GetInterferenceFor ( Pointer< const physical::Wave target,
Pointer< const physical::Wave displacement 
) const
virtual

Get the Interference pattern for the given Waves.
This will apply mSuperposition to any Symmetries not covered by mInterference.

Parameters
target
displacement
Returns
a newly allocated Interference.

◆ GetSuperposition()

const Superposition & bio::chemical::Miscibility::GetSuperposition ( ) const
Returns
the default Superposition for *this.

◆ IsPassthrough()

bool bio::chemical::Miscibility::IsPassthrough ( ) const
Returns
whether or not *this is Passthrough.

◆ RegisterDefaults()

void bio::chemical::Miscibility::RegisterDefaults ( )
static

Register default Miscibilities for common Properties.

◆ SetInterference()

void bio::chemical::Miscibility::SetInterference ( Pointer< physical::Interference interference)

Set the Interference pattern that can be used to Superpose one Substance on another.

Parameters
interference

◆ SetPassthrough()

void bio::chemical::Miscibility::SetPassthrough ( bool  passthrough)

Set whether *this should be treated as Passthrough for Symmetry recursion.

Parameters
passthrough

◆ SetSuperposition()

void bio::chemical::Miscibility::SetSuperposition ( const Superposition superposition)

Set the superposition used for Interference when none is provided.

Parameters
superposition

Member Data Documentation

◆ mInterference

Pointer< physical::Interference > bio::chemical::Miscibility::mInterference
protected

◆ mIsPassthrough

bool bio::chemical::Miscibility::mIsPassthrough
protected

◆ mSuperposition

Superposition bio::chemical::Miscibility::mSuperposition
protected

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