#include <sprk.h>

Inheritance diagram for HPS::View:
HPS::Sprocket HPS::Object

Public Member Functions

void Assign (View const &in_that)
 
void AttachModel (Model const &in_model)
 
HPS::ViewComputeFitWorldCamera (HPS::CameraKit &out_camera)
 
HPS::ViewComputeFitWorldCamera (SegmentKey const &in_segment, HPS::CameraKit &out_camera)
 
HPS::ViewComputeFitWorldCamera (BoundingKit const &in_bounding, HPS::CameraKit &out_camera)
 
HPS::ViewComputeFitWorldCamera (SegmentKey const &in_segment, MatrixKit const &in_transform, HPS::CameraKit &out_camera)
 
HPS::ViewComputeFitWorldCamera (BoundingKit const &in_bounding, MatrixKit const &in_transform, HPS::CameraKit &out_camera)
 
void Delete ()
 
void DetachModel ()
 
bool Equals (View const &in_that) const
 
HPS::ViewFitWorld ()
 
HPS::ViewFitWorld (SegmentKey const &in_segment)
 
HPS::ViewFitWorld (BoundingKit const &in_bounding)
 
HPS::ViewFitWorld (SegmentKey const &in_segment, MatrixKit const &in_transform)
 
HPS::ViewFitWorld (BoundingKit const &in_bounding, MatrixKit const &in_transform)
 
Model GetAttachedModel () const
 
IncludeKey GetAttachedModelIncludeLink () const
 
AxisTriadControl GetAxisTriadControl ()
 
AxisTriadControl const GetAxisTriadControl () const
 
SegmentKey GetModelOverrideSegmentKey ()
 
SegmentKey const GetModelOverrideSegmentKey () const
 
UTF8 GetName () const
 
NavigationCubeControl GetNavigationCubeControl ()
 
NavigationCubeControl const GetNavigationCubeControl () const
 
KeyArray const GetNavigationKeys ()
 
OperatorControl GetOperatorControl ()
 
OperatorControl const GetOperatorControl () const
 
OperatorPtrArray GetOperators () const
 
LayoutArray GetOwningLayouts ()
 
LayoutArray const GetOwningLayouts () const
 
PortfolioKey const GetPortfolioKey () const
 
PortfolioKey GetPortfolioKey ()
 
Rendering::Mode GetRenderingMode () const
 
SegmentKey GetSegmentKey ()
 
SegmentKey const GetSegmentKey () const
 
bool GetSimpleReflection ()
 
bool GetSimpleShadow ()
 
HPS::Type ObjectType () const
 
bool operator!= (View const &in_that) const
 
Viewoperator= (View const &in_that)
 
bool operator== (View const &in_that) const
 
void SetOperator (OperatorPtr const &in_operator)
 
void SetOperator (Operator *in_operator)
 
void SetOperators (OperatorPtrArray &in_operators)
 
void SetOperators (size_t in_count, OperatorPtr in_operators [])
 
void SetRenderingMode (Rendering::Mode in_mode)
 
void SetSimpleReflection (bool in_state, float in_percent_offset=5.0f)
 
void SetSimpleShadow (bool in_state, float in_percent_offset=5.0f)
 
void SmoothTransition (HPS::CameraKit const &in_camera_kit, HPS::Time in_duration=0.5)
 
void Update () const
 
void Update (HPS::Window::UpdateType in_type, HPS::Time in_time_limit=-1.0) const
 
UpdateNotifier UpdateWithNotifier () const
 
UpdateNotifier UpdateWithNotifier (HPS::Window::UpdateType in_type, HPS::Time in_time_limit=-1.0) const
 
 View (View const &that)
 
 View (SprocketControl const &in_ctrl)
 
- Public Member Functions inherited from HPS::Sprocket
 Sprocket (Sprocket &&in_that)
 
- Public Member Functions inherited from HPS::Object
virtual bool Empty () const
 
intptr_t GetClassID () const
 
intptr_t GetInstanceID () const
 
bool HasType (HPS::Type in_mask) const
 
 Object (Object const &that)
 
 Object (Object &&in_that)
 
Objectoperator= (Object const &other_object)
 
Objectoperator= (Object &&in_that)
 
virtual void Reset ()
 
virtual HPS::Type Type () const
 

Static Public Attributes

static const HPS::Type staticType = HPS::Type::View
 
- Static Public Attributes inherited from HPS::Object
static const HPS::Type staticType = HPS::Type::None
 

Additional Inherited Members

- Static Public Member Functions inherited from HPS::Object
template<typename T >
static intptr_t ClassID ()
 

Detailed Description

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.

Member Function Documentation

◆ AttachModel()

void HPS::View::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_modelthe Model to attach to this View

◆ ComputeFitWorldCamera() [1/5]

HPS::View& HPS::View::ComputeFitWorldCamera ( HPS::CameraKit out_camera)

This method computes a camera to fit the extents of the scene.

Parameters
out_cameraThe camera computed by the fit world routine.

◆ ComputeFitWorldCamera() [2/5]

HPS::View& 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_segmentThe segment used to calculate the new camera.
out_cameraThe camera computed by the fit world routine.

◆ ComputeFitWorldCamera() [3/5]

HPS::View& HPS::View::ComputeFitWorldCamera ( BoundingKit const &  in_bounding,
HPS::CameraKit out_camera 
)

This method computes a camera to fit a bounding.

Parameters
in_boundingThe bounding used to calculate the new camera.
out_cameraThe camera computed by the fit world routine.

◆ ComputeFitWorldCamera() [4/5]

HPS::View& 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_segmentThe segment used to calculate the new camera.
in_transformAn 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_cameraThe camera computed by the fit world routine.

◆ ComputeFitWorldCamera() [5/5]

HPS::View& 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_boundingThe bounding used to calculate the new camera.
in_transformAn 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_cameraThe camera computed by the fit world routine.

◆ Delete()

void HPS::View::Delete ( )

Deletes this View. If the View has a Model attached, the Model will not be destroyed.

◆ DetachModel()

void HPS::View::DetachModel ( )

Detaches the Model from this View

◆ FitWorld() [1/5]

HPS::View& HPS::View::FitWorld ( )

This method automatically adjusts the camera to fit the extents of the scene.

◆ FitWorld() [2/5]

HPS::View& 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_segmentThe segment used to calculate the new camera.

◆ FitWorld() [3/5]

HPS::View& HPS::View::FitWorld ( BoundingKit const &  in_bounding)

This method automatically adjusts the camera to fit a bounding.

Parameters
in_boundingThe bounding used to calculate the new camera.

◆ FitWorld() [4/5]

HPS::View& 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_segmentThe segment used to calculate the new camera.
in_transformAn 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.

◆ FitWorld() [5/5]

HPS::View& HPS::View::FitWorld ( BoundingKit const &  in_bounding,
MatrixKit const &  in_transform 
)

This method automatically adjusts the camera to fit a bounding.

Parameters
in_boundingThe bounding used to calculate the new camera.
in_transformAn 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.

◆ GetAttachedModel()

Model HPS::View::GetAttachedModel ( ) const

Returns the Model that is attached to this View

◆ GetAttachedModelIncludeLink()

IncludeKey HPS::View::GetAttachedModelIncludeLink ( ) const

Returns the IncludeKey associated with this View. The include key links the View with the Model.

◆ GetAxisTriadControl()

AxisTriadControl HPS::View::GetAxisTriadControl ( )

Gets the AxisTriadControl that is associated with this View.

◆ GetModelOverrideSegmentKey()

SegmentKey HPS::View::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.

◆ GetName()

UTF8 HPS::View::GetName ( ) const

Get the name used when creating this View.

◆ GetNavigationCubeControl()

