Alternaria
fit cylinders and ellipsoids to fungus
Structure Class Reference

An Alternaria structure element. More...

#include <structure.h>

Inheritance diagram for Structure:
Collaboration diagram for Structure:

List of all members.

Public Member Functions

 Structure (float length, float width, float base_theta, float base_psi, float theta, float psi, float opacity, size_t level, const class Structure_density *density) throw (jwscxx::base::Arg_error)
 Constructs a Structure.
 Structure (const Structure &s)
 Constructs a Structure by copying another.
virtual ~Structure ()
 Deletes this Structure.
virtual Structureclone () const =0
 Clones this Structure.
virtual Structurerecursively_clone () const =0
 Recursively clones this Structure and all its descendents.
virtual Structureoperator= (const Structure &s)
 Copies a Structure into this Structure.
uint32_t get_id () const
 Returns the ID of this Structure.
Structureget_root ()
 Returns the root ancestor for this Structure.
std::vector< Structure * > * get_descendants ()
 Returns a vector of all this structure and all its descendants.
class Apical_structureget_apical ()
 Returns the apical for this Structure.
std::list< class
Lateral_structure * > & 
get_laterals ()
 Returns the laterals for this Structure.
const jwsc::Vector_f * get_begin_pt () const
 Returns the growth beginning point of this Structure.
const jwsc::Vector_f * get_end_pt () const
 Returns the growth ending point of this Structure.
const jwsc::Vector_f * get_centroid () const
 Returns the centroid of this Structure.
const jwsc::Vector_f * get_growth_dir () const
 Returns the growth direction of this Structure.
Structureget_parent () const
 Returns the parent of this Structure.
size_t get_level () const
 Returns the level of this Structure.
float get_length () const
 Returns the length of this Structure.
float get_width () const
 Returns the width of this Structure.
float get_theta () const
 Returns the theta of this Structure.
float get_base_theta () const
 Returns the base_theta of this Structure.
float get_psi () const
 Returns the psi of this Structure.
float get_base_psi () const
 Returns the base_psi of this Structure.
float get_opacity () const
 Returns the opacity of this Structure.
float get_log_prob () const
 Returns the log probability of this Structure.
float get_log_prob_descend () const
 Returns the log probability of this Structure and all its descendents.
virtual const char * get_type_str () const =0
 Returns the type of this Structure in the form of a string.
class Structure_densityget_density () const
 Returns the density parameters used by this Structure.
void set_apical (class Apical_structure *s)
 Sets the apical growth of this Structure.
void add_lateral (class Lateral_structure *s)
 Adds a lateral growth to this Structure.
void remove_lateral (class Lateral_structure *s) throw (jwscxx::base::Arg_error)
 Removes a lateral growth from this Structure.
void set_size (float length, float width) throw (jwscxx::base::Arg_error)
 Sets the length and width of this Structure.
void set_length (float length) throw (jwscxx::base::Arg_error)
 Sets the length of this Structure.
void set_width (float width) throw (jwscxx::base::Arg_error)
 Sets the width of this Structure.
void set_theta (float theta) throw (jwscxx::base::Arg_error)
 Sets the theta of this Structure.
void set_base_theta (float base_theta) throw (jwscxx::base::Arg_error)
 Sets the base_theta of this Structure.
void set_psi (float psi) throw (jwscxx::base::Arg_error)
 Sets the psi of this Structure.
void set_base_psi (float base_psi) throw (jwscxx::base::Arg_error)
 Sets the base_psi of this Structure.
void set_orientation (float theta, float psi) throw (jwscxx::base::Arg_error)
 Sets the orientation of this Structure.
void set_base_orientation (float base_theta, float base_psi) throw (jwscxx::base::Arg_error)
 Sets the base orientation of this Structure.
void set_opacity (float opacity) throw (jwscxx::base::Arg_error)
 Sets the opacity of this Structure.
virtual bool draw_in_matblock_f (jwsc::Matblock_f *M_blk, float x, float y, float z, float x_scale, float y_scale, float z_scale, bool fill=true) const =0
 Draws this Structure in a matrix block.
