iLab Neuromorphic Robotics Toolkit  0.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
nrt::graphics::ShapeRendererBasic Class Reference

#include <nrt/Graphics/ShapeRendererBasic.H>

Render Shape objects into a basic X11/OpenGL window.


Definition at line 107 of file ShapeRendererBasic.H.

Inheritance diagram for nrt::graphics::ShapeRendererBasic:
nrt::graphics::ShapeRenderer nrt::Parameter< shaperendererbasic::dims, shaperendererbasic::wireframe, shaperendererbasic::windowtitle, shaperendererbasic::fogdensity, shaperendererbasic::fogcolor, shaperendererbasic::detail, shaperendererbasic::ambientlight, shaperendererbasic::diffuselight, shaperendererbasic::specularlight, shaperendererbasic::lightposition > nrt::Component nrt::ParameterRegistry

Public Member Functions

 ShapeRendererBasic (std::string const &instanceName="")
 Default constructor. More...
virtual ~ShapeRendererBasic ()
 Virtual destructor for safe inheritance.
void createContext ()
void activateContext ()
 Optional, activate the context (after it is created by createContext()); initFrame() does this too.
void initFrame ()
 Reset our display buffer to blank.
void renderFrame ()
 Render the display buffer to screen.
void destroyContext ()
 Destroy our drawing context.
virtual Dims< int32 > dims () const
 Get dimensions of renderer.
void lookAt (Eigen::Vector3d const &eye, Eigen::Vector3d const &target, Eigen::Vector3d const &up)
 Look at the target from the specified location. More...
void setKeyboardCallback (std::function< void(std::vector< nrt::graphics::ShapeRenderer::KeyboardPress >)> callback)
 Set a callback to be called whenever a key is pressed.
void drawSphere () const
 Primitive shapes optimized as DisplayLists. More...
void drawCylinder (bool capped) const
 Draw a unit cylinder.
- Public Member Functions inherited from nrt::graphics::ShapeRenderer
 ShapeRenderer (std::string const &instanceName="")
 Default constructor. More...
virtual ~ShapeRenderer ()
 Virtual destructor for safe inheritance.
DisplayListManagerdlManager ()
 Access our DisplayListManager to create/delete/access display lists. More...
TextureManagertexManager ()
 Access our TextureManager to create/delete/access textures. More...
std::map< std::string,
nrt::graphics::mocap::Skeleton > & 
skeletons ()
 Access our map of skeletons.
- Public Member Functions inherited from nrt::Component
 Component (std::string const &instanceName)
 Constructor. More...
void prepareForDeletion ()
 Prepare for deletion: uninit and disconnect from our parent. More...
virtual ~Component ()
 Virtual destructor for safe inheritance. More...
std::shared_ptr< ComponentgetSubComponent (std::string const &instanceName) const
template<class Comp >
std::shared_ptr< Comp > addSubComponent (std::string const &instanceName="")
 Pseudo-constructor: construct and add another component as a subcomponent of this one. More...
template<class Comp >
void removeSubComponent (std::shared_ptr< Comp > &component)
 Remove a sub-Component from this Component, by shared_ptr. More...
void removeSubComponent (std::string const &instanceName)
 Remove a sub-Component from this Component, by instance name.
template<class Comp = nrt::Component>
std::shared_ptr< Comp > getSubComponent (std::string const &instanceName) const
 Get a sub-component by instance name. More...
bool isTopLevel () const
 Returns true if this component is top-level, i.e., its parent is an nrt::Manager (including nrt::Blackboard)
bool initialized () const
 Has this component been initialized yet?
bool started () const
 Is this component started, i.e., it has passed the start() state and not yet entered the stop() state.
bool running () const
 Is this component running, i.e., has passed start() and been launch()ed and not yet entered the stop() state.
void wait ()
 Wait until all run() functions decide on their own that they are finished. More...
Component::MetaInfo const & meta () const
 Get the metainfo of this Component. More...
template<typename T >
std::vector< std::string > setParamVal (std::string const &paramdescriptor, T const &val)
 Set a parameter value. More...
template<typename T >
void setParamValUnique (std::string const &paramdescriptor, T const &val)
 Set a parameter value, simple version assuming only one parameter match. More...
template<typename T >
std::vector< std::pair
< std::string, T > > 
getParamVal (std::string const &paramdescriptor) const
 Get parameter(s) value(s) by descriptor. More...
template<typename T >
getParamValUnique (std::string const &paramdescriptor) const
 Get a parameter value, simple version assuming only one parameter match. More...
