ShellKey

class HPS::ShellKey : public HPS::GeometryKey

The ShellKey class is a smart pointer to a database object. It is a handle to a shell created by SegmentKey::InsertShell.

Public Functions

void ComputeRelation(PointArray const &in_points, ShellRelationOptionsKit const &in_options, ShellRelationResultsKit &out_results) const

Computes the relation of a collection of points to this shell, subject to the specified options.

Parameters
  • in_points – An array of points to test against this shell.

  • in_options – The options to use when performing the relation test.

  • out_results – The results of the relation test.

void ComputeRelation(ShellKey const &in_points_source, ShellRelationOptionsKit const &in_options, ShellRelationResultsKit &out_results) const

Computes the relation of a collection of points to this shell, subject to the specified options.

Parameters
  • in_points_source – A shell whose points should be tested against this shell.

  • in_options – The options to use when performing the relation test.

  • out_results – The results of the relation test.

void ComputeRelation(ShellKit const &in_points_source, ShellRelationOptionsKit const &in_options, ShellRelationResultsKit &out_results) const

Computes the relation of a collection of points to this shell, subject to the specified options.

Parameters
  • in_points_source – A shell whose points should be tested against this shell.

  • in_options – The options to use when performing the relation test.

  • out_results – The results of the relation test.

void Consume(ShellKit &in_kit)

Completely replaces all settings on this ShellKey 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 ShellKey.

ShellKey &EditFacelistByDeletion(size_t in_offset, size_t in_count)

Removes faces from the face list for this ShellKey. This will not affect the points referenced by the removed faces, however any face attributes on the removed faces will be lost.

Parameters
  • in_offset – The offset into the faces for the shell at which to start removing faces. This value must be such that in_offset<face_count for deletion to succeed. This is not an offset into the raw face list, but is relative to the actual face count for the shell.

  • in_count – The number of faces to remove from the face list for the shell. This value must be such that in_offset+in_count<=face_count for the deletion to succeed.

Returns

A reference to this ShellKey.

ShellKey &EditFacelistByInsertion(size_t in_offset, IntArray const &in_facelist)

Adds faces to the face list for this ShellKey.

Parameters
  • in_offset – The offset into the faces for the shell at which to insert faces. This value must be such that in_offset<face_count for insertion to succeed. This is not an offset into the raw face list, but is relative to the actual face count for the shell.

  • in_facelist – The faces (using the standard face-list encoding) to insert into the face list at the specified offset.

Returns

A reference to this ShellKey.

ShellKey &EditFacelistByInsertion(size_t in_offset, size_t in_count, int const in_facelist[])

Adds faces to the face list for this ShellKey.

Parameters
  • in_offset – The offset into the faces for the shell at which to insert faces. This value must be such that in_offset<face_count for insertion to succeed. This is not an offset into the raw face list, but is relative to the actual face count for the shell.

  • in_count – Size of the following array.

  • in_facelist – The faces (using the standard face-list encoding) to insert into the face list at the specified offset.

Returns

A reference to this ShellKey.

ShellKey &EditFacelistByReplacement(size_t in_offset, IntArray const &in_facelist)

Replaces faces in the face list for this ShellKey.

Parameters
  • in_offset – The offset into the faces for the shell at which to start replacing faces. This value must be such that in_offset<face_count for replacement to succeed. This is not an offset into the raw face list, but is relative to the actual face count for the shell.

  • in_facelist – The faces (using the standard face-list encoding) to use to replace those in the face list at the specified offset. The number of replacement faces must be such that in_offset+replacement_face_count<=face_count. This does not mean that the face list length must be the same, i.e., faces can use different numbers of vertices than previously, but rather is a limit on the number of faces encoded in the face list.

Returns

A reference to this ShellKey.

ShellKey &EditFacelistByReplacement(size_t in_offset, size_t in_count, int const in_facelist[])

Replaces faces in the face list for this ShellKey.

Parameters
  • in_offset – The offset into the faces for the shell at which to start replacing faces. This value must be such that in_offset<face_count for replacement to succeed. This is not an offset into the raw face list, but is relative to the actual face count for the shell.

  • in_count – Size of the following array.

  • in_facelist – The faces (using the standard face-list encoding) to use to replace those in the face list at the specified offset. The number of replacement faces must be such that in_offset+replacement_face_count<=face_count. This does not mean that the face list length must be the same, i.e., faces can use different numbers of vertices than previously, but rather is a limit on the number of faces encoded in the face list.

Returns

A reference to this ShellKey.

ShellKey &EditPointsByDeletion(size_t in_offset, size_t in_count)

Removes points from the point list for this ShellKey. Any existing faces which reference points which are being deleted will be removed. Additionally, any vertex settings on the deleted vertices, i.e., colors, normals, parameters, and visibilities, will be removed. The face list will also be updated to reflect the new vertex offsets caused by removing elements from the point list.

Parameters
  • in_offset – The offset into the point list for the shell 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 shell. This value must be such that in_offset+in_count<=point_count for the deletion to succeed.

Returns

A reference to this ShellKey.

ShellKey &EditPointsByInsertion(size_t in_offset, PointArray const &in_points)

Adds points to the point list for this ShellKey. No existing faces will reference these points, i.e., the face list will be updated to reference the original vertices in their new positions. Addtionally, no vertex attributes will apply to these points, i.e., the vertex attributes will only be set on those points which had them prior to the insertion.

Parameters
  • in_offset – The offset into the point list for the shell 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 ShellKey.

ShellKey &EditPointsByInsertion(size_t in_offset, size_t in_count, Point const in_points[])

Adds points to the point list for this ShellKey. No existing faces will reference these points, i.e., the face list will be updated to reference the original vertices in their new positions. Addtionally, no vertex attributes will apply to these points, i.e., the vertex attributes will only be set on those points which had them prior to the insertion.

Parameters
  • in_offset – The offset into the point list for the shell 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 ShellKey.

ShellKey &EditPointsByReplacement(size_t in_offset, PointArray const &in_points)

Replaces points in the point list for this ShellKey. These points will replace those already referenced by any faces and will inherit any attributes the points being replaced had.

Parameters
  • in_offset – The offset into the point list for the shell 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 ShellKey.

ShellKey &EditPointsByReplacement(size_t in_offset, size_t in_count, Point const in_points[])

Replaces points in the point list for this ShellKey. These points will replace those already referenced by any faces and will inherit any attributes the points being replaced had.

Parameters
  • in_offset – The offset into the point list for the shell 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 ShellKey.

size_t GetFaceCount() const

Retrieves the number of faces in this shell. Note that this is different than the length of the face list

Returns

The number of faces in this shell.

size_t GetPointCount() const

Retrieves the number of points in this shell.

Returns

The number of points in this shell.

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.

ShellKey &operator=(ShellKey &&in_that)

The move assignment operator transfers the underlying impl of the rvalue reference to this ShellKey thereby avoiding a copy.

Parameters

in_that – An rvalue reference to a ShellKey to take the impl from.

Returns

A reference to this ShellKey.

ShellKey &operator=(ShellKey const &other)

Associate this ShellKey with the same underlying impl as the source ShellKey.

Parameters

in_that – The source ShellKey for the assignment.

Returns

A reference to this ShellKey.

void Optimize(ShellOptimizationOptionsKit const &in_shell_optimization_kit)

Optimizes the shell using the parameters set in a ShellOptimizationOptionsKit

Parameters

in_shell_optimization_options_kit – The kit containing the optimization options to use.

void Set(ShellKit const &in_kit)

Replace those settings on this ShellKey with those set on the specified kit.

Parameters

in_kit – The kit from which to get the settings to replace on this ShellKey.

ShellKey &SetEdgeIndexColorsByList(size_t in_count, size_t const in_vertices1[], size_t const in_vertices2[], float const in_indices[])

Sets edge material indices on a selection of arbitrary edges.

Parameters
  • in_count – Size of the following arrays.

  • in_vertices1 – The vertex indices that correspond to the start position of each edge for which the visibilities are being changed. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_vertices2 – The vertex indices that correspond to the end position of each edge for which the visibilities are being changed. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_indices – The material indices to set on the edges.

Returns

A reference to this ShellKey.

ShellKey &SetEdgeIndexColorsByList(size_t in_count, size_t const in_vertices1[], size_t const in_vertices2[], float in_index)

Sets edge material indices on a selection of arbitrary edges.

Parameters
  • in_count – Size of the following arrays.

  • in_vertices1 – The vertex indices that correspond to the start position of each edge for which the visibilities are being changed. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_vertices2 – The vertex indices that correspond to the end position of each edge for which the visibilities are being changed. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_index – The material index to set on the edges.

Returns

A reference to this ShellKey.

ShellKey &SetEdgeIndexColorsByList(SizeTArray const &in_vertices1, SizeTArray const &in_vertices2, float in_index)

Sets edge material indices on a selection of arbitrary edges.

Parameters
  • in_vertices1 – The vertex indices that correspond to the start position of each edge for which the visibilities are being changed. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_vertices2 – The vertex indices that correspond to the end position of each edge for which the visibilities are being changed. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_index – The material index to set on the edges.

Returns

A reference to this ShellKey.

ShellKey &SetEdgeIndexColorsByList(SizeTArray const &in_vertices1, SizeTArray const &in_vertices2, FloatArray const &in_indices)

Sets edge material indices on a selection of arbitrary edges.

Parameters
  • in_vertices1 – The vertex indices that correspond to the start position of each edge for which the visibilities are being changed. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_vertices2 – The vertex indices that correspond to the end position of each edge for which the visibilities are being changed. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_indices – The material indices to set on the edges.

Returns

A reference to this ShellKey.

ShellKey &SetEdgeRGBColorsByList(size_t in_count, size_t const in_vertices1[], size_t const in_vertices2[], RGBColor const in_rgb_color)

Sets edge colors on a selection of arbitrary edges.

Parameters
  • in_count – Size of the following arrays.

  • in_vertices1 – The vertex indices that correspond to the start position of each edge for which the visibilities are being changed. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_vertices2 – The vertex indices that correspond to the end position of each edge for which the visibilities are being changed. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_rgb_color – The color to set on the edges.

Returns

A reference to this ShellKey.

ShellKey &SetEdgeRGBColorsByList(size_t in_count, size_t const in_vertices1[], size_t const in_vertices2[], RGBColor const in_rgb_colors[])

Sets edge colors on a selection of arbitrary edges.

Parameters
  • in_count – Size of the following arrays.

  • in_vertices1 – The vertex indices that correspond to the start position of each edge for which the visibilities are being changed. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_vertices2 – The vertex indices that correspond to the end position of each edge for which the visibilities are being changed. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_rgb_colors – The colors to set on the edges.

Returns

A reference to this ShellKey.

ShellKey &SetEdgeRGBColorsByList(SizeTArray const &in_vertices1, SizeTArray const &in_vertices2, RGBColor const &in_rgb_color)

