Develop Biology
The language of life
bio::physical::Filterable Class Reference

#include <Filterable.h>

+ Inheritance diagram for bio::physical::Filterable:
+ Collaboration diagram for bio::physical::Filterable:

Public Member Functions

 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::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
 

Protected Attributes

Filter m_filter
 
- Protected Attributes inherited from bio::physical::Class< Filterable >
Filterablem_object
 
- Protected Attributes inherited from bio::physical::Wave
Wavem_signal
 
Symmetrym_symmetry
 
- Protected Attributes inherited from bio::VirtualBase
bool m_hasBeenInitialized
 

Additional Inherited Members

- 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)
 
- 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
 

Detailed Description

Filterable objects have a Filter. NOTE: Filterable objects only use a single Filter at a time. See log::Writer for example usage.

Definition at line 38 of file Filterable.h.

Constructor & Destructor Documentation

◆ Filterable()

bio::physical::Filterable::Filterable ( Filter  filter)
Parameters
filter

Definition at line 31 of file Filterable.cpp.

32 :
33 Class(
34 this,
35 new Symmetry(
36 "m_filter",
39{
40}
Class(Filterable *object, Symmetry *symmetry=NULL)
Definition: Class.h:46
Filter Default()
SymmetryType DefineVariable()

◆ ~Filterable()

bio::physical::Filterable::~Filterable ( )
virtual

Definition at line 54 of file Filterable.cpp.

55{
56}

Member Function Documentation

◆ BIO_DISAMBIGUATE_ALL_CLASS_METHODS()

bio::physical::Filterable::BIO_DISAMBIGUATE_ALL_CLASS_METHODS ( physical  ,
Filterable   
)

Ensure virtual methods point to Class implementations.

◆ GetFilter()

Filter bio::physical::Filterable::GetFilter ( ) const
Returns
the Filter used by *this.

Definition at line 63 of file Filterable.cpp.

64{
65 return m_filter;
66}

References m_filter.

◆ InitializeImplementation()

void bio::physical::Filterable::InitializeImplementation ( ByteStreams  args)
virtual

VirtualBase required method. See that class for details (in common/)

Parameters
args

Implements bio::VirtualBase.

Reimplemented in bio::log::Writer.

Definition at line 82 of file Filterable.cpp.

83{
84 BIO_SANITIZE(args.size() == 1 && args[0].Is(m_filter), ,
85 return);
86 m_filter = args[0];
87}
#define BIO_SANITIZE(test, success, failure)

References BIO_SANITIZE, and m_filter.

◆ Reify()

Code bio::physical::Filterable::Reify ( Symmetry symmetry)
virtual

Required method from Wave. See that class for details. Reconstruct *this from the given Symmetry.

Parameters
symmetry

Reimplemented from bio::physical::Wave.

Reimplemented in bio::molecular::Molecule, and bio::molecular::Surface.

Definition at line 74 of file Filterable.cpp.

75{
76 BIO_SANITIZE(symmetry, ,
77 return code::BadArgument1());
78 m_filter = symmetry->GetValue();
79 return code::Success();
80}
Code BadArgument1()
Code Success()

References bio::code::BadArgument1(), BIO_SANITIZE, bio::physical::Symmetry::GetValue(), m_filter, and bio::code::Success().

◆ SetFilter()

void bio::physical::Filterable::SetFilter ( Filter  filter)
virtual

Set the filter for *this. Overload this to propagate Filter changes to own classes, etc.

Parameters
filter

Definition at line 58 of file Filterable.cpp.

59{
60 m_filter = filter;
61}

References m_filter.

◆ Spin()

Symmetry * bio::physical::Filterable::Spin ( ) const
virtual

Required method from Wave. See that class for details.

Returns
a Symmetrical image of *this

Reimplemented from bio::physical::Wave.

Reimplemented in bio::molecular::Molecule, and bio::molecular::Surface.

Definition at line 68 of file Filterable.cpp.

69{
71 return Wave::Spin();
72}
void Set(T in)
Definition: ByteStream.h:147
virtual ByteStream * AccessValue()
Definition: Symmetry.cpp:130
virtual Symmetry * Spin() const
Definition: Wave.cpp:59
Symmetry * m_symmetry
Definition: Wave.h:272

References bio::physical::Symmetry::AccessValue(), m_filter, bio::physical::Wave::m_symmetry, bio::ByteStream::Set(), and bio::physical::Wave::Spin().

Member Data Documentation

◆ m_filter

Filter bio::physical::Filterable::m_filter
protected

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