Public Member Functions | Private Member Functions | Private Attributes | List of all members
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:
SurgSim::Framework::Behavior SurgSim::Framework::Component SurgSim::Framework::Accessible SurgSim::Framework::FactoryBase1< Component, std::string >

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::OsgMeshRepresentationgetRepresentation () 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< ScenegetScene ()
 Gets the scene. More...
 
void setSceneElement (std::weak_ptr< SceneElement > sceneElement)
 Sets the scene element. More...
 
std::shared_ptr< SceneElementgetSceneElement ()
 Gets the scene element. More...
 
std::shared_ptr< const SceneElementgetSceneElement () const
 Gets the scene element, constant version. More...
 
std::shared_ptr< RuntimegetRuntime () 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< ComponentgetSharedPtr ()
 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 >
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::OsgMeshRepresentationm_representation
 Graphics representation of the mesh to apply behavior to. More...
 
std::shared_ptr< Graphics::OsgTexture2dm_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::IndexedLocalCoordinatem_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 FactoryTypegetFactory ()
 
- Protected Member Functions inherited from SurgSim::Framework::Component
virtual std::shared_ptr< PoseComponentgetPoseComponent ()
 Get the PoseComponent for this component. More...
 
virtual std::shared_ptr< const PoseComponentgetPoseComponent () 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 ( )
overridevirtual

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 ( )
overridevirtual

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
antialiasTrue enables AA, False disables

§ setColor()

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

Sets color of the paint.

Parameters
colorRGBA 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
coordinateStandard vector of IndexedLocalCoordinates

§ setRadius()

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

Sets radius of paint splat.

Parameters
radiusRadius 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
representationGraphics representation pointer

§ setTextureSize()

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

Sets the size of the texture layer to paint onto.

Parameters
widthtexture width
heighttexture 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)
overridevirtual

Update the behavior.

Parameters
dtThe 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: