Class Name: Image

Superclass - SEDRIS Abstract Base

Definition

One or more MIP levels of texels. Images can have 3 dimensions.

Primary Page in DRM Diagram:

Secondary Pages in DRM Diagram:

Example

  1. A brick Image that is repeated over the surface of a Polygon to represent a brick wall.
  2. An Image of a tree that when applied to a Polygon and combined with Translucency creates a flat version of a tree.
  3. The Image mapped to the surface of a Dismounted Infantryman icon.
  4. The sequence of Image(s) mapped to a Polygon to represent a television.
  5. Consider an Image that has 3 Property Table References:
    (NOTE: You may have as many Property Table References as you want, and the bits_of_material# will handle them; you are NOT restricted to 3).

                             Image
             ------------------------------------
             |                 |                 |
           PT Ref           PT Ref             PT Ref
       (specifies Axis)  (specifies Axis)  (specifies Axis)
       (specifies ECC)   (specifies ECC)   (specifies ECC)
             |                 |                 |
        (Infrared table)    (NVG Table)       (SMC Table)
    
        1   xx                xx                 yy
        2   xx                xx                 yy
        3   xx                xx                 yy
        4   xx                xx                 wood
        5   xx                xx                 yy
        6   xx                xx                 concrete
        7   xx                xx                 glass
        8   xx                xx                 yy
    

    1. Consider the case of 1 material. A given texel will contain a single integer, which is used in place of the index_on_axis field for all the Property Table References of the Image.
    2. Consider the case of 2 materials. A given texel will contain 3 integers, 2 of which are used in place of the index_on_axis field for all the Property Table References of the Image, and a third integer, which specifies the percentage of the 2nd material. For a given texel, say the numbers are 7 6 50 ; then we have something that's 50% glass and 50% concrete.
    3. Consider the case of 3 materials. A given texel will contain 5 integers, 3 of which are used in place of the index_on_axis field for all the Property Table References of the Image, and 2 of which specify the percentages of material 2 and 3. For a given texel, say the numbers are 4 6 7 20 30; then we have something at that texel that is 50% wood, 20% concrete, and 30% glass.

FAQs

Hey! I'm a data provider - where do I store the texels? I don't see a field for them!
The actual texels of an Image object are hidden by the API implementation being used to provide the Image. See the SE_PutImageData() function in the level 0 write API.

Oh, great; I'm a data consumer. Where are the texels!?!
The actual texels of an Image object are hidden by the API implementation being used to provide the Image, so you must access them via the SE_GetImageData() (in level 0) and SE_GetRearrangedImageData() (in level 1) Read API functions.

How do I use the bits_of_xxx, min_value_of_xxx, and max_value_of_xxx fields?
See the comments for the individual image signatures in SE_IMAGE_SIGNATURE_ENUM for details on which values are present for which signature.

What is the maximum size of an image that SEDRIS can transmit?
There is no known size limitation for images in a SEDRIS transmittal. (Well, 1.8 x 10^19 texels by the depth of the texel.) However, there may be size limitations in either the media that is used in the transmission or in computer hardware that interprets the transmittal. To alleviate some of the problems associated with large images, SEDRIS has "hidden" the actual image data behind a function call that allows for the consumer to specify the size of the data that is to be handed off to the consumer. This function call is documented in P4V17 of the SEDRIS Documentation Set.

Image signature ordering "xyz" is not supported by the image signature enum, how do I transmit my "xyz" image?
There are two possibilities. The first method is to decompose your image into individual component images. Besides complex image signatures, individual image components are also supported as an image signature. Then tell all of your consumers in the Description how to reassemble the component images back into the complete image.
If one of the components of your image is not part of the SEDRIS DRM and/or if you have the time, submit a SEDRIS Change Request that adds the required signature to the SEDRIS image signatures.

Why does SEDRIS not support JPEG (and other compressed formats)?
The answer is it may. As of this writing the SEDRIS file formats have not been established and therefore no comment can be made about image file formats. The API however was not intended and it was not deemed necessary to support "lossy" imagery within the API.

What kind of image data ordering does SEDRIS support?
Currently SEDRIS only supports texel (pixel) data ordering. Scan line (All the red values on the first scan line, then all the green values ...) and image plane ordering (all the values of red within the image, then all the values of green...) are not supported.

How is the Classification Data component used?
The optional Classification Data is used to identify the imagery within an Image Library.

A Geometry's Classification Data component identifies it as a wall, but its Image via Image Mapping Function has Classification Data for railroad track. Which is it?
The Image was created for use as a railroad track, but when it is creatively reused by a non-railroad Geometry, the Geometry classification overrides.

Constraints

Associated by (one-way)

Composed of (one-way)

Composed of (one-way metadata)

Component of (two-way)

Field Elements

SE_ID ID; (notes)
SE_STRING name; (notes)
SE_COLOR_MODEL_ENUM color_model; (notes)
SE_PINT16 level_count; (notes)
SE_IMAGE_MIP_FIELDS mip_fields_array[]; (notes)
SE_IMAGE_SIGNATURE_ENUM image_signature; (notes)
SE_IMAGE_SCAN_DIRECTION_ENUM scan_direction; (notes)
SE_IMAGE_SCAN_DIRECTION_Z_ENUM scan_direction_z; (notes)
SE_IMAGE_COMPONENT_ENUM component_data_type; (notes)
SE_BOOLEAN data_is_little_endian; (notes)
SE_BOOLEAN data_is_3D; (notes)
SE_UINT16 bits_of_alpha; (notes)
SE_UINT16 bits_of_luminance; (notes)
SE_UINT16 bits_of_first_color_coord; (notes)
SE_UINT16 bits_of_second_color_coord; (notes)
SE_UINT16 bits_of_third_color_coord; (notes)
SE_UINT16 bits_of_bump; (notes)
SE_UINT16 bits_of_material1; (notes)
SE_UINT16 bits_of_material2; (notes)
SE_UINT16 bits_of_material3; (notes)
SE_UINT16 bits_of_material2_percentage; (notes)
SE_UINT16 bits_of_material3_percentage; (notes)
SE_UINT16 bits_of_image_id; (notes)
SE_FLOAT32 min_value_of_alpha;
SE_FLOAT32 max_value_of_alpha; (notes)
SE_FLOAT32 min_value_of_luminance;
SE_FLOAT32 max_value_of_luminance; (notes)
SE_FLOAT32 min_value_of_first_color_coord;
SE_FLOAT32 max_value_of_first_color_coord; (notes)
SE_FLOAT32 min_value_of_second_color_coord;
SE_FLOAT32 max_value_of_second_color_coord; (notes)
SE_FLOAT32 min_value_of_third_color_coord;
SE_FLOAT32 max_value_of_third_color_coord; (notes)
SE_FLOAT32 min_value_of_bump;
SE_FLOAT32 max_value_of_bump; (notes)

Notes

Fields Notes

ID

 ID required to be unique from all other Image object IDs.

name

 A meaningful short name.  A full description will be in a
 <Description> component.

color_model

 The color model used throughout the image.  Only one color model is
 allowed per image definition.  Either RGB, CMY, or HSV (a.k.a. HSB).

level_count

 Number of Levels of Detail defined for this image (for mipmaps).

 If this is not a mipmapped image, then only one level will defined
 (level_count == 1).

 Please note that images that have MIP levels are almost always required
 to be a power of 2 in size in both directions (but not the same size in
 both directions). Some systems can handle images that are a multiple of
 of 2 (e.g. 96 texels in a direction is a multiple of 2 but not a power
 of 2). SEDRIS places no restriction on images for their dimensional
 size or whether the use of MIPS information within the image is valid
 on the consumer's system.

 Note that if images have an image_signature of
 SE_IMAGE_SIGNATURE_EDCS_CLASSIFICATION_CODE, then
 the bit size is a constant of sizeof(EDCS_CC_ID).

mip_fields_array

 There are level_count entries in the array.  Each entry defines
 the 'size' (the number of horizontal, vertical, and z texels)
 for a single MIP level of the Image

 The first map must contain the highest level of detail.
 (i.e. level_count 0 contains the most texels)

image_signature

 Indicates how texels are represented within the <Image>. See
 SE_IMAGE_SIGNATURE_ENUM for details.

scan_direction

 Describes the origin and direction of the horizontal and vertical
 components of the image

scan_direction_z

 Describes the direction in which the image's z components are ordered

component_data_type

 Describes the data type of the raw image data.  The raw data can
 be a signed integer, an unsigned integer, or a floating point.
 If a signed or unsigned integer, then the max size fields apply.
 If a floating point, then the values range from 0.0 to 1.0.

data_is_little_endian

 Boolean describing the endianess of the raw image data.

data_is_3D

 Boolean describes whether the image data has 3 dimensions.

bits_of_alpha

 If 0 specified, the image data does not contain alpha information

bits_of_luminance

 If 0 specified, the image data does not contain luminance information

bits_of_first_color_coord

 If 0 specified, the image data does not contain color information
 for this color coordinate (R, C, H).

bits_of_second_color_coord

 If 0 specified, the image data does not contain color information
 for this color coordinate (G, M, S).

bits_of_third_color_coord

 If 0 specified, the image data does not contain color information
 for this color coordinate (B, Y, V).

bits_of_bump

 If 0 specified, the image data does not contain bump information

bits_of_material1

 see FAQ list.
 If 0 specified, the image data does not contain material 1 index
 information. If non-0 is specified, then this is an index into the
 <Property Table(s)> that are referenced from this image.

 NOTE: with no material2 or material3 percentages, material1 is at 100%

bits_of_material2

 see FAQ list.
 If 0 specified, the image data does not contain material 2 index
 information. If non-0 is specified, then this is an index into the
 <Property Table(s)> that are referenced from this image.

bits_of_material3

 see FAQ list.
 If 0 specified, the image data does not contain material 3 index
 information. If non-0 is specified, then this is an index into the
 <Property Table(s)> that are referenced from this image.

bits_of_material2_percentage

 percentage of material 2 (if used)

 NOTE: the percentage of material1 is
 (100% - (percentage of material 2))

bits_of_material3_percentage

 percentage of material 3 (if used)

 NOTE: the percentage of material1 is
 (100% - (percentage of material 2) - percentage of material 3))

