|
libbio
|
#include <Interference.h>


Protected Member Functions | |
| virtual Pointer< const SuperSymmetry > | GetSuperSymmetryFor (const Id &symmetry) const |
| virtual Pointer< SuperSymmetry > | GetSuperSymmetryFor (const Id &symmetry) |
| void | ClearSuperSymmetries () |
| void | CopySuperSymmetriesFrom (const Interference &other) |
Protected Attributes | |
| Line | mSuperSymmetries |
Protected Attributes inherited from bio::physical::Class< Interference > | |
| Pointer< Interference > | mObject |
Protected Attributes inherited from bio::physical::Wave | |
| LazyPointer< Symmetry > | mSymmetry |
| bool | mHasSignal |
| uint16_t | mTypeId |
Additional Inherited Members | |
Static Public Member Functions inherited from bio::physical::Class< Interference > | |
| static Pointer< Interference > | 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) |
Interference represents the strategy for combining 2 (or more) Waves.
Because Waves do not have a concept of physical separation, their point of incidence (where they are Superpose()ed) does not have any bearing on the properties of the Waves (e.g. phase or angle), as it would in reality. Thus, the role of Interference is to determine what those properties should be and how the 2+ Waves should combine.
For example, Interference could cause one Wave to cancel out another by setting the first to 0 or false; this would be like destructive interference. Another Interference could cause the same 2 Waves to add together, like constructive interference.
To accommodate Waves of arbitrary complexity (i.e. the number of Wave components), Interference can be recursive.
When accessing the Superposition of a given Symmetry, the Wave Superposing others may choose to also access the sub-interference for that Symmetry. This is done on a case-by-case basis, according to the implementation of Superpose.
Here, Symmetries can be thought of as Wave components.
| bio::physical::Interference::Interference | ( | ) |
Disambiguate all Class methods.
| bio::physical::Interference::Interference | ( | const Interference & | other | ) |
|
virtual |
|
protected |
|
protected |
|
virtual |
Get the Interference for the given Symmetry.
| symmetry | The Symmetry to get the Interference for. |
|
virtual |
|
protectedvirtual |
|
protectedvirtual |
| Interference & bio::physical::Interference::operator= | ( | const Interference & | other | ) |
|
virtual |
Set the Interference for the given Symmetry.
Creates a SuperSymmetry for the given Symmetry if one does not already exist; uses the superposition::Complex().
| symmetry | The Symmetry to set the Interference for. |
| interference | The Interference to set. |
|
virtual |
Set the Superposition for the given Symmetry.
Creates a SuperSymmetry for the given Symmetry if one does not already exist.
| symmetry | The Symmetry to set the Superposition for. |
| superposition | The Superposition to set. |
|
mutableprotected |
Internal map of Symmetry Id to Superposition pairs, plus whatever else SuperSymmetry provides.