DistantLightKey

class 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 also

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.

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