iLab Neuromorphic Robotics Toolkit
0.1
|
#include <nrt/Graphics/ShapeRendererBasic.H>
Render Shape objects into a basic X11/OpenGL window.
Definition at line 107 of file ShapeRendererBasic.H.
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. | |
![]() | |
ShapeRenderer (std::string const &instanceName="") | |
Default constructor. More... | |
virtual | ~ShapeRenderer () |
Virtual destructor for safe inheritance. | |
DisplayListManager & | dlManager () |
Access our DisplayListManager to create/delete/access display lists. More... | |
TextureManager & | texManager () |
Access our TextureManager to create/delete/access textures. More... | |
std::map< std::string, nrt::graphics::mocap::Skeleton > & | skeletons () |
Access our map of skeletons. | |
![]() | |
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... | |
template<> | |
std::shared_ptr< Component > | getSubComponent (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 ¶mdescriptor, T const &val) |
Set a parameter value. More... | |
template<typename T > | |
void | setParamValUnique (std::string const ¶mdescriptor, 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 ¶mdescriptor) const |
Get parameter(s) value(s) by descriptor. More... | |
template<typename T > | |
T | getParamValUnique (std::string const ¶mdescriptor) const |
Get a parameter value, simple version assuming only one parameter match. More... | |
std::vector< std::string > | setParamString (std::string const ¶mdescriptor, std::string const &val) |
Set a parameter value, by string. More... | |
void | setParamStringUnique (std::string const ¶mdescriptor, 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 ¶mdescriptor) const |
Get a parameter value, by string. More... | |
std::string | getParamStringUnique (std::string const ¶mdescriptor) 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 ¶mdescriptor) 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. | |
![]() | |
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 |
![]() | |
std::shared_ptr < nrt::graphics::Camera > | itsCamera |
Our camera, defines projection and view matrices. | |
![]() | |
boost::shared_mutex | itsMtx |
Mutex used to protect our internals other than subcomponents and parameters. | |
std::vector< std::shared_ptr < Component > > | itsSubComponents |
boost::shared_mutex | itsSubMtx |
Component *const | nrt_component_this |
Friends | |
struct | ContextLock |
nrt::graphics::ShapeRendererBasic::ShapeRendererBasic | ( | std::string const & | instanceName = "" ) |
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] | eye | Location to look from |
[in] | target | Location to look at |
[in] | up | Direction to consider up for camera |
|
virtual |
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.