Alternaria
fit cylinders and ellipsoids to fungus
Lateral_structure Class Reference

An Alternaria structure element postioned laterally along another structure element. More...

#include <structure.h>

Inheritance diagram for Lateral_structure:
Collaboration diagram for Lateral_structure:

List of all members.

Public Member Functions

 Lateral_structure (float centroid_x, float centroid_y, float centroid_z, float lat_dist, float length, float width, float base_theta, float base_psi, float theta, float psi, float opacity, size_t level, const class Lateral_structure_density *density) throw (jwscxx::base::Arg_error)
 Creates a parent-less Lateral_structure positioned w.r.t. a centroid.
 Lateral_structure (Structure *parent, float lat_dist, float length, float width, float base_theta, float base_psi, float theta, float psi, float opacity, const class Lateral_structure_density *density) throw (jwscxx::base::Arg_error)
 Creates a Lateral_structure positioned w.r.t. a parent.
 Lateral_structure (const Lateral_structure &s)
 Constructs a Lateral_structure by copying another.
virtual Lateral_structureclone () const =0
 Clones this Lateral_structure.
virtual Lateral_structurerecursively_clone () const
 Recursively clones this Lateral_structure and all its descendents.
virtual Lateral_structureoperator= (const Lateral_structure &s)
 Copies a Lateral_structure into this Lateral_structure.
virtual ~Lateral_structure ()
 Deletes a Lateral_structure.
float get_lat_dist () const
 Returns the normalized distance of this Lateral_structure from the begin_pt of its parent.
void set_parent (Structure *parent, float lat_dist) throw (jwscxx::base::Arg_error)
 Sets this Lateral_structure::lat_dist and parent.
void set_lat_dist (float lat_dist) throw (jwscxx::base::Arg_error)
 Sets this Lateral_structure::lat_dist.
class Lateral_structure_densityget_density () const
 Returns the density parameters used by this Structure.
virtual void print (ostream &out=std::cout) const
 Prints this Lateral_structure to an output stream.

Protected Member Functions

void update_from_parent_end_pt () throw (jwscxx::base::Arg_error)
 Updates the Lateral_structure to reflect the parent's Structure::end_pt.
void update_log_prob ()
 Updates Structure::log_prob.
void check_centroid () const throw (jwscxx::base::Arg_error)
 Checks the centroid of this Lateral_structure against its density range.
void check_lat_dist () const throw (jwscxx::base::Arg_error)
 Checks the lateral distance of this Lateral_structure against its density range.

Protected Attributes

class Lateral_structure_densitydensity
 Parameters for density functions over a Lateral_structure.
float lat_dist
 Normalized distance to the lateral from its parent's Structure::begin_pt.

Friends

class Structure
class Apical_structure

Detailed Description

An Alternaria structure element postioned laterally along another structure element.

Abstract class providing some basic functionality for all Alternaria lateral structure elements.

Definition at line 1254 of file structure.h.


Constructor & Destructor Documentation

Lateral_structure::Lateral_structure ( float  centroid_x,
float  centroid_y,
float  centroid_z,
float  lat_dist,
float  length,
float  width,
float  base_theta,
float  base_psi,
float  theta,
float  psi,
float  opacity,
size_t  level,
const class Lateral_structure_density density 
) throw (jwscxx::base::Arg_error)

Creates a parent-less Lateral_structure positioned w.r.t. a centroid.

Parameters:
centroid_xX-coord of the Structure::centroid.
centroid_yY-coord of the Structure::centroid.
centroid_zZ-coord of the Structure::centroid.
lat_distNormalized distance from parent Structure::begin_pt.
lengthLength from the Structure::begin_pt to Structure::end_pt.
widthWidth of the Structure.
base_thetaEuler angle: base rotation about the x-axis.
base_psiEuler angle: base rotation about the z-axis.
thetaEuler angle: rotation about the x-axis.
psiEuler angle: rotation about the z-axis.
opacityOpacity of the lateral.
levelLevel of the lateral.
densityStructure_density parameters for probabilities.
Exceptions:
jwscxx::base::Arg_errorLateral_structure values are not in the density parameter ranges.

Definition at line 3271 of file structure.cpp.

Lateral_structure::Lateral_structure ( Structure parent,
float  lat_dist,
float  length,
float  width,
float  base_theta,
float  base_psi,
float  theta,
float  psi,
float  opacity,
const class Lateral_structure_density density 
) throw (jwscxx::base::Arg_error)

Creates a Lateral_structure positioned w.r.t. a parent.

Parameters:
parentParent Structure.
lat_distNormalized distance from parent Structure::begin_pt.
lengthLength from the Structure::begin_pt to Structure::end_pt.
widthWidth of the Structure.
base_thetaEuler angle: base rotation about the x-axis.
base_psiEuler angle: base rotation about the z-axis.
thetaEuler angle: rotation about the x-axis.
psiEuler angle: rotation about the z-axis.
opacityOpacity of the Spore.
densityStructure_density parameters for probabilities.
Exceptions:
jwscxx::base::Arg_errorLateral_structure values are not in the density parameter range.

