#include <GLWidgets.h>
Inheritance diagram for GLUNodeWidget:
Definition at line 36 of file GLWidgets.h.
Event & constraint mapper. | |
All widgets have the default event of: gutz::GUTZ_LEFT_MOUSE -> MOVE you may want to nuke this event if it isn't applicable: delEvent(gutz::GUTZ_LEFT_MOUSE); event keys are defined in: gutzKeyMouse.h | |
enum | WIGET_BEHAVIORS { NO_EVENT = 0, MOVE, ROTATE, WB_LAST } |
void | addEvent (const unsigned int key, const unsigned int event, const ConstraintSP cnst=new Constraint()) |
addEvent. constraint defaults to "Free Move" constraint | |
unsigned int | getEvent (const gutz::MouseEvent &me) const |
getEvent, returns the event if one is defined, returns NO_EVENT if the mouse is up works for both: gutz::MouseEvent and gutz::MouseMoveEvent This function is usefull in implementation, externally use getEvent(unsigned int). | |
unsigned int | getEvent (unsigned int key) const |
what is the event assigned to a key | |
void | delEvent (const unsigned int key) |
delete an event from the event map | |
void | nukeEvents () |
delete all events from the event map | |
gutz::EventKeyMap | getEvents () const |
void | setEvents (const gutz::EventKeyMap &eventMap) |
ConstraintMap | getConstraints () const |
void | setConstraints (const ConstraintMap &cnstMap) |
Slices & Stacks. | |
These define the subdivisions used to tesselate the quadric to a polygon. | |
int | getSlice () const |
void | setSlice (int slice) |
int | getStack () const |
void | setStack (int stack) |
Draw-shape, creates the geometry for a shape | |
void | drawSphere (const gutz::vec3f &pos, float rad) |
GLUItem :: draw sphere. | |
void | drawBar (const gutz::vec3f &start, const gutz::vec3f &end, float rad) |
GLUItem :: draw bar. | |
compile to a display list? | |
bool | compiles () const |
void | setCompile (bool yes) |
Clones | |
WidgetItem * | clone () const |
WidgetItem::clone definition. | |
set/get the position of this object. | |
also updates calls pointChanged | |
virtual void | setPoint (const gutz::vec3f &wpos) |
set point, WORLD space | |
gutz::vec3f | getPoint () const |
get point, WORLD space | |
virtual void | setPointLocal (const gutz::vec3f &lpos) |
set point, LOCAL space | |
gutz::vec3f | getPointLocal () const |
get point, LOCAL space | |
set/get the diameter of the node | |
virtual void | setRad (float r) |
float | getRad () const |
Events duplicated from <Renderable>. | |
These are duplicated to insure/ease framework issues, notice that mouse and move handle the "check with parent" and mouseDef(), moveDef() are what actually implement the behavior. | |
void | draw (const gutz::RenderEvent &r) |
main draw event... | |
bool | mouse (const gutz::MouseEvent &me) |
a mouse event... | |
virtual bool | mouseDef (const gutz::MouseEvent &me) |
override this one to implement mouse behavior | |
virtual bool | mouseChild (WidgetItem *child, const gutz::MouseEvent &me) |
a child was moused, called before their mouseDef. | |
bool | move (const gutz::MouseMoveEvent &mme) |
a move event, checks with parent, then calls moveDef(). | |
virtual bool | moveDef (const gutz::MouseMoveEvent &mme) |
override this one to implement move behavior | |
virtual bool | moveChild (WidgetItem *child, const gutz::MouseMoveEvent &mme) |
a child wants to be moved. | |
Parent/Child management | |
virtual void | addChild (WidgetItem *child) |
a child was added | |
virtual void | delChild (WidgetItem *child) |
a child was deleted/ changed parent | |
virtual void | setParent (WidgetItem *parent) |
a (new?) parent now owns you :) | |
Some appearance management | |
ColorWStateSP | getColor () const |
void | setColor (ColorWState *const color) |
Draw on/off. | |
bool | isOn () const |
void | setOn (bool yes) |
Delete. | |
Does this object need to be removed from a render list? This means that the object is finished and anyone with a smart pointer to it needs to delete the smart pointer and stop using the renderable. | |
bool | needsDelete () const |
void | setDelete (bool yes) |
Interaction Functions | |
Return true if the event was for you.
By default interaction is forwarded to your protected manipulator (_manip). To use it just apply it in your draw function. However, if you don't add any events or call setManipEventsDefault(), you won't have any interaction. Override these functions in your base class to implement custom behaviors. | |
virtual bool | key (unsigned char k, int x, int y) |
Selected | |
Is this object currently selected? | |
virtual void | setSelected (bool yes) |
bool | isSelected () const |
Manipulator Interface | |
gutz::Manip * | getManip () const |
void | setManip (gutz::Manip *const m) |
void | setManipEventsDefault () |
you have to call this to enable default interaction, OR customize the manipulators events yourself. | |
Signals | |
gutz::Signal< const gutz::vec3f & > | pointChanged |
signal: pointChanged(const vec3f &pt), sends WORLD space position | |
gutz::Signal< float > | radChanged |
signal: radChanged(float r) | |
Public Types | |
typedef gutz::SmartPtr< WidgetItem > | WidgetItemSP |
typedef gutz::vec2f | Point2 |
2D point | |
typedef gutz::arrayOwn1< Point2 > | Point2Array |
2D point array | |
typedef gutz::vec3f | Point3 |
3D point | |
typedef gutz::arrayOwn1< Point3 > | Point3Array |
3D point array | |
Public Member Functions | |
GLUNodeWidget (gutz::vec3f pos, float rad=-1, WidgetItem *parent=0, int slice=10, int stack=10) | |
GLUNodeWidget (const GLUNodeWidget &nw) | |
calls the NodeWidget and GLUItem copy constructors | |
GLUNodeWidget & | operator= (const GLUNodeWidget &gnw) |
calls the NodeWiget and GLUItem assignment operators | |
virtual NodeWidget * | cloneNode () const |
implementation of NodeWidget::cloneNode() | |
void | drawDef (const gutz::RenderEvent &r) |
override of NodeWidget::drawDef() sets up GL style picking names and calls the GLItem::drawGL() | |
GLUquadricObj * | getObj () const |
void | drawGL () |
drawGL handles some display list stuff for you, you have to call "setUP()" if the object changes and needs to have the disp list re-compiled. | |
void | setUp (bool yes=true) |
object needs update? something changed, for display lists mostly | |
void | initNames (unsigned int name1, unsigned int name2) |
gl name for picking + push "this pointer" as second name be sure to call "popNames when you are through" ... | |
void | pushName (unsigned int name) |
push a name on the pick stack, keeps track of how many you pushed so that when you call popNames() they all come off | |
void | popNames () |
pop all names pushed on stack | |
virtual void | setChanged () |
object changed | |
virtual Point2Array | getValidArea () const |
polygonalItem interface stuff | |
virtual void | applyXform (gutz::mat4f xf) |
transform the widget | |
Public Attributes | |
HAS_SLOTS | |
Protected Member Functions | |
virtual void | appearanceChanged () |
called if something about how it looks changes, does not include changes to the transform, just things like radius and color. | |
void | drawGLDef () |
override of GLUItem::drawGLDef() | |
virtual void | _invalidate () |
called before widget changes, see also _update() some window systems need these calls before and after something changes, respectively, you'll have to specify them in your concrete class, if you need them. | |
virtual void | _update () |
called after widget is changed | |
virtual void | _incCount () |
gutz::Counted interface, increment reference count by one. | |
virtual void | _decCount () |
gutz::Counted interface, decrement reference count by one. | |
virtual int | _getCount () const |
gutz::Counted interface, get the current reference count. | |
Protected Attributes | |
GLUquadricObj * | _qobj |
int | _slice |
int | _stack |
GLuint | _listName |
bool | _compile |
bool | _update |
int | _numNames |
float | _rad |
bool | _on |
is this renderable currently "render-able"? | |
bool | _selected |
is this renderable selected? | |
bool | _deleteMe |
does this object need to be deleted? | |
gutz::ManipSP | _manip |
You get a manipulator free, no charge. | |
Friends | |
class | SmartPtr |
class | SmartPtrRef |
|
2D point
Definition at line 124 of file WidgetBase.h. Referenced by WidgetItem::getValidArea(), NodeWidget::getValidArea(), and EdgeWidget::getValidArea(). |
|
2D point array
Definition at line 125 of file WidgetBase.h. Referenced by WidgetItem::getValidArea(), NodeWidget::getValidArea(), and EdgeWidget::getValidArea(). |
|
3D point
Definition at line 127 of file WidgetBase.h. Referenced by FrameWidget::setDims(), FrameWidget::setHeight(), and FrameWidget::setWidth(). |
|
3D point array
Definition at line 128 of file WidgetBase.h. |
|
Definition at line 122 of file WidgetBase.h. |
|
Definition at line 313 of file WidgetBase.h. |
|
Definition at line 38 of file GLWidgets.h. References _color, defNodeColor, and WidgetItem::setColor(). Referenced by cloneNode(). |
|
calls the NodeWidget and GLUItem copy constructors
Definition at line 48 of file GLWidgets.h. |
|
gutz::Counted interface, decrement reference count by one. Not generaly used by subclasses, mostly for collaboration with gutz::SmartPtr. Sometimes you need to call this though, see the documentation for gutz::SmartPtr Definition at line 54 of file smartptr.h. Referenced by TFImage::clear(), NrroImage::fBlendOverRGBA(), and Nrro::updateMinMax(). |
|
gutz::Counted interface, get the current reference count. Not generaly used by subclasses, mostly for collaboration with gutz::SmartPtr. Definition at line 58 of file smartptr.h. |
|
gutz::Counted interface, increment reference count by one. Not generaly used by subclasses, mostly for collaboration with gutz::SmartPtr. Sometimes you need to call this though, see the documentation for gutz::SmartPtr Definition at line 48 of file smartptr.h. Referenced by TFImage::clear(), NrroImage::fBlendOverRGBA(), and Nrro::updateMinMax(). |
|
called before widget changes, see also _update() some window systems need these calls before and after something changes, respectively, you'll have to specify them in your concrete class, if you need them. They are quite usefull, if you need to update when a widget changes, but you don't (nescessarily) care what changed Definition at line 380 of file WidgetBase.h. Referenced by FrameWidget::setCenter(), FrameWidget::setDims(), EdgeWidget::setEndPoint(), FrameWidget::setHeight(), SurfaceWidget::setPoint(), NodeWidget::setPointLocal(), EdgeWidget::setStartPoint(), and FrameWidget::setWidth(). |
|
called after widget is changed
Definition at line 383 of file WidgetBase.h. Referenced by FrameWidget::setCenter(), FrameWidget::setDims(), EdgeWidget::setEndPoint(), FrameWidget::setHeight(), SurfaceWidget::setPoint(), NodeWidget::setPointLocal(), EdgeWidget::setStartPoint(), and FrameWidget::setWidth(). |
|
a child was added
Definition at line 278 of file WidgetBase.h. |
|
addEvent. constraint defaults to "Free Move" constraint
Definition at line 321 of file WidgetBase.h. References _constraintMap, and _eventMap. Referenced by SurfaceWidget::SurfaceWidget(), and WidgetItem::WidgetItem(). |
|
called if something about how it looks changes, does not include changes to the transform, just things like radius and color.
Reimplemented from WidgetItem. Definition at line 81 of file GLWidgets.h. References GLItem::setUp(). |
|
transform the widget
Implements WidgetItem. Definition at line 120 of file NodeWidget.h. References NodeWidget::setPoint(). |
|
WidgetItem::clone definition.
Implements WidgetItem. Definition at line 54 of file NodeWidget.h. References NodeWidget::cloneNode(). |
|
implementation of NodeWidget::cloneNode()
Implements NodeWidget. Definition at line 61 of file GLWidgets.h. References GLUNodeWidget(). |
|
Definition at line 47 of file GLItems.h. References GLItem::_compile. |
|
a child was deleted/ changed parent
Reimplemented in FrameWidget. Definition at line 280 of file WidgetBase.h. |
|
delete an event from the event map
Definition at line 344 of file WidgetBase.h. References _constraintMap, and _eventMap. |
|
main draw event...
Framework only, do not override, Might need to add functionality here later. Implements Renderable. Definition at line 209 of file WidgetBase.h. References WidgetItem::drawDef(), and r. |
|
GLUItem :: draw bar.
Definition at line 138 of file GLItems.cpp. References GLUItem::_qobj, GLUItem::_slice, GLUItem::_stack, end, glMultMatrixf(), glPopMatrix(), glPushMatrix(), len, gutz::mat4f, start, gutz::vec3f, and gutz::vec3f_z. Referenced by GLUEdgeWidget::drawGLDef(). |
|
override of NodeWidget::drawDef() sets up GL style picking names and calls the GLItem::drawGL()
Implements WidgetItem. Definition at line 66 of file GLWidgets.h. References _color, Renderable::_manip, GLItem::drawGL(), glMultMatrixf(), glPopMatrix(), glPushMatrix(), GLItem::initNames(), GLItem::popNames(), and RENDERABLE_NAME. |
|
drawGL handles some display list stuff for you, you have to call "setUP()" if the object changes and needs to have the disp list re-compiled. drawGL() only calls "drawGLDef()" if the display list is being recompiled or you turn compilation off.
Definition at line 31 of file GLItems.cpp. References GLItem::_compile, GLItem::_listName, GLItem::_update, GLItem::drawGLDef(), GL_COMPILE, glCallList(), glEndList(), glErr(), glGenLists(), glIsList(), and glNewList(). Referenced by GLUEdgeWidget::drawDef(), and drawDef(). |
|
override of GLUItem::drawGLDef()
Reimplemented from GLUItem. Definition at line 83 of file GLWidgets.h. References GLUItem::drawSphere(), and NodeWidget::getRad(). |
|
GLUItem :: draw sphere.
Definition at line 125 of file GLItems.cpp. References GLUItem::_qobj, GLUItem::_slice, GLUItem::_stack, glPopMatrix(), glPushMatrix(), and glTranslatef(). Referenced by drawGLDef(), and GLSurfaceWidget::drawQuad(). |
|
Definition at line 366 of file WidgetBase.h. References _color. |
|
Definition at line 357 of file WidgetBase.h. References _constraintMap, and ConstraintMap. |
|
what is the event assigned to a key
Definition at line 338 of file WidgetBase.h. References _eventMap. |
|
getEvent, returns the event if one is defined, returns NO_EVENT if the mouse is up works for both: gutz::MouseEvent and gutz::MouseMoveEvent This function is usefull in implementation, externally use getEvent(unsigned int).
Definition at line 331 of file WidgetBase.h. References _eventMap, gutz::MouseEvent::getButton(), gutz::MouseEvent::isButtonDown(), and WidgetItem::NO_EVENT. Referenced by WidgetItem::mouseDef(), SurfaceWidget::mouseDef(), and SurfaceWidget::moveDef(). |
|
Definition at line 353 of file WidgetBase.h. References _eventMap. |
|
Definition at line 184 of file Renderable.h. References Renderable::_manip. |
|
Definition at line 104 of file GLItems.h. References GLUItem::_qobj. |
|
get point, WORLD space
Definition at line 78 of file NodeWidget.h. References Renderable::_manip. Referenced by NodeWidget::getValidArea(), NodeWidget::operator=(), NodeWidget::setChanged(), EdgeWidget::setEndNode(), NodeWidget::setPointLocal(), and EdgeWidget::setStartNode(). |
|
get point, LOCAL space
Definition at line 82 of file NodeWidget.h. References Renderable::_manip. Referenced by NodeWidget::setPointLocal(). |
|
Definition at line 91 of file NodeWidget.h. References NodeWidget::_rad. Referenced by drawGLDef(), and NodeWidget::operator=(). |
|
Definition at line 111 of file GLItems.h. References GLUItem::_slice. |
|
Definition at line 113 of file GLItems.h. References GLUItem::_stack. |
|
polygonalItem interface stuff
Reimplemented from WidgetItem. Definition at line 94 of file NodeWidget.cpp. References NodeWidget::_rad, NodeWidget::getPoint(), WidgetItem::Point2, WidgetItem::Point2Array, and gutz::vec3f. |
|
gl name for picking + push "this pointer" as second name be sure to call "popNames when you are through" ... the drawGL() calls initNames() draw() popNames() Definition at line 60 of file GLItems.cpp. References GLItem::pushName(). Referenced by GLUEdgeWidget::drawDef(), and drawDef(). |
|
Definition at line 141 of file Renderable.h. References Renderable::_on. |
|
Definition at line 177 of file Renderable.h. References Renderable::_selected. |
|
Definition at line 166 of file Renderable.h. |
|
a mouse event...
checks with parent, then calls mouseDef() Reimplemented from Renderable. Definition at line 220 of file WidgetBase.h. References WidgetItem::mouseDef(). |
|
a child was moused, called before their mouseDef.
return true if & only if parent will be handling the mouse event Reimplemented in TFViewWidget, FrameWidget, and SurfaceContentWidget. Definition at line 238 of file WidgetBase.h. |
|
override this one to implement mouse behavior
Reimplemented in SurfaceWidget. Definition at line 227 of file WidgetBase.h. References Renderable::_manip, WidgetItem::getEvent(), and WidgetItem::NO_EVENT. Referenced by WidgetItem::mouse(), and FrameWidget::mouseChild(). |
|
a move event, checks with parent, then calls moveDef(). Framework only, do not override. Reimplemented from Renderable. Definition at line 245 of file WidgetBase.h. References WidgetItem::moveDef(). |
|
a child wants to be moved. if true, child does nothing (parent moves them) if false, child moves self Reimplemented in TFViewWidget, FrameWidget, and SurfaceContentWidget. Definition at line 267 of file WidgetBase.h. |
|
override this one to implement move behavior
Reimplemented in SurfaceWidget. Definition at line 253 of file WidgetBase.h. References Renderable::_manip, and WidgetItem::setChanged(). Referenced by WidgetItem::move(), and FrameWidget::moveChild(). |
|
Definition at line 152 of file Renderable.h. References Renderable::_deleteMe. |
|
delete all events from the event map
Definition at line 347 of file WidgetBase.h. References _constraintMap, _eventMap, and ConstraintMap. |
|
calls the NodeWiget and GLUItem assignment operators
Definition at line 53 of file GLWidgets.h. References NodeWidget::operator=(), and GLUItem::operator=(). |
|
pop all names pushed on stack
Definition at line 72 of file GLItems.cpp. References GLItem::_numNames, and glPopName(). Referenced by GLUEdgeWidget::drawDef(), and drawDef(). |
|
push a name on the pick stack, keeps track of how many you pushed so that when you call popNames() they all come off
Definition at line 66 of file GLItems.cpp. References GLItem::_numNames, glPushName(), and name. Referenced by GLItem::initNames(). |
|
object changed
Implements WidgetItem. Definition at line 65 of file NodeWidget.h. References NodeWidget::getPoint(), and NodeWidget::pointChanged. |
|
Definition at line 367 of file WidgetBase.h. References _color. Referenced by GLUEdgeWidget::GLUEdgeWidget(), and GLUNodeWidget(). |
|
Definition at line 48 of file GLItems.h. References GLItem::_compile. |
|
Definition at line 358 of file WidgetBase.h. References _constraintMap. |
|
Definition at line 153 of file Renderable.h. References Renderable::_deleteMe, and Renderable::setOn(). |
|
Definition at line 354 of file WidgetBase.h. References _eventMap. |
|
Definition at line 185 of file Renderable.h. References Renderable::_manip. |
|
you have to call this to enable default interaction, OR customize the manipulators events yourself.
Definition at line 188 of file Renderable.h. References Renderable::_manip. |
|
Definition at line 142 of file Renderable.h. References Renderable::_on. Referenced by Renderable::setDelete(). |
|
a (new?) parent now owns you :)
Definition at line 283 of file WidgetBase.h. References Renderable::_manip. Referenced by SurfaceContentWidget::addContent(), SurfaceContentWidget::delContent(), and PolygonWidget::setPoints(). |
|
set point, WORLD space
Definition at line 42 of file NodeWidget.cpp. References Renderable::_manip, and NodeWidget::setPointLocal(). Referenced by NodeWidget::applyXform(), NodeWidget::operator=(), EdgeWidget::setEndNode(), and EdgeWidget::setStartNode(). |
|
set point, LOCAL space this is key, don't want infinite updates!!!! if we don't move, we don't update... Definition at line 50 of file NodeWidget.cpp. References WidgetItem::_invalidate(), Renderable::_manip, WidgetItem::_update(), NodeWidget::getPoint(), NodeWidget::getPointLocal(), and NodeWidget::pointChanged. Referenced by NodeWidget::setPoint(). |
|
Definition at line 89 of file NodeWidget.h. References NodeWidget::_rad, WidgetItem::appearanceChanged(), r, and NodeWidget::radChanged. Referenced by NodeWidget::operator=(). |
|
Definition at line 176 of file Renderable.h. References Renderable::_selected. |
|
Definition at line 112 of file GLItems.h. References GLUItem::_slice, and GLItem::setUp(). |
|
Definition at line 114 of file GLItems.h. References GLUItem::_stack, and GLItem::setUp(). |
|
object needs update? something changed, for display lists mostly
Definition at line 55 of file GLItems.h. References GLItem::_update. Referenced by GLUEdgeWidget::appearanceChanged(), appearanceChanged(), GLUItem::operator=(), GLUItem::setSlice(), and GLUItem::setStack(). |
|
Definition at line 40 of file smartptr.h. Referenced by Nrro::NrroIter< T >::NrroIter(). |
|
Definition at line 41 of file smartptr.h. |
|
Definition at line 75 of file GLItems.h. Referenced by GLItem::compiles(), GLItem::drawGL(), GLItem::GLItem(), and GLItem::setCompile(). |
|
does this object need to be deleted?
Definition at line 237 of file Renderable.h. Referenced by Renderable::needsDelete(), Renderable::Renderable(), and Renderable::setDelete(). |
|
Definition at line 74 of file GLItems.h. Referenced by GLItem::drawGL(), and GLItem::GLItem(). |
|
|
Definition at line 77 of file GLItems.h. Referenced by GLItem::GLItem(), GLItem::popNames(), and GLItem::pushName(). |
|
is this renderable currently "render-able"?
Definition at line 235 of file Renderable.h. Referenced by Renderable::isOn(), Renderable::operator=(), Renderable::Renderable(), and Renderable::setOn(). |
|
Definition at line 129 of file GLItems.h. Referenced by GLUItem::drawBar(), GLUItem::drawSphere(), GLUItem::getObj(), and GLUItem::~GLUItem(). |
|
Definition at line 132 of file NodeWidget.h. Referenced by NodeWidget::getRad(), NodeWidget::getValidArea(), NodeWidget::NodeWidget(), and NodeWidget::setRad(). |
|
is this renderable selected?
Definition at line 236 of file Renderable.h. Referenced by Renderable::isSelected(), Renderable::Renderable(), and Renderable::setSelected(). |
|
Definition at line 130 of file GLItems.h. Referenced by GLUItem::drawBar(), GLUItem::drawSphere(), GLUItem::getSlice(), GLUItem::operator=(), and GLUItem::setSlice(). |
|
Definition at line 131 of file GLItems.h. Referenced by GLUItem::drawBar(), GLUItem::drawSphere(), GLUItem::getStack(), GLUItem::operator=(), and GLUItem::setStack(). |
|
Definition at line 76 of file GLItems.h. Referenced by GLItem::drawGL(), GLItem::GLItem(), and GLItem::setUp(). |
|
Definition at line 47 of file NodeWidget.h. |
|
signal: pointChanged(const vec3f &pt), sends WORLD space position
Definition at line 100 of file NodeWidget.h. Referenced by NodeWidget::setChanged(), EdgeWidget::setEndNode(), NodeWidget::setPointLocal(), and EdgeWidget::setStartNode(). |
|
signal: radChanged(float r)
Definition at line 103 of file NodeWidget.h. Referenced by NodeWidget::setRad(). |