bits_of_image_id

 If 0 specified, the image data does not contain image ID information

 The following min/max values are used to specify the minimum and
 maximum values a component may have on the producer's system, and
 do NOT relate to whatever values may actually be present in the
 transmitted through SEDRIS.

 EXAMPLES:
 1. If the image components are floating point 32 bits, then a minimum
    value of -1.0 and a maximum value of 1.0 means that all values in
    an image on the producer's system must be represented within the
    range [-1.0, 1.0].
 2. An image with unsigned integer components of 8 bits may specify its
    range to be [0, 99], indicating that even though the maximum value
    that can be specified with 8 bits is 255, the value 99 should be
    treated as the maximum value for this image.

max_value_of_alpha

 minimum/maximum value that alpha can be within the image data

max_value_of_luminance

 minimum/maximum value that luminance can be within the image data
 minimum/maximum value that intensity can be within the image data

max_value_of_first_color_coord

 minimum/maximum value that this color coordinate can be within the
 image data (R, C, or H). 0 if not used.

max_value_of_second_color_coord

 minimum/maximum value that this color coordinate can be within the
 image data (G, M, or S). 0 if not used.

max_value_of_third_color_coord

 minimum/maximum value that this color coordinate can be within the
 image data (B, Y, or V). 0 if not used.

max_value_of_bump

 minimum/maximum value that bump can be within the image data

Prev: Icon. Next: Image Anchor. Up:Index.