Public Member Functions | List of all members
HPS::InfiniteLineKey Class Reference

#include <hps.h>

Inheritance diagram for HPS::InfiniteLineKey:
HPS::GeometryKey HPS::Key HPS::Object

Public Member Functions

 InfiniteLineKey ()
 
 InfiniteLineKey (Key const &in_that)
 
 InfiniteLineKey (InfiniteLineKey const &in_that)
 
InfiniteLineKeyoperator= (InfiniteLineKey const &in_that)
 
 InfiniteLineKey (InfiniteLineKey &&in_that)
 
InfiniteLineKeyoperator= (InfiniteLineKey &&in_that)
 
HPS::Type ObjectType () const
 
void Consume (InfiniteLineKit &in_kit)
 
void Set (InfiniteLineKit const &in_kit)
 
void Show (InfiniteLineKit &out_kit) const
 
InfiniteLineKeySetFirst (Point const &in_first)
 
InfiniteLineKeySetSecond (Point const &in_second)
 
InfiniteLineKeySetType (InfiniteLine::Type in_type)
 
bool ShowFirst (Point &out_first) const
 
bool ShowSecond (Point &out_second) const
 
bool ShowType (InfiniteLine::Type &out_type) const
 
- Public Member Functions inherited from HPS::GeometryKey
 GeometryKey ()
 
 GeometryKey (Key const &in_that)
 
 GeometryKey (GeometryKey const &in_that)
 
GeometryKeyoperator= (GeometryKey const &in_that)
 
 GeometryKey (GeometryKey &&in_that)
 
GeometryKeyoperator= (GeometryKey &&in_that)
 
size_t ShowReferrers (SegmentKeyArray &out_segments) const
 
size_t ShowReferrers (ReferenceKeyArray &out_references) const
 
GeometryKeySetPriority (int in_priority)
 
GeometryKeyUnsetPriority ()
 
bool ShowPriority (int &out_priority) const
 
GeometryKeySetUserData (intptr_t in_index, size_t in_bytes, byte const in_data[])
 
GeometryKeySetUserData (intptr_t in_index, ByteArray const &in_data)
 
GeometryKeySetUserData (IntPtrTArray const &in_indices, ByteArrayArray const &in_data)
 
GeometryKeyUnsetUserData (intptr_t in_index)
 
GeometryKeyUnsetUserData (size_t in_count, intptr_t const in_indices[])
 
GeometryKeyUnsetUserData (IntPtrTArray const &in_indices)
 
GeometryKeyUnsetAllUserData ()
 
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
 
- Public Member Functions inherited from HPS::Key
 Key ()
 
 Key (Key const &in_that)
 
 Key (Control const &in_control)
 
 Key (Key &&in_that)
 
Keyoperator= (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
 
Keyoperator= (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
 
- Public Member Functions inherited from HPS::Object
 Object (Object const &that)
 
Objectoperator= (Object const &other_object)
 
 Object (Object &&in_that)
 
Objectoperator= (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

- Static Public Member Functions inherited from HPS::Object
template<typename T >
static intptr_t ClassID ()
 

Detailed Description

The InfiniteLineKey class is a smart pointer to a database object. It is a handle to an infinite line or ray inserted via SegmentKey::InsertInfiniteLine.

Constructor & Destructor Documentation

HPS::InfiniteLineKey::InfiniteLineKey ( )

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

HPS::InfiniteLineKey::InfiniteLineKey ( Key const &  in_that)
explicit

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

Parameters
in_thatThe source Key to copy.
HPS::InfiniteLineKey::InfiniteLineKey ( InfiniteLineKey const &  in_that)

The copy constructor creates an InfiniteLineKey object that shares the underlying smart-pointer of the source InfiniteLineKey.

Parameters
in_thatThe source InfiniteLineKey to copy.
HPS::InfiniteLineKey::InfiniteLineKey ( InfiniteLineKey &&  in_that)

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

Parameters
in_thatAn rvalue reference to a InfiniteLineKey to take the impl from.

Member Function Documentation

void HPS::InfiniteLineKey::Consume ( InfiniteLineKit in_kit)

Completely replaces all settings on this InfiniteLineKey with those set on the specified kit and resets the kit.

Parameters
in_kitThe kit from which to get the settings to replace on this InfiniteLineKey.
HPS::Type HPS::InfiniteLineKey::ObjectType ( ) const
inlinevirtual

This function returns the type the object, as declared. This does not necessarily give the true type of the underlying object.

Returns
The declared type of the object in question, which may differ from the true, underlying type.

Reimplemented from HPS::GeometryKey.

InfiniteLineKey& HPS::InfiniteLineKey::operator= ( InfiniteLineKey const &  in_that)

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

Parameters
in_thatThe source InfiniteLineKey for the assignment.
Returns
A reference to this InfiniteLineKey.
InfiniteLineKey& HPS::InfiniteLineKey::operator= ( InfiniteLineKey &&  in_that)

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

Parameters
in_thatAn rvalue reference to an InfiniteLineKey to take the impl from.
Returns
A reference to this InfiniteLineKey.
void HPS::InfiniteLineKey::Set ( InfiniteLineKit const &  in_kit)

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

Parameters
in_kitThe kit from which to get the settings to replace on this InfiniteLineKey.
InfiniteLineKey& HPS::InfiniteLineKey::SetFirst ( Point const &  in_first)

Sets the first point for this InfiniteLineKey.

Parameters
in_firstThe first point for this InfiniteLineKey. If the type is InfiniteLine::Type::Ray, this will be the point at which the ray starts.
Returns
A reference to this InfiniteLineKey.
InfiniteLineKey& HPS::InfiniteLineKey::SetSecond ( Point const &  in_second)

Sets the second point for this InfiniteLineKey.

Parameters
in_secondThe second point for this InfiniteLineKey. If the type is InfiniteLine::Type::Ray, this will be the point through which the ray passes.
Returns
A reference to this InfiniteLineKey.
InfiniteLineKey& HPS::InfiniteLineKey::SetType ( InfiniteLine::Type  in_type)

Sets the type of this InfiniteLineKey.

Parameters
in_typeThe type of this InfiniteLineKey.
Returns
A reference to this InfiniteLineKey.
void HPS::InfiniteLineKey::Show ( InfiniteLineKit out_kit) const

Copy the contents of this InfiniteLineKey into the specified kit.

Parameters
out_kitThe kit to populate with the contents of this InfiniteLineKey.
bool HPS::InfiniteLineKey::ShowFirst ( Point out_first) const

Shows the first point for this InfiniteLineKey.

Parameters
out_firstThe first point for this InfiniteLineKey.
Returns
true if a first point was set, false otherwise.
bool HPS::InfiniteLineKey::ShowSecond ( Point out_second) const

Shows the second point for this InfiniteLineKey.

Parameters
out_secondThe second point for this InfiniteLineKey.
Returns
true if a second point was set, false otherwise.
bool HPS::InfiniteLineKey::ShowType ( InfiniteLine::Type out_type) const

Shows the type of this InfiniteLineKey.

Parameters
out_typeThe type of this InfiniteLineKey.
Returns
true if a type was set, false otherwise.

The documentation for this class was generated from the following file: