Alternaria
fit cylinders and ellipsoids to fungus
|
An Alternaria structure element. More...
#include <structure.h>
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 Structure * | clone () const =0 |
Clones this Structure. | |
virtual Structure * | recursively_clone () const =0 |
Recursively clones this Structure and all its descendents. | |
virtual Structure & | operator= (const Structure &s) |
Copies a Structure into this Structure. | |
uint32_t | get_id () const |
Returns the ID of this Structure. | |
Structure * | get_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_structure * | get_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. | |
Structure * | get_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_density * | get_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. | |
Structure * | get_terminal_apical () |
Draws this Structure in an OpenGL environment. | |
class Lateral_structure * | get_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 | |
Structure * | parent |
Parent structure. | |
class Apical_structure * | apical |
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_density * | density |
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 |
An Alternaria structure element.
Abstract class providing some basic functionality for all Alternaria structure elements.
Definition at line 101 of file structure.h.
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.
length | Length from the Structure::begin_pt to Structure::end_pt. |
width | Width of the Structure. |
base_theta | Euler angle: base rotation about the x-axis. |
base_psi | Euler angle: base rotation about the z-axis. |
theta | Euler angle: rotation about the x-axis. |
psi | Euler angle: rotation about the z-axis. |
opacity | Opacity of the Spore. |
level | Level of the Structure. |
density | Structure_density parameters for probabilities. |
jwscxx::base::Arg_error | Structure 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.
s | Structure 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.
virtual Structure* Structure::clone | ( | ) | const [pure virtual] |
Clones this Structure.
Implemented in Apical_structure, Lateral_structure, Apical_hypha, Lateral_hypha, and Spore.
virtual Structure* Structure::recursively_clone | ( | ) | const [pure virtual] |
Recursively clones this Structure and all its descendents.
Implemented in Apical_structure, and Lateral_structure.
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.
Definition at line 538 of file structure.cpp.
vector< Structure * > * Structure::get_descendants | ( | ) |
Returns a vector of all 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.
length | New Structure::length. |
width | New Structure::width. |
jwscxx::base::Arg_error | The 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.
length | New Structure::length. |
jwscxx::base::Arg_error | The 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.
width | New Structure::width. |
jwscxx::base::Arg_error | The 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.
theta | New Structure:theta angle. |
jwscxx::base::Arg_error | The 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.
base_theta | New Structure:base_theta angle. |
jwscxx::base::Arg_error | The 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.
psi | New Structure:psi angle. |
jwscxx::base::Arg_error | The 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.
base_psi | New Structure:base_psi angle. |
jwscxx::base::Arg_error | The 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.
jwscxx::base::Arg_error | The 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.
jwscxx::base::Arg_error | The 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.
opacity | New Structure::opacity. |
jwscxx::base::Arg_error | The 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.
M_blk | Matrix block to draw the Structure in. |
x | Position of the first M_blk column index in the Structure coordinate system. |
y | Position of the first M_blk row index in the Structure coordinate system. |
z | Position of the first M_blk matrix index in the Structure coordinate system. |
x_scale | Number of Structure coordinate system units per column. |
y_scale | Number of Structure coordinate system units per row. |
z_scale | Number of Structure coordinate system units per matrix. |
fill | Set to 1 if the Structure is to be filled; 0 otherwise. |
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.
quad | GLUquadric to use for drawing. |
scale | Number 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.
jwscxx::base::Result_error | This 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
out | Output 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.
out | Output 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.
jwscxx::base::Arg_error | Updating 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.
jwscxx::base::Arg_error | Updating 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.
jwscxx::base::Arg_error | Updating 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.
jwscxx::base::Arg_error | Updating 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.
level_delta | The amount to change the level of this Structure and all its descendants. |
jwscxx::base::Result_error | Changing 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.
jwscxx::base::Arg_error | Structure 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.
jwscxx::base::Arg_error | Structure 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.
jwscxx::base::Arg_error | Structure 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.
jwscxx::base::Arg_error | Structure 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.
jwscxx::base::Arg_error | Structure 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.
jwscxx::base::Arg_error | Structure 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.
jwscxx::base::Arg_error | Structure 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'.
id | Id to check. |
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.
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.
Structure* Structure::parent [protected] |
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.
class Structure_density* Structure::density [protected] |
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.