bool recursively_draw_in_matblock_f (jwsc::Matblock_f *M_blk, float x, float y, float z, float x_scale, float y_scale, float z_scale, bool fill=true) const
 Recursively draws this Structure and all its descendents in a matrix block.
Structureget_terminal_apical ()
 Draws this Structure in an OpenGL environment.
class Lateral_structureget_random_lateral () throw (jwscxx::base::Result_error)
 Returns a random Lateral_structure from Structure::laterals.
virtual float get_intersection (jwsc::Vector_f **isect_out, uint32_t n, const jwsc::Vector_f *p1_in, const jwsc::Vector_f *p2_in)=0 throw (jwscxx::base::Arg_error)
 Calculates an intersection point between a line and this Structure, if it exists.
virtual void print (ostream &out=std::cout) const
 Prints this Structure to an output stream.
void recursively_print (ostream &out=std::cout) const
 Prints this Structure and all its descendents to an output stream.
void recursively_check_structure () const
 Checks the values for this Structure and all its descendents.

Protected Member Functions

void update_angles () throw (jwscxx::base::Arg_error)
 Updates Structure::theta and Structure::psi.
void update_R ()
 Updates Structure::R.
void recursively_update_R ()
 Recursively updates Structure::R.
void update_growth_dir_from_R ()
 Updates Structure::growth_dir.
void update_growth_dir_and_length_from_pts () throw (jwscxx::base::Arg_error)
 Updates Structure::growth_dir and Structure::length.
void update_centroid () throw (jwscxx::base::Arg_error)
 Updates Structure::centroid.
void update_begin_pt ()
 Updates Structure::begin_pt.
void update_end_pt ()
 Updates Structure::end_pt.
void update_apical () throw (jwscxx::base::Arg_error)
 Updates the Structure::apical.
void update_laterals () throw (jwscxx::base::Arg_error)
 Updates the Structure::laterals.
virtual void update_log_prob ()
 Updates Structure::log_prob.
void update_ancestry_log_prob ()
 Recursively updates the Structure::log_prob of this and ancestry Structure.
void recursively_update_levels (int level_delta) throw (jwscxx::base::Result_error)
 Recursively updates Structure::level and all its descendants by level_delta.
void check_length () const throw (jwscxx::base::Arg_error)
 Checks the length of this Structure against its density range.
void check_width () const throw (jwscxx::base::Arg_error)
 Checks the width of this Structure against its density range.
void check_theta () const throw (jwscxx::base::Arg_error)
 Checks the theta of this Structure against its density range.
void check_base_theta () const throw (jwscxx::base::Arg_error)
 Checks the base_theta of this Structure against its limits.
void check_psi () const throw (jwscxx::base::Arg_error)
 Checks the psi of this Structure against its density range.
void check_base_psi () const throw (jwscxx::base::Arg_error)
 Checks the base_psi of this Structure against its limits.
void check_opacity () const throw (jwscxx::base::Arg_error)
 Checks the opacity of this Structure against its density range.
virtual void check_centroid () const =0 throw (jwscxx::base::Arg_error)
 Checks the centroid of this Structure against its density range.
bool has_child_id (uint32_t id) const
 Checks an ID against this Structure immediate childrens'.

Protected Attributes

Structureparent
 Parent structure.
class Apical_structureapical
 Apical growth structure.
std::list< class
Lateral_structure * > 
laterals
 Lateral intra structures.
jwsc::Vector_f * begin_pt
 Beginning point for growth.
jwsc::Vector_f * end_pt
 Ending point for growth.
jwsc::Vector_f * centroid
 Centroid position.
jwsc::Vector_f * growth_dir
 Growth direction unit vector.
jwsc::Matrix_f * R
 Cumulative rotation matrix including all ancestors.
class Structure_densitydensity
 Parameters for density functions over this Structure.
double log_prob
 Log probability of this Structure.
double log_prob_descend
 Log probability of this Structure including all descendant growth.
float length
 Length from ::begin_pt to ::end_pt.
float width
 Width of the Structure.
float theta
 Euler angle: rotation about the x-axis.
float base_theta
 Euler angle: base rotation about the x-axis.
float psi
 Euler angle: rotation about the z-axis.
float base_psi
 Euler angle: base rotation about the z-axis.
float opacity
 Opacity of pigment.
uint32_t id
 Unique ID.
size_t level
 Level in the tree.

Static Private Member Functions

static uint32_t generate_id ()
 Generates a unique ID for a Structure.

Friends

class Apical_structure
class Lateral_structure

Detailed Description

An Alternaria structure element.

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

Definition at line 101 of file structure.h.


Constructor & Destructor Documentation

Structure::Structure ( float  length,
float  width,
float  base_theta,
float  base_psi,
float  theta,
float  psi,
float  opacity,
size_t  level,
const class Structure_density density 
) throw (jwscxx::base::Arg_error)

Constructs a Structure.

Parameters:
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.
levelLevel of the Structure.
densityStructure_density parameters for probabilities.
Exceptions:
jwscxx::base::Arg_errorStructure values are not in the density parameter ranges.

Definition at line 396 of file structure.cpp.

Structure::Structure ( const Structure s)

Constructs a Structure by copying another.

Parameters:
sStructure to construct a new one from.

Definition at line 443 of file structure.cpp.

Structure::~Structure ( ) [virtual]

Deletes this Structure.

Frees all dynamically allocated members and all descendants.

Definition at line 479 of file structure.cpp.


Member Function Documentation

virtual Structure* Structure::clone ( ) const [pure virtual]
virtual Structure* Structure::recursively_clone ( ) const [pure virtual]

Recursively clones this Structure and all its descendents.

Implemented in Apical_structure, and Lateral_structure.

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

Copies a Structure into this Structure.

Parameters:
sStructure to copy.
Returns:
A reference to this Structure with s copied into it.

Definition at line 502 of file structure.cpp.

uint32_t Structure::get_id ( ) const [inline]

Returns the ID of this Structure.

Definition at line 142 of file structure.h.

Structure * Structure::get_root ( )

Returns the root ancestor for this Structure.

Returns:
Root ancestor for this Structure.

Definition at line 538 of file structure.cpp.

vector< Structure * > * Structure::get_descendants ( )

Returns a vector of all this structure and all its descendants.

Returns:
A vector of this structure and all its descendants.

Definition at line 548 of file structure.cpp.

class Apical_structure* Structure::get_apical ( ) [inline]

Returns the apical for this Structure.

Definition at line 157 of file structure.h.

std::list<class Lateral_structure*>& Structure::get_laterals ( ) [inline]

Returns the laterals for this Structure.

Definition at line 161 of file structure.h.

const jwsc::Vector_f* Structure::get_begin_pt ( ) const [inline]

Returns the growth beginning point of this Structure.

Definition at line 165 of file structure.h.

const jwsc::Vector_f* Structure::get_end_pt ( ) const [inline]

Returns the growth ending point of this Structure.

Definition at line 169 of file structure.h.

const jwsc::Vector_f* Structure::get_centroid ( ) const [inline]

Returns the centroid of this Structure.

Definition at line 173 of file structure.h.

const jwsc::Vector_f* Structure::get_growth_dir ( ) const [inline]

Returns the growth direction of this Structure.

Definition at line 177 of file structure.h.

Structure* Structure::get_parent ( ) const [inline]

Returns the parent of this Structure.

Definition at line 181 of file structure.h.

size_t Structure::get_level ( ) const [inline]

Returns the level of this Structure.

Definition at line 185 of file structure.h.

float Structure::get_length ( ) const [inline]

Returns the length of this Structure.

Definition at line 189 of file structure.h.

float Structure::get_width ( ) const [inline]

Returns the width of this Structure.

Definition at line 193 of file structure.h.

float Structure::get_theta ( ) const [inline]

Returns the theta of this Structure.

Definition at line 197 of file structure.h.

float Structure::get_base_theta ( ) const [inline]

Returns the base_theta of this Structure.

Definition at line 201 of file structure.h.

float Structure::get_psi ( ) const [inline]

Returns the psi of this Structure.

Definition at line 205 of file structure.h.

