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
- 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
-
void Consume(DistantLightKit &in_kit)