std::vector< std::string > setParamString (std::string const &paramdescriptor, std::string const &val)
 Set a parameter value, by string. More...
void setParamStringUnique (std::string const &paramdescriptor, std::string const &val)
 Set a parameter value by string, simple version assuming only one parameter match. More...
std::vector< std::pair
< std::string, std::string > > 
getParamString (std::string const &paramdescriptor) const
 Get a parameter value, by string. More...
std::string getParamStringUnique (std::string const &paramdescriptor) const
 Get a parameter value by string, simple version assuming only one parameter match. More...
std::string descriptor () const
 Get our full descriptor (including all parents) as [Classname-Instancename]:[...]:[...].
std::string parentModuleUID () const
 Get the ModuleUID (as string) of this Component's nearest parent Module, or an empty string.
void prettyPrintTree (std::ostream &os, int indent=0) const
 Produce a nice textual hierarchy of this Component's sub-tree.
std::vector< std::pair
< std::string,
nrt::ParameterSummary > > 
getParamSummary (std::string const &paramdescriptor) const
 Return a list of parameter summaries for a given descriptor. More...
std::vector< std::pair
< std::string,
nrt::ParameterSummary > > 
getParamSummary (bool skipsubmodules=false) const
 Return a list of parameter summaries for all parameters of this Component and its subcomponents. More...
void setPath (std::string const &path)
 Assign a filesystem path to this component.
std::string absolutePath (std::string const &path)
 If given path is relative (not starting with /), prepend the Component path to it; otherwise, no-op.
virtual void notifyAllParamChanged (nrt::ParameterState const state) const
 This method is called by the Blackboard to refresh a ParamChangedListener.
virtual void getAllParamSummaries (std::vector< nrt::ParameterSummary > &ps) const
 Recursively get all param summaries.
- Public Member Functions inherited from nrt::ParameterRegistry
void addParameter (ParameterBase *const param)
 The parameter class uses this method to register itself on construction with it's owning Component.
void removeParameter (ParameterBase *const param)
 The parameter class uses this method to un-register itself on destruction with it's owning Component.

Protected Member Functions

virtual void preStart ()
 Open the window and do initial setups.
virtual void resizeCallback (int width, int height)
 Function called when a window resize event is received, or user changes the dims parameter.
virtual void mouseCallback (unsigned int button, int x, int y, bool pushed, bool motion)
 Function called when a mouse event is received.
virtual void keyboardCallback (std::vector< nrt::graphics::ShapeRenderer::KeyboardPress > const &keys)
 Function called when a keyboard event is received.
virtual void mouse3dCallback (double const x, double const y, double const z, double const a, double const b, double const c, int const period)
 Function called when a 3D mouse (3dConnexion SpacePilot Pro for example) event is received.
virtual void postStop ()
 Close down the window.

Protected Attributes

Display * itsDisplay
XVisualInfo * itsVisualInfo
Window itsWindow
GLXFBConfig itsFBConfig
GLXContext itsCtx
XSetWindowAttributes itsSwa
- Protected Attributes inherited from nrt::graphics::ShapeRenderer
< nrt::graphics::Camera
 Our camera, defines projection and view matrices.
- Protected Attributes inherited from nrt::Component
boost::shared_mutex itsMtx
 Mutex used to protect our internals other than subcomponents and parameters.
std::vector< std::shared_ptr
< Component > > 
boost::shared_mutex itsSubMtx
Component *const nrt_component_this


struct ContextLock

Constructor & Destructor Documentation

nrt::graphics::ShapeRendererBasic::ShapeRendererBasic ( std::string const &  instanceName = "")

Default constructor.

This should do very little, most initialization should happen in preInit().

See Also

Member Function Documentation

void nrt::graphics::ShapeRendererBasic::lookAt ( Eigen::Vector3d const &  eye,
Eigen::Vector3d const &  target,
Eigen::Vector3d const &  up 

Look at the target from the specified location.

[in]eyeLocation to look from
[in]targetLocation to look at
[in]upDirection to consider up for camera
void nrt::graphics::ShapeRendererBasic::drawSphere ( ) const

Primitive shapes optimized as DisplayLists.

Before you call any of these functions, you should already have obtained a glX context lock. Mainly, these functions are for the use of programmers that code complex shapes as assemblages of these elementary shapes; end users should just use Shape objects instead. For example, use render() on a Sphere shape instead of calling drawSphere() here (indeed, render() for a Sphere just calls drawSphere() internally after setting up the transform, Brush, Pen, etc). Draw a unit sphere

Implements nrt::graphics::ShapeRenderer.

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