Class AgentVis
Defined in File AgentVis.h
Class Documentation
-
class AgentVis
This provides an interface for managing the render options for all agents of a specific type State() can be called to specialise options for agents within a specific state TODO: Block everything non-const from being called whilst VIS is active
Public Functions
Note
Agent states only receive colors from the autopalette when AgentVis::State() is called for each state
Note
By default, all states share the same color from the autopalette
- Parameters
agent – The CUDAAgent this class is configuring the visualisation for
autopalette – Automatic source of colors for individual agent states
-
AgentStateVis &State(const std::string &state_name)
Returns the configuration handler for the named state On first use for each state this will assign the state a color from the AutoPalette if available Clear the autopalette first if you wish for it to use the default color
-
void setXVariable(const std::string &var_name)
Set the name of the variable representing the agents x/y/z location coordinates
Note
unnecessary if the variables are named “x”, “y”, “z” respectively
Note
Implicitly calls clearXYVariable(), clearXYZVariable()
- Parameters
var_name – Name of the agent variable
- Throws
InvalidAgentVar – If the variable is not type float[1]
-
void setYVariable(const std::string &var_name)
-
void setZVariable(const std::string &var_name)
-
void setXYVariable(const std::string &var_name)
Set the name of the array variable (length 2) representing the agents x/y location coordinates
Note
Implicitly calls clearXVariable(), clearYVariable(), clearZVariable(),clearXYZVariable()
- Parameters
var_name – Name of the agent variable
- Throws
InvalidAgentVar – If the variable is not type float[2]
-
void setXYZVariable(const std::string &var_name)
Set the name of the array variable (length 3) representing the agents x/y/z location coordinates
Note
Implicitly calls clearXVariable(), clearYVariable(), clearZVariable(),clearXYVariable()
- Parameters
var_name – Name of the agent variable
- Throws
InvalidAgentVar – If the variable is not type float[3]
-
void setForwardXVariable(const std::string &var_name)
Set the name of the variable representing the agents x direction vector components Single axis rotation only requires x/z components Double axis rotation requires all 3 components Triple axis rotation requires all 3 components and additionally all 3 Up components
See also
Note
setForwardXVariable() and setForwardZVariable() are an alternate to providing a yaw angle
Note
Forward is a synonym for Direction
Note
Implicitly calls clearHeadingVariable(), clearForwardXZVariable(), clearForwardXYZVariable(), clearDirectionYPVariable(), clearDirectionYPRVariable()
- Parameters
var_name – Name of the agent variable
- Throws
InvalidAgentVar – If the variable is not type float[1]
-
void setForwardYVariable(const std::string &var_name)
Set the name of the variable representing the agents y direction vector components Single axis rotation only requires x/z components Double axis rotation requires all 3 components Triple axis rotation requires all 3 components and additionally all 3 Up components
See also
Note
setForwardYVariable() is an alternate to providing a pitch angle
Note
Forward is a synonym for Direction
Note
Implicitly calls clearPitchVariable(), clearForwardXYZVariable(), clearDirectionYPVariable(), clearDirectionYPRVariable()
- Parameters
var_name – Name of the agent variable
- Throws
InvalidAgentVar – If the variable is not type float[1]
-
void setForwardZVariable(const std::string &var_name)
Set the name of the variable representing the agents z direction vector components Single axis rotation only requires x/z components Double axis rotation requires all 3 components Triple axis rotation requires all 3 components and additionally all 3 Up components
See also
Note
setForwardXVariable() and setForwardZVariable() are an alternate to providing a yaw angle
Note
Forward is a synonym for Direction
Note
Implicitly calls clearHeadingVariable(), clearForwardXZVariable(), clearForwardXYZVariable(), clearDirectionYPVariable(), clearDirectionYPRVariable()
- Parameters
var_name – Name of the agent variable
- Throws
InvalidAgentVar – If the variable is not type float[1]
-
void setForwardXZVariable(const std::string &var_name)
Set the name of the array variable (length 2) representing the agents x/z direction vector components Single axis rotation only requires x/z components
See also
See also
Note
setForwardXVariable() and setForwardZVariable() are an alternate to providing a yaw angle, setting either of these will erase yaw if bound
Note
setForwardYVariable() is an alternate to providing a pitch angle, setting this will erase pitch if bound
Note
Forward is a synonym for Direction
Note
Implicitly calls clearHeadingVariable(), clearForwardXVariable(), clearForwardYVariable(), clearForwardZVariable(), clearForwardXYZVariable(),clearDirectionYPVariable(), clearDirectionYPRVariable()
- Parameters
var_name – Name of the agent variable
- Throws
InvalidAgentVar – If the variable is not type float[2]
-
void setForwardXYZVariable(const std::string &var_name)
Set the name of the array variable (length 3) representing the agents x/y/z direction vector components Single axis rotation only requires x/z components Double axis rotation requires all 3 components Triple axis rotation requires all 3 components and additionally all 3 Up components
See also
See also
Note
setForwardXVariable() and setForwardZVariable() are an alternate to providing a yaw angle, setting either of these will erase yaw if bound
Note
setForwardYVariable() is an alternate to providing a pitch angle, setting this will erase pitch if bound
Note
Forward is a synonym for Direction
Note
Implicitly calls clearHeadingVariable(), clearForwardXVariable(), clearForwardYVariable(), clearForwardZVariable(), clearForwardXZVariable(),clearDirectionYPVariable(), clearDirectionYPRVariable()
- Parameters
var_name – Name of the agent variable
- Throws
InvalidAgentVar – If the variable is not type float[3]
-
void setUpXVariable(const std::string &var_name)
Set the name of the variable representing the agents x/y/z UP vector This should be 90 degrees perpendicular to the direction vector
See also
Note
setUpXVariable(), setUpYVariable() and setUpZVariable() are an alternate to providing a roll angle, setting any of these will erase roll if bound
Note
Implicitly calls clearRollVariable(), clearUpXYZVariable(), clearDirectionYPRVariable()
Note
Up can only be used in combination with Forward x/y/z (and not Yaw, Pitch or directionYP)
- Parameters
var_name – Name of the agent variable
- Throws
InvalidAgentVar – If the variable is not type float[1]
-
void setUpYVariable(const std::string &var_name)
-
void setUpZVariable(const std::string &var_name)
-
void setUpXYZVariable(const std::string &var_name)
Set the name of the array variable (length 3) representing the agents x/y/z UP vector This should be 90 degrees perpendicular to the direction vector
See also
Note
setUpXVariable(), setUpYVariable() and setUpZVariable() are an alternate to providing a roll angle, setting any of these will erase roll if bound
Note
Implicitly calls clearRollVariable(), clearUpXVariable(), clearUpYVariable(), clearUpZVariable(), clearDirectionYPRVariable()
Note
Up can only be used in combination with Forward x/y/z (and not Yaw, Pitch or directionYP)
- Parameters
var_name – Name of the agent variable
- Throws
InvalidAgentVar – If the variable is not type float[3]
-
void setYawVariable(const std::string &var_name)
Set the name of the variable representing the agents yaw rotation angle (radians)
Note
This is an alternate to providing a direction vector, setting this will erase forward x/z if bound
Note
Heading is a synonym for Yaw
Note
Implicitly calls clearForwardXVariable(), clearForwardYVariable(), clearForwardZVariable(), clearForwardXYZVariable(), clearDirectionYPVariable(), clearDirectionYPRVariable()
- Parameters
var_name – Name of the agent variable
- Throws
InvalidAgentVar – If the variable is not type float[1]
-
void setPitchVariable(const std::string &var_name)
Set the name of the variable representing the agents pitch rotation angle (radians)
Note
This is an alternate to providing a direction vector, setting this will erase forward y if bound
Note
Implicitly calls clearForwardYVariable(), clearForwardXYZVariable(), clearDirectionYPVariable(), clearDirectionYPRVariable()
- Parameters
var_name – Name of the agent variable
-
void setRollVariable(const std::string &var_name)
Set the name of the variable representing the agents yaw rotation angle (radians)
See also
See also
See also
Note
This is an alternate to providing an UP vector, setting this will erase up x/y/z if bound
Note
Bank is a synonym for Roll
Note
Implicitly calls clearUpXVariable(), clearUpYVariable(), clearUpZVariable(), clearUpXYZVariable(), clearDirectionYPRVariable()
- Parameters
var_name – Name of the agent variable
- Throws
InvalidAgentVar – If the variable is not type float[1]
-
void setDirectionYPVariable(const std::string &var_name)
Set the name of the array variable (length 2) representing the agents yaw/pitch rotation angles (radians)
Note
This is an alternate to providing a direction vector, setting this will erase forward x/z if bound
Note
Heading is a synonym for Yaw
Note
Implicitly calls clearForwardXVariable(), clearForwardYVariable(), clearForwardZVariable(), clearForwardXZVariable(), clearForwardXYZVariable(), clearHeadingVariable(), clearPitchVariable(), clearDirectionYPRVariable()
- Parameters
var_name – Name of the agent variable
- Throws
InvalidAgentVar – If the variable is not type float[2]
-
void setDirectionYPRVariable(const std::string &var_name)
Set the name of the array variable (length 3) representing the agents yaw/pitch/roll rotation angles (radians)
Note
This is an alternate to providing a direction vector, setting this will erase forward x/z if bound
Note
Heading is a synonym for Yaw
Note
Bank is a synonym for Roll
Note
Implicitly calls clearForwardXVariable(), clearForwardYVariable(), clearForwardZVariable(), clearForwardXZVariable(), clearForwardXYZVariable(), clearUpXVariable(), clearUpYVariable(), clearUpZVariable(), clearUpXYZVariable(), clearHeadingVariable(), clearPitchVariable(), clearRollVariable(), clearDirectionYPVariable()
- Parameters
var_name – Name of the agent variable
- Throws
InvalidAgentVar – If the variable is not type float[3]
-
void setUniformScaleVariable(const std::string &var_name)
Set the name of the variable representing the agents uniform scale multiplier
The scale multiplier is multiplied by the model scale
See also
See also
Note
This is an alternate to providing individual scale components, setting this will erase scale x/y/z if bound
- Parameters
var_name – Name of the agent variable
-
void setScaleXVariable(const std::string &var_name)
Set the name of the variable representing the agents x/y/z scale multiplier components It is not necessary to set all 3 components if only 1 or 2 are required. Unset values will be treated as a 1.0 multiplier
The scale multiplier is multiplied by the model scale
See also
See also
Note
This is an alternate to providing a single uniform scale multiplier, setting this will erase uniform scale if bound
- Parameters
var_name – Name of the agent variable
- Throws
InvalidAgentVar – If the variable is not type float[1]
-
void setScaleYVariable(const std::string &var_name)
-
void setScaleZVariable(const std::string &var_name)
-
void setScaleXYVariable(const std::string &var_name)
Set the name of the array variable (length 2) representing the agents x/y scale multiplier components It is not necessary to set all 3 components if only 1 or 2 are required. Unset values will be treated as a 1.0 multiplier
The scale multiplier is multiplied by the model scale
See also
See also
Note
This is an alternate to providing a single uniform scale multiplier, setting this will erase uniform scale or individual scale components if bound
- Parameters
var_name – Name of the agent variable
- Throws
InvalidAgentVar – If the variable is not type float[2]
-
void setScaleXYZVariable(const std::string &var_name)
Set the name of the array variable (length 3) representing the agents x/y/z scale multiplier components It is not necessary to set all 3 components if only 1 or 2 are required. Unset values will be treated as a 1.0 multiplier
The scale multiplier is multiplied by the model scale
See also
See also
Note
This is an alternate to providing a single uniform scale multiplier, setting this will erase uniform scale or individual scale components if bound
- Parameters
var_name – Name of the agent variable
- Throws
InvalidAgentVar – If the variable is not type float[3]
-
void clearXVariable()
Clears the agent’s x/y/z location variable bindings
See also
See also
See also
-
void clearYVariable()
-
void clearZVariable()
-
void clearXYVariable()
Clears the agent’s xy location variable bindings
See also
-
void clearXYZVariable()
Clears the agent’s xyz location variable bindings
See also
-
void clearForwardXVariable()
Clears the agent’s x/y/z forward variable bindings
-
void clearForwardYVariable()
-
void clearForwardZVariable()
-
void clearForwardXZVariable()
Clears the agent’s xz forward variable bindings
-
void clearForwardXYZVariable()
Clears the agent’s xyz forward variable bindings
-
void clearUpXVariable()
Clears the agent’s x/y/z UP variable bindings
See also
See also
See also
-
void clearUpYVariable()
-
void clearUpZVariable()
-
void clearUpXYZVariable()
Clears the agent’s xyz UP variable bindings
-
void clearYawVariable()
Clears the agent’s yaw angle variable bindings
See also
-
void clearPitchVariable()
Clears the agent’s pitch angle variable bindings
-
void clearRollVariable()
Clears the agent’s roll angle variable bindings
See also
-
void clearDirectionYPVariable()
Clears the agent’s yaw angle variable bindings
-
void clearDirectionYPRVariable()
Clears the agent’s yaw angle variable bindings
-
void clearUniformScaleVariable()
Clears the agent’s uniform scale multiplier variable bindings
-
void clearScaleXVariable()
Clears the agent’s x/y/z scale multiplier variable bindings
-
void clearScaleYVariable()
-
void clearScaleZVariable()
-
void clearScaleXYVariable()
Clears the agent’s xy scale multiplier variable bindings
-
void clearScaleXYZVariable()
Clears the agent’s xyz scale multiplier variable bindings
-
std::string getXVariable() const
Returns the variable used for the agent’s x/y/z location coordinates
-
std::string getYVariable() const
-
std::string getZVariable() const
-
std::string getXYVariable() const
Returns the variable used for the agent’s xy location coordinates
-
std::string getXYZVariable() const
Returns the variable used for the agent’s xyz location coordinates
-
std::string getForwardXVariable() const
Returns the variable used for the agent’s x/y/z forward vector components
-
std::string getForwardYVariable() const
-
std::string getForwardZVariable() const
-
std::string getForwardXZVariable() const
Returns the variable used for the agent’s xz forward vector components
-
std::string getForwardXYZVariable() const
Returns the variable used for the agent’s xyz forward vector components
-
std::string getUpXVariable() const
Returns the variable used for the agent’s x/y/z up vector components
-
std::string getUpYVariable() const
-
std::string getUpZVariable() const
-
std::string getUpXYZVariable() const
Returns the variable used for the agent’s xyz up vector components
-
std::string getYawVariable() const
Returns the variable used for the agent’s yaw angle
-
std::string getPitchVariable() const
Returns the variable used for the agent’s pitch angle
-
std::string getRollVariable() const
Returns the variable used for the agent’s roll angle
-
std::string getDirectionYPVariable() const
Returns the variable used for the agent’s roll angle
-
std::string getDirectionYPRVariable() const
Returns the variable used for the agent’s roll angle
-
std::string getUniformScaleVariable() const
Returns the variable used for the agent’s uniform scaling multiplier
-
std::string getScaleXVariable() const
Returns the variable used for the agent’s x/y/z scale multiplier components
-
std::string getScaleYVariable() const
-
std::string getScaleZVariable() const
-
std::string getScaleXYVariable() const
Returns the variable used for the agent’s xy scale multiplier components
-
std::string getScaleXYZVariable() const
Returns the variable used for the agent’s xyz scale multiplier components
-
void setModel(const std::string &modelPath, const std::string &texturePath = "")
Use a model from file
- Parameters
modelPath – The path to the model’s file (must be .obj)
texturePath – Optional path to the texture used by the model
-
void setModel(const Stock::Models::Model &model)
Use a stock model
- Parameters
model – Model from the libraries internal resources
-
void setModelScale(float xLen, float yLen, float zLen)
Scale each dimension of the model to the corresponding world scales
Note
Y is considered the vertical axis
- Parameters
xLen – World scale of the model’s on the x axis
yLen – World scale of the model’s on the y axis
zLen – World scale of the model’s on the z axis
-
void setModelScale(float maxLen)
Uniformly scale model so that max dimension equals this
- Parameters
maxLen – World scale of the model’s relative to the axis which it is largest
-
void setAutoPalette(const Palette &ap)
Set the auto-palette used to assign agent-state’s colors
Note
The color is assigned the first time State() is called, otherwise agents use the default color
-
void setColor(const ColorFunction &cf)
Set a custom color function
Note
Disables the auto-palette
-
void clearColor()
Disable custom color and/or auto-palette, e.g. if you’re using a textured model