Support Forum G3D Web Page |
2D/3D control for editing PhysicsFrameSplines. More...
Inherits G3D::ControlPointEditor.
Public Types | |
enum | CloseAction { NO_CLOSE, IGNORE_CLOSE, HIDE_ON_CLOSE, REMOVE_ON_CLOSE } |
Controls the behavior when the close button is pressed (if there is one). More... | |
enum | ModalEffect { MODAL_EFFECT_NONE, MODAL_EFFECT_DARKEN, MODAL_EFFECT_DESATURATE, MODAL_EFFECT_LIGHTEN } |
Controls rendering of the screen behind the window when this is a modal dialog. More... | |
Public Member Functions | |
void | addControlPoint () |
Gui Callback. More... | |
virtual GuiDrawer * | addDrawer (const GuiText &caption="", GuiDrawer::Side side=GuiDrawer::RIGHT_SIDE) |
Drawers are like windows that slide out of the side of another GuiWindow. More... | |
virtual Rect2D | bounds () const |
Inherited from Surface2D. More... | |
const GuiText & | caption () const |
const Rect2D & | clientRect () const |
Interior bounds of the window, absolute on the OSWindow in GUI pixels. More... | |
virtual void | close () |
Take the specified close action. More... | |
virtual bool | contains (const Point2 &renderingPoint) const |
True if this point is within the region that the window considers for event delivery. More... | |
virtual float | depth () const |
Inherited from Surface2D. More... | |
bool | enabled () const |
SplineExtrapolationMode::Value | extrapolationMode () const |
Extrapolation mode of the underlying spline. More... | |
virtual void | fireEvent (const GEvent &event) |
Fire an event on the containing window. More... | |
bool | focused () const |
Is this window in focus on the WidgetManager? More... | |
bool | hasMouseOver () const |
Is the mouse currently over this window? More... | |
bool | hitsControlPoint (const Ray &r) |
Given a world space ray, will determine if it goes through any of the control points. More... | |
SplineInterpolationMode::Value | interpolationMode () const |
Interpolation mode of the underlying spline. More... | |
WidgetManager * | manager () const |
const Vector2 & | minSize () const |
bool | morphing () const |
Returns true while a morph is in progress. More... | |
virtual void | morphTo (const Rect2D &r) |
Causes the window to change shape and/or position to meet the specified location. More... | |
virtual void | moveTo (const Vector2 &position) |
virtual void | moveToCenter () |
Move to the center of the screen. More... | |
virtual void | onAfterEvents () |
Invoked after all onEvent handlers for the current frame and before onUserInput for any other Widget. More... | |
virtual void | onAI () |
virtual void | onBeforeGraphics () |
Invoked by WidgetManager immediately before GApp::onGraphics runs. More... | |
virtual bool | onEvent (const GEvent &event) override |
The event is in OSWindow coordinates, NOT relative to this GuiWindow's rect. More... | |
virtual void | onNetwork () |
virtual void | onPose (Array< shared_ptr< Surface > > &surface, Array< shared_ptr< Surface2D > > &surface2D) override |
Appends a posed model for this object to the array, if it has a graphic representation. More... | |
virtual void | onSimulation (RealTime rdt, SimTime sdt, SimTime idt) override |
virtual void | onUserInput (UserInput *ui) |
virtual void | pack () |
Resize the pane so that all of its controls are visible and so that there is no wasted space, then resize the window around the pane. More... | |
GuiPane * | pane () |
const GuiPane * | pane () const |
float | pixelScale () const |
Size of a GUI pixel in rendering pixels. More... | |
virtual float | positionalEventZ (const Point2 &pixel) const override |
The camera-space z position that this Widget considers this pixel to be at. More... | |
const Rect2D & | rect () const |
Window bounds, including shadow and glow, absolute on the OSWindow in GUI pixels. More... | |
void | removeSelectedControlPoint () |
void | renderManipulator (RenderDevice *rd) |
bool | resizable () const |
Can this window be resized by the user? More... | |
int | selectedControlPointIndex () const |
String | selectedNodePFrameAsString () const |
Used by the GUI. More... | |
float | selectedNodeTime () const |
Used by the GUI. More... | |
virtual void | setCaption (const GuiText &text) |
virtual void | setDepth (float d) |
Called by the WidgetManager. More... | |
virtual void | setEnabled (bool e) override |
void | setExtrapolationMode (SplineExtrapolationMode::Value m) |
Sets the extrapolationMode of the underlying spline. More... | |
void | setInterpolationMode (SplineInterpolationMode::Value m) |
Sets the interpolationMode of the underlying spline. More... | |
virtual void | setManager (WidgetManager *m) override |
Called by the WidgetManager when this module is added to it. More... | |
virtual void | setMinSize (const Vector2 &guiPixelSize) |
virtual void | setRect (const Rect2D &rectInGUIPixels) |
Set the border bounds relative to the OSWindow. More... | |
virtual void | setResizable (bool r) |
virtual void | setSelectedControlPointIndex (int i) override |
void | setSelectedNodePFrameFromString (const String &s) |
Used by the GUI. More... | |
void | setSelectedNodeTime (float t) |
Used by the GUI. More... | |
virtual void | setSpline (const PhysicsFrameSpline &p) |
void | setStyle (GuiTheme::WindowStyle style) |
Change the window style. More... | |
virtual void | setVisible (bool v) |
Hide this entire window. More... | |
void | showModal (OSWindow *osWindow, ModalEffect m=MODAL_EFFECT_DESATURATE) |
Blocks until the dialog is closed (visible = false) More... | |
void | showModal (const shared_ptr< GuiWindow > &parent, ModalEffect m=MODAL_EFFECT_DESATURATE) |
const PhysicsFrameSpline & | spline () const |
const shared_ptr< GuiTheme > & | theme () const |
bool | visible () const |
virtual OSWindow * | window () const |
Returns the operating system window that is currently rendering this Widget. More... | |
Static Public Member Functions | |
static shared_ptr< PhysicsFrameSplineEditor > | create (const GuiText &caption="Spline Editor", GuiPane *dockPane=nullptr, const shared_ptr< GuiTheme > &theme=shared_ptr< GuiTheme >()) |
static shared_ptr< GuiWindow > | create (const GuiText &windowTitle, const shared_ptr< GuiTheme > &theme=shared_ptr< GuiTheme >(), const Rect2D &rect=Rect2D::xywh(100, 100, 100, 50), GuiTheme::WindowStyle style=GuiTheme::NORMAL_WINDOW_STYLE, CloseAction close=NO_CLOSE) |
As controls are added, the window will automatically grow to contain them as needed. More... | |
static void | sort (Array< shared_ptr< Surface2D >> &array) |
Sorts from farthest to nearest. More... | |
static void | sortAndRender (RenderDevice *rd, Array< shared_ptr< Surface2D >> &array) |
Calls sort, RenderDevice::push2D, and then render on all elements. More... | |
Protected Types | |
enum | { CONTROL_WIDTH = 180 } |
Protected Member Functions | |
PhysicsFrameSplineEditor (const GuiText &caption, GuiPane *dockPane, shared_ptr< GuiTheme > theme) | |
virtual void | addControlPointAfter (int i) override |
virtual bool | allowAddingAndRemovingControlPoints () const |
virtual bool | allowRotation () const |
virtual bool | allowTranslation () const |
void | changeKeyFocus (GuiControl *oldControl, GuiControl *newControl) |
Fires events and updates keyFocusGuiControl. More... | |
virtual PhysicsFrame | controlPoint (int index) const override |
void | hideModal () |
void | increaseBounds (const Vector2 &extent) |
Called by GuiPane::increaseBounds() More... | |
virtual float | intersectRayThroughPixel (const Point2 &pixel, int &index) const |
Returns the camera-space z position of the first intersection of the ray through pixel with a control point, and the index of that control point (-1 if none was hit) More... | |
virtual int | numControlPoints () const override |
virtual void | onMouseButtonDown (const GEvent &event) |
Invoked from the default onEvent when a mouse click hits the back of a window that is not completely transparent. More... | |
bool | processMouseButtonDownEventForFocusChangeAndWindowDrag (const GEvent &event) |
Resolve the mouse button down event. More... | |
virtual void | removeControlPoint (int i) override |
virtual void | render (RenderDevice *rd) const |
Inherited from Surface2D. More... | |
virtual void | renderBackground (RenderDevice *rd) const |
virtual void | renderControlPoints (RenderDevice *rd, const LightingEnvironment &environment) const override |
void | resizeControlPointDropDown (int i) |
virtual bool | resizeFrameContains (const Point2 &guiPoint) const |
Does the resize area of the window contain this mouse point? More... | |
virtual void | setControlPoint (int index, const PhysicsFrame &frame) override |
void | setKeyFocusControl (GuiControl *c) |
void | setKeyFocusOnNextControl () |
Called when tab is pressed. More... | |
Static Protected Member Functions | |
template<class T , class ... ArgTypes> | |
static shared_ptr< T > | createShared (ArgTypes &&... args) |
Like std::make_shared, but works for protected constructors. More... | |
2D/3D control for editing PhysicsFrameSplines.
Used by SceneEditorWindow. Not intended for general use and likely to be private in a future release.
The spline manipulator is a GuiWindow that displays its controls. It also creates additional Widgets.
Invoking setVisible(false) on the PhysicsFrameSplineEditor hides the control window, but not the 3D controls. Use setEnabled(false) to hide the 3D controls.
|
inherited |
Controls the behavior when the close button is pressed (if there is one).
NO_CLOSE - Do not show the close button IGNORE_CLOSE - Fire G3D::GEvent::GUI_CLOSE event but take no further action HIDE_ON_CLOSE - Set the window visibility to false and fire G3D::GEvent::GUI_CLOSE REMOVE_ON_CLOSE - Remove this GuiWindow from its containing WidgetManager and fire G3D::GEvent::GUI_CLOSE with a nullptr window argument (since the window may be garbage collected before the event is received).
Enumerator | |
---|---|
NO_CLOSE | |
IGNORE_CLOSE | |
HIDE_ON_CLOSE | |
REMOVE_ON_CLOSE |
|
inherited |
|
protected |
|
inherited |
Gui Callback.
|
overrideprotectedvirtual |
Implements G3D::ControlPointEditor.
|
inlinevirtualinherited |
Drawers are like windows that slide out of the side of another GuiWindow.
Drawers are initially sized based on the side of the window that they slide out of, but they can be explicitly sized. Multiple drawers can be attached to the same side, however it is up to the caller to ensure that they do not overlap.
side | Side that the drawer sticks out of |
|
inlineprotectedvirtualinherited |
|
inlineprotectedvirtualinherited |
|
inlineprotectedvirtualinherited |
|
virtualinherited |
Inherited from Surface2D.
Reimplemented from G3D::Widget.
|
inlineinherited |
Referenced by G3D::GuiWindow::addDrawer().
|
protectedinherited |
Fires events and updates keyFocusGuiControl.
|
inlineinherited |
Interior bounds of the window, absolute on the OSWindow in GUI pixels.
|
virtualinherited |
Take the specified close action.
May be overriden.
Reimplemented in G3D::ArticulatedModelSpecificationEditorDialog.
|
virtualinherited |
True if this point is within the region that the window considers for event delivery.
Allows irregular window shapes. Default implementation returns true for all points inside rect().
renderingPoint | in rendering pixels (not GUI pixels) |
|
overrideprotectedvirtual |
Implements G3D::ControlPointEditor.
|
static |
dockPane | If not nullptr, the 2D GUI is placed into this pane and no visible window is created |
|
staticinherited |
As controls are added, the window will automatically grow to contain them as needed.
|
inlinestaticprotectedinherited |
Like std::make_shared, but works for protected constructors.
Call as createShared<myclass>.
|
virtualinherited |
Inherited from Surface2D.
Controls the depth of objects when rendering. Subclasses may override this but it can interfere with the normal handling of rendering and event delivery. depth = 0 is usually the "top" widget and depth = 1 is usually the "bottom" widget.
Reimplemented from G3D::Widget.
|
inlineinherited |
SplineExtrapolationMode::Value G3D::PhysicsFrameSplineEditor::extrapolationMode | ( | ) | const |
Extrapolation mode of the underlying spline.
|
virtualinherited |
Fire an event on the containing window.
Reimplemented in G3D::WidgetManager.
|
inlineinherited |
Is this window in focus on the WidgetManager?
|
inlineinherited |
Is the mouse currently over this window?
|
protectedinherited |
|
inherited |
Given a world space ray, will determine if it goes through any of the control points.
If it does, it will set that control point as the the selectedControlPoint
|
protectedinherited |
Called by GuiPane::increaseBounds()
SplineInterpolationMode::Value G3D::PhysicsFrameSplineEditor::interpolationMode | ( | ) | const |
Interpolation mode of the underlying spline.
|
protectedvirtualinherited |
Returns the camera-space z position of the first intersection of the ray through pixel with a control point, and the index of that control point (-1 if none was hit)
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
Returns true while a morph is in progress.
|
virtualinherited |
Causes the window to change shape and/or position to meet the specified location.
The window will not respond to drag events while it is morphing.
|
virtualinherited |
|
virtualinherited |
Move to the center of the screen.
|
inlineoverrideprotectedvirtual |
Implements G3D::ControlPointEditor.
|
inlinevirtualinherited |
Invoked after all onEvent handlers for the current frame and before onUserInput for any other Widget.
Reimplemented in G3D::WidgetManager, and G3D::GameController.
|
inlinevirtualinherited |
Reimplemented from G3D::Widget.
Reimplemented in G3D::VideoRecordDialog.
|
inlinevirtualinherited |
Invoked by WidgetManager immediately before GApp::onGraphics runs.
Reimplemented in G3D::WidgetManager, G3D::CallbackWidget, and G3D::XRWidget.
|
overridevirtualinherited |
The event is in OSWindow coordinates, NOT relative to this GuiWindow's rect.
Reimplemented from G3D::GuiWindow.
|
protectedvirtualinherited |
Invoked from the default onEvent when a mouse click hits the back of a window that is not completely transparent.
event | In rendering (not GUI) coordinates. |
|
inlinevirtualinherited |
Reimplemented from G3D::Widget.
Reimplemented in G3D::Discovery::Client.
|
overridevirtualinherited |
Appends a posed model for this object to the array, if it has a graphic representation.
The posed model appended is allowed to reference the agent and is allowed to mutate if the agent is mutated.
Reimplemented from G3D::GuiWindow.
|
overridevirtual |
Reimplemented from G3D::ControlPointEditor.
|
virtualinherited |
Reimplemented from G3D::Widget.
Reimplemented in G3D::CameraControlWindow.
|
virtualinherited |
Resize the pane so that all of its controls are visible and so that there is no wasted space, then resize the window around the pane.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
Size of a GUI pixel in rendering pixels.
Default is 1.0f
Set greater than 1 on high-DPI displays to enlarge the GUI for this window only. Mouse events will be divided by this scale and graphics commands will be multiplied by it.
|
overridevirtualinherited |
The camera-space z position that this Widget considers this pixel to be at.
Used for positional event (e.g., mouse click) delivery. Higher means closer.
Large negative values are far away. 0 is the closest 3D object. Values greater than zero are used for 2D objects. Returning fnan() [the default] requests the WidgetManager to set hte positionalEventZ to the object's normal event zorder.
See the implementation of ControlPointEditor::positionalEventZ for an example of how to use this with a 3D object.
Reimplemented from G3D::Widget.
|
protectedinherited |
Resolve the mouse button down event.
Called from onEvent.
This is handled specially because it can change the focus. event is in rendering coordinates (not GUI coordinates)
|
inlineinherited |
Window bounds, including shadow and glow, absolute on the OSWindow in GUI pixels.
|
overrideprotectedvirtual |
Implements G3D::ControlPointEditor.
|
inherited |
|
protectedvirtualinherited |
|
protectedvirtualinherited |
|
overrideprotectedvirtual |
Reimplemented from G3D::ControlPointEditor.
|
inherited |
|
inlineinherited |
Can this window be resized by the user?
|
protectedinherited |
|
protectedvirtualinherited |
Does the resize area of the window contain this mouse point?
|
inlineinherited |
|
inherited |
Used by the GUI.
float G3D::PhysicsFrameSplineEditor::selectedNodeTime | ( | ) | const |
Used by the GUI.
|
virtualinherited |
|
overrideprotectedvirtual |
Implements G3D::ControlPointEditor.
|
inlinevirtualinherited |
Called by the WidgetManager.
This is the depth that the Widget is expected to use when posed as a Surface2D. Subclasses may override or ignore this but it can interfere with the normal handling of rendering.
|
inlineoverridevirtual |
Reimplemented from G3D::ControlPointEditor.
void G3D::PhysicsFrameSplineEditor::setExtrapolationMode | ( | SplineExtrapolationMode::Value | m | ) |
Sets the extrapolationMode of the underlying spline.
void G3D::PhysicsFrameSplineEditor::setInterpolationMode | ( | SplineInterpolationMode::Value | m | ) |
Sets the interpolationMode of the underlying spline.
|
protectedinherited |
|
protectedinherited |
Called when tab is pressed.
|
overridevirtualinherited |
Called by the WidgetManager when this module is added to it.
The argument may be nullptr
Reimplemented from G3D::Widget.
|
inlinevirtualinherited |
|
virtualinherited |
Set the border bounds relative to the OSWindow.
The window may render outside the bounds because of drop shadows and glows.
Reimplemented in G3D::SceneEditorWindow, and G3D::CameraControlWindow.
|
inlinevirtualinherited |
|
overridevirtual |
Reimplemented from G3D::ControlPointEditor.
|
inherited |
Used by the GUI.
void G3D::PhysicsFrameSplineEditor::setSelectedNodeTime | ( | float | t | ) |
Used by the GUI.
|
virtual |
|
inlineinherited |
Change the window style.
May lead to inconsistent layout.
|
inlinevirtualinherited |
Hide this entire window.
The window cannot have focus if it is not visible.
Removing the GuiWindow from the WidgetManager is more efficient than making it invisible.
Referenced by setEnabled().
|
inherited |
Blocks until the dialog is closed (visible = false)
|
inherited |
Sorts from farthest to nearest.
|
staticinherited |
Calls sort, RenderDevice::push2D, and then render on all elements.
|
inline |
|
inlineinherited |
Referenced by G3D::ArticulatedModelSpecificationEditorDialog::create().
|
inlineinherited |
|
virtualinherited |
Returns the operating system window that is currently rendering this Widget.
Reimplemented in G3D::WidgetManager.
Referenced by G3D::FullScreenWidget::bounds().
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
Position at which the drag started.
|
protectedinherited |
True when the window is being dragged.
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
mutableprotectedinherited |
|
mutableprotectedinherited |
Used to avoid constantly unparsing the current physics frame in selectedNodePFrameAsString()
|
protectedinherited |
Client rect bounds in GUI pixels, absolute on the OSWindow, but at the redefined scale.
Referenced by G3D::GuiWindow::clientRect().
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
Referenced by G3D::Widget::depth(), and G3D::Widget::setDepth().
|
protectedinherited |
Referenced by G3D::GuiWindow::enabled(), and G3D::GuiWindow::setEnabled().
|
protected |
|
protected |
|
protectedinherited |
Referenced by G3D::GuiWindow::focused().
|
protectedinherited |
Referenced by setEnabled().
|
protectedinherited |
|
protectedinherited |
The manager, set by setManager().
This cannot be a reference counted pointer because that would create a cycle between the Widget and its manager.
Referenced by G3D::Widget::manager(), G3D::GuiWindow::manager(), G3D::Widget::setManager(), and G3D::GuiWindow::setVisible().
|
mutableprotectedinherited |
|
protectedinherited |
Referenced by G3D::GuiWindow::minSize(), and G3D::GuiWindow::setMinSize().
|
protectedinherited |
Referenced by G3D::GuiWindow::morphing().
|
protectedinherited |
Referenced by G3D::GuiWindow::hasMouseOver().
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
Size of a GUI pixel in rendering pixels.
Referenced by G3D::GuiWindow::pixelScale().
|
protectedinherited |
Window border bounds in GUI pixels.
Actual rendering may be outside these bounds.
Referenced by G3D::GuiWindow::rect().
|
protectedinherited |
|
protectedinherited |
Referenced by G3D::GuiWindow::resizable(), and G3D::GuiWindow::setResizable().
|
protectedinherited |
Referenced by G3D::GuiWindow::pane().
|
protectedinherited |
If outside of the legal range, indicates that no point is selected.
Referenced by G3D::ControlPointEditor::selectedControlPointIndex().
|
protectedinherited |
|
protected |
Referenced by numControlPoints(), and spline().
|
protectedinherited |
Referenced by G3D::GuiWindow::setStyle().
|
protected |
|
protectedinherited |
Window label.
Referenced by G3D::GuiWindow::caption().
|
protectedinherited |
Referenced by G3D::GuiWindow::theme().
|
protectedinherited |
Is this window visible?
Referenced by G3D::GuiWindow::setVisible(), and G3D::GuiWindow::visible().
|
protectedinherited |
|
protectedinherited |