float Structure::get_base_psi ( ) const [inline]

Returns the base_psi of this Structure.

Definition at line 209 of file structure.h.

float Structure::get_opacity ( ) const [inline]

Returns the opacity of this Structure.

Definition at line 213 of file structure.h.

float Structure::get_log_prob ( ) const [inline]

Returns the log probability of this Structure.

Definition at line 217 of file structure.h.

float Structure::get_log_prob_descend ( ) const [inline]

Returns the log probability of this Structure and all its descendents.

Definition at line 224 of file structure.h.

virtual const char* Structure::get_type_str ( ) const [pure virtual]

Returns the type of this Structure in the form of a string.

Implemented in Apical_hypha, Lateral_hypha, and Spore.

class Structure_density* Structure::get_density ( ) const [inline]

Returns the density parameters used by this Structure.

Reimplemented in Lateral_structure, Apical_hypha, and Spore.

Definition at line 234 of file structure.h.

void Structure::set_apical ( class Apical_structure s) [inline]

Sets the apical growth of this Structure.

Definition at line 239 of file structure.h.

void Structure::add_lateral ( class Lateral_structure s) [inline]

Adds a lateral growth to this Structure.

Definition at line 244 of file structure.h.

void Structure::remove_lateral ( class Lateral_structure s) throw (jwscxx::base::Arg_error)

Removes a lateral growth from this Structure.

Definition at line 578 of file structure.cpp.

void Structure::set_size ( float  length,
float  width 
) throw (jwscxx::base::Arg_error)

Sets the length and width of this Structure.

The length is changed by moving the Structure::end_pt along the Structure::growth_dir.

Parameters:
lengthNew Structure::length.
widthNew Structure::width.
Exceptions:
jwscxx::base::Arg_errorThe change would result in a Structure parameter that is not consistent with the parameter density functions.

Definition at line 635 of file structure.cpp.

void Structure::set_length ( float  length) throw (jwscxx::base::Arg_error)

Sets the length of this Structure.

The length is changed by moving the Structure::end_pt along the Structure::growth_dir.

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

Definition at line 605 of file structure.cpp.

void Structure::set_width ( float  width) throw (jwscxx::base::Arg_error)

Sets the width of this Structure.

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

Definition at line 618 of file structure.cpp.

void Structure::set_theta ( float  theta) throw (jwscxx::base::Arg_error)

Sets the theta of this Structure.

Parameters:
thetaNew Structure:theta angle.
Exceptions:
jwscxx::base::Arg_errorThe change would result in a Structure parameter that is not consistent with the parameter density functions.

Definition at line 683 of file structure.cpp.

void Structure::set_base_theta ( float  base_theta) throw (jwscxx::base::Arg_error)

Sets the base_theta of this Structure.

Parameters:
base_thetaNew Structure:base_theta angle.
Exceptions:
jwscxx::base::Arg_errorThe change would result in a Structure parameter that is not consistent with the parameter density functions.

Definition at line 696 of file structure.cpp.

void Structure::set_psi ( float  psi) throw (jwscxx::base::Arg_error)

Sets the psi of this Structure.

Parameters:
psiNew Structure:psi angle.
Exceptions:
jwscxx::base::Arg_errorThe change would result in a Structure parameter that is not consistent with the parameter density functions.

Definition at line 709 of file structure.cpp.

void Structure::set_base_psi ( float  base_psi) throw (jwscxx::base::Arg_error)

Sets the base_psi of this Structure.

Parameters:
base_psiNew Structure:base_psi angle.
Exceptions:
jwscxx::base::Arg_errorThe change would result in a Structure parameter that is not consistent with the parameter density functions.

Definition at line 722 of file structure.cpp.

void Structure::set_orientation ( float  theta,
float  psi 
) throw (jwscxx::base::Arg_error)

Sets the orientation of this Structure.

Parameters:
thetaNew Structure:theta angle.
psiNew Structure:psi angle.
Exceptions:
jwscxx::base::Arg_errorThe change would result in a Structure parameter that is not consistent with the parameter density functions.

Definition at line 736 of file structure.cpp.

