SurgSim::Graphics::PaintBehavior Class Reference

Behavior class to allow a specified scene element to receive painting effects. More...

`#include <SurgSim/Graphics/PaintBehavior.h>`

Inheritance diagram for SurgSim::Graphics::PaintBehavior:

## Public Member Functions

| PaintBehavior (const std::string &name)
| SURGSIM_CLASSNAME (SurgSim::Graphics::PaintBehavior)
void | setRepresentation (std::shared_ptr< Framework::Component > representation)
| Sets graphics representation being painted on. More...
std::shared_ptr< Graphics::OsgMeshRepresentation > | getRepresentation () const
| Gets graphics representation being painted on. More...
void | setTextureSize (int width, int height)
| Sets the size of the texture layer to paint onto. More...
void | setColor (const Math::Vector4d &color)
| Sets color of the paint. More...
Math::Vector4d | getColor () const
| Gets color of the paint. More...
void | setRadius (double radius)
| Sets radius of paint splat. More...
double | getRadius () const
| Gets radius of paint splat. More...
void | setAntiAlias (bool antialias)
| Sets whether to anti-alias the brush. More...
bool | getAntiAlias () const
| Gets status of antialiased brush. More...
void | setCoordinates (const std::vector< DataStructures::IndexedLocalCoordinate > &coordinate)
| Sets collection of local triangle coordinates to paint on during next update. More...
bool | doInitialize () override
| Interface to be implemented by derived classes. More...
bool | doWakeUp () override
| Interface to be implemented by derived classes. More...
void | update (double dt) override
| Update the behavior. More...
Public Member Functions inherited from SurgSim::Framework::Behavior
| Behavior (const std::string &name)
virtual | ~Behavior ()
virtual int | getTargetManagerType () const
| Specifies which manger will handle this behavior. More...
Public Member Functions inherited from SurgSim::Framework::Component
| Component (const std::string &name)
| Constructor. More...
virtual | ~Component ()
| Destructor. More...
std::string | getName () const
| Gets component name. More...
std::string | getFullName () const
| Gets a string containing the name of the Component and (if it has one) its SceneElement. More...
void | setName (const std::string &name)
| Sets the name of component. More...
boost::uuids::uuid | getUuid () const
| Gets the id of the component. More...
bool | isInitialized () const
bool | initialize (const std::weak_ptr< Runtime > &runtime)
| Initialize this component, this needs to be called before wakeUp() can be called. More...
bool | isAwake () const
bool | wakeUp ()
| Wakeup this component, this will be called when the component is inserted into the ComponentManager that is responsible for handling this component. More...
void | retire ()
| Retire this component, this will be called when the component is removed from the ComponentManager that is responsible for handling this component. More...
void | setScene (std::weak_ptr< Scene > scene)
| Sets the scene. More...
std::shared_ptr< Scene > | getScene ()
| Gets the scene. More...
void | setSceneElement (std::weak_ptr< SceneElement > sceneElement)
| Sets the scene element. More...
std::shared_ptr< SceneElement > | getSceneElement ()
| Gets the scene element. More...
std::shared_ptr< const SceneElement > | getSceneElement () const
| Gets the scene element, constant version. More...
std::shared_ptr< Runtime > | getRuntime () const
| Get the runtime which contains this component. More...
virtual std::string | getClassName () const
| The class name for this class, this being the base class it should return SurgSim::Framework::Component but this would make missing implemenentations of this hard to catch, therefore this calls SURGSIM_FAILURE. More...
std::shared_ptr< Component > | getSharedPtr ()
| Gets a shared pointer to this component. More...
virtual void | doRetire ()
| Interface to be implemented by derived classes Has a default implementation, does nothing. More...
bool | isActive () const
virtual void | setLocalActive (bool val)
| Set the component's active state. More...
bool | isLocalActive () const
Public Member Functions inherited from SurgSim::Framework::Accessible
| Accessible ()
| Default Constructor. More...
| ~Accessible ()
| Destructor. More...
template<class T >
T | getValue (const std::string &name) const
| Retrieves the value with the name by executing the getter if it is found and tries to convert it to the given type. More...
boost::any | getValue (const std::string &name) const
| Retrieves the value with the name by executing the getter if it is found. More...
template<class T >
bool | getValue (const std::string &name, T *value) const
| Retrieves the value with the name by executing the getter if it is found, and converts it to the type of the output parameter. More...
void | setValue (const std::string &name, const boost::any &value)
| Sets a value of a property that has setter. More...
bool | isReadable (const std::string &name) const
| Check whether a property is readable. More...
bool | isWriteable (const std::string &name) const
| Check whether a property is writable. More...
void | setGetter (const std::string &name, GetterType func)
| Sets a getter for a given property. More...
void | setSetter (const std::string &name, SetterType func)
| Sets a setter for a given property. More...
void | setAccessors (const std::string &name, GetterType getter, SetterType setter)
| Sets the accessors getter and setter in one function. More...
void | removeAccessors (const std::string &name)
| Removes all the accessors (getter and setter) for a given property. More...
void | forwardProperty (const std::string &name, const Accessible &target, const std::string &targetProperty)
| Adds a property with the given name that uses the targets accessors, in effect forwarding the value to the target. More...
void | setSerializable (const std::string &name, EncoderType encoder, DecoderType decoder)
| Sets the functions used to convert data from and to a YAML::Node. More...
void | setDecoder (const std::string &name, DecoderType decoder)
| Sets the functions used to convert data from a YAML::Node. More...
YAML::Node | encode () const
| Encode this Accessible to a YAML::Node. More...
void | decode (const YAML::Node &node, const std::vector< std::string > &ignoredProperties=std::vector< std::string >())
| Decode this Accessible from a YAML::Node, will throw an exception if the data type cannot be converted. More...
template<>
boost::any | getValue (const std::string &name) const

