SuperTuxKart
|
A model view widget. More...
#include <model_view_widget.hpp>
Public Member Functions | |
ModelViewWidget (unsigned rtt_size=512) | |
void | add () |
Implement callback from base class Widget. | |
void | clearModels () |
void | addModel (irr::scene::IMesh *mesh, const core::matrix4 &location=core::matrix4(), const int start_loop_frame=-1, const int end_loop_frame=-1, float animation_speed=0.0f, const std::string &bone_name=std::string()) |
void | update (float delta) |
Override in children to possibly receive updates (you may need to register to them first) | |
void | setRTTSize (unsigned rtt_size) |
virtual void | elementRemoved () |
Called when irrLicht widgets cleared. | |
void | setRotateOff () |
Disables any model rotation. | |
void | setRotateContinuously (float speed) |
Makes the model rotate at given speed (in degrees per second) | |
void | setRotateTo (float targetAngle, float speed) |
Rotate to 'targetAngle' in degrees at given speed (in degrees per second) | |
bool | isRotating () |
Returns information if currently kart is rotating. | |
void | clearRttProvider () |
void | setupRTTScene () |
void | drawRTTScene (const irr::core::rect< s32 > &dest_rect) const |
std::shared_ptr< GE::GERenderInfo > | getModelViewRenderInfo () |
Public Member Functions inherited from GUIEngine::IconButtonWidget | |
IconButtonWidget (ScaleMode scale_mode=SCALE_MODE_KEEP_TEXTURE_ASPECT_RATIO, const bool tab_stop=true, const bool focusable=true, IconPathType pathType=ICON_PATH_TYPE_RELATIVE) | |
virtual void | add () OVERRIDE |
Implement callback from base class Widget. | |
void | setCustomAspectRatio (float custom_aspect_ratio) |
Call this if scale mode is SCALE_MODE_KEEP_CUSTOM_ASPECT_RATIO. | |
void | setLabel (const irr::core::stringw &new_label) |
Temporarily change the text label if there is a label (next time this screen is visited, the previous label will be back. | |
void | setLabelFont (irr::gui::ScalableFont *font) |
Sets the font used to draw the label. | |
void | setImage (const char *path_to_texture, IconPathType path_type=ICON_PATH_TYPE_NO_CHANGE) |
Change the texture used for this icon. | |
void | setImage (const std::string &path_to_texture, IconPathType path_type=ICON_PATH_TYPE_NO_CHANGE) |
Convenience function taking std::string. | |
void | setImage (irr::video::ITexture *texture) |
Change the texture used for this icon. | |
void | setHighlightedImage (irr::video::ITexture *texture) |
virtual EventPropagation | focused (const int playerID) OVERRIDE |
override from base class | |
virtual void | unfocused (const int playerID, Widget *new_focus) OVERRIDE |
override from base class | |
const video::ITexture * | getTexture () |
Returns the texture of this button. | |
virtual void | setVisible (bool visible) OVERRIDE |
Sets the widget (and its children, if any) visible or not. | |
virtual void | elementRemoved () OVERRIDE |
Called when irrLicht widgets cleared. | |
const irr::core::rect< s32 > & | getListHeaderIconRect () const |
Public Member Functions inherited from GUIEngine::Widget | |
Widget (WidgetType type, bool reserve_id=false) | |
virtual void | setEventCallbackActive (Input::InputType type, bool active) |
Allow (or not) an event callback for this widget based on input type. | |
virtual bool | isEventCallbackActive (Input::InputType type) const |
Return if there should be an event callback for this widget based on input type. | |
void | setParent (irr::gui::IGUIElement *parent) |
Set the irrlicht widget to be used as parent of this widget next time Widget::add() is invoked on this widget. | |
virtual void | setVisible (bool visible) |
Sets the widget (and its children, if any) visible or not. | |
virtual void | setCollapsed (bool collapsed, Screen *calling_screen=NULL) |
Sets the widget (and its children, if any) collapsed or not. | |
virtual void | setCollapsed (bool collapsed, int uncollapsed_height, Screen *calling_screen=NULL) |
Sets the widget (and its children, if any) collapsed or not. | |
bool | isVisible () const |
Returns if the element is visible. | |
bool | isCollapsed () const |
Returns whether the element is collapsed (through setCollapsed). | |
bool | isActivated () const |
virtual EventPropagation | onActivationInput (const int playerID) |
virtual void | move (const int x, const int y, const int w, const int h) |
Call to resize/move the widget. | |
bool | isSelected (const int playerID) const |
Get whether this widget is selected (only makes sense in some cases where a widget is part of a bigger widget, e.g. | |
void | setSelected (const int playerID, bool state) |
bool | isBottomBar () const |
bool | isTopBar () const |
bool | ok () const |
virtual EventPropagation | onClick () |
Gets called when the widget is active and got clicked. | |
virtual irr::core::dimension2di | getDimension () const |
virtual void | setActive (bool active=true) |
Sets an widget to be either activated or deactivated (i.e. | |
template<typename T > | |
T * | getIrrlichtElement () |
Get the underlying irrLicht GUI element, casted to the right type. | |
template<typename T > | |
const T * | getIrrlichtElement () const |
Get the underlying irrLicht GUI element, casted to the right type; const version. | |
irr::gui::IGUIElement * | getIrrlichtElement () |
Get the underlying irrLicht GUI element. | |
void | moveIrrlichtElement () |
bool | isSameIrrlichtWidgetAs (const Widget *ref) const |
virtual void | setText (const irr::core::stringw &s) |
Sets the text of a widget from a wchar_t. | |
const irr::core::stringw & | getText () const |
Returns the text of a widget. | |
WidgetType | getType () const |
int | getID () const |
Get the irrlicht widget ID attributed to this widget. | |
bool | isFocusable () const |
Get whether this object is allowed to receive focus. | |
void | setFocusable (bool f) |
void | setFocusForPlayer (const int playerID) |
Focus the widget for the given player. | |
bool | isFocusedForPlayer (const int playerID) |
Find whether this widget is focused by a given player. | |
void | unsetFocusForPlayer (const int playerID) |
Internal method, do not call it. | |
const PtrVector< Widget > & | getChildren () const |
PtrVector< Widget > & | getChildren () |
bool | deleteChild (const char *id) |
removes and deletes the child with the given PROP_ID | |
virtual EventPropagation | transmitEvent (Widget *w, const std::string &originator, const int playerID) |
All widgets, including their parents (m_event_handler) will be notified on event through this call. | |
bool | searchInsideMe () const |
virtual int | getWidthNeededAroundLabel () const |
When inferring widget size from its label length, this method will be called to if/how much space must be added to the raw label's size for the widget to be large enough. | |
virtual int | getHeightNeededAroundLabel () const |
When inferring widget size from its label length, this method will be called to if/how much space must be added to the raw label's size for the widget to be large enough. | |
void | setBadge (BadgeType badge_bit) |
adds a particular badge to this widget. | |
void | unsetBadge (BadgeType badge_bit) |
removes a particular bade from this widget, if it had it. | |
void | resetAllBadges () |
sets this widget to have no badge | |
int | getBadges () const |
Get which badges are currently on this widget. | |
bool | hasTooltip () const |
irr::core::stringw | getTooltipText () const |
Only call if hasTooltip() returned true. | |
void | setTooltip (irr::core::stringw s) |
Private Types | |
enum | RotationMode { ROTATE_OFF , ROTATE_CONTINUOUSLY , ROTATE_TO } |
Private Attributes | |
RotationMode | m_rotation_mode |
float | m_rotation_speed |
float | m_rotation_target |
PtrVector< scene::IMesh, REF > | m_models |
std::vector< core::matrix4 > | m_model_location |
std::vector< std::pair< int, int > > | m_model_frames |
std::vector< float > | m_model_animation_speed |
std::vector< std::string > | m_bone_attached |
std::unique_ptr< RenderTarget > | m_render_target |
float | m_angle |
bool | m_rtt_unsupported |
scene::ISceneNode * | m_rtt_main_node |
scene::ICameraSceneNode * | m_camera |
scene::ISceneNode * | m_light |
std::shared_ptr< GE::GERenderInfo > | m_render_info |
unsigned | m_rtt_size |
Additional Inherited Members | |
Public Types inherited from GUIEngine::IconButtonWidget | |
enum | ScaleMode { SCALE_MODE_STRETCH , SCALE_MODE_LIST_WIDGET , SCALE_MODE_KEEP_TEXTURE_ASPECT_RATIO , SCALE_MODE_KEEP_CUSTOM_ASPECT_RATIO } |
enum | IconPathType { ICON_PATH_TYPE_ABSOLUTE , ICON_PATH_TYPE_RELATIVE , ICON_PATH_TYPE_NO_CHANGE } |
Static Public Member Functions inherited from GUIEngine::Widget | |
static void | resetIDCounters () |
When switching to a new screen, this function will be called to reset ID counters (so we start again from ID 0, and don't grow to big numbers) | |
static int | getNewID () |
Provides a new unique ID on each call, for widgets that can be focused. | |
static int | getNewNoFocusID () |
Provides a new unique ID on each call, for widgets that can not be focused. | |
static bool | isFocusableId (const int id) |
get whether the given ID represents an ID of a widget that can be focused | |
Public Attributes inherited from GUIEngine::IconButtonWidget | |
bool | m_tab_stop |
Whether to make the widget included in keyboard navigation order when adding. | |
Public Attributes inherited from GUIEngine::Widget | |
Widget * | m_event_handler |
This is set to NULL by default; set to something else in a widget to mean that events happening on this widget should also be passed to m_event_handler->transmitEvent, which is usually the parent analysing events from its children. | |
bool | m_supports_multiplayer |
Whether this widget supports multiplayer interaction (i.e. | |
int | m_tab_down_root |
Instead of searching for widget IDs smaller/greater than that of this object, navigation through widgets will start from these IDs (if they are set). | |
int | m_tab_up_root |
Instead of searching for widget IDs smaller/greater than that of this object, navigation through widgets will start from these IDs (if they are set). | |
int | m_x |
Coordinates of the widget once added (the difference between those x/h and PROP_WIDTH/PROP_HEIGHT is that the props are read in raw form from the XML file; PROP_WIDTH can then be e.g. | |
int | m_y |
int | m_w |
int | m_h |
bool | m_show_bounding_box |
Whether to show a bounding box around this widget (used for sections) | |
bool | m_is_bounding_box_round |
Only used if m_show_bounding_box is true. | |
int | m_reserved_id |
Used in two cases : 1) For 'placeholder' divisions; at the time the layout is created, there is nothing to place there yet, but we know there eventually will. | |
std::map< Property, std::string > | m_properties |
A map that holds values for all specified widget properties (in the XML file) | |
Public Attributes inherited from GUIEngine::SkinWidgetContainer | |
int | m_skin_x |
int | m_skin_y |
int | m_skin_w |
int | m_skin_h |
bool | m_skin_dest_areas_inited |
bool | m_skin_dest_areas_yflip_inited |
int | m_skin_dest_x |
int | m_skin_dest_y |
int | m_skin_dest_x2 |
int | m_skin_dest_y2 |
core::rect< s32 > | m_skin_dest_area_left |
core::rect< s32 > | m_skin_dest_area_center |
core::rect< s32 > | m_skin_dest_area_right |
core::rect< s32 > | m_skin_dest_area_top |
core::rect< s32 > | m_skin_dest_area_bottom |
core::rect< s32 > | m_skin_dest_area_top_left |
core::rect< s32 > | m_skin_dest_area_top_right |
core::rect< s32 > | m_skin_dest_area_bottom_left |
core::rect< s32 > | m_skin_dest_area_bottom_right |
core::rect< s32 > | m_skin_dest_area_left_yflip |
core::rect< s32 > | m_skin_dest_area_center_yflip |
core::rect< s32 > | m_skin_dest_area_right_yflip |
core::rect< s32 > | m_skin_dest_area_top_yflip |
core::rect< s32 > | m_skin_dest_area_bottom_yflip |
core::rect< s32 > | m_skin_dest_area_top_left_yflip |
core::rect< s32 > | m_skin_dest_area_top_right_yflip |
core::rect< s32 > | m_skin_dest_area_bottom_left_yflip |
core::rect< s32 > | m_skin_dest_area_bottom_right_yflip |
short | m_skin_r |
short | m_skin_g |
short | m_skin_b |
Protected Member Functions inherited from GUIEngine::IconButtonWidget | |
void | setTexture (video::ITexture *texture) |
Protected Member Functions inherited from GUIEngine::Widget | |
virtual EventPropagation | rightPressed (const int playerID) |
called when right key is pressed and focus is on widget. | |
virtual EventPropagation | leftPressed (const int playerID) |
called when left key is pressed and focus is on widget. | |
virtual EventPropagation | upPressed (const int playerID) |
called when up key is pressed and focus is on widget. | |
virtual EventPropagation | downPressed (const int playerID) |
called when down key is pressed and focus is on widget. | |
virtual EventPropagation | mouseHovered (Widget *child, const int playerID) |
used when you set eventSupervisors - see m_event_handler explainations below called when one of a widget's children is hovered. | |
virtual EventPropagation | focused (const int playerID) |
override in children if you need to know when the widget is focused. | |
virtual void | unfocused (const int playerID, Widget *new_focus) |
override in children if you need to know when the widget is unfocused. | |
Protected Attributes inherited from GUIEngine::IconButtonWidget | |
IconPathType | m_icon_path_type |
irr::gui::IGUIStaticText * | m_label |
irr::gui::ScalableFont * | m_font |
ScaleMode | m_scale_mode |
float | m_custom_aspect_ratio |
Protected Attributes inherited from GUIEngine::Widget | |
unsigned int | m_magic_number |
std::bitset< Input::IT_LAST+1 > | m_active_event_callback |
int | m_absolute_x |
Used during loading, by the layout engine. | |
int | m_absolute_y |
int | m_absolute_w |
int | m_absolute_h |
int | m_absolute_reverse_x |
int | m_absolute_reverse_y |
float | m_relative_x |
float | m_relative_y |
float | m_relative_w |
float | m_relative_h |
irr::core::stringw | m_text |
PROP_TEXT is a special case : since it can be translated it can't go in the map above, which uses narrow strings. | |
bool | m_title_font |
When true, this widget shall use a bigger and more colourful font. | |
bool | m_selected [MAX_PLAYER_COUNT] |
Can be used in children to indicate whether a widget is selected or not. | |
bool | m_check_inside_me |
Whether to descend in the children of this widget when searching a widget from its ID or name. | |
irr::gui::IGUIElement * | m_parent |
An irrlicht parent (most often used to put widgets in dialogs) | |
irr::gui::IGUIElement * | m_element |
IrrLicht widget created to represent this object. | |
int | m_id |
numerical ID used by irrLicht to identify this widget (not the same as the string identificator specified in the XML file) | |
bool | m_player_focus [MAX_PLAYER_COUNT] |
Usually, only one widget at a time can be focused. | |
bool | m_reserve_id |
Whether to reserve an ID in 'm_reserved_id' when widget is added. | |
WidgetType | m_type |
Type of this widget. | |
PtrVector< Widget > | m_children |
If this widget has any children, they go here. | |
int | m_badges |
A bitmask of which badges to show, if any; choices are *_BADGE, defined above. | |
bool | m_deactivated |
A simple flag that can be raised to deactivate this widget. | |
bool | m_is_visible |
A flag to indicate whether this widget should be visible or not. | |
bool | m_focusable |
Set to false if widget is something that should not receive focus. | |
bool | m_bottom_bar |
bool | m_top_bar |
int | m_badge_x_shift |
If a badge wouldn't look too pretty on the very side of the widget. | |
bool | m_has_tooltip |
irr::core::stringw | m_tooltip_text |
int | m_uncollapsed_height |
height of the widget before it was collapsed (only set if widget got collapsed) | |
bool | m_is_collapsed |
A flag to indicate whether this widget got collapsed. | |
A model view widget.
|
virtual |
Implement callback from base class Widget.
Reimplemented from GUIEngine::IconButtonWidget.
|
virtual |
Called when irrLicht widgets cleared.
Forget all references to them, they're no more valid.
Reimplemented from GUIEngine::IconButtonWidget.
|
virtual |
Override in children to possibly receive updates (you may need to register to them first)
Reimplemented from GUIEngine::Widget.