#include <hps.h>

Static Public Attributes | |
static const HPS::Type | staticType = HPS::Type::DrawingAttributeControl |
![]() | |
static const HPS::Type | staticType = HPS::Type::Control |
![]() | |
static const HPS::Type | staticType = HPS::Type::None |
Additional Inherited Members | |
![]() | |
template<typename T > | |
static intptr_t | ClassID () |
![]() | |
Control (Control &&in_that) | |
Control & | operator= (Control &&in_that) |
Detailed Description
The HPS::DrawingAttributeControl class is a smart pointer that is tied to a database object. This object is used to manipulate various high-level settings, such as depth range, priority, and displacement. Note that some of the attributes available through this control should only be set for an entire window, while others can be set at multiple places.
Global attributes:
World handedness, polygon handedness, priority, depth range
Segment-level attributes:
overlay, deferral, face displacement, general displacement, clip regions
This table lists default values for the various segment attributes accessible from HPS::DrawingAttributeControl.
Constructor & Destructor Documentation
◆ DrawingAttributeControl() [1/3]
|
explicit |
Initializes a control tied to the segment in_seg.
◆ DrawingAttributeControl() [2/3]
HPS::DrawingAttributeControl::DrawingAttributeControl | ( | DrawingAttributeControl const & | in_that | ) |
Initializes a control tied to the same object as in_that.
◆ DrawingAttributeControl() [3/3]
HPS::DrawingAttributeControl::DrawingAttributeControl | ( | DrawingAttributeControl && | in_that | ) |
The move constructor creates a DrawingAttributeControl by transferring the underlying impl of the rvalue reference to this DrawingAttributeControl thereby avoiding a copy and allocation.
- Parameters
-
in_that An rvalue reference to a DrawingAttributeControl to take the impl from.
◆ ~DrawingAttributeControl()
HPS::DrawingAttributeControl::~DrawingAttributeControl | ( | ) |
Releases a reference to the database object this control is tied to.
Member Function Documentation
◆ ObjectType()
|
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::Control.
◆ operator=() [1/2]
DrawingAttributeControl& HPS::DrawingAttributeControl::operator= | ( | DrawingAttributeControl && | in_that | ) |
The move assignment operator transfers the underlying impl of the rvalue reference to this DrawingAttributeControl thereby avoiding a copy.
- Parameters
-
in_that An rvalue reference to an DrawingAttributeControl to take the impl from.
- Returns
- A reference to this DrawingAttributeControl.
◆ operator=() [2/2]
DrawingAttributeControl& HPS::DrawingAttributeControl::operator= | ( | DrawingAttributeControl const & | in_that | ) |
Share the underlying smart-pointer of the DrawingAttributeControl source.
- Parameters
-
in_that The DrawingAttributeControl source of the assignment.
- Returns
- A reference to this DrawingAttributeControl.
◆ SetClipRegion() [1/3]
DrawingAttributeControl& HPS::DrawingAttributeControl::SetClipRegion | ( | PointArray const & | in_points, |
Drawing::ClipSpace | in_space = Drawing::ClipSpace::World , |
||
Drawing::ClipOperation | in_operation = Drawing::ClipOperation::Keep |
||
) |
Specifies a clip region.
- Parameters
-
in_points An array of points specifying the shape of the clip region. in_space The space coordinated in which the points are specified. in_operation The operation performed by this clip region.
- Returns
- A reference to this object.
◆ SetClipRegion() [2/3]
DrawingAttributeControl& HPS::DrawingAttributeControl::SetClipRegion | ( | size_t | in_point_count, |
Point const | in_points[], | ||
Drawing::ClipSpace | in_space = Drawing::ClipSpace::World , |
||
Drawing::ClipOperation | in_operation = Drawing::ClipOperation::Keep |
||
) |
Specifies a clip region.
- Parameters
-
in_point_count The number of elements in in_points in_points An array of points specifying the shape of the clip region. in_space The space coordinated in which the points are specified. in_operation The operation performed by this clip region.
- Returns
- A reference to this object.
◆ SetClipRegion() [3/3]
DrawingAttributeControl& HPS::DrawingAttributeControl::SetClipRegion | ( | PointArrayArray const & | in_loops, |
Drawing::ClipSpace | in_space = Drawing::ClipSpace::World , |
||
Drawing::ClipOperation | in_operation = Drawing::ClipOperation::Keep |
||
) |
Sets a complex polygonal clip region defined by the XOR of a series of loops.
- Parameters
-
in_loops An array of loops describing clip regions. in_space The coordinate space in which in_loops are specified. in_operation The operation performed by the clip region.
- Returns
- A reference to this object.
◆ SetDeferral()
DrawingAttributeControl& HPS::DrawingAttributeControl::SetDeferral | ( | int | in_deferral | ) |
Specifies a drawing order for a segment during timed updates. Segments with a lower deferral value will be drawn before segments with a higher value. This attribute does not inherit like most attributes. Segments have a default value of 0.
- Parameters
-
in_deferral A drawing priority, with larger values drawing later than usual. Should be non-negative.
- Returns
- A reference to this object.
◆ SetDepthRange()
DrawingAttributeControl& HPS::DrawingAttributeControl::SetDepthRange | ( | float | in_near, |
float | in_far | ||
) |
Compresses effective Z values into a subset of what they would otherwise have been. This allows certain pieces of the scene to be drawn on top at all times without additional sub-windows. Values of (0,0) will force all geometry into the frontmost bucket, but will have the drawback that it will cause z-fighting amongst the geometry that shares that setting. To get such pieces of geometry to resolve reasonably well against each other, a range of (0,0.1) should perform reasonably well.
Depth range settings are not cumulative, and have no effect when the rendering algorithm is Priority, or is not set.
The default is (0,1)
- Parameters
-
in_near The portion of the depth range closest to the camera. Valid range is [0,1] with in_near <= in_far. in_far The portion of the depth range furthest to the camera. Valid range is [0,1] with in_near <= in_far.
- Returns
- A reference to this object.
◆ SetFaceDisplacement() [1/2]
DrawingAttributeControl& HPS::DrawingAttributeControl::SetFaceDisplacement | ( | bool | in_state, |
int | in_buckets = 0 |
||
) |
Specifies a number of Z-buffer units that rendered faces should be pushed away from the camera. This can be used to reduce edge stitching by ensuring that coincident edges lay on top of the faces. Negative face displacements will push faces toward the camera.
- Parameters
-
in_state Whether face displacement should be used. in_buckets The number of units to move faces in the Z-Buffer. The units are 1/2^24 in the normalized depth range [0,1]. Negative values will move faces toward the camera, positive values away from the camera.
- Returns
- A reference to this object.
◆ SetFaceDisplacement() [2/2]
DrawingAttributeControl& HPS::DrawingAttributeControl::SetFaceDisplacement | ( | int | in_buckets | ) |
Specifies a number of Z-buffer units that rendered faces should be pushed away from the camera. The state is implicitly on.
- Parameters
-
in_buckets The number of units to move faces in the Z-Buffer. The units are 1/2^24 in the normalized depth range [0,1]. Negative values will move faces toward the camera, positive values away from the camera.
- Returns
- A reference to this object.
◆ SetGeneralDisplacement() [1/2]
DrawingAttributeControl& HPS::DrawingAttributeControl::SetGeneralDisplacement | ( | bool | in_state, |
int | in_buckets = 0 |
||
) |
Specifies a number of Z-buffer units that all geometry should be pushed away from the camera. This can be used to ensure that certain geometry is drawn on top of or behind the rest of the scene. Negative general displacements will push geometry toward the camera.
- Parameters
-
in_state Whether general displacement should be used. in_buckets The number of units to move rendered geometry in the Z-Buffer. The units are 1/2^24 in the normalized depth range [0,1]. Negative values will move geometry toward the camera, positive values away from the camera.
- Returns
- A reference to this object.
◆ SetGeneralDisplacement() [2/2]
DrawingAttributeControl& HPS::DrawingAttributeControl::SetGeneralDisplacement | ( | int | in_buckets | ) |
Specifies a number of Z-buffer units that all geometry should be pushed away from the camera. The state is implicitly on.
- Parameters
-
in_buckets The number of units to move rendered geometry in the Z-Buffer. The units are 1/2^24 in the normalized depth range [0,1]. Negative values will move geometry toward the camera, positive values away from the camera.
- Returns
- A reference to this object.
◆ SetOverlay()
DrawingAttributeControl& HPS::DrawingAttributeControl::SetOverlay | ( | Drawing::Overlay | in_overlay | ) |
Allows moving, editing, or deleting to take place in a segment without triggering a full-screen redraw.
- Parameters
-
in_overlay The type of overlay, if any, to be used.
- Returns
- A reference to this object.
◆ SetOverrideInternalColor()
DrawingAttributeControl& HPS::DrawingAttributeControl::SetOverrideInternalColor | ( | VisibilityKit const & | in_kit | ) |
Specifies internal color of line styles, glyphs and similar items should be overridden.
- Parameters
-
in_kit Which types should internal colors should be overridden.
- Returns
- A reference to this object.
◆ SetPolygonHandedness()
DrawingAttributeControl& HPS::DrawingAttributeControl::SetPolygonHandedness | ( | Drawing::Handedness | in_handedness | ) |
In order to do a back face culling, there must be some definition of a polygon's "front" and "back". This orientation is determined by the order in which the polygon's vertices were originally defined and the polygon handedness setting (not the world handedness). If you wrap the fingers of the chosen hand along the vertices of the polygon, with your wrist at the first vertex and your fingertips at the last, then extend your thumb perpendicular to your fingers, your thumb is extending out of the front face of the polygon.
- Parameters
-
in_handedness The handedness to be used for geometry.
- Returns
- A reference to this object.
◆ SetVertexDecimation()
DrawingAttributeControl& HPS::DrawingAttributeControl::SetVertexDecimation | ( | float | in_zero_to_one | ) |
Specifies an amount of vertices to draw 1 draws them all.
- Parameters
-
in_zero_to_one An amount, between [0,1], of vertices to draw.
- Returns
- A reference to this object.
◆ SetVertexDisplacement() [1/2]
DrawingAttributeControl& HPS::DrawingAttributeControl::SetVertexDisplacement | ( | bool | in_state, |
int | in_buckets = 0 |
||
) |
Specifies a number of Z-buffer units that vertices should be pushed away from the camera. This can be used to ensure that vertices are drawn on top of or behind other geometry. Negative general displacements will push vertices toward the camera.
- Parameters
-
in_state Whether vertex displacement should be used. in_buckets The number of units to move vertices in the Z-Buffer. The units are 1/2^24 in the normalized depth range [0,1]. Negative values will move vertices toward the camera, positive values away from the camera.
- Returns
- A reference to this object.
◆ SetVertexDisplacement() [2/2]
DrawingAttributeControl& HPS::DrawingAttributeControl::SetVertexDisplacement | ( | int | in_buckets | ) |
Specifies a number of Z-buffer units that vertices should be pushed away from the camera. The state is implicitly on.
- Parameters
-
in_buckets The number of units to move vertices in the Z-Buffer. The units are 1/2^24 in the normalized depth range [0,1]. Negative values will move vertices toward the camera, positive values away from the camera.
- Returns
- A reference to this object.
◆ SetVertexRandomization()
DrawingAttributeControl& HPS::DrawingAttributeControl::SetVertexRandomization | ( | bool | in_state | ) |
Specifies vertices should be drawn in a random order.
- Parameters
-
in_state If true the vertices for a point cloud will be randomized.
- Returns
- A reference to this object.
◆ SetWorldHandedness()
DrawingAttributeControl& HPS::DrawingAttributeControl::SetWorldHandedness | ( | Drawing::Handedness | in_handedness | ) |
The world handedness determines the orientation of the Z-axis in the Cartesian coordinate system. If you curl the fingers of your appropriate hand from the X-axis towards the Y-axis, your thumb will point in the direction of the Z-axis.
- Parameters
-
in_handedness The handedness of the underlying coordinate system.
- Returns
- A reference to this object.
- See also
- SetPolygonHandedness()
◆ ShowClipRegion()
bool HPS::DrawingAttributeControl::ShowClipRegion | ( | PointArrayArray & | out_loops, |
Drawing::ClipSpace & | out_space, | ||
Drawing::ClipOperation & | out_operation | ||
) | const |
Shows the clip region setting.
- Parameters
-
out_loops An array of loops specifying the shape of the clip region. out_space The coordinate space the points are specified in. out_operation The operation performed by this clip region.
- Returns
- true if the setting is valid, false otherwise.
◆ ShowDeferral()
bool HPS::DrawingAttributeControl::ShowDeferral | ( | int & | out_defer_batch | ) | const |
Shows the deferral setting.
- Parameters
-
out_defer_batch A drawing priority, with negative values drawing earlier than usual and positive values drawing later than usual.
- Returns
- true if the setting is valid, false otherwise.
◆ ShowDepthRange()
bool HPS::DrawingAttributeControl::ShowDepthRange | ( | float & | out_x, |
float & | out_y | ||
) | const |
Shows the depth range setting.
- Parameters
-
out_near The portion of the depth range closest to the camera. Valid range is [0,1] with out_near <= out_far. out_far The portion of the depth range furthest to the camera. Valid range is [0,1] with out_near <= out_far.
- Returns
- true if the setting is valid, false otherwise.
◆ ShowFaceDisplacement()
bool HPS::DrawingAttributeControl::ShowFaceDisplacement | ( | bool & | out_state, |
int & | out_buckets | ||
) | const |
Shows the face displacement setting.
- Parameters
-
out_state Whether face displacement will be used. out_buckets The distance to move rendered faces away from the camera.
- Returns
- true if the setting is valid, false otherwise.
◆ ShowGeneralDisplacement()
bool HPS::DrawingAttributeControl::ShowGeneralDisplacement | ( | bool & | out_state, |
int & | out_buckets | ||
) | const |
Shows the general displacement setting.
- Parameters
-
out_state Whether general displacement will be used. out_buckets The distance to move rendered geometry away from the camera.
- Returns
- true if the setting is valid, false otherwise.
◆ ShowOverlay()
bool HPS::DrawingAttributeControl::ShowOverlay | ( | Drawing::Overlay & | out_overlay | ) | const |
Shows the overlay setting.
- Parameters
-
out_overlay The type of overlay, if any, used.
- Returns
- true if the setting is valid, false otherwise.
◆ ShowOverrideInternalColor()
bool HPS::DrawingAttributeControl::ShowOverrideInternalColor | ( | VisibilityKit & | out_kit | ) | const |
Shows the override internal color setting.
- Parameters
-
out_kit Which override internal color types will be used.
- Returns
- true if the setting is valid, false otherwise.
◆ ShowPolygonHandedness()
bool HPS::DrawingAttributeControl::ShowPolygonHandedness | ( | Drawing::Handedness & | out_handedness | ) | const |
Shows the polygon handedness.
- Parameters
-
out_handedness The handedness used for geometry.
- Returns
- true if the setting is valid, false otherwise.
◆ ShowVertexDecimation()
bool HPS::DrawingAttributeControl::ShowVertexDecimation | ( | float & | out_zero_to_one | ) | const |
Shows the vertex decimation setting.
- Parameters
-
out_zero_to_one The value set for vertex decimation.
- Returns
- true if the setting is valid, false otherwise.
◆ ShowVertexDisplacement()
bool HPS::DrawingAttributeControl::ShowVertexDisplacement | ( | bool & | out_state, |
int & | out_buckets | ||
) | const |
Shows the vertex displacement setting.
- Parameters
-
out_state Whether vertex displacement will be used. out_buckets The distance to move vertices away from the camera.
- Returns
- true if the setting is valid, false otherwise.
◆ ShowVertexRandomization()
bool HPS::DrawingAttributeControl::ShowVertexRandomization | ( | bool & | out_state | ) | const |
Shows the vertex randomization setting.
- Parameters
-
out_state Whether vertex randomization will be used.
- Returns
- true if the setting is valid, false otherwise.
◆ ShowWorldHandedness()
bool HPS::DrawingAttributeControl::ShowWorldHandedness | ( | Drawing::Handedness & | out_handedness | ) | const |
Shows the world handedness.
- Parameters
-
out_handedness The handedness of the underlying coordinate system.
- Returns
- true if the setting is valid, false otherwise.
◆ Type()
|
inlinevirtual |
This function returns the true type of the underlying object. This function is useful for finding the type of smart pointer objects that have been cast to more generic types.
- Warning
- This function must synchronize the database (by waiting for all pending database operations to complete) in order to know the type status of this object with certainty. Therefore this function can negatively impact performance. You should vigorously avoid using this function in high-traffic or peformance-critical areas of your code.
- Returns
- The true type of the object in question.
Reimplemented from HPS::Control.
◆ UnsetClipRegion()
DrawingAttributeControl& HPS::DrawingAttributeControl::UnsetClipRegion | ( | ) |
Removes a clip region setting. If the control is attached to a WindowKey this function restores the default value of this setting as specified by DrawingAttributeKit::GetDefault().
- Returns
- A reference to this object.
◆ UnsetDeferral()
DrawingAttributeControl& HPS::DrawingAttributeControl::UnsetDeferral | ( | ) |
Removes a deferral setting. If the control is attached to a WindowKey this function restores the default value of this setting as specified by DrawingAttributeKit::GetDefault().
- Returns
- A reference to this object.
◆ UnsetDepthRange()
DrawingAttributeControl& HPS::DrawingAttributeControl::UnsetDepthRange | ( | ) |
Removes a depth range setting. If the control is attached to a WindowKey this function restores the default value of this setting as specified by DrawingAttributeKit::GetDefault().
- Returns
- A reference to this object.
◆ UnsetEverything()
DrawingAttributeControl& HPS::DrawingAttributeControl::UnsetEverything | ( | ) |
Removes all settings from this object. If the control is attached to a WindowKey this function restores the default settings of this control as specified by DrawingAttributeKit::GetDefault().
- Returns
- A reference to this object.
◆ UnsetFaceDisplacement()
DrawingAttributeControl& HPS::DrawingAttributeControl::UnsetFaceDisplacement | ( | ) |
Removes a face displacement setting. If the control is attached to a WindowKey this function restores the default value of this setting as specified by DrawingAttributeKit::GetDefault().
- Returns
- A reference to this object.
◆ UnsetGeneralDisplacement()
DrawingAttributeControl& HPS::DrawingAttributeControl::UnsetGeneralDisplacement | ( | ) |
Removes a general displacement setting. If the control is attached to a WindowKey this function restores the default value of this setting as specified by DrawingAttributeKit::GetDefault().
- Returns
- A reference to this object.
◆ UnsetOverlay()
DrawingAttributeControl& HPS::DrawingAttributeControl::UnsetOverlay | ( | ) |
Removes an overlay setting. If the control is attached to a WindowKey this function restores the default value of this setting as specified by DrawingAttributeKit::GetDefault().
- Returns
- A reference to this object.
◆ UnsetOverrideInternalColor()
DrawingAttributeControl& HPS::DrawingAttributeControl::UnsetOverrideInternalColor | ( | ) |
Removes an override internal color setting. If the control is attached to a WindowKey this function restores the default value of this setting as specified by DrawingAttributeKit::GetDefault().
- Returns
- A reference to this object.
◆ UnsetPolygonHandedness()
DrawingAttributeControl& HPS::DrawingAttributeControl::UnsetPolygonHandedness | ( | ) |
Removes a polygon handedness setting. If the control is attached to a WindowKey this function restores the default value of this setting as specified by DrawingAttributeKit::GetDefault().
- Returns
- A reference to this object.
◆ UnsetVertexDecimation()
DrawingAttributeControl& HPS::DrawingAttributeControl::UnsetVertexDecimation | ( | ) |
Removes a vertex decimation setting. If the control is attached to a WindowKey this function restores the default value of this setting as specified by DrawingAttributeKit::GetDefault().
- Returns
- A reference to this object.
◆ UnsetVertexDisplacement()
DrawingAttributeControl& HPS::DrawingAttributeControl::UnsetVertexDisplacement | ( | ) |
Removes a vertex displacement setting. If the control is attached to a WindowKey this function restores the default value of this setting as specified by DrawingAttributeKit::GetDefault().
- Returns
- A reference to this object.
◆ UnsetVertexRandomization()
DrawingAttributeControl& HPS::DrawingAttributeControl::UnsetVertexRandomization | ( | ) |
Removes a vertex randomization setting. If the control is attached to a WindowKey this function restores the default value of this setting as specified by DrawingAttributeKit::GetDefault().
- Returns
- A reference to this object.
◆ UnsetWorldHandedness()
DrawingAttributeControl& HPS::DrawingAttributeControl::UnsetWorldHandedness | ( | ) |
Removes a world handedness setting. If the control is attached to a WindowKey this function restores the default value of this setting as specified by DrawingAttributeKit::GetDefault().
- Returns
- A reference to this object.
The documentation for this class was generated from the following file:
- include/hps.h