Sets edge colors on a selection of arbitrary edges.

Parameters
  • in_vertices1 – The vertex indices that correspond to the start position of each edge for which the visibilities are being changed. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_vertices2 – The vertex indices that correspond to the end position of each edge for which the visibilities are being changed. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_rgb_color – The color to set on the edges.

Returns

A reference to this ShellKey.

ShellKey &SetEdgeRGBColorsByList(SizeTArray const &in_vertices1, SizeTArray const &in_vertices2, RGBColorArray const &in_rgb_colors)

Sets edge colors on a selection of arbitrary edges.

Parameters
  • in_vertices1 – The vertex indices that correspond to the start position of each edge for which the visibilities are being changed. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_vertices2 – The vertex indices that correspond to the end position of each edge for which the visibilities are being changed. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_rgb_colors – The colors to set on the edges.

Returns

A reference to this ShellKey.

ShellKey &SetEdgeVisibilitiesByList(size_t in_count, size_t const in_vertices1[], size_t const in_vertices2[], bool const in_visibilities[])

Sets edge visibilities on a selection of arbitrary edges.

Parameters
  • in_count – Size of the following arrays.

  • in_vertices1 – The vertex indices that correspond to the start position of each edge for which the visibilities are being changed. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_vertices2 – The vertex indices that correspond to the end position of each edge for which the visibilities are being changed. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_visibilities – The visibilities that should be set for each edge specified.

Returns

A reference to this ShellKey.

ShellKey &SetEdgeVisibilitiesByList(size_t in_count, size_t const in_vertices1[], size_t const in_vertices2[], bool in_visibility)

Sets edge visibilities on a selection of arbitrary edges.

Parameters
  • in_count – Size of the following arrays.

  • in_vertices1 – The vertex indices that correspond to the start position of each edge for which the visibilities are being changed. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_vertices2 – The vertex indices that correspond to the end position of each edge for which the visibilities are being changed. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_visibility – The visibility to apply to each edge specified.

Returns

A reference to this ShellKey.

ShellKey &SetEdgeVisibilitiesByList(SizeTArray const &in_vertices1, SizeTArray const &in_vertices2, bool in_visibility)

Sets edge visibilities on a selection of arbitrary edges.

Parameters
  • in_vertices1 – The vertex indices that correspond to the start position of each edge for which the visibilities are being changed. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_vertices2 – The vertex indices that correspond to the end position of each edge for which the visibilities are being changed. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_visibility – The visibility to apply to each edge specified.

Returns

A reference to this ShellKey.

ShellKey &SetEdgeVisibilitiesByList(SizeTArray const &in_vertices1, SizeTArray const &in_vertices2, BoolArray const &in_visibilities)

Sets edge visibilities on a selection of arbitrary edges.

Parameters
  • in_vertices1 – The vertex indices that correspond to the start position of each edge for which the visibilities are being changed. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_vertices2 – The vertex indices that correspond to the end position of each edge for which the visibilities are being changed. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_visibilities – The visibilities that should be set for each edge specified.

Returns

A reference to this ShellKey.

ShellKey &SetFaceIndexColorsByList(size_t in_count, size_t const in_faces[], float const in_indices[])

Sets face material indices on a selection of arbitrary faces.

Parameters
  • in_count – Size of the following arrays.

  • in_faces – The indices of the faces on which to set the colors. Each index in the array must be such that in_faces[i]<face_count for setting to succeed.

  • in_indices – The material indices to set on the faces.

Returns

A reference to this ShellKey.

ShellKey &SetFaceIndexColorsByList(size_t in_count, size_t const in_faces[], float in_index)

Sets a single material index on a selection of arbitrary faces.

Parameters
  • in_count – Size of the following array.

  • in_faces – The indices of the faces on which to set the color. Each index in the array must be such that in_faces[i]<face_count for setting to succeed.

  • in_index – The material index to set on the faces.

Returns

A reference to this ShellKey.

ShellKey &SetFaceIndexColorsByList(SizeTArray const &in_faces, float in_index)

Sets a single material index on a selection of arbitrary faces.

Parameters
  • in_faces – The indices of the faces on which to set the color. Each index in the array must be such that in_faces[i]<face_count for setting to succeed.

  • in_index – The material index to set on the faces.

Returns

A reference to this ShellKey.

ShellKey &SetFaceIndexColorsByList(SizeTArray const &in_faces, FloatArray const &in_indices)

Sets face material indices on a selection of arbitrary faces. If the sizes of the face index and material index arrays are different, the smaller size will be used.

Parameters
  • in_faces – The indices of the faces on which to set the colors. Each index in the array must be such that in_faces[i]<face_count for setting to succeed.

  • in_indices – The material indices to set on the faces.

Returns

A reference to this ShellKey.

ShellKey &SetFaceIndexColorsByRange(size_t in_start, FloatArray const &in_indices)

Sets face material indices on a range of faces starting at the specified offset.

Parameters
  • in_start – The offset into the faces for this ShellKey at which to start setting colors. This value must be such that in_start<face_count for setting to succeed.

  • in_indices – The material indices to set on the faces for this ShellKey. The size of the array must be such that in_start+in_indices.size()<=face_count for the setting to succeed.

Returns

A reference to this ShellKey.

ShellKey &SetFaceIndexColorsByRange(size_t in_start, size_t in_count, float const in_indices[])

Sets face material indices on a range of faces starting at the specified offset.

Parameters
  • in_start – The offset into the faces for this ShellKey at which to start setting colors. This value must be such that in_start<face_count for setting to succeed.

  • in_count – Size of the following array. This value must be such that in_start+in_count<=face_count for the setting to succeed.

  • in_indices – The material indices to set on the faces for this ShellKey.

Returns

A reference to this ShellKey.

ShellKey &SetFaceIndexColorsByRange(size_t in_start, size_t in_count, float in_index)

Sets a single material index on a range of faces starting at the specified offset.

Parameters
  • in_start – The offset into the faces for this ShellKey at which to start setting the color. This value must be such that in_start<face_count for setting to succeed.

  • in_count – The number of faces on which to set the color. This value must be such that in_start+in_count<=face_count for the setting to succeed.

  • in_index – The material index to set on the faces for this ShellKey.

Returns

A reference to this ShellKey.

ShellKey &SetFacelist(IntArray const &in_facelist)

Replace the face list on this ShellKey with the specified face list.

Parameters

in_facelist – The face list to use to replace the one for this ShellKey.

Returns

A reference to this ShellKey.

ShellKey &SetFacelist(size_t in_count, int const in_facelist[])

Replace the face list on this ShellKey with the specified face list.

Parameters
  • in_count – Size of the following array.

  • in_facelist – The face list to use to replace the one for this ShellKey.

Returns

A reference to this ShellKey.

ShellKey &SetFaceNormalsByList(size_t in_count, size_t const in_faces[], Vector const &in_normal)

Sets a single normal on a selection of arbitrary faces.

Parameters
  • in_count – Size of the following array.

  • in_faces – The indices of the faces on which to set the normal. Each index in the array must be such that in_faces[i]<face_count for setting to succeed.

  • in_normal – The normal to set on the faces.

Returns

A reference to this ShellKey.

ShellKey &SetFaceNormalsByList(size_t in_count, size_t const in_faces[], Vector const in_normals[])

Sets face normals on a selection of arbitrary faces.

Parameters
  • in_count – Size of the following arrays.

  • in_faces – The indices of the faces on which to set the normals. Each index in the array must be such that in_faces[i]<face_count for setting to succeed.

  • in_normals – The normals to set on the faces.

Returns

A reference to this ShellKey.

ShellKey &SetFaceNormalsByList(SizeTArray const &in_faces, Vector const &in_normal)

Sets a single normal on a selection of arbitrary faces.

Parameters
  • in_faces – The indices of the faces on which to set the normal. Each index in the array must be such that in_faces[i]<face_count for setting to succeed.

  • in_normal – The normal to set on the faces.

Returns

A reference to this ShellKey.

ShellKey &SetFaceNormalsByList(SizeTArray const &in_faces, VectorArray const &in_normals)

Sets face normals on a selection of arbitrary faces. If the sizes of the face index and normal arrays are different, the smaller size will be used.

Parameters
  • in_faces – The indices of the faces on which to set the normals. Each index in the array must be such that in_faces[i]<face_count for setting to succeed.

  • in_normals – The normals to set on the faces.

Returns

A reference to this ShellKey.

ShellKey &SetFaceNormalsByRange(size_t in_start, size_t in_count, Vector const &in_normal)

Sets a single normal on a range of faces starting at the specified offset.

Parameters
  • in_start – The offset into the faces for this ShellKey at which to start setting the normal. This value must be such that in_start<face_count for setting to succeed.

  • in_count – The number of faces on which to set the normal. This value must be such that in_start+in_count<=face_count for the setting to succeed.

  • in_normal – The normal to set on the faces for this ShellKey.

Returns

A reference to this ShellKey.

ShellKey &SetFaceNormalsByRange(size_t in_start, size_t in_count, Vector const in_normals[])

Sets face normals on a range of faces starting at the specified offset.

Parameters
  • in_start – The offset into the faces for this ShellKey at which to start setting normals. This value must be such that in_start<face_count for setting to succeed.

  • in_count – Size of the following array. This value must be such that in_start+in_count<=face_count for the setting to succeed.

  • in_normals – The normals to set on the faces for this ShellKey.

Returns

A reference to this ShellKey.

ShellKey &SetFaceNormalsByRange(size_t in_start, VectorArray const &in_normals)

Sets face normals on a range of faces starting at the specified offset.

Parameters
  • in_start – The offset into the faces for this ShellKey at which to start setting normals. This value must be such that in_start<face_count for setting to succeed.

  • in_normals – The normals to set on the faces for this ShellKey. The size of the array must be such that in_start+in_normals.size()<=face_count for the setting to succeed.

Returns

A reference to this ShellKey.

ShellKey &SetFaceRGBColorsByList(size_t in_count, size_t const in_faces[], RGBColor const &in_rgb_color)

Sets a single RGB color on a selection of arbitrary faces.

Parameters
  • in_count – Size of the following array.

  • in_faces – The indices of the faces on which to set the color. Each index in the array must be such that in_faces[i]<face_count for setting to succeed.

  • in_rgb_color – The RGB color to set on the faces.

Returns

A reference to this ShellKey.

ShellKey &SetFaceRGBColorsByList(size_t in_count, size_t const in_faces[], RGBColor const in_rgb_colors[])

Sets face RGB colors on a selection of arbitrary faces.

Parameters
  • in_count – Size of the following arrays.

  • in_faces – The indices of the faces on which to set the colors. Each index in the array must be such that in_faces[i]<face_count for setting to succeed.

  • in_rgb_colors – The RGB colors to set on the faces.

Returns

A reference to this ShellKey.

ShellKey &SetFaceRGBColorsByList(SizeTArray const &in_faces, RGBColor const &in_rgb_color)

Sets a single RGB color on a selection of arbitrary faces.

Parameters
  • in_faces – The indices of the faces on which to set the color. Each index in the array must be such that in_faces[i]<face_count for setting to succeed.

  • in_rgb_color – The RGB color to set on the faces.

Returns

A reference to this ShellKey.

ShellKey &SetFaceRGBColorsByList(SizeTArray const &in_faces, RGBColorArray const &in_rgb_colors)

Sets face RGB colors on a selection of arbitrary faces. If the sizes of the face index array and the color array different, the smaller size will be used.

Parameters
  • in_faces – The indices of the faces on which to set the colors. Each index in the array must be such that in_faces[i]<face_count for setting to succeed.

  • in_rgb_colors – The RGB colors to set on the faces.

Returns

A reference to this ShellKey.

ShellKey &SetFaceRGBColorsByRange(size_t in_start, RGBColorArray const &in_rgb_colors)

Sets face RGB colors on a range of faces starting at the specified offset.

Parameters
  • in_start – The offset into the faces for this ShellKey at which to start setting colors. This value must be such that in_start<face_count for setting to succeed.

  • in_rgb_colors – The RGB colors to set on the faces for this ShellKey. The size of the array must be such that in_start+in_rgb_colors.size()<=face_count for the setting to succeed.

Returns

A reference to this ShellKey.

ShellKey &SetFaceRGBColorsByRange(size_t in_start, size_t in_count, RGBColor const &in_rgb_color)

Sets a single RGB color on a range of faces starting at the specified offset.

Parameters
  • in_start – The offset into the faces for this ShellKey at which to start setting the color. This value must be such that in_start<face_count for setting to succeed.

  • in_count – The number of faces on which to set the color. This value must be such that in_start+in_count<=face_count for the setting to succeed.

  • in_rgb_color – The RGB color to set on the faces for this ShellKey.

Returns

A reference to this ShellKey.

ShellKey &SetFaceRGBColorsByRange(size_t in_start, size_t in_count, RGBColor const in_rgb_colors[])

Sets face RGB colors on a range of faces starting at the specified offset.

Parameters
  • in_start – The offset into the faces for this ShellKey at which to start setting colors. This value must be such that in_start<face_count for setting to succeed.

  • in_count – Size of the following array. This value must be such that in_start+in_count<=face_count for the setting to succeed.

  • in_rgb_colors – The RGB colors to set on the faces for this ShellKey.

Returns

A reference to this ShellKey.

ShellKey &SetFaceVisibilitiesByList(size_t in_count, size_t const in_faces[], bool const in_visibilities[])

Sets face visibilities on a selection of arbitrary faces.

Parameters
  • in_count – Size of the following arrays.

  • in_faces – The indices of the faces on which to set the visibilities. Each index in the array must be such that in_faces[i]<face_count for setting to succeed.

  • in_visibilities – The visibilities to set on the faces.

Returns

A reference to this ShellKey.

ShellKey &SetFaceVisibilitiesByList(size_t in_count, size_t const in_faces[], bool in_visibility)

Sets a single visibility on a selection of arbitrary faces.

Parameters
  • in_count – Size of the following array.

  • in_faces – The indices of the faces on which to set the visibility. Each index in the array must be such that in_faces[i]<face_count for setting to succeed.

  • in_visibility – The visibility to set on the faces.

Returns

A reference to this ShellKey.

ShellKey &SetFaceVisibilitiesByList(SizeTArray const &in_faces, bool in_visibility)

Sets a single visibility on a selection of arbitrary faces.

Parameters
  • in_faces – The indices of the faces on which to set the visibility. Each index in the array must be such that in_faces[i]<face_count for setting to succeed.

  • in_visibility – The visibility to set on the faces.

Returns

A reference to this ShellKey.

ShellKey &SetFaceVisibilitiesByList(SizeTArray const &in_faces, BoolArray const &in_visibilities)

Sets face visibilities on a selection of arbitrary faces. If the sizes of the face index and visibility arrays are different, the smaller size will be used.

Parameters
  • in_faces – The indices of the faces on which to set the visibilities. Each index in the array must be such that in_faces[i]<face_count for setting to succeed.

  • in_visibilities – The visibilities to set on the faces.

Returns

A reference to this ShellKey.

ShellKey &SetFaceVisibilitiesByRange(size_t in_start, BoolArray const &in_visibilities)

Sets face visibilities on a range of faces starting at the specified offset.

Parameters
  • in_start – The offset into the faces for this ShellKey at which to start setting visibilities. This value must be such that in_start<face_count for setting to succeed.

  • in_visibilities – The visibilities to set on the faces for this ShellKey. The size of the array must be such that in_start+in_visibilities.size()<=face_count for the setting to succeed.

Returns

A reference to this ShellKey.

ShellKey &SetFaceVisibilitiesByRange(size_t in_start, size_t in_count, bool const in_visibilities[])

Sets face visibilities on a range of faces starting at the specified offset.

Parameters
  • in_start – The offset into the faces for this ShellKey at which to start setting visibilities. This value must be such that in_start<face_count for setting to succeed.

  • in_count – Size of the following array. This value must be such that in_start+in_count<=face_count for the setting to succeed.

  • in_visibilities – The visibilities to set on the faces for this ShellKey.

Returns

A reference to this ShellKey.

ShellKey &SetFaceVisibilitiesByRange(size_t in_start, size_t in_count, bool in_visibility)

Sets a single visibility on a range of faces starting at the specified offset.

Parameters
  • in_start – The offset into the faces for this ShellKey at which to start setting the visibility. This value must be such that in_start<face_count for setting to succeed.

  • in_count – The number of faces on which to set the visibility. This value must be such that in_start+in_count<=face_count for the setting to succeed.

  • in_visibility – The visibility to set on the faces for this ShellKey.

Returns

A reference to this ShellKey.

ShellKey &SetMaterialMapping(MaterialMappingKit const &in_kit)

Sets the specified material mappings on this ShellKey. Only face, back face, cut edge, cut face, edge, and vertex materials will be set on the shell. These material settings will be “global” for the shell, i.e., all types will get the material for that type. To get different materials for the same types, e.g., faces with different colors, it is necessary to use the per-vertex or per-face functions.

Parameters

in_kit – The material mappings to set on this ShellKey.

Returns

A reference to this ShellKey.

ShellKey &SetPoints(PointArray const &in_points)

Replace the points on this ShellKey with the specified points.

Parameters

in_points – The points to use to replace those for this ShellKey.

Returns

A reference to this ShellKey.

ShellKey &SetPoints(size_t in_count, Point const in_points[])

Replace the points on this ShellKey with the specified points.

Parameters
  • in_count – Size of the following array.

  • in_points – The points to use to replace those for this ShellKey.

Returns

A reference to this ShellKey.

ShellKey &SetTristrips(IntArray const &in_tristrips)

Replace the face list on this ShellKey with the specified face list.

Parameters

in_tristrips – The tristrips list to use to replace the one for this ShellKey.

Returns

A reference to this ShellKey.

ShellKey &SetTristrips(size_t in_count, int const in_tristrips[])

Replace the face list on this ShellKey with the specified face list.

Parameters
  • in_count – Size of the following array.

  • in_tristrips – The tristrips list to use to replace the one for this ShellKey.

Returns

A reference to this ShellKey.

ShellKey &SetVertexIndexColorsByList(size_t in_count, size_t const in_vertices[], float const in_indices[], Shell::Component in_apply_to = Shell::Component::Faces)

Sets vertex material indices on a selection of arbitrary vertices which apply to the specified shell 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 shell component the colors should apply to. Defaults to Shell::Component::Faces.

Returns

A reference to this ShellKey.

ShellKey &SetVertexIndexColorsByList(size_t in_count, size_t const in_vertices[], float in_index, Shell::Component in_apply_to = Shell::Component::Faces)

Sets a single material index on a selection of arbitrary vertices which apply to the specified shell component.

Parameters
  • in_count – Size of the following array.

  • in_vertices – The indices of the vertices on which to set the color. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_index – The material index to set on the vertices.

  • in_apply_to – The shell component the colors should apply to. Defaults to Shell::Component::Faces.

Returns

A reference to this ShellKey.

ShellKey &SetVertexIndexColorsByList(SizeTArray const &in_vertices, float in_index, Shell::Component in_apply_to = Shell::Component::Faces)

Sets a single material index on a selection of arbitrary vertices which apply to the specified shell component.

Parameters
  • in_vertices – The indices of the vertices on which to set the color. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_index – The material index to set on the vertices.

  • in_apply_to – The shell component the colors should apply to. Defaults to Shell::Component::Faces.

Returns

A reference to this ShellKey.

ShellKey &SetVertexIndexColorsByList(SizeTArray const &in_vertices, FloatArray const &in_indices, Shell::Component in_apply_to = Shell::Component::Faces)

Sets vertex material indices on a selection of arbitrary vertices which apply to the specified shell component. If the sizes of the vertex index and material index arrays are different, the smaller size will be used.

Parameters
  • in_vertices – The indices of the vertices on which to set the colors. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_indices – The material indices to set on the vertices.

  • in_apply_to – The shell component the colors should apply to. Defaults to Shell::Component::Faces.

Returns

A reference to this ShellKey.

ShellKey &SetVertexIndexColorsByRange(size_t in_start, FloatArray const &in_indices, Shell::Component in_apply_to = Shell::Component::Faces)

Sets vertex material indices on a range of vertices starting at the specified offset which apply to the specified shell component.

Parameters
  • in_start – The offset into the vertices for this ShellKey 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 ShellKey. 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 shell component the colors should apply to. Defaults to Shell::Component::Faces.

Returns

A reference to this ShellKey.

ShellKey &SetVertexIndexColorsByRange(size_t in_start, size_t in_count, float const in_indices[], Shell::Component in_apply_to = Shell::Component::Faces)

Sets vertex material indices on a range of vertices starting at the specified offset which apply to the specified shell component.

Parameters
  • in_start – The offset into the vertices for this ShellKey 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 ShellKey.

  • in_apply_to – The shell component the colors should apply to. Defaults to Shell::Component::Faces.

Returns

A reference to this ShellKey.

ShellKey &SetVertexIndexColorsByRange(size_t in_start, size_t in_count, float in_index, Shell::Component in_apply_to = Shell::Component::Faces)

Sets a single material index on a range of vertices starting at the specified offset which apply to the specified shell component.

Parameters
  • in_start – The offset into the vertices for this ShellKey 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 ShellKey.

  • in_apply_to – The shell component the colors should apply to. Defaults to Shell::Component::Faces.

Returns

A reference to this ShellKey.

ShellKey &SetVertexNormalsByList(size_t in_count, size_t const in_vertices[], Vector const &in_normal)

Sets a single normal on a selection of arbitrary vertices.

