#include <hps.h>
Public Member Functions | |
CylinderKey () | |
CylinderKey (Key const &in_that) | |
CylinderKey (CylinderKey const &in_that) | |
CylinderKey & | operator= (CylinderKey const &in_that) |
CylinderKey (CylinderKey &&in_that) | |
CylinderKey & | operator= (CylinderKey &&in_that) |
HPS::Type | ObjectType () const |
void | Consume (CylinderKit &in_kit) |
void | Set (CylinderKit const &in_kit) |
CylinderKey & | EditPointsByInsertion (size_t in_offset, size_t in_count, Point const in_points[]) |
CylinderKey & | EditPointsByInsertion (size_t in_offset, PointArray const &in_points) |
CylinderKey & | EditPointsByDeletion (size_t in_offset, size_t in_count) |
CylinderKey & | EditPointsByReplacement (size_t in_offset, size_t in_count, Point const in_points[]) |
CylinderKey & | EditPointsByReplacement (size_t in_offset, PointArray const &in_points) |
CylinderKey & | EditRadiiByInsertion (size_t in_offset, size_t in_count, float const in_radii[]) |
CylinderKey & | EditRadiiByInsertion (size_t in_offset, FloatArray const &in_radii) |
CylinderKey & | EditRadiiByDeletion (size_t in_offset, size_t in_count) |
CylinderKey & | EditRadiiByReplacement (size_t in_offset, size_t in_count, float const in_radii[]) |
CylinderKey & | EditRadiiByReplacement (size_t in_offset, FloatArray const &in_radii) |
void | Show (CylinderKit &out_kit) const |
size_t | GetPointCount () const |
bool | ShowPoints (PointArray &out_points) const |
bool | ShowPointsByRange (size_t in_start_index, size_t in_count, PointArray &out_points) const |
bool | ShowPointsByList (SizeTArray const &in_indices, PointArray &out_points) const |
bool | ShowPointsByList (size_t in_count, size_t const in_indices[], PointArray &out_points) const |
bool | ShowRadii (FloatArray &out_radii) const |
bool | ShowCaps (Cylinder::Capping &out_caps) const |
CylinderKey & | SetVertexRGBColorsByRange (size_t in_start, size_t in_count, RGBColor const in_rgb_colors[], Cylinder::Component in_apply_to=Cylinder::Component::Faces) |
CylinderKey & | SetVertexRGBColorsByRange (size_t in_start, RGBColorArray const &in_rgb_colors, Cylinder::Component in_apply_to=Cylinder::Component::Faces) |
CylinderKey & | SetVertexRGBColorsByRange (size_t in_start, size_t in_count, RGBColor const &in_rgb_color, Cylinder::Component in_apply_to=Cylinder::Component::Faces) |
CylinderKey & | SetVertexIndexColorsByRange (size_t in_start, size_t in_count, float const in_indices[], Cylinder::Component in_apply_to=Cylinder::Component::Faces) |
CylinderKey & | SetVertexIndexColorsByRange (size_t in_start, FloatArray const &in_indices, Cylinder::Component in_apply_to=Cylinder::Component::Faces) |
CylinderKey & | SetVertexIndexColorsByRange (size_t in_start, size_t in_count, float in_index, Cylinder::Component in_apply_to=Cylinder::Component::Faces) |
CylinderKey & | UnsetVertexColors () |
CylinderKey & | UnsetVertexColorsByRange (size_t in_start, size_t in_count) |
CylinderKey & | UnsetVertexColors (Cylinder::Component in_apply_to) |
CylinderKey & | UnsetVertexColorsByRange (size_t in_start, size_t in_count, Cylinder::Component in_apply_to) |
bool | ShowVertexColorsByRange (size_t in_start, size_t in_count, Cylinder::Component in_apply_to, MaterialTypeArray &out_types, RGBColorArray &out_rgb_colors, FloatArray &out_indices) const |
bool | ShowVertexColorsByList (SizeTArray const &in_vertices, Cylinder::Component in_apply_to, MaterialTypeArray &out_types, RGBColorArray &out_rgb_colors, FloatArray &out_indices) const |
![]() | |
GeometryKey () | |
GeometryKey (Key const &in_that) | |
GeometryKey (GeometryKey const &in_that) | |
GeometryKey & | operator= (GeometryKey const &in_that) |
GeometryKey (GeometryKey &&in_that) | |
GeometryKey & | operator= (GeometryKey &&in_that) |
size_t | ShowReferrers (SegmentKeyArray &out_segments) const |
size_t | ShowReferrers (ReferenceKeyArray &out_references) const |
GeometryKey & | SetPriority (int in_priority) |
GeometryKey & | UnsetPriority () |
bool | ShowPriority (int &out_priority) const |
GeometryKey & | SetUserData (intptr_t in_index, size_t in_bytes, byte const in_data[]) |
GeometryKey & | SetUserData (intptr_t in_index, ByteArray const &in_data) |
GeometryKey & | SetUserData (IntPtrTArray const &in_indices, ByteArrayArray const &in_data) |
GeometryKey & | UnsetUserData (intptr_t in_index) |
GeometryKey & | UnsetUserData (size_t in_count, intptr_t const in_indices[]) |
GeometryKey & | UnsetUserData (IntPtrTArray const &in_indices) |
GeometryKey & | UnsetAllUserData () |
size_t | ShowUserDataCount () const |
bool | ShowUserDataIndices (IntPtrTArray &out_indices) const |
bool | ShowUserData (intptr_t in_index, ByteArray &out_data) const |
bool | ShowUserData (IntPtrTArray &out_indices, ByteArrayArray &out_data) const |
bool | ShowBoundings (BoundingKit &out_kit) const |
![]() | |
Key () | |
Key (Key const &in_that) | |
Key (Control const &in_control) | |
Key (Key &&in_that) | |
Key & | operator= (Key &&in_that) |
virtual | ~Key () |
bool | HasOwner () const |
SegmentKey | Up () const |
SegmentKey | Owner () const |
void | Delete () |
void | MoveTo (SegmentKey const &in_new_owner) |
Key | CopyTo (SegmentKey const &in_destination) const |
Key & | operator= (Key const &in_that) |
virtual void | Assign (Key const &in_that) |
bool | Equals (Key const &in_that) const |
bool | operator!= (Key const &in_that) const |
bool | operator== (Key const &in_that) const |
size_t | GetHash () const |
![]() | |
Object (Object const &that) | |
Object & | operator= (Object const &other_object) |
Object (Object &&in_that) | |
Object & | operator= (Object &&in_that) |
HPS::Type | Type () const |
virtual bool | Empty () const |
virtual void | Reset () |
bool | HasType (HPS::Type in_mask) const |
intptr_t | GetClassID () const |
intptr_t | GetInstanceID () const |
Additional Inherited Members | |
![]() | |
template<typename T > | |
static intptr_t | ClassID () |
The CylinderKey class is a smart pointer to a database object. It is a handle to a cylinder inserted via SegmentKey::InsertCylinder.
HPS::CylinderKey::CylinderKey | ( | ) |
The default constructor creates an uninitialized CylinderKey object. The Type() function will return Type::None.
|
explicit |
This constructor creates a CylinderKey object that shares the underlying smart-pointer of the source Key. The copy will only be successful if the source key is really an upcast of a Cylinder key. Otherwise the copy will fail and the resulting CylinderKey will be invalid.
in_key | The source Key to copy. |
HPS::CylinderKey::CylinderKey | ( | CylinderKey const & | in_that | ) |
The copy constructor creates a CylinderKey object that shares the underlying smart-pointer of the source CylinderKey.
in_that | The source CylinderKey to copy. |
HPS::CylinderKey::CylinderKey | ( | CylinderKey && | in_that | ) |
The move constructor creates a CylinderKey by transferring the underlying impl of the rvalue reference to this CylinderKey thereby avoiding a copy and allocation.
in_that | An rvalue reference to a CylinderKey to take the impl from. |
void HPS::CylinderKey::Consume | ( | CylinderKit & | in_kit | ) |
Completely replaces all settings on this CylinderKey with those set on the specified kit and resets the kit.
in_kit | The kit from which to get the settings to replace on this CylinderKey. |
CylinderKey& HPS::CylinderKey::EditPointsByDeletion | ( | size_t | in_offset, |
size_t | in_count | ||
) |
Removes points from the point list for this CylinderKey.
in_offset | The offset into the point list for the cylinder at which to start removing points. This value must be such that in_offset<point_count for deletion to succeed. |
in_count | The number of points to delete from the point list for the cylinder. This value must be such that in_offset+in_count<=point_count for the deletion to succeed. |
CylinderKey& HPS::CylinderKey::EditPointsByInsertion | ( | size_t | in_offset, |
size_t | in_count, | ||
Point const | in_points[] | ||
) |
Adds points to the point list for this CylinderKey.
in_offset | The offset into the point list for the cylinder at which to insert points. This value must be such that in_offset<point_count for insertion to succeed. |
in_count | Size of the following array. |
in_points | The points to insert into the point list at the specified offset. |
CylinderKey& HPS::CylinderKey::EditPointsByInsertion | ( | size_t | in_offset, |
PointArray const & | in_points | ||
) |
Adds points to the point list for this CylinderKey.
in_offset | The offset into the point list for the cylinder at which to insert points. This value must be such that in_offset<point_count for insertion to succeed. |
in_points | The points to insert into the point list at the specified offset. |
CylinderKey& HPS::CylinderKey::EditPointsByReplacement | ( | size_t | in_offset, |
size_t | in_count, | ||
Point const | in_points[] | ||
) |
Replaces points in the point list for this CylinderKey.
in_offset | The offset into the point list for the cylidner at which to start replacing points. This value must be such that in_offset<point_count for replacement to succeed. |
in_count | Size of the following array. This value must be such that in_offset+in_count<=point_count for the replacement to succeed. |
in_points | The points to use to replace those in the point list at the specified offset. |
CylinderKey& HPS::CylinderKey::EditPointsByReplacement | ( | size_t | in_offset, |
PointArray const & | in_points | ||
) |
Replaces points in the point list for this CylinderKey.
in_offset | The offset into the point list for the cylidner at which to start replacing points. This value must be such that in_offset<point_count for replacement to succeed. |
in_points | The points to use to replace those in the point list at the specified offset. This size of the array must be such that in_offset+in_points.size()<=point_count for the replacement to succeed. |
CylinderKey& HPS::CylinderKey::EditRadiiByDeletion | ( | size_t | in_offset, |
size_t | in_count | ||
) |
Removes radii from the radius list for this CylinderKey.
in_offset | The offset into the radius list for the cylinder at which to start removing radii. This value must be such that in_offset<radius_count for deletion to succeed. |
in_count | The number of radii to delete from the radius list for the cylinder. This value must be such that in_offset+in_count<=radius_count for the deletion to succeed. |
CylinderKey& HPS::CylinderKey::EditRadiiByInsertion | ( | size_t | in_offset, |
size_t | in_count, | ||
float const | in_radii[] | ||
) |
Adds radii to the radius list for this CylinderKey.
in_offset | The offset into the radius list for the cylinder at which to insert radii. This value must be such that in_offset<radius_count for insertion to succeed. |
in_count | Size of the following array. |
in_radii | The radii to insert into the radius list at the specified offset. |
CylinderKey& HPS::CylinderKey::EditRadiiByInsertion | ( | size_t | in_offset, |
FloatArray const & | in_radii | ||
) |
Adds radii to the radius list for this CylinderKey.
in_offset | The offset into the radius list for the cylinder at which to insert radii. This value must be such that in_offset<radius_count for insertion to succeed. |
in_radii | The radii to insert into the radius list at the specified offset. |
CylinderKey& HPS::CylinderKey::EditRadiiByReplacement | ( | size_t | in_offset, |
size_t | in_count, | ||
float const | in_radii[] | ||
) |
Replaces radii in the radius list for this CylinderKey.
in_offset | The offset into the radius list for the cylidner at which to start replacing radii. This value must be such that in_offset<radius_count for replacement to succeed. |
in_count | Size of the following array. This value must be such that in_offset+in_count<=radius_count for the replacement to succeed. |
in_radii | The radii to use to replace those in the radius list at the specified offset. |
CylinderKey& HPS::CylinderKey::EditRadiiByReplacement | ( | size_t | in_offset, |
FloatArray const & | in_radii | ||
) |
Replaces radii in the radius list for this CylinderKey.
in_offset | The offset into the radius list for the cylidner at which to start replacing radii. This value must be such that in_offset<radius_count for replacement to succeed. |
in_radii | The radii to use to replace those in the radius list at the specified offset. This size of the array must be such that in_offset+in_points.size()<=radius_count for the replacement to succeed. |
size_t HPS::CylinderKey::GetPointCount | ( | ) | const |
Retrieves the number of points in this cylinder.
|
inlinevirtual |
This function returns the type the object, as declared. This does not necessarily give the true type of the underlying object.
Reimplemented from HPS::GeometryKey.
CylinderKey& HPS::CylinderKey::operator= | ( | CylinderKey const & | in_that | ) |
Associate this CylinderKey with the same underlying impl as the source CylinderKey.
in_that | The source CylinderKey for the assignment. |
CylinderKey& HPS::CylinderKey::operator= | ( | CylinderKey && | in_that | ) |
The move assignment operator transfers the underlying impl of the rvalue reference to this CylinderKey thereby avoiding a copy.
in_that | An rvalue reference to a CylinderKey to take the impl from. |
void HPS::CylinderKey::Set | ( | CylinderKit const & | in_kit | ) |
Replace those settings on this CylinderKey with those set on the specified kit.
in_kit | The kit from which to get the settings to replace on this CylinderKey. |
CylinderKey& HPS::CylinderKey::SetVertexIndexColorsByRange | ( | size_t | in_start, |
size_t | in_count, | ||
float const | in_indices[], | ||
Cylinder::Component | in_apply_to = Cylinder::Component::Faces |
||
) |
Sets vertex material indices on a range of vertices starting at the specified offset which apply to the specified cylinder component.
in_start | The offset into the vertices for this CylinderKey at which to start setting colors. This value must be such that in_start<point_count for setting to succeed. |
in_count | Size of the following array. This value must be such that in_start+in_count<=point_count for the setting to succeed. |
in_indices | The material indices to set on the vertices for this CylinderKey. |
in_apply_to | The cylinder component the colors should apply to. Defaults to Cylinder::Component::Faces. |
CylinderKey& HPS::CylinderKey::SetVertexIndexColorsByRange | ( | size_t | in_start, |
FloatArray const & | in_indices, | ||
Cylinder::Component | in_apply_to = Cylinder::Component::Faces |
||
) |
Sets vertex material indices on a range of vertices starting at the specified offset which apply to the specified cylinder component.
in_start | The offset into the vertices for this CylinderKey at which to start setting colors. This value must be such that in_start<point_count for setting to succeed. |
in_indices | The material indices to set on the vertices for this CylinderKey. The size of the array must be such that in_start+in_indices.size()<=point_count for the setting to succeed. |
in_apply_to | The cylinder component the colors should apply to. Defaults to Cylinder::Component::Faces. |
CylinderKey& HPS::CylinderKey::SetVertexIndexColorsByRange | ( | size_t | in_start, |
size_t | in_count, | ||
float | in_index, | ||
Cylinder::Component | in_apply_to = Cylinder::Component::Faces |
||
) |
Sets a single material index on a range of vertices starting at the specified offset which apply to the specified cylinder component.
in_start | The offset into the vertices for this CylinderKey at which to start setting the color. This value must be such that in_start<point_count for setting to succeed. |
in_count | The number of vertices on which to set the color. This value must be such that in_start+in_count<=point_count for the setting to succeed. |
in_index | The material index to set on the vertices for this CylinderKey. |
in_apply_to | The cylinder component the colors should apply to. Defaults to Cylinder::Component::Faces. |
CylinderKey& HPS::CylinderKey::SetVertexRGBColorsByRange | ( | size_t | in_start, |
size_t | in_count, | ||
RGBColor const | in_rgb_colors[], | ||
Cylinder::Component | in_apply_to = Cylinder::Component::Faces |
||
) |
Sets vertex RGB colors on a range of vertices starting at the specified offset which apply to the specified cylinder component.
in_start | The offset into the vertices for this CylinderKey at which to start setting colors. This value must be such that in_start<point_count for setting to succeed. |
in_count | Size of the following array. This value must be such that in_start+in_count<=point_count for the setting to succeed. |
in_rgb_colors | The RGB colors to set on the vertices for this CylinderKey. |
in_apply_to | The cylinder component the colors should apply to. Defaults to Cylilnder::Component::Faces. |
CylinderKey& HPS::CylinderKey::SetVertexRGBColorsByRange | ( | size_t | in_start, |
RGBColorArray const & | in_rgb_colors, | ||
Cylinder::Component | in_apply_to = Cylinder::Component::Faces |
||
) |
Sets vertex RGB colors on a range of vertices starting at the specified offset which apply to the specified cylinder component.
in_start | The offset into the vertices for this CylinderKey at which to start setting colors. This value must be such that in_start<point_count for setting to succeed. |
in_rgb_colors | The RGB colors to set on the vertices for this CylinderKey. The size of the array must be such that in_start+in_rgb_colors.size()<=point_count for the setting to succeed. |
in_apply_to | The shell component the colors should apply to. Defaults to Cylinder::Component::Faces. |
CylinderKey& HPS::CylinderKey::SetVertexRGBColorsByRange | ( | size_t | in_start, |
size_t | in_count, | ||
RGBColor const & | in_rgb_color, | ||
Cylinder::Component | in_apply_to = Cylinder::Component::Faces |
||
) |
Sets a single RGB color on a range of vertices starting at the specified offset which apply to the specified cylinder component.
in_start | The offset into the vertices for this CylinderKey at which to start setting the color. This value must be such that in_start<point_count for setting to succeed. |
in_count | The number of vertices on which to set the color. This value must be such that in_start+in_count<=point_count for the setting to succeed. |
in_rgb_color | The RGB color to set on the vertices for this CylinderKey. |
in_apply_to | The cylinder component the colors should apply to. Defaults to Cylinder::Component::Faces. |
void HPS::CylinderKey::Show | ( | CylinderKit & | out_kit | ) | const |
Copy the contents of this CylinderKey into the specified kit.
out_kit | The kit to populate with the contents of this CylinderKey. |
bool HPS::CylinderKey::ShowCaps | ( | Cylinder::Capping & | out_caps | ) | const |
Show the capping for this CylinderKey.
out_caps | The capping for this CylinderKey. |
bool HPS::CylinderKey::ShowPoints | ( | PointArray & | out_points | ) | const |
Show the points for this CylinderKey.
out_points | The points for this CylinderKey. |
bool HPS::CylinderKey::ShowPointsByList | ( | SizeTArray const & | in_indices, |
PointArray & | out_points | ||
) | const |
Show a subset of the points for this CylinderKey by list.
in_indices | The list of point indices to show. |
out_points | The requested points for this CylinderKey. |
bool HPS::CylinderKey::ShowPointsByList | ( | size_t | in_count, |
size_t const | in_indices[], | ||
PointArray & | out_points | ||
) | const |
Show a subset of the points for this CylinderKey by list.
in_count | The number of points to show. |
in_indices | The list of point indices to show. |
out_points | The requested points for this CylinderKey. |
bool HPS::CylinderKey::ShowPointsByRange | ( | size_t | in_start_index, |
size_t | in_count, | ||
PointArray & | out_points | ||
) | const |
Show a subset of the points for this CylinderKey by range.
in_start_index | The first point to show. |
in_count | The number of points to show. |
out_points | The requested points for this CylinderKey. |
bool HPS::CylinderKey::ShowRadii | ( | FloatArray & | out_radii | ) | const |
Show the radii for this CylinderKey.
out_radii | The radii for this CylinderKey. |
bool HPS::CylinderKey::ShowVertexColorsByList | ( | SizeTArray const & | in_vertices, |
Cylinder::Component | in_apply_to, | ||
MaterialTypeArray & | out_types, | ||
RGBColorArray & | out_rgb_colors, | ||
FloatArray & | out_indices | ||
) | const |
Shows the vertex colors on a selection of arbitrary vertices which apply to the specified cylinder component. The order of the values in the ouput arrays is the same as the input vertex index array, i.e., the values of out_types[i], out_rgb_colors[i], and out_indices[i], correspond to the vertex at index in_vertices[i].
in_vertices | The indices of the vertices on which to show the colors. |
in_apply_to | The cylinder component the colors should apply to. |
out_types | The types of vertex colors for each vertex at the specified index. If a vertex at a specified index does not have a vertex color set for the specified component, the entry in this array will be Material::Type::Nothing. |
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::ExplicitRGBColor. |
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. |
bool HPS::CylinderKey::ShowVertexColorsByRange | ( | size_t | in_start, |
size_t | in_count, | ||
Cylinder::Component | in_apply_to, | ||
MaterialTypeArray & | out_types, | ||
RGBColorArray & | out_rgb_colors, | ||
FloatArray & | out_indices | ||
) | const |
Shows the vertex colors on a range of vertices starting at the specified offset which apply to the specified cylinder component.
in_start | The offset into the vertices for this CylinderKey at which to start showing colors. This value must be such that in_start<point_count for showing to succeed. |
in_count | The number of colors to show. This value must be such that in_start+in_count<=point_count for showing to succeed. |
in_apply_to | The cylinder component the colors should apply to. |
out_types | The types of vertex colors for each vertex in the specified range. If a vertex in the specified range does not have a vertex color set for the specified cylinder component, the entry in this array will be Material::Type::Nothing. |
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::ExplicitRGBColor. |
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. |
CylinderKey& HPS::CylinderKey::UnsetVertexColors | ( | ) |
Removes all vertex colors (RGB colors or material indices) for all cylinder components.
CylinderKey& HPS::CylinderKey::UnsetVertexColors | ( | Cylinder::Component | in_apply_to | ) |
Removes all vertex colors (RGB colors or material indices) for the specified cylinder component.
in_apply_to | The cylinder component for which to remove the colors. |
CylinderKey& HPS::CylinderKey::UnsetVertexColorsByRange | ( | size_t | in_start, |
size_t | in_count | ||
) |
Removes the specified range of vertex colors (RGB colors or material indices) for all cylinder components starting at the specified offset.
in_start | The offset into the vertices for this CylinderKey at which to start removing colors. This value must be such that in_start<point_count for unsetting to succeed. |
in_count | The number of vertex colors to remove for this CylinderKey. This value must be such that in_start+in_count<=point_count for unsetting to succeed. |
CylinderKey& HPS::CylinderKey::UnsetVertexColorsByRange | ( | size_t | in_start, |
size_t | in_count, | ||
Cylinder::Component | in_apply_to | ||
) |
Removes the specified range of vertex colors (RGB colors or material indices) for the specified cylinder component starting at the specified offset.
in_start | The offset into the vertices for this CylinderKey at which to start removing colors. This value must be such that in_start<point_count for unsetting to succeed. |
in_count | The number of vertex colors to remove for this CylinderKey. This value must be such that in_start+in_count<=point_count for unsetting to succeed. |
in_apply_to | The cylinder component for which to remove the colors. |