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 specifies 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 π / 180.0 radians from the SE_REF_VEC_TYP_LIGHT_DIRECTION vector in the horizontal direction, the final intensity is 0.35.

    At 25 π / 180.0 radians from the SE_REF_VEC_TYP_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 π / 180.0 radians from the SE_REF_VEC_TYP_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 π / 180.0 radians from the SE_REF_VEC_TYP_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 π / 180.0 radians from the SE_REF_VEC_TYP_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 π / 180.0 radians from the SE_REF_VEC_TYP_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 π / 180.0 radians from the SE_REF_VEC_TYP_LIGHT_DIRECTION vector in the vertical direction, towards the positive end of the SE_REF_VEC_TYP_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 is 0.0.

    At 15 π / 180.0 radians from the SE_REF_VEC_TYP_LIGHT_DIRECTION vector in the vertical direction, towards the positive end of the SE_REF_VEC_TYP_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 is 0.0.

FAQs

No FAQs supplied.

Constraints

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 the value of the has_plane field 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, the value of the plane_angular_offset field
 defines the angular offset of the plane measured in radians from the
 <Lobe Data> instance'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.

 The value of the plane_angular_offset field is ignored if
 has_plane is SE_FALSE.

use_full_intensity

 If the value of the use_full_intensity field 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

 The value of the minimum_colour_intensity field is used in
 conjunction with the primary colour's intensity value. If
 the primary colour is represented by a <Colour Index> instance,
 the full intensity is specified by its intensity_level field.
 If the primary colour is represented by an <Inline Colour>
 instance, the full intensity is 1.0.

 A location in the direct path of the <Lobe Data> instance'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 the value of the invisible_behind field 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: July 16, 2004 Copyright © 2004 SEDRIS