SpotlightKit

class HPS::SpotlightKit : public HPS::Kit

The HPS::SpotlightKit class is a user space object. It is the kit counterpart to a HPS::SpotlightKey. Calling HPS::SpotlightKit::GetDefault() will return a kit with values found in this table.

Public Functions

void Consume(SpotlightKit &in_kit)

Copies the source SpotlightKit into this SpotlightKit and resets the source kit.

Parameters

in_kit – The source SpotlightKit to consume.

virtual bool Empty() const

Indicates whether this SpotlightKit has any values set on it.

Returns

true if no values are set on this SpotlightKit, false otherwise.

bool Equals(SpotlightKit const &in_kit) const

Check if the source SpotlightKit is equivalent to this SpotlightKit.

Parameters

in_kit – The source SpotlightKit to compare to this SpotlightKit.

Returns

true if the objects are equivalent, false otherwise.

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.

bool operator!=(SpotlightKit const &in_kit) const

Check if the source SpotlightKit is not equivalent to this SpotlightKit.

Parameters

in_kit – The source SpotlightKit to compare to this SpotlightKit.

Returns

true if the objects are not equivalent, false otherwise.

SpotlightKit &operator=(SpotlightKit &&in_that)

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

Parameters

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

Returns

A reference to this SpotlightKit.

SpotlightKit &operator=(SpotlightKit const &in_kit)

Copies the source SpotlightKit into this SpotlightKit.

Parameters

in_kit – The source SpotlightKit to copy.

Returns

A reference to this SpotlightKit.

bool operator==(SpotlightKit const &in_kit) const

Check if the source SpotlightKit is equivalent to this SpotlightKit.

Parameters

in_kit – The source SpotlightKit to compare to this SpotlightKit.

Returns

true if the objects are equivalent, false otherwise.

void Set(SpotlightKit const &in_kit)

Copies the source SpotlightKit into this SpotlightKit.

Parameters

in_kit – The source SpotlightKit to copy.

SpotlightKit &SetCameraRelative(bool in_state)

Sets the camera-relative setting for this SpotlightKit. This defines what the implied units of the target and position will be.

See

SetPosition

See

SetTarget

Parameters

in_state – Whether the coordinates of the position and target for this SpotlightKit are treated as being in object space or camera-relative space.

Returns

A reference to this SpotlightKit.

SpotlightKit &SetColor(RGBAColor const &in_rgba_color)

Sets the RGBA color to use for this SpotlightKit.

Parameters

in_rgba_color – The RGBA color to use for this SpotlightKit.

Returns

A reference to this SpotlightKit.

SpotlightKit &SetColorByIndex(float in_index)

Sets the color index to use for this SpotlightKit.

Parameters

in_index – The color index to use for this SpotlightKit.

Returns

A reference to this SpotlightKit.

SpotlightKit &SetConcentration(float in_concentration)

Sets the concentration for this SpotlightKit. The concentration defines the rate at which light intensity decreases with increasing angular distance from the light direction vector. This effect works in addition to the decrease that occurs between the inner and outer cones.

Parameters

in_concentration – The concentration for the SpotlightKit. This value must be non-negative. A value of 0.0f defines no intensity decrease (besides that between the inner and outer cone), and larger values will concentrate intensity closer to the light direction vector.

Returns

A reference to this SpotlightKit.

SpotlightKit &SetInnerCone(float in_size, HPS::Spotlight::InnerConeUnits in_units = HPS::Spotlight::InnerConeUnits::Percent)

Sets the size of the inner cone for this SpotlightKit. The inner cone defines the conic region inside the conic region defined by the outer cone at which the spotlight intensity will decrease linearly to zero at the outer cone’s edge. As such, the size of the inner cone should be no larger than the outer cone.

Parameters
Returns

A reference to this SpotlightKit.

SpotlightKit &SetOuterCone(float in_size, HPS::Spotlight::OuterConeUnits in_units = HPS::Spotlight::OuterConeUnits::Degrees)

