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

Parameters defining the grapevine canopy with goblet (vent a taille) trellis. More...

#include <CanopyGenerator.h>

Inheritance diagram for GobletGrapevineParameters:
BaseGrapeVineParameters BaseCanopyParameters

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.
 
- 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.
 

Additional Inherited Members

- 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 goblet (vent a taille) trellis.

Definition at line 456 of file CanopyGenerator.h.

Constructor & Destructor Documentation

◆ GobletGrapevineParameters() [1/2]

GobletGrapevineParameters::GobletGrapevineParameters ( )

Default constructor.

Definition at line 787 of file CanopyGenerator.cpp.

◆ GobletGrapevineParameters() [2/2]

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

Definition at line 818 of file CanopyGenerator.cpp.

Member Function Documentation

◆ buildCanopy()

void GobletGrapevineParameters::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 830 of file CanopyGenerator.cpp.

◆ buildPlant()

void GobletGrapevineParameters::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 826 of file CanopyGenerator.cpp.

◆ readParametersFromXML()

void GobletGrapevineParameters::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 822 of file CanopyGenerator.cpp.


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