DrawingAttributeKit
-
class HPS::DrawingAttributeKit : public HPS::Kit
The HPS::DrawingAttributeKit class is a user space object, useful for carrying a group attribute settings. Calling HPS::DrawingAttributeKit::GetDefault() will return a kit with values found in this table.
Public Functions
-
DrawingAttributeKit()
Initializes an empty kit.
-
DrawingAttributeKit(DrawingAttributeKit &&in_that)
The move constructor creates a DrawingAttributeKit by transferring the underlying impl of the rvalue reference to this DrawingAttributeKit thereby avoiding a copy and allocation.
- Parameters
in_that – An rvalue reference to a DrawingAttributeKit to take the impl from.
-
DrawingAttributeKit(DrawingAttributeKit const &in_kit)
The copy constructor creates a new DrawingAttributeKit object that contains the same settings as the source object.
- Parameters
in_kit – The source object to copy.
-
virtual bool Empty() const
Indicates whether this object has any values set on it.
- Returns
true if no values are set on this object, false otherwise.
-
bool Equals(DrawingAttributeKit const &in_kit) const
Check if the source DrawingAttributeKit is equivalent to this object.
- Parameters
in_kit – The source DrawingAttributeKit to compare to this object.
- Returns
true if the objects are equivalent, false otherwise.
-
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.
-
bool operator!=(DrawingAttributeKit const &in_kit) const
Check if the source DrawingAttributeKit is not equivalent to this object.
- Parameters
in_kit – The source DrawingAttributeKit to compare to this object.
- Returns
true if the objects are not equivalent, false otherwise.
-
DrawingAttributeKit &operator=(DrawingAttributeKit &&in_that)
The move assignment operator transfers the underlying impl of the rvalue reference to this DrawingAttributeKit thereby avoiding a copy.
- Parameters
in_that – An rvalue reference to a DrawingAttributeKit to take the impl from.
- Returns
A reference to this DrawingAttributeKit.
-
DrawingAttributeKit &operator=(DrawingAttributeKit const &in_kit)
Copies the source DrawingAttributeKit into this object.
- Parameters
in_kit – The source DrawingAttributeKit to copy.
- Returns
A reference to this object.
-
bool operator==(DrawingAttributeKit const &in_kit) const
Check if the source DrawingAttributeKit is equivalent to this object.
- Parameters
in_kit – The source DrawingAttributeKit to compare to this object.
- Returns
true if the objects are equivalent, false otherwise.
-
void Set(DrawingAttributeKit const &in_kit)
Copies the source DrawingAttributeKit into this object.
- Parameters
in_kit – The source object to copy.
-
DrawingAttributeKit &SetClipRegion(PointArray const &in_points, Drawing::ClipSpace in_space = Drawing::ClipSpace::World, Drawing::ClipOperation in_operation = Drawing::ClipOperation::Keep)
Sets a polygonal clip region.
- Parameters
in_points – An array of points describing the clip region.
in_space – The coordinate space in which in_points are specified.
in_operation – The operation performed by the clip region.
- Returns
A reference to this object.
-
DrawingAttributeKit &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.
-
DrawingAttributeKit &SetClipRegion(size_t in_point_count, Point const in_points[], Drawing::ClipSpace in_space = Drawing::ClipSpace::World, Drawing::ClipOperation in_operation = Drawing::ClipOperation::Keep)
Sets a polygonal clip region.
- Parameters
in_point_count – The number of points in in_points.
in_points – An array of points describing the clip region.
in_space – The coordinate space in which in_points are specified.
in_operation – The operation performed by the clip region.
- Returns
A reference to this object.
-
DrawingAttributeKit &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 and 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.
-
DrawingAttributeKit &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.
-
DrawingAttributeKit &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.
-
DrawingAttributeKit &SetFaceDisplacement(int in_buckets)
Specifies a number of Z-buffer units that rendered faces should be pushed away from the camera.
- 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.
-
DrawingAttributeKit &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.
-
DrawingAttributeKit &SetGeneralDisplacement(int in_buckets)
Specifies a number of Z-buffer units that all geometry should be pushed away from the camera.
- 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.
-
DrawingAttributeKit &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.
-
DrawingAttributeKit &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.
-
DrawingAttributeKit &SetPolygonHandedness(Drawing::Handedness in_handedness)
In order to perform back face culling, there must be some definition of a polygon’s “front” and “back” faces. 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.
-
DrawingAttributeKit &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.
-
DrawingAttributeKit &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.
-
DrawingAttributeKit &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.
-
DrawingAttributeKit &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.
-
DrawingAttributeKit &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.
-
void Show(DrawingAttributeKit &out_kit) const
Copies this object into the given DrawingAttributeKit.
- Parameters
out_kit – The DrawingAttributeKit to populate with the contents of this object.
-
bool ShowClipRegion(PointArrayArray &out_loops, Drawing::ClipSpace &out_space, Drawing::ClipOperation &out_operation) const
Shows the clip region settings.
- Parameters
out_loops – An array of loops describing the clip region.
out_space – The coordinate space in which out_loops are described.
out_operation – The operation performed by the clip region
- Returns
true if the setting is valid, false otherwise.
-
bool 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.
-
bool ShowDepthRange(float &out_near, float &out_far) 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.
-
bool 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.
-
bool 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.
-
bool 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.
-
bool ShowOverrideInternalColor(VisibilityKit &out_kit) const
Shows the override internal color settings.
- Parameters
out_kit – Which override internal color types will be used.
- Returns
true if the setting is valid, false otherwise.
-
bool 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.
-
bool 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.
-
bool 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.
-
bool 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.
-
bool 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.
-
DrawingAttributeKit &UnsetClipRegion()
Removes a clip region.
- Returns
A reference to this object.
-
DrawingAttributeKit &UnsetDeferral()
Removes a deferral setting.
- Returns
A reference to this object.
-
DrawingAttributeKit &UnsetDepthRange()
Removes a depth range setting.
- Returns
A reference to this object.
-
DrawingAttributeKit &UnsetEverything()
Removes all settings from this object.
- Returns
A reference to this object.
-
DrawingAttributeKit &UnsetFaceDisplacement()
Removes a face displacement setting.
- Returns
A reference to this object.
-
DrawingAttributeKit &UnsetGeneralDisplacement()
Removes a general displacement setting.
- Returns
A reference to this object.
-
DrawingAttributeKit &UnsetOverlay()
Removes an overlay setting.
- Returns
A reference to this object.
-
DrawingAttributeKit &UnsetOverrideInternalColor()
Removes a override internal color setting.
- Returns
A reference to this object.
-
DrawingAttributeKit &UnsetPolygonHandedness()
Removes a polygon handedness setting.
- Returns
A reference to this object.
-
DrawingAttributeKit &UnsetVertexDecimation()
Removes a vertex decimation setting.
- Returns
A reference to this object.
-
DrawingAttributeKit &UnsetVertexDisplacement()
Removes a vertex displacement setting.
- Returns
A reference to this object.
-
DrawingAttributeKit &UnsetVertexRandomization()
Removes a vertex randomization setting.
- Returns
A reference to this object.
-
DrawingAttributeKit &UnsetWorldHandedness()
Removes a world handedness setting.
- Returns
A reference to this object.
-
virtual ~DrawingAttributeKit()
Destroy this kit.
Public Static Functions
-
static DrawingAttributeKit GetDefault()
Creates a DrawingAttributeKit which contains the default settings. The returned object will not necessarily have values set for every option, but it will have settings for those options where it is reasonable to have a default.
- Returns
A DrawingAttributeKit with the default settings.
Public Static Attributes
-
static const HPS::Type staticType = HPS::Type::DrawingAttributeKit
-
DrawingAttributeKit()