NDEVR
API Documentation
ModelOrientationEditor

A popup Editor dialog for showing options related to the Orientation of a specific Model. More...

Inheritance diagram for ModelOrientationEditor:
[legend]
Collaboration diagram for ModelOrientationEditor:
[legend]

Public Member Functions

 ModelOrientationEditor (QWidget *parent=nullptr)
 Constructs the model orientation editor.
virtual ~ModelOrientationEditor ()
 Destroys the model orientation editor and releases resources.
void setIncludedObject (uint01 axis, const Buffer< UUID > &objects)
 Sets the included objects for a specific orientation axis.
void setIncludedObjects (const Buffer< UUID > &objects)
 Sets the included objects for all orientation axes.
void setManager (QTModelManager *manager)
 Sets the model manager used for querying and updating models.
void setTargetObject (const UUID &object)
 Sets the target object for all orientation axes.
void setTargetObject (uint01 axis, const UUID &object)
 Sets the target object for a specific orientation axis.
void updateFromModel ()
 Updates the orientation preview images from the current model state.
Public Member Functions inherited from OrientationEditor
 OrientationEditor (QWidget *parent=nullptr)
 Constructs an OrientationEditor widget.
void edited ()
 Emitted when the user edits any value in the UI.
Matrix< fltp08getMatrix ()
 Computes a 4x4 transformation matrix from the current position, rotation, and scale.
QCustomDialgetUIDial (uint01 orientation)
 Returns the dial widget for a given rotation axis.
Vector< 3, Angle< fltp08 > > getUIDialRotation () const
 Returns the current rotation values from the UI dial widgets.
QCustomLineEditgetUILineEdit (uint01 orientation)
 Returns the line edit widget for a given rotation axis.
Vector< 3, fltp08getUILocation () const
 Returns the current position values from the UI fields.
Vector< 3, Angle< fltp08 > > getUIRotation () const
 Returns the current rotation values from the UI text fields.
Vector< 3, fltp08getUIScale () const
 Returns the current scale values from the UI fields.
void lockAspectRatio ()
 Locks the aspect ratio so that scale changes on one axis propagate proportionally.
virtual QSize minimumSizeHint () const override
 Returns the minimum size hint for the widget.
QBoxLayout * offsetLayout ()
 Returns the layout containing the position/offset fields.
void orientationEdited ()
 Emitted when the user edits orientation values in the UI.
void orientationUpdated ()
 Emitted when the orientation resource is updated programmatically.
void positionEdited ()
 Emitted when the user edits position values in the UI.
void positionUpdated ()
 Emitted when the position resource is updated programmatically.
void resizeEvent (QResizeEvent *event) override
 Handles resize events by adjusting the layout mode if auto-layout is enabled.
void scaleEdited ()
 Emitted when the user edits scale values in the UI.
void scaleUpdated ()
 Emitted when the scale resource is updated programmatically.
void setAutoHideDials (bool auto_hide_dials)
 Sets whether dials are automatically hidden when the widget is too small.
void setMatrix (const Matrix< fltp08 > &matrix)
 Decomposes a transformation matrix and populates the UI fields accordingly.
void setOffsetLabels (const TranslatedString &x, const TranslatedString &y, const TranslatedString &z)
 Sets the axis labels for the position/offset fields.
void setOffsetTitle (const TranslatedString &title)
 Sets the title label for the position/offset section.
void setRotationTitle (const TranslatedString &roll, const TranslatedString &pitch, const TranslatedString &yaw)
 Sets the title labels for the rotation section axes.
void setScaleTitle (const TranslatedString &title)
 Sets the title label for the scale section.
void setSizeMode (SizeMode mode)
 Sets the layout size mode of the orientation editor.
virtual QSize sizeHint () const override
 Returns the preferred size hint for the widget.
void updated ()
 Emitted when any resource is updated programmatically.
void updateLabels ()
 Updates the axis labels to reflect the current unit settings.
void updateLayoutSize ()
 Recalculates the layout based on the current size mode.
void updateOrientation ()
 Refreshes the orientation UI fields and dials from the orientation resource.
void updatePosition ()
 Refreshes the position UI fields from the position resource.
void updateScale ()
 Refreshes the scale UI fields from the scale resource.

Protected Member Functions

UUID getUUID (uint01 axis) const
 Returns the target object UUID for the given axis.
void makeRequest (uint01 axis)
 Issues a capture request for the given axis orientation view.
void objectsUpdatedSlot (Buffer< UUID > id)
 Slot called when scene objects are updated, refreshing affected orientation views.

Protected Attributes

Buffer< UUIDm_included_objects
 Shared included objects for all axis views.
QTModelManagerm_manager = nullptr
 The model manager providing scene data.
Buffer< DynamicPointer< CaptureRequest > > m_pending_requests
 Outstanding capture requests for orientation previews.
Vector< 3, UUIDm_target_objects = { Constant<UUID>::Invalid, Constant<UUID>::Invalid, Constant<UUID>::Invalid }
 Target object UUIDs per axis.