void Structure::set_base_orientation ( float  base_theta,
float  base_psi 
) throw (jwscxx::base::Arg_error)

Sets the base orientation of this Structure.

Parameters:
base_thetaNew Structure:base_theta angle.
base_psiNew Structure:base_psi angle.
Exceptions:
jwscxx::base::Arg_errorThe change would result in a Structure parameter that is not consistent with the parameter density functions.

Definition at line 787 of file structure.cpp.

void Structure::set_opacity ( float  opacity) throw (jwscxx::base::Arg_error)

Sets the opacity of this Structure.

Parameters:
opacityNew Structure::opacity.
Exceptions:
jwscxx::base::Arg_errorThe change results in a Structure parameter that is not consistent with the parameter density functions.

Definition at line 838 of file structure.cpp.

virtual bool Structure::draw_in_matblock_f ( jwsc::Matblock_f *  M_blk,
float  x,
float  y,
float  z,
float  x_scale,
float  y_scale,
float  z_scale,
bool  fill = true 
) const [pure virtual]

Draws this Structure in a matrix block.

Implemented in Apical_hypha, Lateral_hypha, and Spore.

bool Structure::recursively_draw_in_matblock_f ( jwsc::Matblock_f *  M_blk,
float  x,
float  y,
float  z,
float  x_scale,
float  y_scale,
float  z_scale,
bool  fill = true 
) const

Recursively draws this Structure and all its descendents in a matrix block.

Parameters:
M_blkMatrix block to draw the Structure in.
xPosition of the first M_blk column index in the Structure coordinate system.
yPosition of the first M_blk row index in the Structure coordinate system.
zPosition of the first M_blk matrix index in the Structure coordinate system.
x_scaleNumber of Structure coordinate system units per column.
y_scaleNumber of Structure coordinate system units per row.
z_scaleNumber of Structure coordinate system units per matrix.
fillSet to 1 if the Structure is to be filled; 0 otherwise.
Returns:
True if any of the structures intersect with something other than one of its children.

Definition at line 888 of file structure.cpp.

Structure * Structure::get_terminal_apical ( )

Draws this Structure in an OpenGL environment.

Recursively draws this Structure and all its descendents in an OpenGL environment. Returns terminal apical descendent structure, possibly including this structure.

Parameters:
quadGLUquadric to use for drawing.
scaleNumber of GL units per structure coordinate system units. Recursively checks the apical descendents of this Structure. If there are no apical descendents, a pointer to this Structure is returned.

Definition at line 956 of file structure.cpp.

Lateral_structure * Structure::get_random_lateral ( ) throw (jwscxx::base::Result_error)

Returns a random Lateral_structure from Structure::laterals.

Uniformly samples a Lateral_structure from Structure::laterals.

Exceptions:
jwscxx::base::Result_errorThis Structure does not have any laterals.

Definition at line 975 of file structure.cpp.

virtual float Structure::get_intersection ( jwsc::Vector_f **  isect_out,
uint32_t  n,
const jwsc::Vector_f *  p1_in,
const jwsc::Vector_f *  p2_in 
) throw (jwscxx::base::Arg_error) [pure virtual]

Calculates an intersection point between a line and this Structure, if it exists.

Implemented in Apical_hypha, Lateral_hypha, and Spore.

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

Prints this Structure to an output stream.

The 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
        Parent: parent
        Apical: apical
      Laterals: L1 ... Ln
      Log Prob: logprob
Parameters:
outOutput stream to print to.

Reimplemented in Lateral_structure.

Definition at line 1022 of file structure.cpp.

void Structure::recursively_print ( ostream &  out = std::cout) const

Prints this Structure and all its descendents to an output stream.

Parameters:
outOutput stream to print to.

Definition at line 1065 of file structure.cpp.

void Structure::recursively_check_structure ( ) const

Checks the values for this Structure and all its descendents.

Recursively checks this and all descendants.

Definition at line 1082 of file structure.cpp.

void Structure::update_angles ( ) throw (jwscxx::base::Arg_error) [protected]

Updates Structure::theta and Structure::psi.

