View
-
class
View
: public HPS::Sprocket The View class is one of the four core display classes used in a Visualize application. It is meant to be used as part of a display hierarchy along with the Canvas, Layout, and Model objects. The View has a parent Layout and can contain a single Model. The View is meant to represent one particular camera’s view of the scene. Like the other three core objects, the View is backed by a HPS::SegmentKey.
Public Functions
-
void
AttachModel
(Model const &in_model) Attaches a Model to this View. Only a single Model can be attached to a View at one time. If you attach a Model to a View which already has an attached Model, the new Model will replace the old one.
Parameters: in_model – the Model to attach to this View
-
HPS::View &
ComputeFitWorldCamera
(BoundingKit const &in_bounding, HPS::CameraKit &out_camera) This method computes a camera to fit a bounding.
Parameters: - in_bounding – The bounding used to calculate the new camera.
- out_camera – The camera computed by the fit world routine.
-
HPS::View &
ComputeFitWorldCamera
(BoundingKit const &in_bounding, MatrixKit const &in_transform, HPS::CameraKit &out_camera) This method computes a camera to fit a bounding.
Parameters: - in_bounding – The bounding used to calculate the new camera.
- in_transform – An optional transform to apply to the bounding used to compute the camera. This can be used to ensure that the camera is looking at the geometry in the correct position once any modelling matrices are applied.
- out_camera – The camera computed by the fit world routine.
-
HPS::View &
ComputeFitWorldCamera
(HPS::CameraKit &out_camera) This method computes a camera to fit the extents of the scene.
Parameters: out_camera – The camera computed by the fit world routine.
-
HPS::View &
ComputeFitWorldCamera
(SegmentKey const &in_segment, HPS::CameraKit &out_camera) This method computes a camera to fit the extents of a segment.
Parameters: - in_segment – The segment used to calculate the new camera.
- out_camera – The camera computed by the fit world routine.
-
HPS::View &
ComputeFitWorldCamera
(SegmentKey const &in_segment, MatrixKit const &in_transform, HPS::CameraKit &out_camera) This method computes a camera to fit the extents of a segment.
Parameters: - in_segment – The segment used to calculate the new camera.
- in_transform – An optional transform to apply to the segment bounding used to compute the camera. This can be used to ensure that the camera is looking at the geometry in the correct position once any modelling matrices are applied.
- out_camera – The camera computed by the fit world routine.
-
void
Delete
() Deletes this View. If the View has a Model attached, the Model will not be destroyed.
-
HPS::View &
FitWorld
() This method automatically adjusts the camera to fit the extents of the scene.
-
HPS::View &
FitWorld
(BoundingKit const &in_bounding) This method automatically adjusts the camera to fit a bounding.
Parameters: in_bounding – The bounding used to calculate the new camera.
-
HPS::View &
FitWorld
(BoundingKit const &in_bounding, MatrixKit const &in_transform) This method automatically adjusts the camera to fit a bounding.
Parameters: - in_bounding – The bounding used to calculate the new camera.
- in_transform – An optional transform to apply to the bounding used to compute the camera. This can be used to ensure that the camera is looking at the geometry in the correct position once any modelling matrices are applied.
-
HPS::View &
FitWorld
(SegmentKey const &in_segment) This method automatically adjusts the camera to fit the extents of a segment. Note that this method does not take into account any transformations found between in_segment and the View segment. If there might be transforms between in_segment and the View segment, you can use the version of FitWorld which does not require a parameter, or the version of FitWorld which takes both a SegmentKey and a MatrixKit.
Parameters: in_segment – The segment used to calculate the new camera.
-
HPS::View &
FitWorld
(SegmentKey const &in_segment, MatrixKit const &in_transform) This method automatically adjusts the camera to fit the extents of a segment. In the general case, in_transform should be the product of all the MatrixKits found between the View segment and in_segment.
Parameters: - in_segment – The segment used to calculate the new camera.
- in_transform – An optional transform to apply to the segment bounding used to compute the camera. This can be used to ensure that the camera is looking at the geometry in the correct position once any modelling matrices are applied.
-
AnimationControl
GetAnimationControl
() Gets the AnimationControl that is associated with this View.
-
AnimationControl const
GetAnimationControl
() const
-
IncludeKey
GetAttachedModelIncludeLink
() const Returns the IncludeKey associated with this View. The include key links the View with the Model.
-
AxisTriadControl
GetAxisTriadControl
() Gets the AxisTriadControl that is associated with this View.
-
AxisTriadControl const
GetAxisTriadControl
() const
-
SegmentKey
GetModelOverrideSegmentKey
() Returns the model override segment. This segment can be used to change attributes affecting the whole model, without affecting the static tree set at the model level.
-
SegmentKey const
GetModelOverrideSegmentKey
() const
Gets the NavigationCubeControl that is associated with this View.
Gets an array of Keys associated with the Axis Triad and Navigation Cube for this View
-
OperatorControl
GetOperatorControl
() Gets the OperatorControl that is associated with this View.
-
OperatorControl const
GetOperatorControl
() const
-
OperatorPtrArray
GetOperators
() const Gets an array of all operators currently active on this View.
-
LayoutArray const
GetOwningLayouts
() const
-
PortfolioKey
GetPortfolioKey
() Returns the HPS::PortfolioKey associated with this View.
-
PortfolioKey const
GetPortfolioKey
() const
-
Rendering::Mode
GetRenderingMode
() const Gets the rendering mode for this View. A rendering modes enable things like “hidden line” rendering or a particular lighting interpolation algorithm.
-
SegmentKey
GetSegmentKey
() Each of the four display hierarchy objects (HPS::Canvas, HPS::Layout, HPS::View, HPS::Model) are backed by a HPS::SegmentKey. This function returns the HPS::SegmentKey that is associated with this View.
-
SegmentKey const
GetSegmentKey
() const
-
bool
GetSimpleReflection
() Returns the status of the simple reflection
-
bool
GetSimpleShadow
() Returns the status of the simple shadows
-
inline virtual HPS::Type
ObjectType
() const This function returns the type the object, as declared (if the object is derived, this does not give the true type of the derived object).
Returns: The declared type of the object in question, which may differ from the true, underlying type.
-
void
SetOperator
(Operator *in_operator) Makes an operator active on this View. Assumes control of the memory of the operator.
- Deprecated:
It is recommended to use overloads which consume OperatorPtr as the object lifetime is simpler to reason about.
Parameters: in_operator – the operator to be made active on this View.
-
void
SetOperator
(OperatorPtr const &in_operator) Makes an operator active on this View. Assumes control of the memory of the operator.
Parameters: in_operator – the operator to be made active on this View.
-
void
SetOperators
(OperatorPtrArray &in_operators) Makes a set of operators active on this View.
Parameters: in_operators – the set of operators to be made active on this View
-
void
SetOperators
(size_t in_count, OperatorPtr in_operators[]) Makes an array of operators active on this View.
Parameters: - in_count – the number of operators in the in_operators array
- in_operators – the array of operators to be made active on this View
-
void
SetRenderingMode
(Rendering::Mode in_mode) Sets the rendering mode for this View. A rendering modes enable things like “hidden line” rendering or a particular lighting interpolation algorithm.
See also
Programming Guide section 3.1.
-
void
SetSimpleReflection
(bool in_state, float in_percent_offset = 5.0f) Turns simple reflection on or off, automatically calculating reflection plane and light direction
Parameters: - in_state – controls whether simple reflection is on or off
- in_percent_offset – distance to add between the model’s bounding box and the position of the reflection plane If not specified, it is set to 5%.
-
void
SetSimpleShadow
(bool in_state, float in_percent_offset = 5.0f) Turns simple shadows on or off, automatically calculating shadow plane and light direction
Parameters: - in_state – controls whether simple shadows are on or off
- in_percent_offset – distance to add between the model’s bounding box and the position of the shadow plane If not specified, it is set to 5%.
-
void
SmoothTransition
(HPS::CameraKit const &in_camera_kit, HPS::Time in_duration = 0.5) Smoothly moves the camera from the current position to the one specified by the user.
Parameters: - in_camera_kit – a camera kit describing the destination camera
- in_duration – the duration of the animation, specified in seconds. Defaults to 0.5 seconds.
-
void
Update
() const Redraws the View and all Layouts it appears in, including all of its child components.
-
void
Update
(HPS::Window::UpdateType in_type, HPS::Time in_time_limit = -1.0) const Redraws the View and all Layouts it appears in, including all of its child components using the specified parameters.
Parameters: - in_type – one of the enum values specified by HPS::Window::UpdateType
- in_time_limit – the maximum amount of time, in seconds, to spend updating.
-
UpdateNotifier
UpdateWithNotifier
() const Redraws the View and all Layouts it appears in, including all of its child components using the default options, and also returns a notifier to facilitate tracking the update progress.
Returns: An UpdateNotifier object used to find out information about the update.
-
UpdateNotifier
UpdateWithNotifier
(HPS::Window::UpdateType in_type, HPS::Time in_time_limit = -1.0) const Redraws the View and all Layouts it appears in, including all of its child components using the specified, and also returns a notifier to facilitate tracking the update progress.
Parameters: - in_type – one of the enum values specified by HPS::Window::UpdateType
- in_time_limit – the maximum amount of time, in seconds, to spend updating this HPS::Canvas
Returns: HPS::UpdateNotifier to facilitate tracking the update progress.
Returns: An UpdateNotifier object used to find out information about the update.
-
View
()
-
explicit
View
(SprocketControl const &in_ctrl)
-
~View
()
-
void