Parameters
  • in_count – Size of the following array.

  • in_vertices – The indices of the vertices on which to set the normal. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_normal – The normal to set on the vertices.

Returns

A reference to this ShellKey.

ShellKey &SetVertexNormalsByList(size_t in_count, size_t const in_vertices[], Vector const in_normals[])

Sets vertex normals on a selection of arbitrary vertices.

Parameters
  • in_count – Size of the following arrays.

  • in_vertices – The indices of the vertices on which to set the normals. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_normals – The normals to set on the vertices.

Returns

A reference to this ShellKey.

ShellKey &SetVertexNormalsByList(SizeTArray const &in_vertices, Vector const &in_normal)

Sets a single normal on a selection of arbitrary vertices.

Parameters
  • in_vertices – The indices of the vertices on which to set the normal. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_normal – The normal to set on the vertices.

Returns

A reference to this ShellKey.

ShellKey &SetVertexNormalsByList(SizeTArray const &in_vertices, VectorArray const &in_normals)

Sets vertex normals on a selection of arbitrary vertices. If the sizes of the vertex index and normal arrays are different, the smaller size will be used.

Parameters
  • in_vertices – The indices of the vertices on which to set the normals. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_normals – The normals to set on the vertices.

Returns

A reference to this ShellKey.

ShellKey &SetVertexNormalsByRange(size_t in_start, size_t in_count, Vector const &in_normal)

Sets a single normal on a range of vertices starting at the specified offset.

Parameters
  • in_start – The offset into the vertices for this ShellKey at which to start setting the normal. 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 normal. This value must be such that in_start+in_count<=point_count for the setting to succeed.

  • in_normal – The normal to set on the vertices for this ShellKey.

Returns

A reference to this ShellKey.

ShellKey &SetVertexNormalsByRange(size_t in_start, size_t in_count, Vector const in_normals[])

Sets vertex normals on a range of vertices starting at the specified offset.

Parameters
  • in_start – The offset into the vertices for this ShellKey at which to start setting normals. 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_normals – The normals to set on the vertices for this ShellKey.

Returns

A reference to this ShellKey.

ShellKey &SetVertexNormalsByRange(size_t in_start, VectorArray const &in_normals)

Sets vertex normals on a range of vertices starting at the specified offset.

Parameters
  • in_start – The offset into the vertices for this ShellKey at which to start setting normals. This value must be such that in_start<point_count for setting to succeed.

  • in_normals – The normals to set on the vertices for this ShellKey. The size of the array must be such that in_start+in_normals.size()<=point_count for the setting to succeed.

Returns

A reference to this ShellKey.

ShellKey &SetVertexParametersByList(size_t in_vertex_count, size_t const in_vertices[], size_t in_param_count, float const in_params[], size_t in_param_width = 2)

Sets texture parameters on a selection of arbitrary vertices. If the sizes of the vertex index array and the texture parameter array (divided by the parameter width) are different, the smaller size will be used.

Parameters
  • in_vertex_count – Size of the following array.

  • in_vertices – The indices of the vertices on which to set the texture parameters. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_param_count – Size of the following array. This should be divisible by the parameter width, if it is not, some parameters will get ignored.

  • in_params – The texture parameters to set on the vertices for this ShellKey.

  • in_param_width – The number of texture parameters per vertex. Defaults to 2.

Returns

A reference to this ShellKey.

ShellKey &SetVertexParametersByList(SizeTArray const &in_vertices, FloatArray const &in_params, size_t in_param_width = 2)

Sets texture parameters on a selection of arbitrary vertices. If the sizes of the vertex index array and the texture parameter array (divided by the parameter width) are different, the smaller size will be used.

Parameters
  • in_vertices – The indices of the vertices on which to set the texture parameters. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_params – The texture parameters to set on the vertices for this ShellKey. The size of the array should be divisible by the parameter width, if it is not, some parameters will get ignored.

  • in_param_width – The number of texture parameters per vertex. Defaults to 2.

Returns

A reference to this ShellKey.

ShellKey &SetVertexParametersByRange(size_t in_start, FloatArray const &in_params, size_t in_param_width = 2)

Sets texture parameters on a range of vertices starting at the specified offset.

Parameters
  • in_start – The offset into the vertices for this ShellKey at which to start setting texture parameters. This value must be such that in_start<point_count for setting to succeed.

  • in_params – The texture parameters to set on the vertices for this ShellKey. The size of the array should be divisible by the parameter width, if it is not, some parameters will get ignored. The size of the array must be such that in_start+in_params.size()/in_param_width<=point_count for the setting to succeed.

  • in_param_width – The number of texture parameters per vertex. Defaults to 2.

Returns

A reference to this ShellKey.

ShellKey &SetVertexParametersByRange(size_t in_start, size_t in_param_count, float const in_params[], size_t in_param_width = 2)

Sets texture parameters on a range of vertices starting at the specified offset.

Parameters
  • in_start – The offset into the vertices for this ShellKey at which to start setting texture parameters. This value must be such that in_start<point_count for setting to succeed.

  • in_param_count – Size of the following array. This should be divisible by the parameter width, if it is not, some parameters will get ignored. This value must be such that in_start+in_param_count/in_param_width<=point_count for the setting to succeed.

  • in_params – The texture parameters to set on the vertices for this ShellKey.

  • in_param_width – The number of texture parameters per vertex. Defaults to 2.

Returns

A reference to this ShellKey.

ShellKey &SetVertexRGBAColorsByList(size_t in_count, size_t const in_vertices[], RGBAColor const &in_rgba_color, Shell::Component in_apply_to = Shell::Component::Faces)

Sets a single RGBA color on a selection of arbitrary vertices which apply to the specified shell component.

Parameters
  • in_count – Size of the following array.

  • in_vertices – The indices of the vertices on which to set the color. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_rgba_color – The RGBA color to set on the vertices.

  • in_apply_to – The shell component the colors should apply to. Defaults to Shell::Component::Faces.

Returns

A reference to this ShellKey.

ShellKey &SetVertexRGBAColorsByList(size_t in_count, size_t const in_vertices[], RGBAColor const in_rgba_colors[], Shell::Component in_apply_to = Shell::Component::Faces)

Sets vertex RGBA colors on a selection of arbitrary vertices which apply to the specified shell component.

Parameters
  • in_count – Size of the following arrays.

  • in_vertices – The indices of the vertices on which to set the colors. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_rgba_colors – The RGBA colors to set on the vertices.

  • in_apply_to – The shell component the colors should apply to. Defaults to Shell::Component::Faces.

Returns

A reference to this ShellKey.

ShellKey &SetVertexRGBAColorsByList(SizeTArray const &in_vertices, RGBAColor const &in_rgba_color, Shell::Component in_apply_to = Shell::Component::Faces)

Sets a single RGBA color on a selection of arbitrary vertices which apply to the specified shell component.

Parameters
  • in_vertices – The indices of the vertices on which to set the color. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_rgba_color – The RGBA color to set on the vertices.

  • in_apply_to – The shell component the colors should apply to. Defaults to Shell::Component::Faces.

Returns

A reference to this ShellKey.

ShellKey &SetVertexRGBAColorsByList(SizeTArray const &in_vertices, RGBAColorArray const &in_rgba_colors, Shell::Component in_apply_to = Shell::Component::Faces)

Sets vertex RGBA colors on a selection of arbitrary vertices which apply to the specified shell component. If the sizes of the vertex index array and color array are different, the smaller size will be used.

Parameters
  • in_vertices – The indices of the vertices on which to set the colors. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_rgba_colors – The RGBA colors to set on the vertices.

  • in_apply_to – The shell component the colors should apply to. Defaults to Shell::Component::Faces.

Returns

A reference to this ShellKey.

ShellKey &SetVertexRGBAColorsByRange(size_t in_start, RGBAColorArray const &in_rgba_colors, Shell::Component in_apply_to = Shell::Component::Faces)

Sets vertex RGBA colors on a range of vertices starting at the specified offset which apply to the specified shell component.

Parameters
  • in_start – The offset into the vertices for this ShellKey at which to start setting colors. This value must be such that in_start<point_count for setting to succeed.

  • in_rgba_colors – The RGBA colors to set on the vertices for this ShellKey. The size of the array must be such that in_start+in_rgba_colors.size()<=point_count for the setting to succeed.

  • in_apply_to – The shell component the colors should apply to. Defaults to Shell::Component::Faces.

Returns

A reference to this ShellKey.

ShellKey &SetVertexRGBAColorsByRange(size_t in_start, size_t in_count, RGBAColor const &in_rgba_color, Shell::Component in_apply_to = Shell::Component::Faces)

Sets a single RGBA color on a range of vertices starting at the specified offset which apply to the specified shell component.

Parameters
  • in_start – The offset into the vertices for this ShellKey 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_rgba_color – The RGBA color to set on the vertices for this ShellKey.

  • in_apply_to – The shell component the colors should apply to. Defaults to Shell::Component::Faces.

Returns

A reference to this ShellKey.

ShellKey &SetVertexRGBAColorsByRange(size_t in_start, size_t in_count, RGBAColor const in_rgba_colors[], Shell::Component in_apply_to = Shell::Component::Faces)

Sets vertex RGBA colors on a range of vertices starting at the specified offset which apply to the specified shell component.

Parameters
  • in_start – The offset into the vertices for this ShellKey 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_rgba_colors – The RGBA colors to set on the vertices for this ShellKey.

  • in_apply_to – The shell component the colors should apply to. Defaults to Shell::Component::Faces.

Returns

A reference to this ShellKey.

ShellKey &SetVertexRGBColorsByList(size_t in_count, size_t const in_vertices[], RGBColor const &in_rgb_color, Shell::Component in_apply_to = Shell::Component::Faces)

Sets a single RGB color on a selection of arbitrary vertices which apply to the specified shell component.

Parameters
  • in_count – Size of the following array.

  • in_vertices – The indices of the vertices on which to set the color. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_rgb_color – The RGB color to set on the vertices.

  • in_apply_to – The shell component the colors should apply to. Defaults to Shell::Component::Faces.

Returns

A reference to this ShellKey.

ShellKey &SetVertexRGBColorsByList(size_t in_count, size_t const in_vertices[], RGBColor const in_rgb_colors[], Shell::Component in_apply_to = Shell::Component::Faces)

Sets vertex RGB colors on a selection of arbitrary vertices which apply to the specified shell component.

Parameters
  • in_count – Size of the following arrays.

  • in_vertices – The indices of the vertices on which to set the colors. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_rgb_colors – The RGB colors to set on the vertices.

  • in_apply_to – The shell component the colors should apply to. Defaults to Shell::Component::Faces.

Returns

A reference to this ShellKey.

ShellKey &SetVertexRGBColorsByList(SizeTArray const &in_vertices, RGBColor const &in_rgb_color, Shell::Component in_apply_to = Shell::Component::Faces)

Sets a single RGB color on a selection of arbitrary vertices which apply to the specified shell component.

Parameters
  • in_vertices – The indices of the vertices on which to set the color. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_rgb_color – The RGB color to set on the vertices.

  • in_apply_to – The shell component the colors should apply to. Defaults to Shell::Component::Faces.

Returns

A reference to this ShellKey.

ShellKey &SetVertexRGBColorsByList(SizeTArray const &in_vertices, RGBColorArray const &in_rgb_colors, Shell::Component in_apply_to = Shell::Component::Faces)

Sets vertex RGB colors on a selection of arbitrary vertices which apply to the specified shell component. If the sizes of the vertex index array and the color array different, the smaller size will be used.

Parameters
  • in_vertices – The indices of the vertices on which to set the colors. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_rgb_colors – The RGB colors to set on the vertices.

  • in_apply_to – The shell component the colors should apply to. Defaults to Shell::Component::Faces.

Returns

A reference to this ShellKey.

ShellKey &SetVertexRGBColorsByRange(size_t in_start, RGBColorArray const &in_rgb_colors, Shell::Component in_apply_to = Shell::Component::Faces)

Sets vertex RGB colors on a range of vertices starting at the specified offset which apply to the specified shell component.

Parameters
  • in_start – The offset into the vertices for this ShellKey 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 ShellKey. 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 Shell::Component::Faces.

Returns

A reference to this ShellKey.

ShellKey &SetVertexRGBColorsByRange(size_t in_start, size_t in_count, RGBColor const &in_rgb_color, Shell::Component in_apply_to = Shell::Component::Faces)

Sets a single RGB color on a range of vertices starting at the specified offset which apply to the specified shell component.

Parameters
  • in_start – The offset into the vertices for this ShellKey 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 ShellKey.

  • in_apply_to – The shell component the colors should apply to. Defaults to Shell::Component::Faces.

Returns

A reference to this ShellKey.

ShellKey &SetVertexRGBColorsByRange(size_t in_start, size_t in_count, RGBColor const in_rgb_colors[], Shell::Component in_apply_to = Shell::Component::Faces)

Sets vertex RGB colors on a range of vertices starting at the specified offset which apply to the specified shell component.

Parameters
  • in_start – The offset into the vertices for this ShellKey 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 ShellKey.

  • in_apply_to – The shell component the colors should apply to. Defaults to Shell::Component::Faces.

Returns

A reference to this ShellKey.

ShellKey &SetVertexVisibilitiesByList(size_t in_count, size_t const in_vertices[], bool const in_visibilities[])

Sets vertex visibilities on a selection of arbitrary vertices.

Parameters
  • in_count – Size of the following arrays.

  • in_vertices – The indices of the vertices on which to set the visibilities. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_visibilities – The visibilities to set on the vertices.

Returns

A reference to this ShellKey.

ShellKey &SetVertexVisibilitiesByList(size_t in_count, size_t const in_vertices[], bool in_visibility)

Sets a single visibility on a selection of arbitrary vertices.

Parameters
  • in_count – Size of the following array.

  • in_vertices – The indices of the vertices on which to set the visibility. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_visibility – The visibility to set on the vertices.

Returns

A reference to this ShellKey.

ShellKey &SetVertexVisibilitiesByList(SizeTArray const &in_vertices, bool in_visibility)

Sets a single visibility on a selection of arbitrary vertices.

Parameters
  • in_vertices – The indices of the vertices on which to set the visibility. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_visibility – The visibility to set on the vertices.

Returns

A reference to this ShellKey.

ShellKey &SetVertexVisibilitiesByList(SizeTArray const &in_vertices, BoolArray const &in_visibilities)

Sets vertex visibilities on a selection of arbitrary vertices. If the sizes of the vertex index and visibility arrays are different, the smaller size will be used.

Parameters
  • in_vertices – The indices of the vertices on which to set the visibilities. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_visibilities – The visibilities to set on the vertices.

Returns

A reference to this ShellKey.

ShellKey &SetVertexVisibilitiesByRange(size_t in_start, BoolArray const &in_visibilities)

Sets vertex visibilities on a range of vertices starting at the specified offset.

Parameters
  • in_start – The offset into the vertices for this ShellKey at which to start setting visibilities. This value must be such that in_start<point_count for setting to succeed.

  • in_visibilities – The visibilities to set on the vertices for this ShellKey. The size of the array must be such that in_start+in_visibilities.size()<=point_count for the setting to succeed.

Returns

A reference to this ShellKey.

ShellKey &SetVertexVisibilitiesByRange(size_t in_start, size_t in_count, bool const in_visibilities[])

Sets vertex visibilities on a range of vertices starting at the specified offset.

Parameters
  • in_start – The offset into the vertices for this ShellKey at which to start setting visibilities. 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_visibilities – The visibilities to set on the vertices for this ShellKey.

Returns

A reference to this ShellKey.

ShellKey &SetVertexVisibilitiesByRange(size_t in_start, size_t in_count, bool in_visibility)

Sets a single visibility on a range of vertices starting at the specified offset.

Parameters
  • in_start – The offset into the vertices for this ShellKey at which to start setting the visibility. 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 visibility. This value must be such that in_start+in_count<=point_count for the setting to succeed.

  • in_visibility – The visibility to set on the vertices for this ShellKey.

Returns

A reference to this ShellKey.

ShellKey()

The default constructor creates an uninitialized ShellKey object. The Type() function will return Type::None.

explicit ShellKey(Key const &in_that)

This constructor creates an ShellKey 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 shell key. Otherwise the copy will fail and the resulting ShellKey will be invalid.

Parameters

in_key – The source Key to copy.

ShellKey(ShellKey &&in_that)

The move constructor creates a ShellKey by transferring the underlying impl of the rvalue reference to this ShellKey thereby avoiding a copy and allocation.

Parameters

in_that – An rvalue reference to a ShellKey to take the impl from.

ShellKey(ShellKey const &in_that)

The copy constructor creates a ShellKey object that shares the underlying smart-pointer of the source ShellKey.

Parameters

in_that – The source ShellKey to copy.

void Show(ShellKit &out_kit) const

Copy the contents of this ShellKey into the specified kit.

Parameters

out_kit – The kit to populate with the contents of this ShellKey.

bool ShowEdgeColors(SizeTArray &out_vertices1, SizeTArray &out_vertices2, HPS::MaterialTypeArray &out_types, HPS::RGBColorArray &out_rgb_colors, HPS::FloatArray &out_indices)

Sets edge colors on a selection of arbitrary edges.

Parameters
  • out_vertices1 – The vertex indices that correspond to the start position of each edge for which the visibilities are being changed.

  • out_vertices2 – The vertex indices that correspond to the end position of each edge for which the visibilities are being changed.

  • out_types – The types of edge colors for each edge.

  • out_rgb_colors – The colors that have been set on each edge. A given element of this array is valid only if the equivalent element of out_types is RGBColor.

  • out_indices – The colors that have been set on each edge. A given element of this array is valid only if the equivalent element of out_types is MaterialIndex.

Returns

A reference to this ShellKey.

bool ShowEdgeColorsByList(SizeTArray const &in_vertices1, SizeTArray const &in_vertices2, HPS::MaterialTypeArray &out_types, HPS::RGBColorArray &out_rgb_colors, HPS::FloatArray &out_indices)

Sets edge colors on a selection of arbitrary edges.

Parameters
  • in_vertices1 – The vertex indices that correspond to the start position of each edge for which the visibilities are being changed. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_vertices2 – The vertex indices that correspond to the end position of each edge for which the visibilities are being changed. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • out_types – The types of edge colors for each edge.

  • out_rgb_colors – The colors that have been set on each edge. A given element of this array is valid only if the equivalent element of out_types is Material::Type::RGBColor.

  • out_indices – The colors that have been set on each edge. A given element of this array is valid only if the equivalent element of out_types is Material::Type::MaterialIndex.

Returns

A reference to this ShellKey.

bool ShowEdgeVisibilitiesByList(SizeTArray const &in_vertices1, SizeTArray const &in_vertices2, BoolArray &out_validities, BoolArray &out_visibilities) const

Shows all the edge visibilities on this ShellKey.

Parameters
  • in_vertices1 – The vertex indices that correspond to the start position of each edge for which the visibilities are being shown. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_vertices2 – The vertex indices that correspond to the end position of each edge for which the visibilities are being shown. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • out_validities – The validities of the visibilities for each edge. If an edge has a visibility set on it, the entry in this array will be true, otherwise it will be false.

  • out_visibilities – The edge visibilities for each edge. out_visibilities[i] is only valid if out_validities[i] is true.

Returns

true if any vertex had a vertex visibility set, false otherwise.

bool ShowFaceColors(MaterialTypeArray &out_types, RGBColorArray &out_rgb_colors, FloatArray &out_indices) const

Shows the face colors on ShellKey.

Parameters
  • out_types – The types of face colors for each face. If a face does not have a face color set, the entry in this array will be Material::Type::None.

  • out_rgb_colors – The RGB colors for each face. out_rgb_colors[i] is only valid if out_types[i] is Material::Type::RGBColor.

  • out_indices – The material indices for each face. The out_indices[i] is only valid if out_types[i] is Material::Type::MaterialIndex.

Returns

true if any face had a face color set, false otherwise.

bool ShowFaceColorsByList(SizeTArray const &in_faces, MaterialTypeArray &out_types, RGBColorArray &out_rgb_colors, FloatArray &out_indices) const

Shows the face colors on a selection of arbitrary faces. The order of the values in the ouput arrays is the same as the input face index array, i.e., the values of out_types[i], out_rgb_colors[i], and out_indices[i], correspond to the face at index in_faces[i].

Parameters
  • in_faces – The indices of the faces on which to show the colors. Each index in the array must be such that in_faces[i]<face_count for showing to succeed.

  • out_types – The types of face colors for each face at the specified index. If a face at a specified index does not have a face color set, the entry in this array will be Material::Type::None.

  • out_rgb_colors – The RGB colors for each face 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 face at the specified index. The out_indices[i] is only valid if out_types[i] is Material::Type::MaterialIndex.

Returns

true if any specified face had a face color set, false otherwise.

bool ShowFaceColorsByRange(size_t in_start, size_t in_count, MaterialTypeArray &out_types, RGBColorArray &out_rgb_colors, FloatArray &out_indices) const

Shows the face colors on a range of faces starting at the specified offset.

Parameters
  • in_start – The offset into the faces for this ShellKey at which to start showing colors. This value must be such that in_start<face_count for showing to succeed.

  • in_count – The number of colors to show. This value must be such that in_start+in_count<=face_count for the showing to succeed.

  • out_types – The types of face colors for each face in the specified range. If a face in the specified range does not have a face color set, the entry in this array will be Material::Type::None.

  • out_rgb_colors – The RGB colors for each face 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 face in the specified range. The out_indices[i] is only valid if out_types[i] is Material::Type::MaterialIndex.

Returns

true if any face in the specified range had a face color set, false otherwise.

bool ShowFacelist(IntArray &out_facelist) const

Show the face list for this ShellKey.

Parameters

out_facelist – The face list for this ShellKey.

Returns

true if face list was set, false otherwise.

bool ShowFaceNormals(BoolArray &out_validities, VectorArray &out_normals) const

Shows all the face normals for this ShellKey.

Parameters
  • out_validities – The validities of the normals for each face. If a face had a normal set on it, the entry in this array will be true, otherwise it will be false.

  • out_normals – The face normals for each face. out_normals[i] is only valid if out_validities[i] is true.

Returns

true if any face had a face normal set, false otherwise.

bool ShowFaceNormalsByList(SizeTArray const &in_faces, BoolArray &out_validities, VectorArray &out_normals) const

Shows the face normals on a selection of arbitrary faces. The order of the values in the output arrays is the same as the input face index array, i.e., the values of out_validities[i] and out_normals[i] correspond to the face at index in_faces[i].

Parameters
  • in_faces – The indices of the faces on which to show the normals. Each index in the array must be such that in_faces[i]<face_count for showing to succeed.

  • out_validities – The validities of the normals for each face at the specified index. If a face at a specified index had a normal set on it, the entry in this array will be true, otherwise it will be false.

  • out_normals – The face normals for each face at the specified index. out_normals[i] is only valid if out_validities[i] is true.

Returns

true if any specified face had a face normal set, false otherwise.

bool ShowFaceNormalsByRange(size_t in_start, size_t in_count, BoolArray &out_validities, VectorArray &out_normals) const

Shows the face normals on a range of faces starting at the specified offset.

Parameters
  • in_start – The offset into the faces for this ShellKey at which to start showing normals. This value must be such that in_start<face_count for showing to succeed.

  • in_count – The number of normals to show. This value must be such that in_start+in_count<=face_count for the showing to succeed.

  • out_validities – The validities of the normals for each face in the specified range. If a face in the specified range had a normal set on it, the entry in this array will be true, otherwise it will be false.

  • out_normals – The face normals for each face in the specified range. out_normals[i] is only valid if out_validities[i] is true.

Returns

true if any face in the specified range had a face normal set, false otherwise.

bool ShowFaceVisibilities(BoolArray &out_validities, BoolArray &out_visibilities) const

Shows all the face visibilities on this ShellKey.

Parameters
  • out_validities – The validities of the visibilities for each face. If a face had a visibility set on it, the entry in this array will be true, otherwise it will be false.

  • out_visibilities – The face visibilities for each face. out_visibilities[i] is only valid if out_validities[i] is true.

Returns

true if any face had a face visibility set, false otherwise.

bool ShowFaceVisibilitiesByList(SizeTArray const &in_faces, BoolArray &out_validities, BoolArray &out_visibilities) const

Shows the face visibilities on a selection of arbitrary faces. The order of the values in the output arrays is the same as the input face index array, i.e., the values of out_validities[i] and out_visibilities[i] correspond to the face at index in_faces[i].

Parameters
  • in_faces – The indices of the faces on which to show the normals. Each index in the array must be such that in_faces[i]<face_count for showing to succeed.

  • out_validities – The validities of the normals for each face at the specified index. If a face at a specified index had a visibility set on it, the entry in this array will be true, otherwise it will be false.

  • out_visibilities – The face visibilities for each face at the specified index. out_visibilities[i] is only valid if out_validities[i] is true.

Returns

true if any specified face had a face visibility set, false otherwise.

bool ShowFaceVisibilitiesByRange(size_t in_start, size_t in_count, BoolArray &out_validities, BoolArray &out_visibilities) const

Shows the face visibilities on a range of faces starting at the specified offset.

Parameters
  • in_start – The offset into the faces for this ShellKey at which to start showing visibilities. This value must be such that in_start<face_count for showing to succeed.

  • in_count – The number of visibilities to show. This value must be such that in_start+in_count<=face_count for the showing to succeed.

  • out_validities – The validities of the visibilities for each face in the specified range. If a face in the specified range had a visibility set on it, the entry in this array will be true, otherwise it will be false.

  • out_visibilities – The face visibilities for each face in the specified range. out_visibilities[i] is only valid if out_validities[i] is true.

Returns

true if any face in the specified range had a face visibility set, false otherwise.

bool ShowMaterialMapping(MaterialMappingKit &out_kit) const

Shows the material mappings set on this ShellKey. These are the “global” material settings, not the per-vertex and per-face material settings.

Parameters

out_kit – The material mappings set on this ShellKey.

Returns

true if material mappings were set, false otherwise.

bool ShowNetFaceNormalsByList(SizeTArray const &in_faces, VectorArray &out_normals) const

Shows the effective face normals on a selection of arbitrary faces. If a normal for a given face is unspecified, this will retrieve the effective normal. The order of the values in the output arrays is the same as the input face index array, i.e., the values of out_validities[i] and out_normals[i] correspond to the face at index in_faces[i].

Parameters
  • in_faces – The indices of the faces on which to show the normals. Each index in the array must be such that in_faces[i]<face_count for showing to succeed.

  • out_normals – The face normals for each face at the specified index.

Returns

true if no errors were encountered, false otherwise.

bool ShowNetFaceNormalsByRange(size_t in_start, size_t in_count, VectorArray &out_normals) const

Shows the effective face normals on a range of faces starting at the specified offset. If a normal for a given face is unspecified, this will retrieve the effective normal.

Parameters
  • in_start – The offset into the faces for this ShellKey at which to start showing normals. This value must be such that in_start<face_count for showing to succeed.

  • in_count – The number of normals to show. This value must be such that in_start+in_count<=face_count for the showing to succeed.

  • out_normals – The face normals for each face in the specified range.

Returns

true if no errors were encountered, false otherwise.

bool ShowNetVertexNormals(VectorArray &out_normals, Drawing::Handedness in_polygon_handedness = Drawing::Handedness::None) const

Shows the all net vertex normals on this ShellKey.

Parameters
  • out_normals – The vertex normals for each vertex.

  • in_polygon_handedness – The polygon handedness to assume when returning normals. Defaults to None. Specifying no handedness when requesting net normals, will return the normals using the handedness used internally by Visualize for this particular shell. When specifying a handedness, only normals which were implicitly calculated by Visualize will be flipped to conform to the requested handedness. User specified normals will be left untouched.

Returns

true if no errors were encountered, false otherwise.

bool ShowNetVertexNormalsByRange(size_t in_start, size_t in_count, VectorArray &out_normals, Drawing::Handedness in_polygon_handedness = Drawing::Handedness::None) const

Shows the net vertex normals on a range of vertices starting at the specified offset.

Parameters
  • in_start – The offset into the vertices for this ShellKey at which to start showing normals. This value must be such that in_start<point_count for showing to succeed.

  • in_count – The number of normals to show. This value must be such that in_start+in_count<=point_count for the showing to succeed.

  • out_normals – The vertex normals for each vertex in the specified range.

  • in_polygon_handedness – The polygon handedness to assume when returning normals. Defaults to None. Specifying no handedness when requesting net normals, will return the normals using the handedness used internally by Visualize for this particular shell. When specifying a handedness, only normals which were implicitly calculated by Visualize will be flipped to conform to the requested handedness. User specified normals will be left untouched.

Returns

true if no errors were encountered, false otherwise.

bool ShowPoints(PointArray &out_points) const

Show the points for this ShellKey.

Parameters

out_points – The points for this ShellKey.

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

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 ShellKey by list.

Parameters
  • in_indices – The list of point indices to show.

  • out_points – The requested points for this ShellKey.

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

Returns

true if all requested points were set, false otherwise.

bool ShowTristrips(IntArray &out_tristrips) const

Show the tristrips list for this ShellKey. A tristrip is defined internally as three points which form a triangle, followed by another point for each additional triangle in the strip. The points that make up a shell may be divided into multiple tristrips. For example, if a shell contains two tristrips - one with 3 triangles and one with 4 - this function will return the data in the following format: [5, a, b, c, d, e, 6, f, g, h, i, j, k] where the numbers indicate how many of the subsequent array entries make up the current tristrip, and the letters are indices into the shell’s array of points.

Parameters

out_tristrips – The tristrip list for this ShellKey.

Returns

true if tristrips list was set, false otherwise.

bool ShowTristrips(IntArray &out_tristrips, IntArray &out_face_indices) const

Show the tristrips list for this ShellKey. A tristrip is defined internally as three points which form a triangle, followed by another point for each additional triangle in the strip. The points that make up a shell may be divided into multiple tristrips. For example, if a shell contains two tristrips - one with 3 triangles and one with 4 - this function will return the data in the following format: [5, a, b, c, d, e, 6, f, g, h, i, j, k] where the numbers indicate how many of the subsequent array entries make up the current tristrip, and the letters are indices into the shell’s array of points. The out_face_indices contains one entry for each triangle in out_tristrips. Each entry indicates which face the corresponding triangle in out_tristrips belongs to.

Parameters
  • out_tristrips – The tristrip list for this ShellKey.

  • out_face_indices – The corresponding face indices for each triangle in the tristrip list.

Returns

true if tristrips list was set, false otherwise.

bool ShowVertexColors(Shell::Component in_apply_to, MaterialTypeArray &out_types, RGBColorArray &out_rgb_colors, RGBAColorArray &out_rgba_colors, FloatArray &out_indices) const

Shows all the vertex colors on the specified shell component.

Parameters
  • in_apply_to – The shell 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 shell 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_rgba_colors – The RGBA colors for each vertex. out_rgba_colors[i] is only valid if out_types[i] is Material::Type::RGBAColor.

  • 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, Shell::Component in_apply_to, MaterialTypeArray &out_types, RGBColorArray &out_rgb_colors, RGBAColorArray &out_rgba_colors, FloatArray &out_indices) const

Shows the vertex colors on a selection of arbitrary vertices which apply to the specified shell 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], out_rgba_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. Each index in the array must be such that in_vertices[i]<point_count for showing to succeed.

  • in_apply_to – The shell 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_rgba_colors – The RGBA colors for each vertex at the specified index. out_rgba_colors[i] is only valid if out_types[i] is Material::Type::RGBAColor.

  • 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, Shell::Component in_apply_to, MaterialTypeArray &out_types, RGBColorArray &out_rgb_colors, RGBAColorArray &out_rgba_colors, FloatArray &out_indices) const

Shows the vertex colors on a range of vertices starting at the specified offset which apply to the specified shell component.

Parameters
  • in_start – The offset into the vertices for this ShellKey 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 the showing to succeed.

  • in_apply_to – The shell 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 shell 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_rgba_colors – The RGBA colors for each vertex in the specified range. out_rgba_colors[i] is only valid if out_types[i] is Material::Type::RGBAColor.

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

bool ShowVertexNormals(BoolArray &out_validities, VectorArray &out_normals) const

Shows all the vertex normals on this ShellKey.

Parameters
  • out_validities – The validities of the normals for each vertex. If a vertex had a normal set on it, the entry in this array will be true, otherwise it will be false.

  • out_normals – The vertex normals for each vertex. out_normals[i] is only valid if out_validities[i] is true.

Returns

true if any vertex normals were shown, false otherwise.

bool ShowVertexNormalsByList(SizeTArray const &in_vertices, BoolArray &out_validities, VectorArray &out_normals) const

Shows the vertex normals on a selection of arbitrary vertices. The order of the values in the output arrays is the same as the input vertex index array, i.e., the values of out_validities[i] and out_normals[i] correspond to the vertex at index in_vertices[i].

Parameters
  • in_vertices – The indices of the vertices on which to show the normals. Each index in the array must be such that in_vertices[i]<point_count for showing to succeed.

  • out_validities – The validities of the normals for each vertex at the specified index. If a vertex at a specified index had a normal set on it, the entry in this array will be true, otherwise it will be false.

  • out_normals – The vertex normals for each vertex at the specified index. out_normals[i] is only valid if out_validities[i] is true.

Returns

true if any specified vertex had a vertex normal set, false otherwise.

bool ShowVertexNormalsByRange(size_t in_start, size_t in_count, BoolArray &out_validities, VectorArray &out_normals) const

Shows the vertex normals on a range of vertices starting at the specified offset.

Parameters
  • in_start – The offset into the vertices for this ShellKey at which to start showing normals. This value must be such that in_start<point_count for showing to succeed.

  • in_count – The number of normals to show. This value must be such that in_start+in_count<=point_count for the showing to succeed.

  • out_validities – The validities of the normals for each vertex in the specified range. If a vertex in the specified range had a normal set on it, the entry in this array will be true, otherwise it will be false.

  • out_normals – The vertex normals for each vertex in the specified range. out_normals[i] is only valid if out_validities[i] is true.

Returns

true if any vertex in the specified range had a vertex normal set, false otherwise.

bool ShowVertexParameters(BoolArray &out_validities, FloatArray &out_params) const

Shows the texture parameters for all of the vertices on this ShellKey. For this particular show function, the parameter width is returned implicitly and could be determined by out_params.size()/in_count.

Parameters
  • out_validities – The validities of the texture parameters for each vertex. If a vertex had a texture parameter set on it, the entry in this array will be true, otherwise it will be false.

  • out_params – The texture parameters for each vertex. (out_params[i],…,out_params[i+param_width-1]) are only valid if out_validities[i] is true.

Returns

true if any vertex had a texture parameter set, false otherwise.

bool ShowVertexParameters(BoolArray &out_validities, FloatArray &out_params, size_t &out_param_width) const

Shows the texture parameters for all of the vertices on this ShellKey.

Parameters
  • out_validities – The validities of the texture parameters for each vertex. If a vertex had a texture parameter set on it, the entry in this array will be true, otherwise it will be false.

  • out_params – The texture parameters for each vertex. (out_params[i],…,out_params[i+param_width-1]) are only valid if out_validities[i] is true.

  • out_param_width – The number of texture parameters per vertex.

Returns

true if any vertex had a texture parameter set, false otherwise.

bool ShowVertexParametersByList(SizeTArray const &in_vertices, BoolArray &out_validities, FloatArray &out_params) const

Shows the texture parameters on a selection of arbitrary vertices. For this particular show function, the parameter width is returned implicitly and could be determined by out_params.size()/in_vertices.size(). The order of the output arrays is the same as the input vertex index array, i.e., out_validities[i] and (out_params[i],…,out_params[i+param_width-1]) correspond to the vertex at index in_vertices[i].

Parameters
  • in_vertices – The indices of the vertices on which to show the texture parameters. Each index in the array must be such that in_vertices[i]<point_count for showing to succeed.

  • out_validities – The validities of the texture parameters for each vertex at the specified index. If a vertex at a specified index had a texture parameter set on it, the entry in this array will be true, otherwise it will be false.

  • out_params – The texture parameters for each vertex at the specified index. (out_params[i],…,out_params[i+param_width-1]) are only valid if out_validities[i] is true.

Returns

true if any specified vertex had a texture parameter set, false otherwise.

bool ShowVertexParametersByList(SizeTArray const &in_vertices, BoolArray &out_validities, FloatArray &out_params, size_t &out_param_width) const

Shows the texture parameters on a selection of arbitrary vertices. The order of the output arrays is the same as the input vertex index array, i.e., out_validities[i] and (out_params[i],…,out_params[i+param_width-1]) correspond to the vertex at index in_vertices[i].

Parameters
  • in_vertices – The indices of the vertices on which to show the texture parameters. Each index in the array must be such that in_vertices[i]<point_count for showing to succeed.

  • out_validities – The validities of the texture parameters for each vertex at the specified index. If a vertex at a specified index had a texture parameter set on it, the entry in this array will be true, otherwise it will be false.

  • out_params – The texture parameters for each vertex at the specified index. (out_params[i],…,out_params[i+param_width-1]) are only valid if out_validities[i] is true.

  • out_param_width – The number of texture parameters per vertex.

Returns

true if any specified vertex had a texture parameter set, false otherwise.

bool ShowVertexParametersByRange(size_t in_start, size_t in_count, BoolArray &out_validities, FloatArray &out_params) const

Shows the texture parameters on a range of vertices starting at the specified offset. For this particular show function, the parameter width is returned implicitly and could be determined by out_params.size()/in_count.

Parameters
  • in_start – The offset into the vertices for this ShellKey at which to start showing texture parameters. This value must be such that in_start<point_count for showing to succeed.

  • in_count – The number of vertices for which to show the texture parameters. This value must be such that in_start+in_count<=point_count for the showing to succeed.

  • out_validities – The validities of the texture parameters for each vertex in the specified range. If a vertex in the specified range had a texture parameter set on it, the entry in this array will be true, otherwise it will be false.

  • out_params – The texture parameters for each vertex in the specified range. (out_params[i],…,out_params[i+param_width-1]) are only valid if out_validities[i] is true.

Returns

true if any vertex in the specified range had a texture parameter set, false otherwise.

bool ShowVertexParametersByRange(size_t in_start, size_t in_count, BoolArray &out_validities, FloatArray &out_params, size_t &out_param_width) const

Shows the texture parameters on a range of vertices starting at the specified offset.

Parameters
  • in_start – The offset into the vertices for this ShellKey at which to start showing texture parameters. This value must be such that in_start<point_count for showing to succeed.

  • in_count – The number of vertices for which to show the texture parameters. This value must be such that in_start+in_count<=point_count for the showing to succeed.

  • out_validities – The validities of the texture parameters for each vertex in the specified range. If a vertex in the specified range had a texture parameter set on it, the entry in this array will be true, otherwise it will be false.

  • out_params – The texture parameters for each vertex in the specified range. (out_params[i],…,out_params[i+param_width-1]) are only valid if out_validities[i] is true.

  • out_param_width – The number of texture parameters per vertex.

Returns

true if any vertex in the specified range had a texture parameter set, false otherwise.

bool ShowVertexVisibilities(BoolArray &out_validities, BoolArray &out_visibilities) const

Shows all the vertex visibilities on this ShellKey.

Parameters
  • out_validities – The validities of the visibilities for each vertex. If a vertex had a visibility set on it, the entry in this array will be true, otherwise it will be false.

  • out_visibilities – The vertex visibilities for each vertex. out_visibilities[i] is only valid if out_validities[i] is true.

Returns

true if any vertex had a vertex visibility set, false otherwise.

bool ShowVertexVisibilitiesByList(SizeTArray const &in_vertices, BoolArray &out_validities, BoolArray &out_visibilities) const

Shows the vertex visibilities on a selection of arbitrary vertices. The order of the values in the output arrays is the same as the input vertex index array, i.e., the values of out_validities[i] and out_visibilities[i] correspond to the vertex at index in_vertices[i].

Parameters
  • in_vertices – The indices of the vertices on which to show the normals. Each index in the array must be such that in_vertices[i]<point_count for showing to succeed.

  • out_validities – The validities of the normals for each vertex at the specified index. If a vertex at a specified index had a visibility set on it, the entry in this array will be true, otherwise it will be false.

  • out_visibilities – The vertex visibilities for each vertex at the specified index. out_visibilities[i] is only valid if out_validities[i] is true.

Returns

true if any specified vertex had a vertex visibility set, false otherwise.

bool ShowVertexVisibilitiesByRange(size_t in_start, size_t in_count, BoolArray &out_validities, BoolArray &out_visibilities) const

Shows the vertex visibilities on a range of vertices starting at the specified offset.

Parameters
  • in_start – The offset into the vertices for this ShellKey at which to start showing visibilities. This value must be such that in_start<point_count for showing to succeed.

  • in_count – The number of visibilities to show. This value must be such that in_start+in_count<=point_count for the showing to succeed.

  • out_validities – The validities of the visibilities for each vertex in the specified range. If a vertex in the specified range had a visibility set on it, the entry in this array will be true, otherwise it will be false.

  • out_visibilities – The vertex visibilities for each vertex in the specified range. out_visibilities[i] is only valid if out_validities[i] is true.

Returns

true if any vertex in the specified range had a vertex visibility set, false otherwise.

ShellKey &UnsetEdgeColors()

Unsets edge colors on all edges.

Returns

A reference to this ShellKey.

ShellKey &UnsetEdgeColorsByList(size_t in_count, size_t const in_vertices1[], size_t const in_vertices2[])

Unsets edge colors on a selection of arbitrary edges.

Parameters
  • in_count – Size of the following arrays.

  • in_vertices1 – The vertex indices that correspond to the start position of each edge for which the visibilities are being changed. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_vertices2 – The vertex indices that correspond to the end position of each edge for which the visibilities are being changed. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

Returns

A reference to this ShellKey.

ShellKey &UnsetEdgeColorsByList(SizeTArray const &in_vertices1, SizeTArray const &in_vertices2)

Unsets edge colors on a selection of arbitrary edges.

Parameters
  • in_vertices1 – The vertex indices that correspond to the start position of each edge for which the visibilities are being changed. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_vertices2 – The vertex indices that correspond to the end position of each edge for which the visibilities are being changed. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

Returns

A reference to this ShellKey.

ShellKey &UnsetEdgeEverything()

Removes all edge settings (edge colors and edge visibilities) from this ShellKey.

Returns

A reference to this ShellKey.

ShellKey &UnsetEdgeVisibilities()

Removes all edge visibility settings.

Returns

A reference to this ShellKey.

ShellKey &UnsetEdgeVisibilitiesByList(size_t in_count, size_t const in_vertices1[], size_t const in_vertices2[])

Unsets edge visibilities on a selection of arbitrary edges.

