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 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 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