Depends on Structure::growth_dir and Structure::parent::R.

Exceptions:
jwscxx::base::Arg_errorUpdating the Structure values results in values that are out of density parameter ranges.

Definition at line 1140 of file structure.cpp.

void Structure::update_R ( ) [protected]

Updates Structure::R.

Depends on Structure::parent, Structure::theta, and Structure::psi.

Definition at line 1262 of file structure.cpp.

void Structure::recursively_update_R ( ) [protected]

Recursively updates Structure::R.

void Structure::update_growth_dir_from_R ( ) [protected]

Updates Structure::growth_dir.

Depends on Structure::R.

Definition at line 1282 of file structure.cpp.

void Structure::update_growth_dir_and_length_from_pts ( ) throw (jwscxx::base::Arg_error) [protected]

Updates Structure::growth_dir and Structure::length.

Depends on Structure::begin_pt and Structure::end_pt.

Definition at line 1292 of file structure.cpp.

void Structure::update_centroid ( ) throw (jwscxx::base::Arg_error) [protected]

Updates Structure::centroid.

Depends on Structure::length, Structure::begin_pt, and Structure::growth_dir.

Exceptions:
jwscxx::base::Arg_errorUpdating the Structure values results in values that are out of density parameter ranges.

Definition at line 1309 of file structure.cpp.

void Structure::update_begin_pt ( ) [protected]

Updates Structure::begin_pt.

Depends on Structure::length, Structure::centoid, and Structure::growth_dir.

Definition at line 1321 of file structure.cpp.

void Structure::update_end_pt ( ) [protected]

Updates Structure::end_pt.

Depends on Structure::length, Structure::centoid, and Structure::growth_dir.

Definition at line 1331 of file structure.cpp.

void Structure::update_apical ( ) throw (jwscxx::base::Arg_error) [protected]

Updates the Structure::apical.

Exceptions:
jwscxx::base::Arg_errorUpdating the Apical_structure values results in values that are out of density parameter ranges.

Definition at line 1343 of file structure.cpp.

void Structure::update_laterals ( ) throw (jwscxx::base::Arg_error) [protected]

Updates the Structure::laterals.

Exceptions:
jwscxx::base::Arg_errorUpdating the Apical_structure values results in values that are out of density parameter ranges.

Definition at line 1357 of file structure.cpp.

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

Updates Structure::log_prob.

Updated from the Structure and its apical and laterals.

Reimplemented in Apical_structure, Lateral_structure, Apical_hypha, and Spore.

Definition at line 1368 of file structure.cpp.

void Structure::update_ancestry_log_prob ( ) [protected]

Recursively updates the Structure::log_prob of this and ancestry Structure.

Recursively calls Structure::update_log_prob() on this and all ancestry Structure.

Definition at line 1449 of file structure.cpp.

void Structure::recursively_update_levels ( int  level_delta) throw (jwscxx::base::Result_error) [protected]

Recursively updates Structure::level and all its descendants by level_delta.

Parameters:
level_deltaThe amount to change the level of this Structure and all its descendants.
Exceptions:
jwscxx::base::Result_errorChanging the level would result in a negative value.

Definition at line 1467 of file structure.cpp.

void Structure::check_length ( ) const throw (jwscxx::base::Arg_error) [protected]

Checks the length of this Structure against its density range.

Exceptions:
jwscxx::base::Arg_errorStructure length is not in its density range.

Definition at line 1497 of file structure.cpp.

void Structure::check_width ( ) const throw (jwscxx::base::Arg_error) [protected]

Checks the width of this Structure against its density range.

Exceptions:
jwscxx::base::Arg_errorStructure width is not in its density range.

Definition at line 1515 of file structure.cpp.

void Structure::check_theta ( ) const throw (jwscxx::base::Arg_error) [protected]

Checks the theta of this Structure against its density range.

Exceptions:
jwscxx::base::Arg_errorStructure theta is not in its density range.

Definition at line 1533 of file structure.cpp.

void Structure::check_base_theta ( ) const throw (jwscxx::base::Arg_error) [protected]

Checks the base_theta of this Structure against its limits.