## Private Member Functions

void | buildBrush (double radius)
| Builds paint brush at the set radius size. More...
void | buildAntiAliasedBrush (double radius)
| Builds an antialiased brush at the set radius size. More...
Math::Vector2d | toPixel (const Math::Vector2d &uv)
| Convert texture uv coordinates to pixel coordinates. More...
void | paint (const Math::Vector2d &coordinates)
| Apply paint brush to texture at specified texture coordinates. More...

## Private Attributes

std::shared_ptr< Graphics::OsgMeshRepresentation > | m_representation
| Graphics representation of the mesh to apply behavior to. More...
std::shared_ptr< Graphics::OsgTexture2d > | m_texture
| Image data of the texture to be used as the decal layer. More...
Math::Vector4d | m_color
| Color to use for decal painting. More...
int | m_width
| Width of assigned texture. More...
int | m_height
| Height of assigned texture. More...
double | m_radius
| Radius of brush. More...
bool | m_antialias
| Flag for antialiasing the brush. More...
std::vector< DataStructures::IndexedLocalCoordinate > | m_coordinates
| Collection of UV texture coordinates to paint to on next update. More...
int | m_brushOffsetX
int | m_brushOffsetY
Math::Matrix | m_brush
boost::mutex | m_mutex

## Additional Inherited Members

Public Types inherited from SurgSim::Framework::Accessible
typedef std::function< boost::any(void)> | GetterType
typedef std::function< void(boost::any)> | SetterType
typedef std::function< YAML::Node(void)> | EncoderType
typedef std::function< void(const YAML::Node *)> | DecoderType
Public Types inherited from SurgSim::Framework::FactoryBase1< Component, std::string >
typedef ObjectFactory1< Component, std::string > | FactoryType
Static Public Member Functions inherited from SurgSim::Framework::FactoryBase1< Component, std::string >
static FactoryType & | getFactory ()
Protected Member Functions inherited from SurgSim::Framework::Component
virtual std::shared_ptr< PoseComponent > | getPoseComponent ()
| Get the PoseComponent for this component. More...
virtual std::shared_ptr< const PoseComponent > | getPoseComponent () const
| Get the PoseComponent for this component, constant access. More...

## Detailed Description

Behavior class to allow a specified scene element to receive painting effects.

## Constructor & Destructor Documentation

## PaintBehavior()

SurgSim::Graphics::PaintBehavior::PaintBehavior | ( | const std::string & | name | ) |

explicit

## Member Function Documentation

## buildAntiAliasedBrush()

void SurgSim::Graphics::PaintBehavior::buildAntiAliasedBrush | ( | double | radius | ) |

private

Builds an antialiased brush at the set radius size.

## buildBrush()

void SurgSim::Graphics::PaintBehavior::buildBrush | ( | double | radius | ) |

private

Builds paint brush at the set radius size.

## doInitialize()

bool SurgSim::Graphics::PaintBehavior::doInitialize | ( |  | ) |

override virtual

Interface to be implemented by derived classes.

Returns
  True if component is initialized successfully; otherwise, false.

Implements SurgSim::Framework::Component.

## doWakeUp()

bool SurgSim::Graphics::PaintBehavior::doWakeUp | ( |  | ) |

override virtual

Interface to be implemented by derived classes.

Returns
  True if component is woken up successfully; otherwise, false.

Implements SurgSim::Framework::Component.

## getAntiAlias()

bool SurgSim::Graphics::PaintBehavior::getAntiAlias | ( |  | ) | const

Gets status of antialiased brush.

