CylinderKey
-
class HPS::CylinderKey : public HPS::GeometryKey
The CylinderKey class is a smart pointer to a database object. It is a handle to a cylinder inserted via SegmentKey::InsertCylinder.
Public Functions
-
void Consume(CylinderKit &in_kit)
Completely replaces all settings on this CylinderKey with those set on the specified kit and resets the kit.
- Parameters
in_kit – The kit from which to get the settings to replace on this CylinderKey.
-
CylinderKey()
The default constructor creates an uninitialized CylinderKey object. The Type() function will return Type::None.
-
CylinderKey(CylinderKey &&in_that)
The move constructor creates a CylinderKey by transferring the underlying impl of the rvalue reference to this CylinderKey thereby avoiding a copy and allocation.
- Parameters
in_that – An rvalue reference to a CylinderKey to take the impl from.
-
CylinderKey(CylinderKey const &in_that)
The copy constructor creates a CylinderKey object that shares the underlying smart-pointer of the source CylinderKey.
- Parameters
in_that – The source CylinderKey to copy.
-
explicit CylinderKey(Key const &in_that)
This constructor creates a CylinderKey object that shares the underlying smart-pointer of the source Key. The copy will only be successful if the source key is really an upcast of a Cylinder key. Otherwise the copy will fail and the resulting CylinderKey will be invalid.
- Parameters
in_key – The source Key to copy.
-
CylinderKey &EditPointsByDeletion(size_t in_offset, size_t in_count)
Removes points from the point list for this CylinderKey.
- Parameters
in_offset – The offset into the point list for the cylinder at which to start removing points. This value must be such that in_offset<point_count for deletion to succeed.
in_count – The number of points to delete from the point list for the cylinder. This value must be such that in_offset+in_count<=point_count for the deletion to succeed.
- Returns
A reference to this CylinderKey.
-
CylinderKey &EditPointsByInsertion(size_t in_offset, PointArray const &in_points)
Adds points to the point list for this CylinderKey.
- Parameters
in_offset – The offset into the point list for the cylinder at which to insert points. This value must be such that in_offset <= point_count for insertion to succeed.
in_points – The points to insert into the point list at the specified offset.
- Returns
A reference to this CylinderKey.
-
CylinderKey &EditPointsByInsertion(size_t in_offset, size_t in_count, Point const in_points[])
Adds points to the point list for this CylinderKey.
- Parameters
in_offset – The offset into the point list for the cylinder at which to insert points. This value must be such that in_offset <= point_count for insertion to succeed.
in_count – Size of the following array.
in_points – The points to insert into the point list at the specified offset.
- Returns
A reference to this CylinderKey.
-
CylinderKey &EditPointsByReplacement(size_t in_offset, PointArray const &in_points)
Replaces points in the point list for this CylinderKey.
- Parameters
in_offset – The offset into the point list for the cylidner at which to start replacing points. This value must be such that in_offset<point_count for replacement to succeed.
in_points – The points to use to replace those in the point list at the specified offset. This size of the array must be such that in_offset+in_points.size()<=point_count for the replacement to succeed.
- Returns
A reference to this CylinderKey.
-
CylinderKey &EditPointsByReplacement(size_t in_offset, size_t in_count, Point const in_points[])
Replaces points in the point list for this CylinderKey.
- Parameters
in_offset – The offset into the point list for the cylidner at which to start replacing points. This value must be such that in_offset<point_count for replacement to succeed.
in_count – Size of the following array. This value must be such that in_offset+in_count<=point_count for the replacement to succeed.
in_points – The points to use to replace those in the point list at the specified offset.
- Returns
A reference to this CylinderKey.
-
CylinderKey &EditRadiiByDeletion(size_t in_offset, size_t in_count)
Removes radii from the radius list for this CylinderKey.
- Parameters
in_offset – The offset into the radius list for the cylinder at which to start removing radii. This value must be such that in_offset<radius_count for deletion to succeed.
in_count – The number of radii to delete from the radius list for the cylinder. This value must be such that in_offset+in_count<=radius_count for the deletion to succeed.
- Returns
A reference to this CylinderKey.
-
CylinderKey &EditRadiiByInsertion(size_t in_offset, FloatArray const &in_radii)
Adds radii to the radius list for this CylinderKey.
- Parameters
in_offset – The offset into the radius list for the cylinder at which to insert radii. This value must be such that in_offset <= radius_count for insertion to succeed.
in_radii – The radii to insert into the radius list at the specified offset.
- Returns
A reference to this CylinderKey.
-
CylinderKey &EditRadiiByInsertion(size_t in_offset, size_t in_count, float const in_radii[])
Adds radii to the radius list for this CylinderKey.
- Parameters
in_offset – The offset into the radius list for the cylinder at which to insert radii. This value must be such that in_offset <= radius_count for insertion to succeed.
in_count – Size of the following array.
in_radii – The radii to insert into the radius list at the specified offset.
- Returns
A reference to this CylinderKey.
-
CylinderKey &EditRadiiByReplacement(size_t in_offset, FloatArray const &in_radii)
Replaces radii in the radius list for this CylinderKey.
- Parameters
in_offset – The offset into the radius list for the cylidner at which to start replacing radii. This value must be such that in_offset<radius_count for replacement to succeed.
in_radii – The radii to use to replace those in the radius list at the specified offset. This size of the array must be such that in_offset+in_points.size()<=radius_count for the replacement to succeed.
- Returns
A reference to this CylinderKey.
-
CylinderKey &EditRadiiByReplacement(size_t in_offset, size_t in_count, float const in_radii[])
Replaces radii in the radius list for this CylinderKey.
- Parameters
in_offset – The offset into the radius list for the cylidner at which to start replacing radii. This value must be such that in_offset<radius_count for replacement to succeed.
in_count – Size of the following array. This value must be such that in_offset+in_count<=radius_count for the replacement to succeed.
in_radii – The radii to use to replace those in the radius list at the specified offset.
- Returns
A reference to this CylinderKey.
-
size_t GetPointCount() const
Retrieves the number of points in this cylinder.
- Returns
The number of points in this cylinder.
-
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.
-
CylinderKey &operator=(CylinderKey &&in_that)
The move assignment operator transfers the underlying impl of the rvalue reference to this CylinderKey thereby avoiding a copy.
- Parameters
in_that – An rvalue reference to a CylinderKey to take the impl from.
- Returns
A reference to this CylinderKey.
-
CylinderKey &operator=(CylinderKey const &in_that)
Associate this CylinderKey with the same underlying impl as the source CylinderKey.
- Parameters
in_that – The source CylinderKey for the assignment.
- Returns
A reference to this CylinderKey.
-
void Set(CylinderKit const &in_kit)
Replace those settings on this CylinderKey with those set on the specified kit.
- Parameters
in_kit – The kit from which to get the settings to replace on this CylinderKey.
-
CylinderKey &SetVertexIndexColorsByList(size_t in_count, size_t const in_vertices[], float const in_indices[], Cylinder::Component in_apply_to = Cylinder::Component::Faces)
Sets vertex material indices on a selection of arbitrary vertices which apply to the specified cylinder component.
- Parameters
in_count – Size of the following arrays.
in_vertices – The indices of the vertices on which to set the colors.
in_indices – The material indices to set on the vertices.
in_apply_to – The cylinder component the colors should apply to. Defaults to Cylinder::Component::Faces.
- Returns
A reference to this CylinderKey.
-
CylinderKey &SetVertexIndexColorsByList(size_t in_count, size_t const in_vertices[], float in_index, Cylinder::Component in_apply_to = Cylinder::Component::Faces)
Sets vertex material indices on a selection of arbitrary vertices which apply to the specified cylinder component.
- Parameters
in_count – Size of the following arrays.
in_vertices – The indices of the vertices on which to set the colors.
in_index – The material index to set on the vertices.
in_apply_to – The cylinder component the colors should apply to. Defaults to Cylinder::Component::Faces.
- Returns
A reference to this CylinderKey.
-
CylinderKey &SetVertexIndexColorsByList(SizeTArray const &in_vertices, float in_index, Cylinder::Component in_apply_to = Cylinder::Component::Faces)
Sets vertex material indices on a selection of arbitrary vertices which apply to the specified cylinder component.
- Parameters
in_vertices – The indices of the vertices on which to set the colors.
in_index – The material index to set on the vertices.
in_apply_to – The cylinder component the colors should apply to. Defaults to Cylinder::Component::Faces.
- Returns
A reference to this CylinderKey.
-
CylinderKey &SetVertexIndexColorsByList(SizeTArray const &in_vertices, FloatArray const &in_indices, Cylinder::Component in_apply_to = Cylinder::Component::Faces)
Sets vertex material indices on a selection of arbitrary vertices which apply to the specified cylinder component.
- Parameters
in_vertices – The indices of the vertices on which to set the colors.
in_indices – The material indices to set on the vertices.
in_apply_to – The cylinder component the colors should apply to. Defaults to Cylinder::Component::Faces.
- Returns
A reference to this CylinderKey.
-
CylinderKey &SetVertexIndexColorsByRange(size_t in_start, FloatArray const &in_indices, Cylinder::Component in_apply_to = Cylinder::Component::Faces)
Sets vertex material indices on a range of vertices starting at the specified offset which apply to the specified cylinder component.
- Parameters
in_start – The offset into the vertices for this CylinderKey at which to start setting colors. This value must be such that in_start<point_count for setting to succeed.
in_indices – The material indices to set on the vertices for this CylinderKey. The size of the array must be such that in_start+in_indices.size()<=point_count for the setting to succeed.
in_apply_to – The cylinder component the colors should apply to. Defaults to Cylinder::Component::Faces.
- Returns
A reference to this CylinderKey.
-
CylinderKey &SetVertexIndexColorsByRange(size_t in_start, size_t in_count, float const in_indices[], Cylinder::Component in_apply_to = Cylinder::Component::Faces)
Sets vertex material indices on a range of vertices starting at the specified offset which apply to the specified cylinder component.
- Parameters
in_start – The offset into the vertices for this CylinderKey at which to start setting colors. This value must be such that in_start<point_count for setting to succeed.
in_count – Size of the following array. This value must be such that in_start+in_count<=point_count for the setting to succeed.
in_indices – The material indices to set on the vertices for this CylinderKey.
in_apply_to – The cylinder component the colors should apply to. Defaults to Cylinder::Component::Faces.
- Returns
A reference to this CylinderKey.
-
CylinderKey &SetVertexIndexColorsByRange(size_t in_start, size_t in_count, float in_index, Cylinder::Component in_apply_to = Cylinder::Component::Faces)
Sets a single material index on a range of vertices starting at the specified offset which apply to the specified cylinder component.
- Parameters
in_start – The offset into the vertices for this CylinderKey at which to start setting the color. This value must be such that in_start<point_count for setting to succeed.
in_count – The number of vertices on which to set the color. This value must be such that in_start+in_count<=point_count for the setting to succeed.
in_index – The material index to set on the vertices for this CylinderKey.
in_apply_to – The cylinder component the colors should apply to. Defaults to Cylinder::Component::Faces.
- Returns
A reference to this CylinderKey.
-
CylinderKey &SetVertexRGBColorsByList(size_t in_count, size_t const in_vertices[], RGBColor const &in_rgb_color, Cylinder::Component in_apply_to = Cylinder::Component::Faces)
Sets vertex RGB colors on a selection of arbitrary vertices which apply to the specified cylinder component.
- Parameters
in_count – Size of the following arrays.
in_vertices – The indices of the vertices on which to set the colors.
in_rgb_color – The RGB color to set on the vertices.
in_apply_to – The cylinder component the colors should apply to. Defaults to Cylinder::Component::Faces.
- Returns
A reference to this CylinderKey.
-
CylinderKey &SetVertexRGBColorsByList(size_t in_count, size_t const in_vertices[], RGBColor const in_rgb_colors[], Cylinder::Component in_apply_to = Cylinder::Component::Faces)
Sets vertex RGB colors on a selection of arbitrary vertices which apply to the specified cylinder component.
- Parameters
in_count – Size of the following arrays.
in_vertices – The indices of the vertices on which to set the colors.
in_rgb_colors – The RGB colors to set on the vertices.
in_apply_to – The cylinder component the colors should apply to. Defaults to Cylinder::Component::Faces.
- Returns
A reference to this CylinderKey.
-
CylinderKey &SetVertexRGBColorsByList(SizeTArray const &in_vertices, RGBColor const &in_rgb_color, Cylinder::Component in_apply_to = Cylinder::Component::Faces)
Sets vertex RGB colors on a selection of arbitrary vertices which apply to the specified cylinder component.
- Parameters
in_vertices – The indices of the vertices on which to set the colors.
in_rgb_color – The RGB color to set on the vertices.
in_apply_to – The cylinder component the colors should apply to. Defaults to Cylinder::Component::Faces.
- Returns
A reference to this CylinderKey.
-
CylinderKey &SetVertexRGBColorsByList(SizeTArray const &in_vertices, RGBColorArray const &in_rgb_colors, Cylinder::Component in_apply_to = Cylinder::Component::Faces)
Sets vertex RGB colors on a selection of arbitrary vertices which apply to the specified cylinder component.
- Parameters
in_vertices – The indices of the vertices on which to set the colors.
in_rgb_colors – The RGB colors to set on the vertices.
in_apply_to – The cylinder component the colors should apply to. Defaults to Cylinder::Component::Faces.
- Returns
A reference to this CylinderKey.
-
CylinderKey &SetVertexRGBColorsByRange(size_t in_start, RGBColorArray const &in_rgb_colors, Cylinder::Component in_apply_to = Cylinder::Component::Faces)
Sets vertex RGB colors on a range of vertices starting at the specified offset which apply to the specified cylinder component.
- Parameters
in_start – The offset into the vertices for this CylinderKey at which to start setting colors. This value must be such that in_start<point_count for setting to succeed.
in_rgb_colors – The RGB colors to set on the vertices for this CylinderKey. The size of the array must be such that in_start+in_rgb_colors.size()<=point_count for the setting to succeed.
in_apply_to – The shell component the colors should apply to. Defaults to Cylinder::Component::Faces.
- Returns
A reference to this CylinderKey.
-
CylinderKey &SetVertexRGBColorsByRange(size_t in_start, size_t in_count, RGBColor const &in_rgb_color, Cylinder::Component in_apply_to = Cylinder::Component::Faces)
Sets a single RGB color on a range of vertices starting at the specified offset which apply to the specified cylinder component.
- Parameters
in_start – The offset into the vertices for this CylinderKey at which to start setting the color. This value must be such that in_start<point_count for setting to succeed.
in_count – The number of vertices on which to set the color. This value must be such that in_start+in_count<=point_count for the setting to succeed.
in_rgb_color – The RGB color to set on the vertices for this CylinderKey.
in_apply_to – The cylinder component the colors should apply to. Defaults to Cylinder::Component::Faces.
- Returns
A reference to this CylinderKey.
-
CylinderKey &SetVertexRGBColorsByRange(size_t in_start, size_t in_count, RGBColor const in_rgb_colors[], Cylinder::Component in_apply_to = Cylinder::Component::Faces)
Sets vertex RGB colors on a range of vertices starting at the specified offset which apply to the specified cylinder component.
- Parameters
in_start – The offset into the vertices for this CylinderKey at which to start setting colors. This value must be such that in_start<point_count for setting to succeed.
in_count – Size of the following array. This value must be such that in_start+in_count<=point_count for the setting to succeed.
in_rgb_colors – The RGB colors to set on the vertices for this CylinderKey.
in_apply_to – The cylinder component the colors should apply to. Defaults to Cylilnder::Component::Faces.
- Returns
A reference to this CylinderKey.
-
void Show(CylinderKit &out_kit) const
Copy the contents of this CylinderKey into the specified kit.
- Parameters
out_kit – The kit to populate with the contents of this CylinderKey.
-
bool ShowBeginNormal(Vector &out_normal) const
Show the begin normal for this CylinderKey.
- Parameters
out_normals – The begin normal for this CylinderKey.
- Returns
true if out_normal were set, false otherwise.
-
bool ShowCaps(Cylinder::Capping &out_caps) const
Show the capping for this CylinderKey.
- Parameters
out_caps – The capping for this CylinderKey.
- Returns
true if a capping was set, false otherwise.
-
bool ShowEndNormal(Vector &out_normal) const
Show the end normal for this CylinderKey.
- Parameters
out_normals – The end normal for this CylinderKey.
- Returns
true if out_normal were set, false otherwise.
-
bool ShowPoints(PointArray &out_points) const
Show the points for this CylinderKey.
- Parameters
out_points – The points for this CylinderKey.
- Returns
true if points were set, false otherwise.
-
bool ShowPointsByList(size_t in_count, size_t const in_indices[], PointArray &out_points) const
Show a subset of the points for this CylinderKey by list.
- Parameters
in_count – The number of points to show.
in_indices – The list of point indices to show.
out_points – The requested points for this CylinderKey.
- Returns
true if all requested points were set, false otherwise.
-
bool ShowPointsByList(SizeTArray const &in_indices, PointArray &out_points) const
Show a subset of the points for this CylinderKey by list.
- Parameters
in_indices – The list of point indices to show.
out_points – The requested points for this CylinderKey.
- Returns
true if all requested points were set, false otherwise.
-
bool ShowPointsByRange(size_t in_start_index, size_t in_count, PointArray &out_points) const
Show a subset of the points for this CylinderKey by range.
- Parameters
in_start_index – The first point to show.
in_count – The number of points to show.
out_points – The requested points for this CylinderKey.
- Returns
true if all requested points were set, false otherwise.
-
bool ShowRadii(FloatArray &out_radii) const
Show the radii for this CylinderKey.
- Parameters
out_radii – The radii for this CylinderKey.
- Returns
true if radii were set, false otherwise.
-
bool ShowVertexColors(Cylinder::Component in_apply_to, MaterialTypeArray &out_types, RGBColorArray &out_rgb_colors, FloatArray &out_indices) const
Shows all the vertex colors of the specified cylinder component.
- Parameters
in_apply_to – The cylinder component the colors should apply to.
out_types – The types of vertex colors for each vertex. If a vertex does not have a vertex color set for the specified cylinder component, the entry in this array will be Material::Type::None.
out_rgb_colors – The RGB colors for each vertex. out_rgb_colors[i] is only valid if out_types[i] is Material::Type::RGBColor.
out_indices – The material indices for each vertex. The out_indices[i] is only valid if out_types[i] is Material::Type::MaterialIndex.
- Returns
true if any vertex colors were shown, false otherwise.
-
bool ShowVertexColorsByList(SizeTArray const &in_vertices, Cylinder::Component in_apply_to, MaterialTypeArray &out_types, RGBColorArray &out_rgb_colors, FloatArray &out_indices) const
Shows the vertex colors on a selection of arbitrary vertices which apply to the specified cylinder component. The order of the values in the ouput arrays is the same as the input vertex index array, i.e., the values of out_types[i], out_rgb_colors[i], and out_indices[i], correspond to the vertex at index in_vertices[i].
- Parameters
in_vertices – The indices of the vertices on which to show the colors.
in_apply_to – The cylinder component the colors should apply to.
out_types – The types of vertex colors for each vertex at the specified index. If a vertex at a specified index does not have a vertex color set for the specified component, the entry in this array will be Material::Type::None.
out_rgb_colors – The RGB colors for each vertex at the specified index. out_rgb_colors[i] is only valid if out_types[i] is Material::Type::RGBColor.
out_indices – The material indices for each vertex at the specified index. The out_indices[i] is only valid if out_types[i] is Material::Type::MaterialIndex.
- Returns
true if any specified vertex had a vertex color on the specified component set, false otherwise.
-
bool ShowVertexColorsByRange(size_t in_start, size_t in_count, Cylinder::Component in_apply_to, MaterialTypeArray &out_types, RGBColorArray &out_rgb_colors, FloatArray &out_indices) const
Shows the vertex colors on a range of vertices starting at the specified offset which apply to the specified cylinder component.
- Parameters
in_start – The offset into the vertices for this CylinderKey at which to start showing colors. This value must be such that in_start<point_count for showing to succeed.
in_count – The number of colors to show. This value must be such that in_start+in_count<=point_count for showing to succeed.
in_apply_to – The cylinder component the colors should apply to.
out_types – The types of vertex colors for each vertex in the specified range. If a vertex in the specified range does not have a vertex color set for the specified cylinder component, the entry in this array will be Material::Type::None.
out_rgb_colors – The RGB colors for each vertex in the specified range. out_rgb_colors[i] is only valid if out_types[i] is Material::Type::RGBColor.
out_indices – The material indices for each vertex in the specified range. The out_indices[i] is only valid if out_types[i] is Material::Type::MaterialIndex.
- Returns
true if any vertex in the specified range had a vertex color on the specified component set, false otherwise.
-
CylinderKey &UnsetVertexColors()
Removes all vertex colors (RGB colors or material indices) for all cylinder components.
- Returns
A reference to this CylinderKey.
-
CylinderKey &UnsetVertexColors(Cylinder::Component in_apply_to)
Removes all vertex colors (RGB colors or material indices) for the specified cylinder component.
- Parameters
in_apply_to – The cylinder component for which to remove the colors.
- Returns
A reference to this CylinderKey.
-
CylinderKey &UnsetVertexColorsByList(size_t in_count, size_t const in_vertices[])
Removes the vertex visibilities on a selection of arbitrary vertices.
- Parameters
in_count – The number of vertex visibilities to remove for this CylinderKey.
in_vertices – The indices of the vertices on which to remove the visibilities.
- Returns
A reference to this CylinderKey.
-
CylinderKey &UnsetVertexColorsByList(size_t in_count, size_t const in_vertices[], Cylinder::Component in_apply_to)
Removes the vertex visibilities on a selection of arbitrary vertices.
- Parameters
in_count – The number of vertex visibilities to remove for this CylinderKey.
in_vertices – The indices of the vertices on which to remove the visibilities.
in_apply_to – The cylinder component that should be unset.
- Returns
A reference to this CylinderKey.
-
CylinderKey &UnsetVertexColorsByList(SizeTArray const &in_vertices)
Removes the vertex visibilities on a selection of arbitrary vertices.
- Parameters
in_vertices – The indices of the vertices on which to remove the visibilities.
- Returns
A reference to this CylinderKey.
-
CylinderKey &UnsetVertexColorsByList(SizeTArray const &in_vertices, Cylinder::Component in_apply_to)
Removes the vertex visibilities on a selection of arbitrary vertices.
- Parameters
in_count – The number of vertex visibilities to remove for this CylinderKey.
in_vertices – The indices of the vertices on which to remove the visibilities.
in_apply_to – The cylinder component that should be unset.
- Returns
A reference to this CylinderKey.
-
CylinderKey &UnsetVertexColorsByRange(size_t in_start, size_t in_count)
Removes the specified range of vertex colors (RGB colors or material indices) for all cylinder components starting at the specified offset.
- Parameters
in_start – The offset into the vertices for this CylinderKey at which to start removing colors. This value must be such that in_start<point_count for unsetting to succeed.
in_count – The number of vertex colors to remove for this CylinderKey. This value must be such that in_start+in_count<=point_count for unsetting to succeed.
- Returns
A reference to this CylinderKey.
-
CylinderKey &UnsetVertexColorsByRange(size_t in_start, size_t in_count, Cylinder::Component in_apply_to)
Removes the specified range of vertex colors (RGB colors or material indices) for the specified cylinder component starting at the specified offset.
- Parameters
in_start – The offset into the vertices for this CylinderKey at which to start removing colors. This value must be such that in_start<point_count for unsetting to succeed.
in_count – The number of vertex colors to remove for this CylinderKey. This value must be such that in_start+in_count<=point_count for unsetting to succeed.
in_apply_to – The cylinder component for which to remove the colors.
- Returns
A reference to this CylinderKey.
-
~CylinderKey()
Public Static Attributes
-
static const HPS::Type staticType = HPS::Type::CylinderKey
-
void Consume(CylinderKit &in_kit)