DistantLightKey

class HPS::DistantLightKey : public HPS::GeometryKey

The DistantLightKey class is a smart pointer to a database object. It is a handle to a distant light inserted via SegmentKey::InsertDistantLight.

Public Functions

void Consume(DistantLightKit &in_kit)

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

DistantLightKey()

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

DistantLightKey(DistantLightKey &&in_that)

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

Parameters

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

DistantLightKey(DistantLightKey const &in_that)

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

Parameters

in_that – The source DistantLightKey to copy.

explicit DistantLightKey(Key const &in_that)

This constructor creates a DistantLightKey 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 DistantLight key. Otherwise the copy will fail and the resulting DistantLightKey will be invalid.

Parameters

in_key – The source Key to copy.

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.

DistantLightKey &operator=(DistantLightKey &&in_that)

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

Parameters

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

Returns

A reference to this DistantLightKey.

DistantLightKey &operator=(DistantLightKey const &in_that)

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

Parameters

in_that – The source DistantLightKey for the assignment.

Returns

A reference to this DistantLightKey.

void Set(DistantLightKit const &in_kit)

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

Parameters

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

DistantLightKey &SetCameraRelative(bool in_state)

Sets the camera-relative setting for this DistantLightKey.

See

SetDirection

Parameters

in_state – Whether the direction of this DistantLightKey is treated as being in object space or camera-relative space.

Returns

A reference to this DistantLightKey.

DistantLightKey &SetColor(RGBAColor const &in_rgba_color)

Sets the RGBA color to use for this DistantLightKey.

Parameters

in_rgba_color – The RGBA color to use for this DistantLightKey.

Returns

A reference to this DistantLightKey.

DistantLightKey &SetColorByIndex(float in_index)

Sets the color index to use for this DistantLightKey.

Parameters

in_index – The color index to use for this DistantLightKey.

Returns

A reference to this DistantLightKey.

DistantLightKey &SetDirection(HPS::Vector const &in_vector)

Sets the direction in which this DistantLightKey lies. The rays emitted by this light will travel in the opposite direction of this vector.

See

SetCameraRelative

Parameters

in_vector – The direction in which this DistantLightKey lies. The vector will either be treated as being in object space or in camera-relative units depending on the setting passed SetCameraRelative.

Returns

A reference to this DistantLightKey.

void Show(DistantLightKit &out_kit) const

Copy the contents of this DistantLightKey into the specified kit.

Parameters

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

bool ShowCameraRelative(bool &out_state) const

Shows the camera-relative setting for this DistantLightKey.

Parameters

out_state – Whether the direction of this DistantLightKey is treated as being in object space or camera-relative space.

Returns

true if a camera-relative setting was specified, false otherwise.

bool ShowColor(Material::Type &out_type, RGBAColor &out_rgba_color, float &out_index) const

Shows the color for this DistantLightKey.

Parameters
  • out_type – The type of color for the distant light.

  • out_rgba_color – The RGBA color for the distant light. This is only valid if out_type is Material::Type::RGBAColor.

  • out_index – The material index for the distant light. This is only valid if out_type is Material::Type::MaterialIndex.

Returns

true if a color was set, false otherwise.

bool ShowDirection(HPS::Vector &out_vector) const

Shows the direction in which this DistantLightKey lies.

Parameters

out_vector – The direction in which this DistantLightKey lies.

Returns

true if a direction was set, false otherwise.

DistantLightKey &UnsetColor()

Removes the color (RGBA or material index) set on this DistantLightKey.

Returns

A reference to this DistantLightKey.

~DistantLightKey()

Public Static Attributes

static const HPS::Type staticType = HPS::Type::DistantLightKey