The HSubwindow class encapsulates interactive floating subwindows. More...
#include <HUtilitySubwindow.h>
Public Member Functions | |
virtual int | CameraChangedEvent (HBaseView *view) |
virtual void | ChangeType (int type, long appearance=SW_BORDER|SW_SIZE_FIELD|SW_MOVE_FIELD|SW_DRAG_FIELD|SW_DELETE_FIELD|SW_MAGNIFIER_FIELD|SW_BACKGROUND_BOX) |
virtual void | ComputeCoordinates (HBaseView *view, const char *in_system, HPoint &from, const char *out_system, HPoint &to) |
virtual void | ConvertFromSubwindowToView (HPoint &in_point, HPoint &out_point) |
virtual void | ConvertFromViewToSubwindow (HPoint const &in_point, HPoint &out_point) |
virtual void | Drag (HBaseView *view, HPoint p1, HPoint p2) |
virtual bool | FindSubwindow (HBaseView *view, HPoint pos, bool &pointerselected) |
virtual HC_KEY | FindSubwindowFromSegment (HC_KEY key) |
virtual void | GetFromKey (HC_KEY key) |
virtual HC_KEY | GetKey () |
virtual const char * | GetName () |
virtual void | GetPointerPosition (float &x, float &y) |
virtual void | GetPosition (float &x, float &y) |
virtual void | GetSize (float &x, float &y) |
virtual int | GetType () |
virtual HC_KEY | GetWindowKey () |
HSubwindow (HBaseView *view, int DoRepeat=0, int DoCapture=1) | |
HSubwindow () | |
virtual void | Insert (float left, float right, float bottom, float top, int type=SUBWINDOW_NOTYPE, long appearance=SW_BORDER|SW_SIZE_FIELD|SW_MOVE_FIELD|SW_DRAG_FIELD|SW_DELETE_FIELD|SW_MAGNIFIER_FIELD|SW_BACKGROUND_BOX) |
virtual bool | IsActive () |
virtual bool | IsSubwindow (HC_KEY key) |
virtual void | MakeCameraSnapshot (HBaseView *view) |
virtual int | ObjectMovedEvent (HBaseView *view, HC_KEY key, HPoint *p) |
virtual int | ObjectScaledEvent (HBaseView *view, HC_KEY key, HPoint &scale) |
virtual int | OnLButtonDown (HEventInfo &hevent) |
virtual int | OnLButtonDownAndMove (HEventInfo &hevent) |
virtual int | OnLButtonUp (HEventInfo &hevent) |
virtual int | PostFitWorldEvent (HBaseView *view) |
virtual int | PreFitWorldEvent (HBaseView *view) |
virtual void | Reset () |
virtual void | SetPointerPosition (float x, float y) |
virtual void | SetPosition (float x, float y) |
virtual void | SetSize (float deltax, float deltay) |
virtual void | SetSize (float left, float right, float bottom, float top) |
virtual int | SetupHandlesEvent (HBaseView *view, HC_KEY key, bool complex) |
virtual void | SyncViewToWindow (HBaseView *view) |
![]() | |
HObject () | |
![]() | |
int | Capture () |
Returns whether we are currently in mouse capture mode. See this class' constructor for a more detailed description of what this means. This method has been deprecated. | |
virtual HBaseOperator * | Clone () |
HPoint const | GetFirstPoint () |
Returns the initial selection point. | |
HPoint const | GetNewPoint () |
Returns the current selection point. | |
HBaseView * | GetView () |
Returns a pointer to the view that this operator is associated with. | |
HBaseOperator (HBaseView *view, int DoRepeat=0, int DoCapture=1) | |
virtual int | OnKeyDown (HEventInfo &hevent) |
virtual int | OnKeyUp (HEventInfo &hevent) |
virtual int | OnLButtonDblClk (HEventInfo &hevent) |
virtual int | OnLRButtonDownAndMove (HEventInfo &hevent) |
virtual int | OnMButtonDblClk (HEventInfo &hevent) |
virtual int | OnMButtonDown (HEventInfo &hevent) |
virtual int | OnMButtonDownAndMove (HEventInfo &hevent) |
virtual int | OnMButtonUp (HEventInfo &hevent) |
virtual int | OnMouseMove (HEventInfo &hevent) |
virtual int | OnMouseWheel (HEventInfo &hevent) |
virtual int | OnNoButtonDownAndMove (HEventInfo &hevent) |
virtual int | OnRButtonDblClk (HEventInfo &hevent) |
virtual int | OnRButtonDown (HEventInfo &hevent) |
virtual int | OnRButtonDownAndMove (HEventInfo &hevent) |
virtual int | OnRButtonUp (HEventInfo &hevent) |
virtual int | OnTimer (HEventInfo &hevent) |
virtual int | OnTouchesDown (HEventInfo &hevent) |
virtual int | OnTouchesMove (HEventInfo &hevent) |
virtual int | OnTouchesUp (HEventInfo &hevent) |
virtual bool | OperatorStarted () |
Operator has been started if true, and has not been started if false. | |
int | Repeat () |
Returns whether the operation is repeatable. This method has been deprecated. | |
void | SetFirstPoint (HPoint const &new_point) |
Sets the initial selection point. | |
void | SetMapTouchesToMouseEvents (bool val) |
Touch Events are mapped to mouse events if true, and are not if false. | |
void | SetNewPoint (HPoint const &new_point) |
Sets the current selection point. | |
void | SetOperatorStarted (bool val) |
Operator has been started if true, and has not been started if false. | |
void | SetView (HBaseView *new_view) |
Sets the view that this operator is associated with. | |
Static Public Member Functions | |
static const char * | GetStaticName () |
Protected Member Functions | |
void | BuildBorder () |
void | BuildMagnifyController (float pos) |
void | ChangeMagnification (HBaseView *view, HPoint &p) |
void | ChangeMagnification (HBaseView *view, float magnification) |
void | CopyViewLight (HBaseView *view) |
void | GetParameters () |
bool | IsInCloseArea (HPoint &point) |
bool | IsInDragArea (HPoint &point) |
bool | IsInMagnifyArea (HPoint &point) |
bool | IsInMoveArea (HPoint &point) |
bool | IsInSizeArea (HPoint &point) |
void | Magnify (HBaseView *view) |
void | MakeKeyframe () |
void | MakeScaleKeyframe () |
void | ShowPointer () |
![]() | |
bool | IsSpecialKey (HC_KEY key) |
Protected Attributes | |
int | m_Action |
long | m_Appearance |
float | m_Bottom |
float | m_Left |
float | m_Magnification |
float | m_OldMagnification |
HC_KEY | m_OuterKey |
HPoint | m_Pointer |
HPoint | m_ptLast |
float | m_Right |
float | m_Top |
int | m_Type |
HC_KEY | m_WindowKey |
![]() | |
bool | m_bMapTouchesToMouseEvents |
Indicates if touch events are mapped to mouse events. | |
bool | m_bOpStarted |
Indicates whether the operator has already 'started'. More... | |
int | m_doCapture |
Integer indicating whether to capture mouse on button down and release on button up. This parameter has been deprecated. | |
int | m_doRepeat |
Integer indicating if the operator is repeatable . This parameter has been deprecated. | |
HPoint | m_ptFirst |
Initial selection point. | |
HPoint | m_ptNew |
Current selection point. | |
HBaseView * | m_pView |
The HOOPS view corresponding to this operator. | |
HCutGeometryVisibility | m_TempCutGeometryVisibility |
stores original cut geometry visibility | |
HShadowMode | m_TempShadowMode |
stores original shadow mode | |
Detailed Description
The HSubwindow class encapsulates interactive floating subwindows.
Subwindows can be used for things like displaying legend bars to different views of a particular scene. They can live outside of a particular model or can be stored inside an HSF file while retaining their functionality. Similar to GUI windows, they can be dragged, resized and deleted.
Constructor & Destructor Documentation
◆ HSubwindow() [1/2]
HSubwindow::HSubwindow | ( | HBaseView * | view, |
int | DoRepeat = 0 , |
||
int | DoCapture = 1 |
||
) |
Constructs an HSubwindow object.
- Parameters
-
view A pointer to an HBaseView object. DoRepeat An integer denoting whether this is a repeatable operator. This parameter has been deprecated. DoCapture An integer denoting whether the mouse state should be captured, which means that all mouse events should be received after a mousedown, even if it leaves the window. This parameter has been deprecated.
◆ HSubwindow() [2/2]
HSubwindow::HSubwindow | ( | ) |
Constructs an HSubwindow object.
Member Function Documentation
◆ BuildBorder()
|
protected |
This method constructs a window border area if the appearance has the SW_BORDER flag.
◆ BuildMagnifyController()
|
protected |
This method constructs a magnifier slider for the window if the appearance has the SW_MAGNIFIER_FIELD.
- Parameters
-
pos The initial position of the slider.
◆ CameraChangedEvent()
|
virtual |
This method handles the event that is generated when the camera position changes by updating the scene according to the new camera position.
- Parameters
-
view A pointer to the HBaseView object.
- Returns
- An HOperatorReturn indicating the status of the event.
◆ ChangeMagnification() [1/2]
This method changes the subwindow's manification based on the position of the magnification slider.
- Parameters
-
view A pointer to the HBaseView object. p The slider position.
◆ ChangeMagnification() [2/2]
|
protected |
This method adjusts the subwindow's magnification.
- Parameters
-
view A pointer to the HBaseView object. magnification The magnification level.
◆ ChangeType()
|
virtual |
This method updates the subwindow type and appearance.
- Parameters
-
type The Subwindow Type which can be SUBWINDOW_NOTYPE, SUBWINDOW_MAGNIFIER, SUBWINDOW_SNAPSHOT or SUBWINDOW_POINTER. appearance Bitfields describing the window characteristics which can be any combination of the following: SW_BORDER, SW_SIZE_FIELD, SW_MOVE_FIELD, SW_DRAG_FIELD, SW_DELETE_FIELD, SW_MAGNIFIER_FIELD, SW_BACKGROUND_BOX.
◆ ComputeCoordinates()
|
virtual |
This method converts the given coordinate into the the out_system while still taking into account the transformation and rotation matrices along the subwindow segment path.
- Parameters
-
view A pointer to the HBaseView object.
in_system The from coordinate space as described in HC_Compute_Coordinates. from The coordinates to be converted. out_system The coordinate space that from will be converted into as described in HC_Compute_Coordinates. to Returns the newly converted coordinate.
◆ ConvertFromSubwindowToView()
|
virtual |
This method converts a 2D point in the subwindow to a 2D point in the view.
- Parameters
-
in_point The 2D window space coordinates of the subwindow to be converted. out_point Returns the 2D coordinates converted to window space for the view.
◆ ConvertFromViewToSubwindow()
◆ CopyViewLight()
|
protected |
This method copies the light associated with the view to the subwindow.
- Parameters
-
view A pointer to the HBaseView object.
◆ Drag()
This method drags the subwindow from point p1 to point p2.
- Parameters
-
view A pointer to the HBaseView object. p1 The point to drag from. p2 The point to drag to.
◆ FindSubwindow()
|
virtual |
Given a 2D position, this method finds if the subwindow is in that position.
- Parameters
-
view A pointer to the HBaseView object. pos The 2d window position. pointerselected Returns true if window maginifier pointer is found.
- Returns
- True if the subwindow was found or false if it was not.
◆ FindSubwindowFromSegment()
|
virtual |
Given a segment key, this method looks under the key to find if a subwindow exists.
- Parameters
-
key The segment key to look under.
- Returns
- The key to the top level subwindow segment or INVALID_KEY if no subwindow segment was found.
◆ GetFromKey()
|
virtual |
This method retrieves the window characteristics from the given segment key.
- Parameters
-
key The segment key to get the window characteristics from.
◆ GetKey()
|
inlinevirtual |
This method retrieves the subwindow key.
- Returns
- The subwindow key.
◆ GetName()
|
virtual |
- Returns
- The name of the object which is 'subwindow'.
Reimplemented from HBaseOperator.
◆ GetParameters()
|
protected |
This method retrieves the window parameters from the window segment key.
◆ GetPointerPosition()
|
virtual |
This method gets the position of the subwindow pointer.
- Parameters
-
x Returns the horizontal position in window space. y Returns the vertical position in window space.
◆ GetPosition()
|
virtual |
This method gets the subwindow's position.
- Parameters
-
x Returns the horizontal position in window space. y Returns the vertical position in window space.
◆ GetSize()
|
virtual |
This method gets the subwindow size.
- Parameters
-
x Returns the width of the subwindow in window space. y Returns the height of the subwindow in window space.
◆ GetStaticName()
|
static |
- Returns
- The name of the object which is 'subwindow'.
◆ GetType()
|
inlinevirtual |
This method retrieves the subwindow type.
- Returns
- The subwindow type which can be SUBWINDOW_NOTYPE, SUBWINDOW_MAGNIFIER, SUBWINDOW_SNAPSHOT or SUBWINDOW_POINTER.
◆ GetWindowKey()
|
virtual |
- Returns
- The top level subwindow key.
◆ Insert()
|
virtual |
This method inserts a new HSubwindow object into the currently open segment.
- Parameters
-
left The minimum horizontal coordinate of the window.
right The maxium horizontal coordinate of the window. bottom The maximum vertical coordinate of the window. top The minium vertical coordinate of the window. type The subwindow type which can be SUBWINDOW_NOTYPE, SUBWINDOW_MAGNIFIER, SUBWINDOW_SNAPSHOT or SUBWINDOW_POINTER. appearance Bitfields describing the window characteristics which can be any combination of the following: SW_BORDER , SW_SIZE_FIELD, SW_MOVE_FIELD, SW_DRAG_FIELD, SW_DELETE_FIELD, SW_MAGNIFIER_FIELD, SW_BACKGROUND_BOX.
◆ IsActive()
|
virtual |
- Returns
- True if the subwindow is represented by a segment in the HOOPS database or false if it isn't.
◆ IsInCloseArea()
|
protected |
This method determines if the mouse position is in the "close window" area.
- Parameters
-
point The mouse position.
- Returns
- True if it is in the "close window" area or false if it is not or the appearance does not have the flag SW_DELETE_FIELD.
◆ IsInDragArea()
|
protected |
This method determines if the mouse position is in the mouse drag area.
- Parameters
-
point The mouse position.
- Returns
- True if it is in the magnifying slider area or false if it is not or the appearance does not have the SW_DRAG_FIELD flag.
◆ IsInMagnifyArea()
|
protected |
This method determines if the mouse pointer is in magnifying slider area.
- Parameters
-
point The position of the mouse pointer.
- Returns
- True if it is in the magnifying slider area or false if it is not or the appearance doesn't have the SW_MAGNIFIER_FIELD.
◆ IsInMoveArea()
|
protected |
This method determines if the mouse pointer is in the move area.
- Parameters
-
point The position of the mouse pointer.
- Returns
- True if the mouse is in the move area or false if it isn't or the appearance does not have the SW_MOVE_FIELD flag.
◆ IsInSizeArea()
|
protected |
This method determine if the mouse pointer is in the resizing area.
- Parameters
-
point The position of the mouse pointer.
- Returns
- True if it is in the resize area or false if it is not or the appearance does not have the SW_SIZE_FIELD flag.
◆ IsSubwindow()
|
virtual |
This method determines if the given segment is a subwindow.
- Parameters
-
key The segment key to check if it is a subwindow.
- Returns
- True if the given segment is a subwindow segment.
◆ Magnify()
|
protected |
This method performs magnification on the window.
- Parameters
-
view A pointer to the HBaseView object.
◆ MakeCameraSnapshot()
|
virtual |
This method resets the subwindow camera to the current camera in the view.
- Parameters
-
view A pointer to the HBaseView object.
◆ MakeKeyframe()
|
protected |
This method creates a subwindow movement keyframe.
◆ MakeScaleKeyframe()
|
protected |
This method creates a subwindow scaling keyframe.
◆ ObjectMovedEvent()
This method handles the object moved event by updating the subwindow position to the new object position p.
- Parameters
-
view A pointer to the HBaseView object. key The key of the current object. p The new object position.
- Returns
- An HOperatorReturn indicating the status of the event.
◆ ObjectScaledEvent()
This method handles the object scaled event by updating the size of the subwindow with the given scale parameter.
- Parameters
-
view A pointer to the HBaseView object. key The key of the current object. scale The object scaling.
- Returns
- An HOperatorReturn indicating the status of the event.
◆ OnLButtonDown()
|
virtual |
This method handles the left button down event by determining what type of action the user is trying to take depending on the position of the mouse pointer and the characteristics of the subwindow.
- Parameters
-
hevent An HEventInfo object containing the information about the current event.
- Returns
- An HOperatorReturn indicating the status of the event.
Reimplemented from HBaseOperator.
◆ OnLButtonDownAndMove()
|
virtual |
This method handles the left button down and move event by updating the window characteristics depending on the current action identified in the OnLButtonDown event. For instance, if the action was determined to be SW_ACTION_MOVE, then this event would cause the subwindow to move to the new position indicated in hevent. If the action was SW_ACTION_SIZING, then the subwindow would be resized.
- Parameters
-
hevent An HEventInfo object containing the information about the current event.
- Returns
- An HOperatorReturn indicating the status of the event.
Reimplemented from HBaseOperator.
◆ OnLButtonUp()
|
virtual |
This method handles the left button up event. If the action is SW_ACTION_MOVE or SW_ACTION_MAGNIFYING, this method creates a new movement keyframe. If the action is SW_ACTION_SIZING, this method creates a new scale keyframe.
- Parameters
-
hevent An HEventInfo object containing the information about the current event.
- Returns
- An HOperatorReturn indicating the status of the event.
Reimplemented from HBaseOperator.
◆ PostFitWorldEvent()
|
virtual |
This handles the event generate by a call to FitWorld by unsetting the subwindow's visibility which was set to off during the PreFitWorldEvent and the associated attribute lock.
- Parameters
-
view A pointer to the HBaseView object.
- Returns
- An HOperatorReturn indicating the status of the event.
◆ PreFitWorldEvent()
|
virtual |
This method handles the event generated before a call to FitWorld by setting the subwindow's visiblity to off and locking the visibility attribute.
- Parameters
-
view A pointer to the HBaseView object.
- Returns
- An HOperatorReturn indicating the status of the event.
◆ Reset()
|
virtual |
This method resets the window parameters so the HSubwindow object is disassociated from the subwindow segment key in the HOOPS database.
◆ SetPointerPosition()
|
virtual |
This method set the position of subwindow pointer.
- Parameters
-
x The horizontal position in window space. y The vertical position in window space.
◆ SetPosition()
|
virtual |
The method sets the subwindow position.
- Parameters
-
x The horizontal position in window space. y The vertical position in window space.
◆ SetSize() [1/2]
|
virtual |
This method sets the subwindow size.
- Parameters
-
deltax The width of the subwindow in window space. deltay The height of the subwindow in window space.
◆ SetSize() [2/2]
|
virtual |
This method set the size of the subwindow.
- Parameters
-
left The left horizontal position. right The right horizontal position. bottom The bottom vertical position. top The top vertical position.
◆ SetupHandlesEvent()
|
virtual |
This method handles set up handles event. Note that this implementation does not create handles for the subwindow.
- Parameters
-
view A pointer to the HBaseView object. key The key of the current object. complex Pass true to create complex handles.
- Returns
- An HOperatorReturn indicating the status of the event.
◆ ShowPointer()
|
protected |
This method constructs the magnification/view pointer.
◆ SyncViewToWindow()
|
virtual |
This method synchronizes the view camera to the subwindow camera.
- Parameters
-
view A pointer to the HBaseView object.
Member Data Documentation
◆ m_Action
|
protected |
The current window action which can be SW_ACTION_NOACTION, SW_ACTION_MOVE, SW_ACTION_SIZING, SW_ACTION_MAGNIFYING, SW_ACTION_POINTERMOVE or SW_ACTION_DRAGGING.
◆ m_Appearance
|
protected |
The appearance bitfield which can be any combination of the following: SW_BORDER, SW_SIZE_FIELD, SW_MOVE_FIELD, SW_DRAG_FIELD, SW_DELETE_FIELD, SW_MAGNIFIER_FIELD, SW_BACKGROUND_BOX.
◆ m_Bottom
|
protected |
The maximum vertical value of the subwindow in window coordinates.
◆ m_Left
|
protected |
The minimum horizontal value of the subwindow in window coordinates.
◆ m_Magnification
|
protected |
The window magnification level.
◆ m_OldMagnification
|
protected |
The previous magnification field.
◆ m_OuterKey
|
protected |
The top level key for the window.
◆ m_Pointer
|
protected |
The location of the window pointer.
◆ m_ptLast
|
protected |
The last mouse position.
◆ m_Right
|
protected |
The maximum horizontal value of the subwindow in window coordinates.
◆ m_Top
|
protected |
The minimum vertical value of the subwindow in window coordinates.
◆ m_Type
|
protected |
The window type which can be SUBWINDOW_NOTYPE, SUBWINDOW_MAGNIFIER, SUBWINDOW_SNAPSHOT or SUBWINDOW_POINTER.
◆ m_WindowKey
|
protected |
The key to the "window" segment.
The documentation for this class was generated from the following file: