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. | |
Public Member Functions inherited from BaseCanopyParameters | |
| 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. | |
Data Fields inherited from BaseCanopyParameters | |
| 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.