Returns
  Boolean indicating if antialiasing is on

## getColor()

Math::Vector4d SurgSim::Graphics::PaintBehavior::getColor | ( |  | ) | const

Gets color of the paint.

Returns
  Vector4d representation of RGBA color in [0-1] range

## getRadius()

double SurgSim::Graphics::PaintBehavior::getRadius | ( |  | ) | const

Gets radius of paint splat.

Returns
  Radius in texture coordinate range [0-1]

## getRepresentation()

std::shared_ptr< Graphics::OsgMeshRepresentation > SurgSim::Graphics::PaintBehavior::getRepresentation | ( |  | ) | const

Gets graphics representation being painted on.

Returns
  Shared pointer to a graphics representation

## paint()

void SurgSim::Graphics::PaintBehavior::paint | ( | const Math::Vector2d & | coordinates | ) |

private

Apply paint brush to texture at specified texture coordinates.

## setAntiAlias()

void SurgSim::Graphics::PaintBehavior::setAntiAlias | ( | bool | antialias | ) |

Sets whether to anti-alias the brush.

Parameters

  antialias | True enables AA, False disables

## setColor()

void SurgSim::Graphics::PaintBehavior::setColor | ( | const Math::Vector4d & | color | ) |

Sets color of the paint.

Parameters

  color | RGBA color in [0-1] range

## setCoordinates()

void SurgSim::Graphics::PaintBehavior::setCoordinates | ( | const std::vector< DataStructures::IndexedLocalCoordinate > & | coordinate | ) |

Sets collection of local triangle coordinates to paint on during next update.

Parameters

  coordinate | Standard vector of IndexedLocalCoordinates

## setRadius()

void SurgSim::Graphics::PaintBehavior::setRadius | ( | double | radius | ) |

Sets radius of paint splat.

Parameters

  radius | Radius in texture coordinate range [0-1]

## setRepresentation()

void SurgSim::Graphics::PaintBehavior::setRepresentation | ( | std::shared_ptr< Framework::Component > | representation | ) |

Sets graphics representation being painted on.

Parameters

  representation | Graphics representation pointer

## setTextureSize()

void SurgSim::Graphics::PaintBehavior::setTextureSize | ( | int | width,
|  | int | height
| ) |  |

Sets the size of the texture layer to paint onto.

Parameters

  width | texture width
  height | texture height

## SURGSIM_CLASSNAME()

SurgSim::Graphics::PaintBehavior::SURGSIM_CLASSNAME | ( | SurgSim::Graphics::PaintBehavior |  | ) |

## toPixel()

Math::Vector2d SurgSim::Graphics::PaintBehavior::toPixel | ( | const Math::Vector2d & | uv | ) |

private

Convert texture uv coordinates to pixel coordinates.

## update()

void SurgSim::Graphics::PaintBehavior::update | ( | double | dt | ) |

override virtual

Update the behavior.

Parameters

  dt | The length of time (seconds) between update calls.

Implements SurgSim::Framework::Behavior.

## Member Data Documentation

## m_antialias

bool SurgSim::Graphics::PaintBehavior::m_antialias

private

Flag for antialiasing the brush.

## m_brush

Math::Matrix SurgSim::Graphics::PaintBehavior::m_brush

private

## m_brushOffsetX

int SurgSim::Graphics::PaintBehavior::m_brushOffsetX

private

## m_brushOffsetY

int SurgSim::Graphics::PaintBehavior::m_brushOffsetY

private

## m_color

Math::Vector4d SurgSim::Graphics::PaintBehavior::m_color

private

Color to use for decal painting.

## m_coordinates

std::vector<DataStructures::IndexedLocalCoordinate> SurgSim::Graphics::PaintBehavior::m_coordinates

private

Collection of UV texture coordinates to paint to on next update.

## m_height

int SurgSim::Graphics::PaintBehavior::m_height

private

Height of assigned texture.

## m_mutex

boost::mutex SurgSim::Graphics::PaintBehavior::m_mutex

private

## m_radius

double SurgSim::Graphics::PaintBehavior::m_radius

private

Radius of brush.

## m_representation

std::shared_ptr<Graphics::OsgMeshRepresentation> SurgSim::Graphics::PaintBehavior::m_representation

private

Graphics representation of the mesh to apply behavior to.

## m_texture

std::shared_ptr<Graphics::OsgTexture2d> SurgSim::Graphics::PaintBehavior::m_texture

private

Image data of the texture to be used as the decal layer.

## m_width

int SurgSim::Graphics::PaintBehavior::m_width

private

Width of assigned texture.

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

- SurgSim/Graphics/PaintBehavior.h
- SurgSim/Graphics/PaintBehavior.cpp