The SEDRIS Data Representation Model
APPENDIX A - Classes
Cone Directional Light

Class Name: Cone Directional Light

Superclass - <Directional Light Behaviour>

Subclasses

This DRM class is concrete and has no subclasses.

Definition

An instance of this DRM class is a <Directional Light Behaviour>, the intensity of which varies depending on the observer's position relative to the light's location, direction, and shape. This light takes the shape of a cone, which can be elliptical.

A <Cone Directional Light> instance can specify a plane that divides the light cone into an upper and a lower section along the body of the cone. The upper section receives the primary colour while the lower section receives the secondary colour, if one is used.

Primary Page in DRM Diagram:

Secondary Pages in DRM Diagram:

This class appears on only one page of the DRM class diagram.

Example

  1. A 100 kilometre highway has regularly spaced lampposts. Each lamp has <Cone Directional Light> with <Lobe Data> pointing down. If all the lamps use the same <Cone Directional Light>, instance, then all the directions will be parallel. Due to the curvature of the Earth, very few of the lights will shine directly down; the others will be slightly skewed. If, instead, the set of lamps is divided into smaller contiguous groups, each with its own <Cone Directional Light> instance using a <Location> near the centre of the group, the skewing effect will be greatly minimized.

  2. Consider a <Cone Directional Light> instance with a primary colour that is a <Colour Index> with intensity_level = 0.8.

    Cone Directional Light, Example 2

    equation:
    final_intensity = minimum_colour_intensity + ((((width / 2.0) - degrees_away_from_direction_vector) / (width / 2.0)) * (full_intensity - minimum_colour_intensity))

    At 15 degrees from the light direction vector in the horizontal direction, the final intensity is 0.35.

    At 25 degrees from the light direction vector in the horizontal direction, the final_intensity is 0.2, because that position lies outside the horizontal width of the lobe.

  3. Consider the following <Cone Directional Light> instance, with its primary colour specified by an <Inline Colour>, so that the full intensity is 1.0.

    Cone Directional Light, Example 3

    At 40 degrees from the light direction vector in the horizontal direction, the final_intensity is 1.0, because use_full_intensity is SE_TRUE and the position lies inside the horizontal width of the lobe.

    At 50 degrees from the light direction vector in the horizontal direction, the final_intensity is 0.5, because the position is outside the horizontal width.

  4. Consider a <Cone Directional Light> instance with both a primary and a secondary colour, each of which is a <Colour Index> instance with intensity 0.8

    Cone Directional Light, Example 4

    At 40 degrees from the light direction vector in the vertical direction, the primary colour is in effect with intensity 0.8, because the position is inside the vertical width and use_full_intensity is SE_TRUE.

    At 40 degrees from the light direction vector in the horizontal direction, the secondary colour is in effect with intensity 0.8, because the position is outside the horizontal width and minimum_colour_intensity = 0.0.

  5. Consider a <Cone Directional Light> instance with both a primary and a secondary colour, each of which is a <Colour Index> instance with intensity 0.8

    Cone Directional Light, Example 5

    At 25 degrees from the light direction vector in the vertical direction, towards the positive end of the vertical axis vector, the full intensity of the primary colour is 0.8, because this position lies in the upper section of the cone and the minimum_colour_intensity value is 0.0.

    At 15 degrees from the light direction vector in the vertical direction, towards the positive end of the vertical axis vector, the full intensity of the secondary colour is 0.8, because this position lies in the lower section of the cone and the minimum_colour_intensity value is 0.0.

FAQs

No FAQs supplied.

Constraints

None.

Composed of (two-way)(inherited)

Component of (two-way)(inherited)

Inherited Field Elements

This class has no inherited field elements.

Field Elements

SE_Boolean has_plane; (notes)
SE_Long_Float plane_angular_offset; (notes)
SE_Boolean use_full_intensity; (notes)
SE_Long_Float minimum_colour_intensity; (notes)
SE_Boolean invisible_behind; (notes)

Notes

Composed of Notes


Lobe_Data

 This specifies the lobe shape.

Fields Notes


has_plane

 If this value is SE_TRUE, a plane, based at the cone apex and
 extending along the body of the cone, divides the light cone into an
 upper and a lower section. The upper section receives the primary
 colour. If a secondary colour is used, the lower section receives it.

plane_angular_offset

 If has_plane is SE_TRUE, this value defines the angular offset of
 the plane measured in degrees (-180, 180) from the <Lobe Data>'s
 SE_REF_VEC_TYP_LIGHT_DIRECTION vector and along its
 SE_REF_VEC_TYP_VERTICAL_AXIS vector.

 The resulting upper section of the light is taken to be
 between the plane and the positive end of the
 SE_REF_VEC_TYP_VERTICAL_AXIS vector.

 This value is ignored if has_plane is SE_FALSE.

use_full_intensity

 If this value is SE_TRUE, it indicates that the full intensity of
 the light is shown in the cone shaped area. Otherwise, the intensity
 of the light decreases (towards the minimum_colour_intensity
 value) as one moves away from the SE_REF_VEC_TYP_LIGHT_DIRECTION
 vector.

minimum_colour_intensity

 This value, which shall be between [0.0, 1.0], is used in conjunction
 with the primary colour's intensity value. If the primary colour is a
 <Colour Index>, the full intensity is specified by its intensity_level
 field. If the primary colour is an <Inline Colour>, the full intensity
 is 1.0.

 A location in the direct path of the <Lobe Data>'s
 SE_REF_VEC_TYP_LIGHT_DIRECTION vector receives the full intensity
 value. If use_full_intensity is SE_FALSE, the intensity decreases
 with increasing distance from the SE_REF_VEC_TYP_LIGHT_DIRECTION
 vector, until the boundary specified by the horizontal and
 vertical <Lobe Data> widths is reached. Outside the lobe, the
 intensity is minimum_colour_intensity.

 If the minimum_colour_intensity value is 0.0, the secondary colour
 (if present) will be seen outside the lobe. If no secondary colour
 is present, nothing is visible outside the lobe.

invisible_behind

 If this value is SE_TRUE, the directional light is invisible
 when viewed from behind the plane of the directional light.

Prev: Colour Table Library. Next: Conformal Behaviour. Up:Index.

Last updated: May 15, 2003 Copyright © 2003 SEDRIS™