Public Member Functions | |
BaseGrapeVineParameters () | |
Default constructor. | |
BaseGrapeVineParameters (const pugi::xml_node canopy_node) | |
void | readParametersFromXML (const pugi::xml_node canopy_node) |
Sets canopy parameters from the given XML node. | |
void | buildPlant (CanopyGenerator &canopy_generator, helios::vec3 origin) override |
Makes the given Canopy generator build a single plant of our canopy type with our parameters at the given position. | |
void | buildCanopy (CanopyGenerator &canopy_generator) override |
Makes the given Canopy generator build a canopy of our type with our parameters. | |
![]() | |
BaseCanopyParameters () | |
Default constructor. | |
BaseCanopyParameters (const pugi::xml_node canopy_node) | |
void | readParametersFromXML (const pugi::xml_node canopy_node) |
Sets canopy parameters from the given XML node. | |
Data Fields | |
float | leaf_width |
Maximum width of leaves. Leaf width increases logarithmically from the shoot tip, so leaf_width is the width at the base of the shoot. | |
float | leaf_width_spread |
Spread value for the maximum leaf width. With any new canopy or plant generation, the maximum leaf width would be between leaf_width - leaf_width_spread and leaf_width + leaf_width_spread. | |
helios::int2 | leaf_subdivisions |
Number of sub-division segments per leaf. | |
std::string | leaf_texture_file |
Path to texture map file for leaves. | |
std::string | wood_texture_file |
Path to texture map file for trunks/branches. | |
int | wood_subdivisions |
Number of radial subdivisions for trunk/cordon/shoot tubes. | |
int | wood_subdivisions_spread |
Spread value for the number of wood subdivisions. With any new canopy or plant generation, the maximum number of wood subdivisions would be between wood_subdivisions - wood_subdivisions_spread and wood_subdivisions + wood_subdivisions_spread. | |
float | dead_probability |
Probability for a plant to be dead, i.e. without any leaves or grapes. | |
float | missing_plant_probability |
Probability for a plant to be missing. | |
float | plant_spacing |
Spacing between adjacent plants along the row direction. | |
float | plant_spacing_spread |
Spread value for the plant spacing. The spacing between adjacent plants along a row would vary between plant_spacing - plant_spacing_spread and plant_spacing + plant_spacing_spread. | |
float | row_spacing |
Spacing between plant rows. | |
float | row_spacing_spread |
Spread value for the row spacing. This allows to vary the alignment of plants along a row. The spacing between two plants of adjacent rows would be between row_spacing - row_spacing_spread and row_spacing + row_spacing_spread. | |
float | trunk_height |
Distance between the ground and top of trunks. | |
float | trunk_height_spread |
Spread value for the trunk height. With any new canopy or plant generation, the trunk height would be between trunk_height - trunk_height_spread and trunk_height + trunk_height_spread. | |
float | trunk_radius |
Radius of the trunk at the widest point. | |
float | trunk_radius_spread |
Spread value for the trunk radius. With any new canopy or plant generation, the trunk radius would be between trunk_radius - trunk_radius_spread and trunk_radius + trunk_radius_spread. | |
float | cordon_length |
Length of the cordons. By default, half the plant spacing. | |
float | cordon_length_spread |
Spread value for the cordon length. With any new canopy or plant generation, the cordon length would be between cordon_length - cordon_length_spread and cordon_length + cordon_length_spread. | |
float | cordon_height |
Distance between the ground and cordon. Note - must be greater than or equal to the trunk height. | |
float | cordon_height_spread |
Spread value for the cordon height. With any new canopy or plant generation, the cordon height would be between cordon_height - cordon_height_spread and cordon_height + cordon_height_spread. | |
float | cordon_radius |
Radius of cordon branches. | |
float | cordon_radius_spread |
Spread value for the cordon radius. With any new canopy or plant generation, the cordon radius would be between cordon_radius - cordon_radius_spread and cordon_radius + cordon_radius_spread. | |
float | shoot_length |
Length of shoots. | |
float | shoot_length_spread |
Spread value for the shoot length. With any new canopy or plant generation, the shoot length would be between shoot_length - shoot_length_spread and shoot_length + shoot_length_spread. | |
float | shoot_radius |
Radius of shoot branches. | |
float | shoot_radius_spread |
Spread value for the shoot radius. With any new canopy or plant generation, the shoot radius would be between shoot_radius - shoot_radius_spread and shoot_radius + shoot_radius_spread. | |
uint | shoots_per_cordon |
Number of shoots on each cordon. | |
uint | shoots_per_cordon_spread |
Spread value for the number of shoots per cordon. With any new canopy or plant generation, the number of shoots per cordon would be between shoots_per_cordon - shoots_per_cordon_spread and shoots_per_cordon + shoots_per_cordon_spread. | |
float | leaf_spacing_fraction |
Spacing between adjacent leaves as a fraction of the local leaf width. E.g., leaf_spacing_fraction = 1 would give a leaf spacing equal to the leaf width. | |
float | leaf_spacing_fraction_spread |
Spread value for the leaf spacing fraction. With any new canopy or plant generation, the leaf spacing fraction would be between leaf_spacing_fraction - leaf_spacing_fraction_spread and leaf_spacing_fraction + leaf_spacing_fraction_spread. | |
helios::int2 | plant_count |
Number of crowns/plants in the x- and y-directions. | |
float | grape_radius |
Radius of grape berries. | |
float | grape_radius_spread |
Spread value for the grape radius. With any new canopy or plant generation, the grape radius would be between grape_radius - grape_radius_spread and grape_radius + grape_radius_spread. | |
float | cluster_radius |
Maximum horizontal radius of grape clusters. | |
float | cluster_radius_spread |
Spread value for the cluster radius. With any new canopy or plant generation, the cluster radius would be between cluster_radius - cluster_radius_spread and cluster_radius + cluster_radius_spread. | |
float | cluster_height_max |
Maximum height of grape clusters along the shoot as a fraction of the total shoot length. | |
float | cluster_height_max_spread |
Spread value for the cluster height. With any new canopy or plant generation, the cluster height would be between cluster_height - cluster_height_spread and cluster_height + cluster_height_spread. | |
helios::RGBcolor | grape_color |
Color of grapes. | |
uint | grape_subdivisions |
Number of azimuthal and zenithal subdivisions making up berries (will result in roughly 2*(grape_subdivisions)^2 triangles per grape berry) | |
uint | grape_subdivisions_spread |
Spread value for the number of grape subdivisions. With any new canopy or plant generation, the number of grape subdivisions would be between grape_subdivisions - grape_subdivisions_spread and grape_subdivisions + grape_subdivisions_spread. | |
std::vector< float > | leaf_angle_PDF |
float | canopy_rotation_spread |
Spread value for the canopy rotation. With any new canopy or plant generation, the canopy/plant rotation would be between canopy_rotation - canopy_rotation_spread and canopy_rotation + canopy_rotation_spread. | |
![]() | |
helios::vec3 | canopy_origin |
Cartesian (x,y,z) coordinate of the bottom center point of the canopy (i.e., specifying z=0 places the bottom surface of the canopy at z=0). | |
float | canopy_rotation |
Azimuthal rotation of the canopy about the canopy origin. Note that if canopy_rotation is not equal to zero, the plant_spacing and plant_count parameters are defined in the x- and y-directions before rotation. | |
Definition at line 227 of file CanopyGenerator.h.
BaseGrapeVineParameters::BaseGrapeVineParameters | ( | ) |
Default constructor.
Definition at line 336 of file CanopyGenerator.cpp.
BaseGrapeVineParameters::BaseGrapeVineParameters | ( | const pugi::xml_node | canopy_node | ) |
[in] | canopy_node | XML node containing the canopy parameters |
Definition at line 384 of file CanopyGenerator.cpp.
|
overridevirtual |
Makes the given Canopy generator build a canopy of our type with our parameters.
Implements BaseCanopyParameters.
Reimplemented in VSPGrapevineParameters, SplitGrapevineParameters, UnilateralGrapevineParameters, and GobletGrapevineParameters.
Definition at line 612 of file CanopyGenerator.cpp.
|
overridevirtual |
Makes the given Canopy generator build a single plant of our canopy type with our parameters at the given position.
Implements BaseCanopyParameters.
Reimplemented in VSPGrapevineParameters, SplitGrapevineParameters, UnilateralGrapevineParameters, and GobletGrapevineParameters.
Definition at line 608 of file CanopyGenerator.cpp.
void BaseGrapeVineParameters::readParametersFromXML | ( | const pugi::xml_node | canopy_node | ) |
Sets canopy parameters from the given XML node.
[in] | canopy_node | XML node containing the canopy parameters |
Definition at line 388 of file CanopyGenerator.cpp.
float BaseGrapeVineParameters::canopy_rotation_spread |
Spread value for the canopy rotation. With any new canopy or plant generation, the canopy/plant rotation would be between canopy_rotation - canopy_rotation_spread and canopy_rotation + canopy_rotation_spread.
Definition at line 364 of file CanopyGenerator.h.
float BaseGrapeVineParameters::cluster_height_max |
Maximum height of grape clusters along the shoot as a fraction of the total shoot length.
Definition at line 348 of file CanopyGenerator.h.
float BaseGrapeVineParameters::cluster_height_max_spread |
Spread value for the cluster height. With any new canopy or plant generation, the cluster height would be between cluster_height - cluster_height_spread and cluster_height + cluster_height_spread.
Definition at line 350 of file CanopyGenerator.h.
float BaseGrapeVineParameters::cluster_radius |
Maximum horizontal radius of grape clusters.
Definition at line 343 of file CanopyGenerator.h.
float BaseGrapeVineParameters::cluster_radius_spread |
Spread value for the cluster radius. With any new canopy or plant generation, the cluster radius would be between cluster_radius - cluster_radius_spread and cluster_radius + cluster_radius_spread.
Definition at line 345 of file CanopyGenerator.h.
float BaseGrapeVineParameters::cordon_height |
Distance between the ground and cordon. Note - must be greater than or equal to the trunk height.
Definition at line 305 of file CanopyGenerator.h.
float BaseGrapeVineParameters::cordon_height_spread |
Spread value for the cordon height. With any new canopy or plant generation, the cordon height would be between cordon_height - cordon_height_spread and cordon_height + cordon_height_spread.
Definition at line 307 of file CanopyGenerator.h.
float BaseGrapeVineParameters::cordon_length |
Length of the cordons. By default, half the plant spacing.
Definition at line 300 of file CanopyGenerator.h.
float BaseGrapeVineParameters::cordon_length_spread |
Spread value for the cordon length. With any new canopy or plant generation, the cordon length would be between cordon_length - cordon_length_spread and cordon_length + cordon_length_spread.
Definition at line 302 of file CanopyGenerator.h.
float BaseGrapeVineParameters::cordon_radius |
Radius of cordon branches.
Definition at line 310 of file CanopyGenerator.h.
float BaseGrapeVineParameters::cordon_radius_spread |
Spread value for the cordon radius. With any new canopy or plant generation, the cordon radius would be between cordon_radius - cordon_radius_spread and cordon_radius + cordon_radius_spread.
Definition at line 312 of file CanopyGenerator.h.
float BaseGrapeVineParameters::dead_probability |
Probability for a plant to be dead, i.e. without any leaves or grapes.
Definition at line 271 of file CanopyGenerator.h.
helios::RGBcolor BaseGrapeVineParameters::grape_color |
Color of grapes.
Definition at line 353 of file CanopyGenerator.h.
float BaseGrapeVineParameters::grape_radius |
Radius of grape berries.
Definition at line 338 of file CanopyGenerator.h.
float BaseGrapeVineParameters::grape_radius_spread |
Spread value for the grape radius. With any new canopy or plant generation, the grape radius would be between grape_radius - grape_radius_spread and grape_radius + grape_radius_spread.
Definition at line 340 of file CanopyGenerator.h.
uint BaseGrapeVineParameters::grape_subdivisions |
Number of azimuthal and zenithal subdivisions making up berries (will result in roughly 2*(grape_subdivisions)^2 triangles per grape berry)
Definition at line 356 of file CanopyGenerator.h.
uint BaseGrapeVineParameters::grape_subdivisions_spread |
Spread value for the number of grape subdivisions. With any new canopy or plant generation, the number of grape subdivisions would be between grape_subdivisions - grape_subdivisions_spread and grape_subdivisions + grape_subdivisions_spread.
Definition at line 358 of file CanopyGenerator.h.
std::vector<float> BaseGrapeVineParameters::leaf_angle_PDF |
Definition at line 361 of file CanopyGenerator.h.
float BaseGrapeVineParameters::leaf_spacing_fraction |
Spacing between adjacent leaves as a fraction of the local leaf width. E.g., leaf_spacing_fraction = 1 would give a leaf spacing equal to the leaf width.
Definition at line 330 of file CanopyGenerator.h.
float BaseGrapeVineParameters::leaf_spacing_fraction_spread |
Spread value for the leaf spacing fraction. With any new canopy or plant generation, the leaf spacing fraction would be between leaf_spacing_fraction - leaf_spacing_fraction_spread and leaf_spacing_fraction + leaf_spacing_fraction_spread.
Definition at line 332 of file CanopyGenerator.h.
helios::int2 BaseGrapeVineParameters::leaf_subdivisions |
Number of sub-division segments per leaf.
Definition at line 257 of file CanopyGenerator.h.
std::string BaseGrapeVineParameters::leaf_texture_file |
Path to texture map file for leaves.
Definition at line 260 of file CanopyGenerator.h.
float BaseGrapeVineParameters::leaf_width |
Maximum width of leaves. Leaf width increases logarithmically from the shoot tip, so leaf_width is the width at the base of the shoot.
Definition at line 252 of file CanopyGenerator.h.
float BaseGrapeVineParameters::leaf_width_spread |
Spread value for the maximum leaf width. With any new canopy or plant generation, the maximum leaf width would be between leaf_width - leaf_width_spread and leaf_width + leaf_width_spread.
Definition at line 254 of file CanopyGenerator.h.
float BaseGrapeVineParameters::missing_plant_probability |
Probability for a plant to be missing.
Definition at line 277 of file CanopyGenerator.h.
helios::int2 BaseGrapeVineParameters::plant_count |
Number of crowns/plants in the x- and y-directions.
Definition at line 335 of file CanopyGenerator.h.
float BaseGrapeVineParameters::plant_spacing |
Spacing between adjacent plants along the row direction.
Definition at line 280 of file CanopyGenerator.h.
float BaseGrapeVineParameters::plant_spacing_spread |
Spread value for the plant spacing. The spacing between adjacent plants along a row would vary between plant_spacing - plant_spacing_spread and plant_spacing + plant_spacing_spread.
Definition at line 282 of file CanopyGenerator.h.
float BaseGrapeVineParameters::row_spacing |
Spacing between plant rows.
Definition at line 285 of file CanopyGenerator.h.
float BaseGrapeVineParameters::row_spacing_spread |
Spread value for the row spacing. This allows to vary the alignment of plants along a row. The spacing between two plants of adjacent rows would be between row_spacing - row_spacing_spread and row_spacing + row_spacing_spread.
Definition at line 287 of file CanopyGenerator.h.
float BaseGrapeVineParameters::shoot_length |
Length of shoots.
Definition at line 315 of file CanopyGenerator.h.
float BaseGrapeVineParameters::shoot_length_spread |
Spread value for the shoot length. With any new canopy or plant generation, the shoot length would be between shoot_length - shoot_length_spread and shoot_length + shoot_length_spread.
Definition at line 317 of file CanopyGenerator.h.
float BaseGrapeVineParameters::shoot_radius |
Radius of shoot branches.
Definition at line 320 of file CanopyGenerator.h.
float BaseGrapeVineParameters::shoot_radius_spread |
Spread value for the shoot radius. With any new canopy or plant generation, the shoot radius would be between shoot_radius - shoot_radius_spread and shoot_radius + shoot_radius_spread.
Definition at line 322 of file CanopyGenerator.h.
uint BaseGrapeVineParameters::shoots_per_cordon |
Number of shoots on each cordon.
Definition at line 325 of file CanopyGenerator.h.
uint BaseGrapeVineParameters::shoots_per_cordon_spread |
Spread value for the number of shoots per cordon. With any new canopy or plant generation, the number of shoots per cordon would be between shoots_per_cordon - shoots_per_cordon_spread and shoots_per_cordon + shoots_per_cordon_spread.
Definition at line 327 of file CanopyGenerator.h.
float BaseGrapeVineParameters::trunk_height |
Distance between the ground and top of trunks.
Definition at line 290 of file CanopyGenerator.h.
float BaseGrapeVineParameters::trunk_height_spread |
Spread value for the trunk height. With any new canopy or plant generation, the trunk height would be between trunk_height - trunk_height_spread and trunk_height + trunk_height_spread.
Definition at line 292 of file CanopyGenerator.h.
float BaseGrapeVineParameters::trunk_radius |
Radius of the trunk at the widest point.
Definition at line 295 of file CanopyGenerator.h.
float BaseGrapeVineParameters::trunk_radius_spread |
Spread value for the trunk radius. With any new canopy or plant generation, the trunk radius would be between trunk_radius - trunk_radius_spread and trunk_radius + trunk_radius_spread.
Definition at line 297 of file CanopyGenerator.h.
int BaseGrapeVineParameters::wood_subdivisions |
Number of radial subdivisions for trunk/cordon/shoot tubes.
Definition at line 266 of file CanopyGenerator.h.
int BaseGrapeVineParameters::wood_subdivisions_spread |
Spread value for the number of wood subdivisions. With any new canopy or plant generation, the maximum number of wood subdivisions would be between wood_subdivisions - wood_subdivisions_spread and wood_subdivisions + wood_subdivisions_spread.
Definition at line 268 of file CanopyGenerator.h.
std::string BaseGrapeVineParameters::wood_texture_file |
Path to texture map file for trunks/branches.
Definition at line 263 of file CanopyGenerator.h.