Definition at line 3324 of file structure.cpp.

Lateral_structure::Lateral_structure ( const Lateral_structure s)

Constructs a Lateral_structure by copying another.

Parameters:
sLateral_structure to construct a new one from.

Definition at line 3360 of file structure.cpp.

virtual Lateral_structure::~Lateral_structure ( ) [inline, virtual]

Deletes a Lateral_structure.

Definition at line 1318 of file structure.h.


Member Function Documentation

virtual Lateral_structure* Lateral_structure::clone ( ) const [pure virtual]

Clones this Lateral_structure.

Implements Structure.

Implemented in Lateral_hypha.

Lateral_structure * Lateral_structure::recursively_clone ( ) const [virtual]

Recursively clones this Lateral_structure and all its descendents.

Returns:
A pointer to a cloned Lateral_structure and all its descendants.

Implements Structure.

Definition at line 3368 of file structure.cpp.

Lateral_structure & Lateral_structure::operator= ( const Lateral_structure s) [virtual]

Copies a Lateral_structure into this Lateral_structure.

Parameters:
sLateral_structure to copy.
Returns:
A reference to this Lateral_structure with s copied into it.

Definition at line 3397 of file structure.cpp.

float Lateral_structure::get_lat_dist ( ) const [inline]

Returns the normalized distance of this Lateral_structure from the begin_pt of its parent.

Definition at line 1325 of file structure.h.

void Lateral_structure::set_parent ( Structure parent,
float  lat_dist 
) throw (jwscxx::base::Arg_error)

Sets this Lateral_structure::lat_dist and parent.

Parameters:
lat_distLateral distance to use in the parent.
Exceptions:
jwscxx::base::Arg_errorThe change would result in a Structure parameter that is not consistent with the parameter density functions.

Definition at line 3415 of file structure.cpp.

void Lateral_structure::set_lat_dist ( float  lat_dist) throw (jwscxx::base::Arg_error)

Sets this Lateral_structure::lat_dist.

Parameters:
lat_distNew Lateral_structure::lat_dist.
Exceptions:
jwscxx::base::Arg_errorThe change would result in a Structure parameter that is not consistent with the parameter density functions.

Definition at line 3497 of file structure.cpp.

class Lateral_structure_density* Lateral_structure::get_density ( ) const [inline]

Returns the density parameters used by this Structure.

Reimplemented from Structure.

Definition at line 1338 of file structure.h.

void Lateral_structure::print ( ostream &  out = std::cout) const [virtual]

Prints this Lateral_structure to an output stream.

The Lateral_structure::id are printed for the apical and laterals.

The format is as follows

     Structure: type name
            ID: id
         Level: level
      Centroid: x y z
        Length: length
         Width: width
    Base Theta: base_theta
      Base Psi: base_psi
         Theta: theta
           Psi: psi
       Opacity: opacity
        Apical: apical
      Laterals: L1 ... Ln
      Log Prob: logprob
      Lat Dist: latdist
Parameters:
outOutput stream to print to.

Reimplemented from Structure.

Definition at line 3574 of file structure.cpp.

void Lateral_structure::update_from_parent_end_pt ( ) throw (jwscxx::base::Arg_error) [protected]

Updates the Lateral_structure to reflect the parent's Structure::end_pt.

Definition at line 3586 of file structure.cpp.

void Lateral_structure::update_log_prob ( ) [protected, virtual]

Updates Structure::log_prob.

Updated from the Structure and its apical and laterals.

Reimplemented from Structure.

Definition at line 3609 of file structure.cpp.

void Lateral_structure::check_centroid ( ) const throw (jwscxx::base::Arg_error) [protected, virtual]

Checks the centroid of this Lateral_structure against its density range.

Exceptions:
jwscxx::base::Arg_errorLateral_structure centroid is not in its density range.

Implements Structure.

Definition at line 3654 of file structure.cpp.

void Lateral_structure::check_lat_dist ( ) const throw (jwscxx::base::Arg_error) [protected]

Checks the lateral distance of this Lateral_structure against its density range.

Exceptions:
jwscxx::base::Arg_errorLateral_structure distance is not in its density range.

Definition at line 3692 of file structure.cpp.


Friends And Related Function Documentation

friend class Structure [friend]

Definition at line 1382 of file structure.h.

friend class Apical_structure [friend]

Reimplemented from Structure.

Definition at line 1383 of file structure.h.


Member Data Documentation

Parameters for density functions over a Lateral_structure.

Reimplemented from Structure.

Reimplemented in Lateral_hypha.

Definition at line 1373 of file structure.h.

float Lateral_structure::lat_dist [protected]

Normalized distance to the lateral from its parent's Structure::begin_pt.

Definition at line 1379 of file structure.h.


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