Exceptions:
jwscxx::base::Arg_errorStructure theta is not in its density range.

Definition at line 1552 of file structure.cpp.

void Structure::check_psi ( ) const throw (jwscxx::base::Arg_error) [protected]

Checks the psi of this Structure against its density range.

Exceptions:
jwscxx::base::Arg_errorStructure psi is not in its density range.

Definition at line 1571 of file structure.cpp.

void Structure::check_base_psi ( ) const throw (jwscxx::base::Arg_error) [protected]

Checks the base_psi of this Structure against its limits.

Exceptions:
jwscxx::base::Arg_errorStructure psi is not in its density range.

Definition at line 1590 of file structure.cpp.

void Structure::check_opacity ( ) const throw (jwscxx::base::Arg_error) [protected]

Checks the opacity of this Structure against its density range.

Exceptions:
jwscxx::base::Arg_errorStructure opacity is not in its density range.

Definition at line 1609 of file structure.cpp.

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

Checks the centroid of this Structure against its density range.

Implemented in Apical_structure, and Lateral_structure.

bool Structure::has_child_id ( uint32_t  id) const [protected]

Checks an ID against this Structure immediate childrens'.

Parameters:
idId to check.
Returns:
True if one of the children (apical or lateral) has the id.

Definition at line 1113 of file structure.cpp.

uint32_t Structure::generate_id ( ) [static, private]

Generates a unique ID for a Structure.

Definition at line 1624 of file structure.cpp.


Friends And Related Function Documentation

friend class Apical_structure [friend]

Reimplemented in Lateral_structure.

Definition at line 555 of file structure.h.

friend class Lateral_structure [friend]

Reimplemented in Apical_structure.

Definition at line 556 of file structure.h.


Member Data Documentation

Parent structure.

Definition at line 486 of file structure.h.

class Apical_structure* Structure::apical [protected]

Apical growth structure.

Definition at line 489 of file structure.h.

std::list<class Lateral_structure*> Structure::laterals [protected]

Lateral intra structures.

Definition at line 492 of file structure.h.

jwsc::Vector_f* Structure::begin_pt [protected]

Beginning point for growth.

Definition at line 495 of file structure.h.

jwsc::Vector_f* Structure::end_pt [protected]

Ending point for growth.

Definition at line 498 of file structure.h.

jwsc::Vector_f* Structure::centroid [protected]

Centroid position.

Definition at line 501 of file structure.h.

jwsc::Vector_f* Structure::growth_dir [protected]

Growth direction unit vector.

Definition at line 504 of file structure.h.

jwsc::Matrix_f* Structure::R [protected]

Cumulative rotation matrix including all ancestors.

Definition at line 507 of file structure.h.

Parameters for density functions over this Structure.

Reimplemented in Apical_structure, Lateral_structure, Apical_hypha, Lateral_hypha, and Spore.

Definition at line 510 of file structure.h.

double Structure::log_prob [protected]

Log probability of this Structure.

Definition at line 513 of file structure.h.

double Structure::log_prob_descend [protected]

Log probability of this Structure including all descendant growth.

Definition at line 519 of file structure.h.

float Structure::length [protected]

Length from ::begin_pt to ::end_pt.

Definition at line 522 of file structure.h.

float Structure::width [protected]

Width of the Structure.

Definition at line 525 of file structure.h.

float Structure::theta [protected]

Euler angle: rotation about the x-axis.

Definition at line 528 of file structure.h.

float Structure::base_theta [protected]

Euler angle: base rotation about the x-axis.

Definition at line 531 of file structure.h.

float Structure::psi [protected]

Euler angle: rotation about the z-axis.

Definition at line 534 of file structure.h.

float Structure::base_psi [protected]

Euler angle: base rotation about the z-axis.

Definition at line 537 of file structure.h.

float Structure::opacity [protected]

Opacity of pigment.

Definition at line 540 of file structure.h.

uint32_t Structure::id [protected]

Unique ID.

Definition at line 543 of file structure.h.

size_t Structure::level [protected]

Level in the tree.

Definition at line 546 of file structure.h.


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