#include <hps.h>

Inheritance diagram for HPS::Key:
HPS::Object HPS::GeometryKey HPS::IncludeKey HPS::PortfolioKey HPS::SegmentKey HPS::StyleKey HPS::CircleKey HPS::CircularArcKey HPS::CircularWedgeKey HPS::CuttingSectionKey HPS::CylinderKey HPS::DistantLightKey HPS::EllipseKey HPS::EllipticalArcKey HPS::GridKey HPS::InfiniteLineKey HPS::LineKey HPS::MarkerKey HPS::MeshKey HPS::NURBSCurveKey HPS::NURBSSurfaceKey HPS::PolygonKey HPS::ReferenceKey HPS::ShellKey HPS::SphereKey HPS::SpotlightKey HPS::TextKey HPS::WindowKey

Public Member Functions

virtual void Assign (Key const &in_that)
 
Key CopyTo (SegmentKey const &in_destination) const
 
void Delete ()
 
bool Equals (Key const &in_that) const
 
size_t GetHash () const
 
bool HasOwner () const
 
 Key ()
 
 Key (Key const &in_that)
 
 Key (Control const &in_control)
 
 Key (Key &&in_that)
 
void MoveTo (SegmentKey const &in_new_owner)
 
HPS::Type ObjectType () const
 
bool operator!= (Key const &in_that) const
 
Keyoperator= (Key &&in_that)
 
Keyoperator= (Key const &in_that)
 
bool operator== (Key const &in_that) const
 
SegmentKey Owner () const
 
SegmentKey Up () const
 
virtual ~Key ()
 
- Public Member Functions inherited from HPS::Object
virtual bool Empty () const
 
intptr_t GetClassID () const
 
intptr_t GetInstanceID () const
 
bool HasType (HPS::Type in_mask) const
 
 Object (Object const &that)
 
 Object (Object &&in_that)
 
Objectoperator= (Object const &other_object)
 
Objectoperator= (Object &&in_that)
 
virtual void Reset ()
 
virtual HPS::Type Type () const
 

Static Public Attributes

static const HPS::Type staticType = HPS::Type::Key
 
- Static Public Attributes inherited from HPS::Object
static const HPS::Type staticType = HPS::Type::None
 

Additional Inherited Members

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

Detailed Description

The Key class is the common base class of all Visualize keys. Keys are handles to database objects and are the primary way of interacting with them (you would never modify a database object directly). The underlying mechanism is a smart pointer (assignment operator works like regular pointers). Attempting to use a deleted or otherwise invalid key will result in an InvalidObjectException.

Constructor & Destructor Documentation

◆ Key() [1/4]

HPS::Key::Key ( )

An uninitialized key refers to no database object and Type() will return Type::None.

◆ Key() [2/4]

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

Shares a reference to a database object referred to by in_that.

◆ Key() [3/4]

HPS::Key::Key ( Control const &  in_control)
explicit

Initializes a key associated to the Control in_control.

◆ Key() [4/4]

HPS::Key::Key ( Key &&  in_that)

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

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

◆ ~Key()

virtual HPS::Key::~Key ( )
virtual

Releases a reference to this key, but it does not remove the key from the database.

Member Function Documentation

◆ Assign()

virtual void HPS::Key::Assign ( Key const &  in_that)
virtual

Share the underlying smart-pointer of the Key source.

Parameters
in_thatThe Key source of the assignment.

◆ CopyTo()

Key HPS::Key::CopyTo ( SegmentKey const &  in_destination) const

Performs a deep copy of the database object referred to by this key into a segment pointed to by in_destination. If the copied key includes other keys or has child nodes, they will be recursively copied. Include links will also be copied, however, link targets will not be copied.

Returns
The key of the new copy.

◆ Delete()

void HPS::Key::Delete ( )

Removes the database object referred to by this key.

◆ Equals()

bool HPS::Key::Equals ( Key const &  in_that) const

Determines whether the database objects pointed to by this key and in_that are the same. Empty keys (when key.Empty() returns true) are never equal to any key, even when the key is compared against itself (they act analogously to NaN comparisons in this case.)

◆ GetHash()

size_t HPS::Key::GetHash ( ) const

Returns a hash code for the key.

Returns
The size_t hash code.

◆ HasOwner()

bool HPS::Key::HasOwner ( ) const
Returns
Indicates whether this key has an owner or not.

◆ MoveTo()

void HPS::Key::MoveTo ( SegmentKey const &  in_new_owner)

Moves the database object referred to by this key into a new containing segment pointed to by in_new_owner.

◆ ObjectType()

HPS::Type HPS::Key::ObjectType ( ) const
inlinevirtual

◆ operator!=()

bool HPS::Key::operator!= ( Key const &  in_that) const

Determines whether the database objects pointed to by this key and in_that are the same.

◆ operator=() [1/2]

Key& HPS::Key::operator= ( Key &&  in_that)

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

Parameters
in_thatAn rvalue reference to an Key to take the impl from.
Returns
A reference to this Key.

◆ operator=() [2/2]

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

Share the underlying smart-pointer of the Key source.

Parameters
in_thatThe Key source of the assignment.
Returns
A reference to this Key.

◆ operator==()

bool HPS::Key::operator== ( Key const &  in_that) const

Determines whether the database objects pointed to by this key and in_that are the same.

◆ Owner()

SegmentKey HPS::Key::Owner ( ) const
Returns
The segment containing this key.

◆ Up()

SegmentKey HPS::Key::Up ( ) const
Returns
The segment containing this key.

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