1.3.49
 
Loading...
Searching...
No Matches
SplitGrapevineParameters Struct Reference

Parameters defining the grapevine canopy with a split (quad) trellis. More...

#include <CanopyGenerator.h>

Inheritance diagram for SplitGrapevineParameters:
BaseGrapeVineParameters BaseCanopyParameters

Public Member Functions

 SplitGrapevineParameters ()
 Default constructor.
 
 SplitGrapevineParameters (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 BaseGrapeVineParameters
 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.
 
- 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 cordon_spacing
 Spacing between two opposite cordons.
 
float cordon_spacing_spread
 Spread value for the cordon spacing. With any new canopy or plant generation, the cordon spacing would be between cordon_spacing - cordon_spacing_spread and cordon_spacing + cordon_spacing_spread.
 
float shoot_angle_base
 Average angle of the shoot at the base (shoot_angle_base=0 points shoots upward; shoot_angle_base=M_PI points shoots downward and makes a Geneva Double Curtain)
 
float shoot_angle_base_spread
 Spread value for the base shoot angle. With any new canopy or plant generation, the base shoot angle would be between shoot_angle_base - shoot_angle_base_spread and shoot_angle_base + shoot_angle_base_spread.
 
float shoot_angle_tip
 Average angle of the shoot at the tip (shoot_angle=0 is a completely vertical shoot; shoot_angle=M_PI is a downward-pointing shoot)
 
float shoot_angle_tip_spread
 Spread value for the base shoot angle. With any new canopy or plant generation, the base shoot angle would be between shoot_angle_tip - shoot_angle_tip_spread and shoot_angle_tip + shoot_angle_tip_spread.
 
- Data Fields inherited from BaseGrapeVineParameters
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

Parameters defining the grapevine canopy with a split (quad) trellis.

Definition at line 392 of file CanopyGenerator.h.

Constructor & Destructor Documentation

◆ SplitGrapevineParameters() [1/2]

SplitGrapevineParameters::SplitGrapevineParameters ( )

Default constructor.

Definition at line 665 of file CanopyGenerator.cpp.

◆ SplitGrapevineParameters() [2/2]

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

Definition at line 707 of file CanopyGenerator.cpp.

Member Function Documentation

◆ buildCanopy()

void SplitGrapevineParameters::buildCanopy ( CanopyGenerator canopy_generator)
overridevirtual

Makes the given Canopy generator build a canopy of our type with our parameters.

Reimplemented from BaseGrapeVineParameters.

Definition at line 734 of file CanopyGenerator.cpp.

◆ buildPlant()

void SplitGrapevineParameters::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.

Reimplemented from BaseGrapeVineParameters.

Definition at line 730 of file CanopyGenerator.cpp.

◆ readParametersFromXML()

void SplitGrapevineParameters::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 711 of file CanopyGenerator.cpp.

Field Documentation

◆ cordon_spacing

float SplitGrapevineParameters::cordon_spacing

Spacing between two opposite cordons.

Definition at line 415 of file CanopyGenerator.h.

◆ cordon_spacing_spread

float SplitGrapevineParameters::cordon_spacing_spread

Spread value for the cordon spacing. With any new canopy or plant generation, the cordon spacing would be between cordon_spacing - cordon_spacing_spread and cordon_spacing + cordon_spacing_spread.

Definition at line 417 of file CanopyGenerator.h.

◆ shoot_angle_base

float SplitGrapevineParameters::shoot_angle_base

Average angle of the shoot at the base (shoot_angle_base=0 points shoots upward; shoot_angle_base=M_PI points shoots downward and makes a Geneva Double Curtain)

Definition at line 420 of file CanopyGenerator.h.

◆ shoot_angle_base_spread

float SplitGrapevineParameters::shoot_angle_base_spread

Spread value for the base shoot angle. With any new canopy or plant generation, the base shoot angle would be between shoot_angle_base - shoot_angle_base_spread and shoot_angle_base + shoot_angle_base_spread.

Definition at line 422 of file CanopyGenerator.h.

◆ shoot_angle_tip

float SplitGrapevineParameters::shoot_angle_tip

Average angle of the shoot at the tip (shoot_angle=0 is a completely vertical shoot; shoot_angle=M_PI is a downward-pointing shoot)

Definition at line 425 of file CanopyGenerator.h.

◆ shoot_angle_tip_spread

float SplitGrapevineParameters::shoot_angle_tip_spread

Spread value for the base shoot angle. With any new canopy or plant generation, the base shoot angle would be between shoot_angle_tip - shoot_angle_tip_spread and shoot_angle_tip + shoot_angle_tip_spread.

Definition at line 427 of file CanopyGenerator.h.


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