1.3.49
 
Loading...
Searching...
No Matches
BaseGrapeVineParameters Struct Reference
Inheritance diagram for BaseGrapeVineParameters:
BaseCanopyParameters GobletGrapevineParameters SplitGrapevineParameters UnilateralGrapevineParameters VSPGrapevineParameters

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.
 

Detailed Description

Definition at line 227 of file CanopyGenerator.h.

Constructor & Destructor Documentation

◆ BaseGrapeVineParameters() [1/2]

BaseGrapeVineParameters::BaseGrapeVineParameters ( )

Default constructor.

Definition at line 336 of file CanopyGenerator.cpp.

◆ BaseGrapeVineParameters() [2/2]

BaseGrapeVineParameters::BaseGrapeVineParameters ( const pugi::xml_node  canopy_node)
Parameters
[in]canopy_nodeXML node containing the canopy parameters

Definition at line 384 of file CanopyGenerator.cpp.

Member Function Documentation

◆ buildCanopy()

void BaseGrapeVineParameters::buildCanopy ( CanopyGenerator canopy_generator)
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.

◆ buildPlant()

void BaseGrapeVineParameters::buildPlant ( CanopyGenerator canopy_generator,
helios::vec3  origin 
)
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.

◆ readParametersFromXML()

void BaseGrapeVineParameters::readParametersFromXML ( const pugi::xml_node  canopy_node)

Sets canopy parameters from the given XML node.

Parameters
[in]canopy_nodeXML node containing the canopy parameters

Definition at line 388 of file CanopyGenerator.cpp.

Field Documentation

◆ canopy_rotation_spread

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.

◆ cluster_height_max

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.

◆ cluster_height_max_spread

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.

◆ cluster_radius

float BaseGrapeVineParameters::cluster_radius

Maximum horizontal radius of grape clusters.

Definition at line 343 of file CanopyGenerator.h.

◆ cluster_radius_spread

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.

◆ cordon_height

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.

◆ cordon_height_spread

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.

◆ cordon_length

float BaseGrapeVineParameters::cordon_length

Length of the cordons. By default, half the plant spacing.

Definition at line 300 of file CanopyGenerator.h.

◆ cordon_length_spread

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.

◆ cordon_radius

float BaseGrapeVineParameters::cordon_radius

Radius of cordon branches.

Definition at line 310 of file CanopyGenerator.h.

◆ cordon_radius_spread

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.

◆ dead_probability

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.

◆ grape_color

helios::RGBcolor BaseGrapeVineParameters::grape_color

Color of grapes.

Definition at line 353 of file CanopyGenerator.h.

◆ grape_radius

float BaseGrapeVineParameters::grape_radius

Radius of grape berries.

Definition at line 338 of file CanopyGenerator.h.

◆ grape_radius_spread

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.

◆ grape_subdivisions

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.

◆ grape_subdivisions_spread

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.

◆ leaf_angle_PDF

std::vector<float> BaseGrapeVineParameters::leaf_angle_PDF

Definition at line 361 of file CanopyGenerator.h.

◆ leaf_spacing_fraction

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.

◆ leaf_spacing_fraction_spread

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.

◆ leaf_subdivisions

helios::int2 BaseGrapeVineParameters::leaf_subdivisions

Number of sub-division segments per leaf.

Definition at line 257 of file CanopyGenerator.h.

◆ leaf_texture_file

std::string BaseGrapeVineParameters::leaf_texture_file

Path to texture map file for leaves.

Definition at line 260 of file CanopyGenerator.h.

◆ leaf_width

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.

◆ leaf_width_spread

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.

◆ missing_plant_probability

float BaseGrapeVineParameters::missing_plant_probability

Probability for a plant to be missing.

Note
Only applicable when building a canopy. If you are building an individual plant, well... just don't build it.

Definition at line 277 of file CanopyGenerator.h.

◆ plant_count

helios::int2 BaseGrapeVineParameters::plant_count

Number of crowns/plants in the x- and y-directions.

Definition at line 335 of file CanopyGenerator.h.

◆ plant_spacing

float BaseGrapeVineParameters::plant_spacing

Spacing between adjacent plants along the row direction.

Definition at line 280 of file CanopyGenerator.h.

◆ plant_spacing_spread

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.

◆ row_spacing

float BaseGrapeVineParameters::row_spacing

Spacing between plant rows.

Definition at line 285 of file CanopyGenerator.h.

◆ row_spacing_spread

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.

◆ shoot_length

float BaseGrapeVineParameters::shoot_length

Length of shoots.

Definition at line 315 of file CanopyGenerator.h.

◆ shoot_length_spread

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.

◆ shoot_radius

float BaseGrapeVineParameters::shoot_radius

Radius of shoot branches.

Definition at line 320 of file CanopyGenerator.h.

◆ shoot_radius_spread

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.

◆ shoots_per_cordon

uint BaseGrapeVineParameters::shoots_per_cordon

Number of shoots on each cordon.

Definition at line 325 of file CanopyGenerator.h.

◆ shoots_per_cordon_spread

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.

◆ trunk_height

float BaseGrapeVineParameters::trunk_height

Distance between the ground and top of trunks.

Definition at line 290 of file CanopyGenerator.h.

◆ trunk_height_spread

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.

◆ trunk_radius

float BaseGrapeVineParameters::trunk_radius

Radius of the trunk at the widest point.

Definition at line 295 of file CanopyGenerator.h.

◆ trunk_radius_spread

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.

◆ wood_subdivisions

int BaseGrapeVineParameters::wood_subdivisions

Number of radial subdivisions for trunk/cordon/shoot tubes.

Definition at line 266 of file CanopyGenerator.h.

◆ wood_subdivisions_spread

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.

◆ wood_texture_file

std::string BaseGrapeVineParameters::wood_texture_file

Path to texture map file for trunks/branches.

Definition at line 263 of file CanopyGenerator.h.


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