Parameters
  • in_count – Size of the following arrays.

  • in_vertices1 – The vertex indices that correspond to the start position of each edge for which the visibilities are being unset. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_vertices2 – The vertex indices that correspond to the end position of each edge for which the visibilities are being unset. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

Returns

A reference to this ShellKey.

ShellKey &UnsetEdgeVisibilitiesByList(SizeTArray const &in_vertices1, SizeTArray const &in_vertices2)

Unsets edge visibilities on a selection of arbitrary edges.

Parameters
  • in_vertices1 – The vertex indices that correspond to the start position of each edge for which the visibilities are being unset. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

  • in_vertices2 – The vertex indices that correspond to the end position of each edge for which the visibilities are being unset. Each index in the array must be such that in_vertices[i]<point_count for setting to succeed.

Returns

A reference to this ShellKey.

ShellKey &UnsetEverything()

Removes all settings from this ShellKey.

Returns

A reference to this ShellKey.

ShellKey &UnsetFaceColors()

Removes all face colors (RGB colors or material indices).

Returns

A reference to this ShellKey.

ShellKey &UnsetFaceColorsByList(size_t in_count, size_t const in_faces[])

Removes the face visibilities on a selection of arbitrary faces.

Parameters
  • in_count – The number of face visibilities to remove for this ShellKey.

  • in_faces – The indices of the faces on which to remove the visibilities.

Returns

A reference to this ShellKey.

ShellKey &UnsetFaceColorsByList(SizeTArray const &in_vertices)

Removes the face colors (RGB colors or material indices) on a selection of arbitrary vertices.

Parameters

in_vertices – The indices of the faces on which to remove the colors. Each index in the array must be such that in_faces[i]<face_count for removal to succeed.

Returns

A reference to this ShellKey.

ShellKey &UnsetFaceColorsByRange(size_t in_start, size_t in_count)

Removes the specified range of face colors (RGB colors or material indices) starting at the specified offset.

Parameters
  • in_start – The offset into the faces for this ShellKey at which to start removing colors. This value must be such that in_start<face_count for removal to succeed.

  • in_count – The number of face colors to remove for this ShellKey. This value must be such that in_start+in_count<=face_count for the removal to succeed.

Returns

A reference to this ShellKey.

ShellKey &UnsetFaceEverything()

Removes all face settings (face colors, face normals, and face visibilities) from this ShellKey.

Returns

A reference to this ShellKey.

ShellKey &UnsetFacelist()

Removes the face list for this ShellKey.

Returns

A reference to this ShellKey.

ShellKey &UnsetFaceNormals()

Removes all face normals.

Returns

A reference to this ShellKey.

ShellKey &UnsetFaceNormalsByList(SizeTArray const &in_vertices)

Removes the face normals on a selection of arbitrary faces.

Parameters

in_faces – The indices of the faces on which to remove the normals. Each index in the array must be such that in_faces[i]<face_count for removal to succeed.

Returns

A reference to this ShellKey.

ShellKey &UnsetFaceNormalsByRange(size_t in_start, size_t in_count)

Removes the specified range of face normals starting at the specified offset.

Parameters
  • in_start – The offset into the faces for this ShellKey at which to start removing normals. This value must be such that in_start<face_count for removal to succeed.

  • in_count – The number of face normals to remove for this ShellKey. This value must be such that in_start+in_count<=face_count for the removal to succeed.

Returns

A reference to this ShellKey.

ShellKey &UnsetFaceVisibilities()

Removes all face visibilities.

Returns

A reference to this ShellKey.

ShellKey &UnsetFaceVisibilitiesByList(size_t in_count, size_t const in_faces[])

Removes the face visibilities on a selection of arbitrary faces.

Parameters
  • in_count – The number of face visibilities to remove for this ShellKey.

  • in_faces – The indices of the faces on which to remove the visibilities.

Returns

A reference to this ShellKey.

ShellKey &UnsetFaceVisibilitiesByList(SizeTArray const &in_vertices)

Removes the face visibilities on a selection of arbitrary faces.

Parameters

in_faces – The indices of the faces on which to remove the visibilities. Each index in the array must be such that in_faces[i]<face_count for removal to succeed.

Returns

A reference to this ShellKey.

ShellKey &UnsetFaceVisibilitiesByRange(size_t in_start, size_t in_count)

Removes the specified range of face visibilities starting at the specified offset.

Parameters
  • in_start – The offset into the faces for this ShellKey at which to start removing visibilities. This value must be such that in_start<face_count for removal to succeed.

  • in_count – The number of face visibilities to remove for this ShellKey. This value must be such that in_start+in_count<=face_count for the removal to succeed.

Returns

A reference to this ShellKey.

ShellKey &UnsetMaterialMapping()

Removes all material mappings on this ShellKey. This removes the “global” material settings and does not affect per-vertex or per-face materials.

Returns

A reference to this ShellKey.

ShellKey &UnsetPoints()

Removes the points for this ShellKey.

Returns

A reference to this ShellKey.

ShellKey &UnsetTristrips()

Removes the tristrips list for this ShellKey.

Returns

A reference to this ShellKey.

ShellKey &UnsetVertexColors()

Removes all vertex colors (RGB colors, RGBA colors, or material indices) for all shell components.

Returns

A reference to this ShellKey.

ShellKey &UnsetVertexColors(Shell::Component in_apply_to)

Removes all vertex colors (RGB colors, RGBA colors, or material indices) for the specified shell component.

Parameters

in_apply_to – The shell component for which to remove the colors.

Returns

A reference to this ShellKey.

ShellKey &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 ShellKey.

  • in_faces – The indices of the vertices on which to remove the visibilities.

Returns

A reference to this ShellKey.

ShellKey &UnsetVertexColorsByList(size_t in_count, size_t const in_vertices[], Shell::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 ShellKey.

  • in_faces – The indices of the vertices on which to remove the visibilities.

  • in_apply_to – The shell component the colors should apply to.

Returns

A reference to this ShellKey.

ShellKey &UnsetVertexColorsByList(SizeTArray const &in_vertices)

Removes the vertex colors (RGB colors, RGBA colors, or material indices) for all shell components on a selection of arbitrary vertices.

Parameters

in_vertices – The indices of the vertices on which to remove the colors. Each index in the array must be such that in_vertices[i]<point_count for removal to succeed.

Returns

A reference to this ShellKey.

ShellKey &UnsetVertexColorsByList(SizeTArray const &in_vertices, Shell::Component in_apply_to)

Removes the vertex colors (RGB colors, RGBA colors, or material indices) for the specified shell component on a selection of arbitrary vertices.

Parameters
  • in_vertices – The indices of the vertices on which to remove the colors. Each index in the array must be such that in_vertices[i]<point_count for removal to succeed.

  • in_apply_to – The shell component for which to remove the colors.

Returns

A reference to this ShellKey.

ShellKey &UnsetVertexColorsByRange(size_t in_start, size_t in_count)

Removes the specified range of vertex colors (RGB colors, RGBA colors, or material indices) for all shell components starting at the specified offset.

Parameters
  • in_start – The offset into the vertices for this ShellKey at which to start removing colors. This value must be such that in_start<point_count for removal to succeed.

  • in_count – The number of vertex colors to remove for this ShellKey. This value must be such that in_start+in_count<=point_count for the removal to succeed.

Returns

A reference to this ShellKey.

ShellKey &UnsetVertexColorsByRange(size_t in_start, size_t in_count, Shell::Component in_apply_to)

Removes the specified range of vertex colors (RGB colors, RGBA colors, or material indices) for the specified shell component starting at the specified offset.

Parameters
  • in_start – The offset into the vertices for this ShellKey at which to start removing colors. This value must be such that in_start<point_count for removal to succeed.

  • in_count – The number of vertex colors to remove for this ShellKey. This value must be such that in_start+in_count<=point_count for the removal to succeed.

  • in_apply_to – The shell component for which to remove the colors.

Returns

A reference to this ShellKey.

ShellKey &UnsetVertexEverything()

Removes all vertex settings (vertex colors, vertex normals, texture parameters, and vertex visibilities) from this ShellKey.

Returns

A reference to this ShellKey.

ShellKey &UnsetVertexNormals()

Removes all vertex normals.

Returns

A reference to this ShellKey.

ShellKey &UnsetVertexNormalsByList(SizeTArray const &in_vertices)

Removes the vertex normals on a selection of arbitrary vertices.

Parameters

in_vertices – The indices of the vertices on which to remove the normals. Each index in the array must be such that in_vertices[i]<point_count for removal to succeed.

Returns

A reference to this ShellKey.

ShellKey &UnsetVertexNormalsByRange(size_t in_start, size_t in_count)

Removes the specified range of vertex normals starting at the specified offset.

Parameters
  • in_start – The offset into the vertices for this ShellKey at which to start removing normals. This value must be such that in_start<point_count for removal to succeed.

  • in_count – The number of vertex normals to remove for this ShellKey. This value must be such that in_start+in_count<=point_count for the removal to succeed.

Returns

A reference to this ShellKey.

ShellKey &UnsetVertexParameters()

Removes all texture parameters.

Returns

A reference to this ShellKey.

ShellKey &UnsetVertexParametersByList(SizeTArray const &in_vertices)

Removes the texture parameters on a selection of arbitrary vertices.

Parameters

in_vertices – The indices of the vertices on which to remove the texture parameters. Each index in the array must be such that in_vertices[i]<point_count for removal to succeed.

Returns

A reference to this ShellKey.

ShellKey &UnsetVertexParametersByRange(size_t in_start, size_t in_count)

Removes the specified range of texture parameters starting at the specified offset.

Parameters
  • in_start – The offset into the vertices for this ShellKey at which to start removing texture parameters. This value must be such that in_start<point_count for removal to succeed.

  • in_count – The number of texture parameters to remove for this ShellKey. This value must be such that in_start+in_count<=point_count for the removal to succeed.

Returns

A reference to this ShellKey.

ShellKey &UnsetVertexVisibilities()

Removes all vertex visibilities.

Returns

A reference to this ShellKey.

ShellKey &UnsetVertexVisibilitiesByList(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 ShellKey.

  • in_faces – The indices of the vertices on which to remove the visibilities.

Returns

A reference to this ShellKey.

ShellKey &UnsetVertexVisibilitiesByList(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. Each index in the array must be such that in_vertices[i]<point_count for removal to succeed.

Returns

A reference to this ShellKey.

ShellKey &UnsetVertexVisibilitiesByRange(size_t in_start, size_t in_count)

Removes the specified range of vertex visibilities starting at the specified offset.

Parameters
  • in_start – The offset into the vertices for this ShellKey at which to start removing visibilities. This value must be such that in_start<point_count for removal to succeed.

  • in_count – The number of vertex visibilities to remove for this ShellKey. This value must be such that in_start+in_count<=point_count for the removal to succeed.

Returns

A reference to this ShellKey.

~ShellKey()

Public Static Attributes

static const HPS::Type staticType = HPS::Type::ShellKey