Vector< 3, Buffer< UUID > > m_unique_included_objects
 Per-axis included object UUIDs.
Vector< 3, SnapLocationtarget_snaps = { SnapLocation::e_front_wo_pitch_yaw, SnapLocation::e_right_wo_yaw, SnapLocation::e_top_down_snap }
 Snap locations for each axis orientation view.
Protected Attributes inherited from OrientationEditor
Vector< 3, fltp08m_aspect_ratio
 The locked aspect ratio between scale axes.
bool m_auto_hide_dials
 Whether to automatically hide dials when space is limited.
bool m_auto_set_layout
 Whether to automatically adjust layout on resize.
SizeMode m_size_mode
 The current layout size mode.
QTResourceListenerm_units_listener
 Listener that triggers label updates when units change.
Ui::OrientationEditorUI * ui
 The auto-generated UI form.

Additional Inherited Members

Public Types inherited from OrientationEditor
enum  SizeMode {
  e_normal , e_small_horizontal , e_small_vertical , e_tiny_horizontal ,
  e_tiny_vertical
}
 Enumerates layout size modes for the orientation editor. More...
Public Attributes inherited from OrientationEditor
Resource< ConstPointer< Unit > > angle_unit
 The unit used for displaying angle values.
Resource< Vector< 3, Angle< fltp08 > > > max_orientation
 The maximum allowed rotation angles.
Resource< Vector< 3, fltp08 > > max_position
 The maximum allowed position values.
Resource< Vector< 3, fltp08 > > max_scale
 The maximum allowed scale values.
Resource< Vector< 3, Angle< fltp08 > > > min_orientation
 The minimum allowed rotation angles.
Resource< Vector< 3, fltp08 > > min_position
 The minimum allowed position values.
Resource< Vector< 3, fltp08 > > min_scale
 The minimum allowed scale values.
Resource< Vector< 3, Angle< fltp08 > > > orientation
 The current 3D rotation angles (roll, pitch, yaw).
Resource< Vector< 3, fltp08 > > position
 The current 3D position values.
Resource< ConstPointer< Unit > > position_unit
 The unit used for displaying position values.
Resource< Vector< 3, fltp08 > > scale
 The current 3D scale values.
Resource< Vector< 3, bool > > show_orientation
 Controls visibility of each orientation axis field.
Resource< Vector< 3, bool > > show_position
 Controls visibility of each position axis field.
Resource< Vector< 3, bool > > show_scale
 Controls visibility of each scale axis field.
Resource< ConstPointer< Unit > > size_unit
 The unit used for displaying scale/size values.

Detailed Description

A popup Editor dialog for showing options related to the Orientation of a specific Model.


Definition at line 42 of file ModelOrientationEditor.h.

Constructor & Destructor Documentation

◆ ModelOrientationEditor()

ModelOrientationEditor::ModelOrientationEditor ( QWidget * parent = nullptr)
explicit

Constructs the model orientation editor.

Parameters
[in]parentThe optional parent widget.

Member Function Documentation

◆ getUUID()

UUID ModelOrientationEditor::getUUID ( uint01 axis) const
protected

Returns the target object UUID for the given axis.

Parameters
[in]axisThe axis index.
Returns
The UUID of the target object for that axis.

◆ makeRequest()

void ModelOrientationEditor::makeRequest ( uint01 axis)
protected

Issues a capture request for the given axis orientation view.

Parameters
[in]axisThe axis index to capture.

◆ objectsUpdatedSlot()

void ModelOrientationEditor::objectsUpdatedSlot ( Buffer< UUID > id)
protected

Slot called when scene objects are updated, refreshing affected orientation views.

Parameters
[in]idThe UUIDs of the updated objects.

◆ setIncludedObject()

void ModelOrientationEditor::setIncludedObject ( uint01 axis,
const Buffer< UUID > & objects )

Sets the included objects for a specific orientation axis.

Parameters
[in]axisThe axis index (X=0, Y=1, Z=2).
[in]objectsThe UUIDs of objects to include.

◆ setIncludedObjects()

void ModelOrientationEditor::setIncludedObjects ( const Buffer< UUID > & objects)

Sets the included objects for all orientation axes.

Parameters
[in]objectsThe UUIDs of objects to include in orientation views.

◆ setManager()

void ModelOrientationEditor::setManager ( QTModelManager * manager)

Sets the model manager used for querying and updating models.

Parameters
[in]managerThe model manager to use.

◆ setTargetObject() [1/2]

void ModelOrientationEditor::setTargetObject ( const UUID & object)

Sets the target object for all orientation axes.

Parameters
[in]objectThe UUID of the target object.

◆ setTargetObject() [2/2]

void ModelOrientationEditor::setTargetObject ( uint01 axis,
const UUID & object )

Sets the target object for a specific orientation axis.

Parameters
[in]axisThe axis index (X=0, Y=1, Z=2).
[in]objectThe UUID of the target object.

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