Sets the size of the outer cone for this SpotlightKit. The outer cone defines the conic region inside of which surfaces will be illuminated by this spotlight. Any surface outside this conic region will not be illuminated by this spotlight.

Parameters
Returns

A reference to this SpotlightKit.

SpotlightKit &SetPosition(HPS::Point const &in_position)

Sets the position of the light source for this SpotlightKit.

See

SetCameraRelative

Parameters

in_position – The position of the light source for this SpotlightKit. The point will either be treated as being in object space or in camera-relative units depending on the setting passed to SetCameraRelative.

Returns

A reference to this SpotlightKit.

SpotlightKit &SetPriority(int in_priority)

Assigns a specific drawing priority value to the SpotlightKit. It affects the order in which the contents of this segment are drawn if and only if the rendering algorithm is set to Priority.

See

SubwindowKit::SetPriority()

See

SubwindowKit::SetRenderingAlgorithm()

Parameters

in_priority – The drawing priority, higher priority items are drawn on top of lower priority items.

Returns

A reference to this object.

SpotlightKit &SetTarget(HPS::Point const &in_target)

Sets the target coordinate towards which the light source points for this SpotlightKit.

See

SetCameraRelative

Parameters

in_target – The target coordinate towards which the light source points for this SpotlightKit. The point will either be treated as being in object space or in camera-relative units depending on the setting passed to SetCameraRelative.

Returns

A reference to this SpotlightKit.

SpotlightKit &SetUserData(intptr_t in_index, ByteArray const &in_data)

Sets user data on this kit.

Parameters
  • in_index – The index of the user data to set.

  • in_data – The bytes of user data to set.

Returns

A reference to this kit.

SpotlightKit &SetUserData(intptr_t in_index, size_t in_bytes, byte const in_data[])

Sets user data on this kit.

Parameters
  • in_index – The index of the user data to set.

  • in_bytes – The number of bytes of user data to set.

  • in_data – The bytes of user data to set.

Returns

A reference to this kit.

SpotlightKit &SetUserData(IntPtrTArray const &in_indices, ByteArrayArray const &in_data)

Sets user data on this kit.

Parameters
  • in_indices – An array of user data indices to set.

  • in_data – An array of bytes of user data to set.

Returns

A reference to this kit.

void Show(SpotlightKit &out_kit) const

Copies this SpotlightKit into the given SpotlightKit.

Parameters

out_kit – The SpotlightKit to populate with the contents of this SpotlightKit.

bool ShowCameraRelative(bool &out_state) const

Shows the camera-relative setting for this SpotlightKit.

Parameters

out_state – Whether the coordinates of the position and target for this SpotlightKit are treated as being in object space or camera-relative space.

Returns

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

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

Shows the color for this SpotlightKit.

Parameters
  • out_type – The type of color for the spotlight.

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

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

Returns

true if a color was set, false otherwise.

bool ShowConcentration(float &out_concentration) const

Shows the concentration for this SpotlightKit.

Parameters

out_concentration – The concentration for this SpotlightKit.

Returns

true if a concentration was set, false otherwise.

bool ShowInnerCone(float &out_size, HPS::Spotlight::InnerConeUnits &out_units) const

Shows the inner cone for this SpotlightKit.

Parameters
  • out_size – The size of the inner cone for this SpotlightKit.

  • out_units – The units for the size of the inner cone for this SpotlightKit.

Returns

true if an inner cone was set, false otherwise.

bool ShowOuterCone(float &out_size, HPS::Spotlight::OuterConeUnits &out_units) const

Shows the outer cone for this SpotlightKit.

Parameters
  • out_size – The size of the outer cone for this SpotlightKit.

  • out_units – The units for the size of the outer cone for this SpotlightKit.

Returns

true if an outer cone was set, false otherwise.

bool ShowPosition(HPS::Point &out_position) const

Shows the position of the light source for this SpotlightKit.

Parameters

out_position – The position of the light source for this SpotlightKit.

Returns

true if a light source position was set, false otherwise.

bool ShowPriority(int &out_priority) const

Shows the drawing priority.

Parameters

out_priority – The drawing priority, higher priority items are drawn on top of lower priority items.

Returns

true if a drawing priority was specified, false otherwise.

bool ShowTarget(HPS::Point &out_target) const

Shows the target coordinate towards which the light source points for this SpotlightKit.

Parameters

out_target – The target coordinate towards which the light source points for this SpotlightKit.

Returns

true if a target was set, false otherwise.

bool ShowUserData(intptr_t in_index, ByteArray &out_data) const

Shows the user data at a given index for this kit.

Parameters
  • in_index – The index of the user data to show.

  • out_data – The user data at the given index.

Returns

true if there is user data at the given index, false otherwise.

bool ShowUserData(IntPtrTArray &out_indices, ByteArrayArray &out_data) const

Shows all user data for this kit.

Parameters
  • out_indices – An array of all user data indices set on this kit.

  • out_data – An array of all user data set on this kit.

Returns

true if there is user data on this kit, false otherwise.

size_t ShowUserDataCount() const

Get the number of user data indices set on this kit.

bool ShowUserDataIndices(IntPtrTArray &out_indices) const

Shows the indices of all user data set on this kit.

Parameters

out_indices – The user data indices set on this kit.

Returns

The number of user data indices set on this kit.

SpotlightKit()

The default constructor creates an empty SpotlightKit object.

SpotlightKit(SpotlightKit &&in_that)

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

Parameters

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

SpotlightKit(SpotlightKit const &in_kit)

The copy constructor creates a new SpotlightKit object that contains the same settings as the source SpotlightKit.

Parameters

in_kit – The source SpotlightKit to copy.

SpotlightKit &UnsetAllUserData()

Removes all user data from this kit.

Returns

A reference to this kit.

SpotlightKit &UnsetCameraRelative()

Removes the camera-relative setting for this SpotlightKit.

Returns

A reference to this SpotlightKit.

SpotlightKit &UnsetColor()

Removes the color (RGBA or material index) for this SpotlightKit.

Returns

A reference to this SpotlightKit.

SpotlightKit &UnsetConcentration()

Removes the concentration for this SpotlightKit.

Returns

A reference to this SpotlightKit.

SpotlightKit &UnsetEverything()

Removes all settings from the SpotlightKit.

Returns

A reference to this SpotlightKit.

SpotlightKit &UnsetInnerCone()

Removes the inner-cone size specification for this SpotlightKit.

Returns

A reference to this SpotlightKit.

SpotlightKit &UnsetOuterCone()

Removes the outer-cone size specification for this SpotlightKit.

Returns

A reference to this SpotlightKit.

SpotlightKit &UnsetPosition()

Removes the light source position for this SpotlightKit.

Returns

A reference to this SpotlightKit.

SpotlightKit &UnsetPriority()

Removes the drawing priority setting.

Returns

A reference to this SpotlightKit.

SpotlightKit &UnsetTarget()

Removes the target coordinate towards which the light source points for this SpotlightKit.

Returns

A reference to this SpotlightKit.

SpotlightKit &UnsetUserData(intptr_t in_index)

Removes the user data at the given index from this kit.

Parameters

in_index – The index of the user data to remove.

Returns

A reference to this kit.

SpotlightKit &UnsetUserData(IntPtrTArray const &in_indices)

Removes the user data at the given indices from this kit.

Parameters

in_indices – The indices of the user data to remove.

Returns

A reference to this kit.

SpotlightKit &UnsetUserData(size_t in_count, intptr_t const in_indices[])

Removes the user data at the given indices from this kit.

Parameters
  • in_count – The size of the following array.

  • in_indices – The indices of the user data to remove.

Returns

A reference to this kit.

virtual ~SpotlightKit()

Public Static Functions

static SpotlightKit GetDefault()

Creates a SpotlightKit which contains the default settings. The returned object will not necessarily have values set for every option, but it will have settings for those options where it is reasonable to have a default.

Returns

A SpotlightKit with the default settings.

Public Static Attributes

static const HPS::Type staticType = HPS::Type::SpotlightKit