NavigationCubeControl HPS::View::GetNavigationCubeControl ( )

Gets the NavigationCubeControl that is associated with this View.

◆ GetNavigationKeys()

KeyArray const HPS::View::GetNavigationKeys ( )

Gets an array of Keys associated with the Axis Triad and Navigation Cube for this View

◆ GetOperatorControl()

OperatorControl HPS::View::GetOperatorControl ( )

Gets the OperatorControl that is associated with this View.

◆ GetOperators()

OperatorPtrArray HPS::View::GetOperators ( ) const

Gets an array of all operators currently active on this View.

◆ GetOwningLayouts()

LayoutArray HPS::View::GetOwningLayouts ( )

Returns an array containing the Layouts this View is included in.

◆ GetPortfolioKey()

PortfolioKey HPS::View::GetPortfolioKey ( )

Returns the HPS::PortfolioKey associated with this View.

◆ GetRenderingMode()

Rendering::Mode HPS::View::GetRenderingMode ( ) const

Gets the rendering mode for this View. A rendering modes enable things like "hidden line" rendering or a particular lighting interpolation algorithm.

◆ GetSegmentKey()

SegmentKey HPS::View::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.

◆ GetSimpleReflection()

bool HPS::View::GetSimpleReflection ( )

Returns the status of the simple reflection

◆ GetSimpleShadow()

bool HPS::View::GetSimpleShadow ( )

Returns the status of the simple shadows

◆ ObjectType()

HPS::Type HPS::View::ObjectType ( ) const
inlinevirtual

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.

Reimplemented from HPS::Object.

◆ SetOperator() [1/2]

void HPS::View::SetOperator ( OperatorPtr const &  in_operator)

Makes an operator active on this View. Assumes control of the memory of the operator.

Parameters
in_operatorthe operator to be made active on this View.

◆ SetOperator() [2/2]

void HPS::View::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_operatorthe operator to be made active on this View.

◆ SetOperators() [1/2]

void HPS::View::SetOperators ( OperatorPtrArray &  in_operators)

Makes a set of operators active on this View.

Parameters
in_operatorsthe set of operators to be made active on this View

◆ SetOperators() [2/2]

void HPS::View::SetOperators ( size_t  in_count,
OperatorPtr  in_operators[] 
)

Makes an array of operators active on this View.

Parameters
in_countthe number of operators in the in_operators array
in_operatorsthe array of operators to be made active on this View

◆ SetRenderingMode()

void HPS::View::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.

◆ SetSimpleReflection()

void HPS::View::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_statecontrols whether simple reflection is on or off
in_percent_offsetdistance to add between the model's bounding box and the position of the reflection plane If not specified, it is set to 5%.

◆ SetSimpleShadow()

void HPS::View::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_statecontrols whether simple shadows are on or off
in_percent_offsetdistance to add between the model's bounding box and the position of the shadow plane If not specified, it is set to 5%.

◆ SmoothTransition()

void HPS::View::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_kita camera kit describing the destination camera
in_durationthe duration of the animation, specified in seconds. Defaults to 0.5 seconds.

◆ Update() [1/2]

void HPS::View::Update ( ) const

Redraws the View and all Layouts it appears in, including all of its child components.

◆ Update() [2/2]

void HPS::View::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_typeone of the enum values specified by HPS::Window::UpdateType
in_time_limitthe maximum amount of time, in seconds, to spend updating.

◆ UpdateWithNotifier() [1/2]

UpdateNotifier HPS::View::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 that can be used to find out information about the update.

◆ UpdateWithNotifier() [2/2]

UpdateNotifier HPS::View::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.

Returns
HPS::UpdateNotifier to facilitate tracking the update progress.
Parameters
in_typeone of the enum values specified by HPS::Window::UpdateType
in_time_limitthe maximum amount of time, in seconds, to spend updating this HPS::Canvas
Returns
An UpdateNotifier object that can be used to find out information about the update.

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