Parameters defining the grapevine canopy with goblet (vent a taille) trellis. More...
#include <CanopyGenerator.h>
Public Member Functions | |
GobletGrapevineParameters () | |
Default constructor. | |
GobletGrapevineParameters (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. | |
![]() | |
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. | |
![]() | |
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. | |
Additional Inherited Members | |
![]() | |
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. | |
Parameters defining the grapevine canopy with goblet (vent a taille) trellis.
Definition at line 456 of file CanopyGenerator.h.
GobletGrapevineParameters::GobletGrapevineParameters | ( | ) |
Default constructor.
Definition at line 787 of file CanopyGenerator.cpp.
GobletGrapevineParameters::GobletGrapevineParameters | ( | const pugi::xml_node | canopy_node | ) |
[in] | canopy_node | XML node containing the canopy parameters |
Definition at line 818 of file CanopyGenerator.cpp.
|
overridevirtual |
Makes the given Canopy generator build a canopy of our type with our parameters.
Reimplemented from BaseGrapeVineParameters.
Definition at line 830 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.
Reimplemented from BaseGrapeVineParameters.
Definition at line 826 of file CanopyGenerator.cpp.
void GobletGrapevineParameters::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 822 of file CanopyGenerator.cpp.