GRAPHICHEADER

typedef struct tagGRAPHICHEADER
{
   L_CHAR   *  pSY; 
   L_CHAR   *  pSID;
   L_CHAR   *  pSNAME;  
   L_CHAR   *  pSSCLAS; 
   L_CHAR   *  pSSCLSY; 
   L_CHAR   *  pSSCODE; 
   L_CHAR   *  pSSCTLH; 
   L_CHAR   *  pSSREL;  
   L_CHAR   *  pSSDCTP; 

   NITFDATE    SSDCDT;  

   L_CHAR   *  pSSDCXM; 
   L_CHAR   *  pSSDG;   

   NITFDATE    SSDGDT;
   L_CHAR   *  pSSCLTX;  
   L_CHAR   *  pSSCATP; 
   L_CHAR   *  pSSCAUT;
   L_CHAR   *  pSSCRSN; 
   NITFDATE    SSSRDT;

   L_CHAR   *  pSSCTLN;   
   L_UINT      uENCRYP; 
   
   L_CHAR   *  pSFMT; 
   L_UINT      uSSTRUCT;
   L_UINT      uSDLVL;
   L_UINT      uSALVL;
   L_INT       nSLOCRow;
   L_INT       nSLOCCol;
   L_INT       nSBND1Row;
   L_INT       nSBND1Col;
   
   L_CHAR   *  pSCOLOR;
   L_INT       nSBND2Row;
   L_INT       nSBND2Col;

   L_UINT      uSRES2;

   L_UINT      uSXSHDL;
   L_UINT      uSXSOFL;
   L_UCHAR   *  pSXSHD;
}  GRAPHICHEADER, *pGRAPHICHEADER;

The GRAPHICHEADER structure provides information about NITF file graphic header.

Member

Description

pSY

* Pointer to a character string that contains the ID of the sub-header type to be used. Possible value is:

 

Value

Meaning

 

"SY"

Sub-header type is a graphic.

pSID

* Pointer to a character string that contains an alphanumeric sequence that represents the identification code associated with the graphic. The valid codes are determined by the application.

pSNAME

* Pointer to a character string that contains the alphanumeric sequence graphic name.

pSSCLAS

* Pointer to a character string that contains a symbol character that represents the graphic security classification level. Possible values are:

 

Value

Meaning

 

"T"

Top Secret

 

"S"

Secret

 

"C"

Confidential

 

"R"

Restricted

 

"U"

Unclassified

pSSCLSY

* Pointer to a character string that contains valid values that indicates the national or multinational graphic security classification system.

pSSCODE

* Pointer to a character string that contains the graphic codewords that indicates the graphic security compartments. If a multiple graphic codewords are intended to pass to this member, the user should pass them separated by a single space. The selection of a relevant set of codewords is application specific. If this member is all spaces, it will imply that no codewords apply to the graphic.

pSSCTLH

* Pointer to a character string that contains an additional graphic security control and/or handling instructions (caveats). If this member is all spaces, it will imply that no additional control and handling instructions apply to the graphic.

pSSREL

* Pointer to a character string that contains a valid list of country and/or multilateral entity codes to which countries and/or multilateral entities the graphic is authorized for release. If this member is all spaces, it will imply that no graphic release instructions apply.

pSSDCTP

* Pointer to a character string that contains symbols that represents the graphic security declassification type or graphic downgrading instructions. Possible values are:

 

Value

Meaning

 

"DD"

Declassify on a specific date.

 

"DE"

Declassify upon occurrence of an event.

 

"GD"

Downgrade to a specified level on a specific date.

 

"GE"

Downgrade to a specified level upon occurrence of an event.

 

"O"

OADR

 

"X"

Exempt from automatic declassification.

 

if this member is all spaces, it will imply that no graphic security declassification or downgrading instructions apply.

SSDCDT

* NITFDATE structure that contains information about the graphic declassification date.

 

This member is valid only if the value of the pSSDCTP member is set to "DD" string.

pSSDCXM

* Pointer to a character string that contains the reason why the graphic is exempt from automatic declassification.

 

This member is valid only if the value of the pSSDCTP member is set to "X" string.

 

If this member is all spaces, it will imply that a graphic declassification exemption does not apply.

pSSDG

* Pointer to a character string that contains a symbol character that represents the graphic downgrade classification level.

 

This member is valid only if the value of the pSSDCTP member is set to "GD" or "GE" string. Possible values are:

 

Value

Meaning

 

"S"

Secret.

 

"C"

Confidential.

 

"R"

Restricted.

 

If this member contains a space, it will imply that three-security downgrading does not apply.

SSDGDT

* NITFDATE structure that contains information about the date on which a graphic is to be downgraded.

 

This member is valid only if the value of the pSSDCTP member is set to "GD" string.

pSSCLTX

* Character string that contains the graphic classification text that includes the identification of declassification or downgrading event.

 

This member is valid only if the value of the pSSDCTP member is set to "DE" or "GE" strings.

 

It may also be used to identify multiple classification sources and/or any other special handling rules. Values are user-defined free text. If this member is all spaces, it will imply that additional information about graphic classification does not apply.

pSSCATP

* Pointer to a character string that contains a symbol character that represents the graphic classification authority type. Possible values are:

 

Value

Meaning

 

"O"

Original classification authority.

 

"D"

Derivative from a single source.

 

"M"

Derivative from multiple sources.

 

If this member contains a space, it shall imply that graphic classification authority type does not apply.

pSSCAUT

* Pointer to a character string that contains the graphic classification authority dependent on the value of the pSSCATP member.

 

Values are user-defined free text which should contain the following information:

 

If the Value of pSSCATP member:

The information of pSSCAUT member contains:

 

"O"

Original classification authority name and position or personal identifier.

 

"D"

Title of the document or security classification guide used to classify the graphic.

 

"M"

Derive-Multiple when the graphic classification was derived from multiple sources.

 

In the latter case, the graphic originator will maintain a record of the sources used in accordance with existing security directives. One of the multiple sources may also be identified in graphic classification text if desired.

 

If this member is all spaces, it shall imply that no graphic classification authority applies.

pSSCRSN

* Pointer to a character string that contains a symbol character that represents the graphic classification reason. Possible values range from "A" to "G".

 

If this member contains a space, it shall imply that no graphic classification reason applies.

SSSRDT

* NITFDATE structure that contains information about the graphic security source date. In the case of multiple sources, the date of the most recent source shall be used.

 

If this member is all spaces, it shall imply that a graphic security source date does not apply.

pSSCTLN

* Pointer to a character string that contains the graphic security control number. The format of the security control number shall be in accordance with the regulations governing the appropriate security channel(s).

 

If this member is all spaces, it shall imply that no graphic security control number applies.

uENCRYP

* Reserved for future use, must be 0.

pSFMT

* Pointer to a character string that contains a symbol character that represents the graphic type. Possible value is:

 

Value

Meaning

 

"C"

Computer Graphics Metafile.

uSSTRUCT

Reserved for future use, must be 0.

uSDLVL

* Value that represents the graphic display level relative to other displayed file components in a composite display. Possible values range from 1 to 999. The display level of each displayable file component (image or graphic) within a file shall be unique; that is, each number from 1 to 999 is the display level of, at most, one item.

uSALVL

* Value that represents the graphic attachment level. Possible values are 0 and the value of uSDLVL member for any other image or graphic in the file.

nSLOCRow

* Value that represents the graphic location offset from the nILOCRow of the IMAGEHEADER structure or nSLOCRow member value of the CCS, image, or graphic to which the -graphic is attached or from the origin of the CCS when the graphic is unattached. Possible values are:

 

Value

Meaning

 

> 0

Offsets are down.

 

0

No offset.

 

< 0

Offsets are up.

nSLOCCol

* Value that represents the graphic location offset from the nILOCCol of the IMAGEHEADER structure or nSLOCCol member value of the CCS, image, or graphic to which the graphic is attached or from the origin of the CCS when the graphic is unattached. Possible values are:

 

Value

Meaning

 

> 0

Offsets are right.

 

0

No offset.

 

< 0

Offsets are left.

nSBND1Row

* Value that represents the offset from the nILOCRow of the IMAGEHEADER structure or nSLOCRow member It is the upper corner of the bounding box for the CGM graphic. If the graphic is unattached (value of the uSALVL member is 0) the nSBND1Row member represents offsets from the origin of the coordinate system that is common to all images and graphics in the file having the value of 0 in the uSALVL member. Possible values range from: -9999 to 99999.

nSBND1Col

* Value that represents the offset from the nILOCCol of the IMAGEHEADER structure or nSLOCCol member. It is the left corner of the bounding box for the CGM graphic. If the graphic is unattached (value of the uSALVL member is 0) the nSBND1Col member represents offsets from the origin of the coordinate system that is common to all images and graphics in the file having the value of 0 in the uSALVL member. Possible values range from: -9999 to 99999.

pSCOLOR

* Pointer to a character string that contains a symbol character that represents the graphic color.

 

This member is valid only if the value of the pSFMT member is set to "C". Possible values are:

 

Value

Meaning

 

"C"

CGM contains any color pieces

 

"M"

Monochrome (i.e., black, white, or levels of gray).

nSBND2Row

* Value that represents the offset from the nILOCRow of the IMAGEHEADER structure or nSLOCRow member. It is the lower corner of the bounding box for the CGM graphic. If the graphic is unattached (value of the uSALVL member is set to 0) the nSBND2Row member represents offsets from the origin of the coordinate system that is common to all images and graphics in the file having the value of 0 in the uSALVL member. Possible values range from: -9999 to 99999.

nSBND2Col

* Value that represents the offset from nILOCCol of the IMAGEHEADER structure or nSLOCCol member. It is the right corner of the bounding box for the CGM graphic. If the graphic is unattached (value of the uSALVL member is 0) the nSBND2Col member represents offsets from the origin of the coordinate system that is common to all images and graphics in the file having the value of 0 in the uSALVL member. Possible values range from -9999 to 99999.

uSRES2

* Reserved for future use, Pass 0.

uSXSHDL

* Value that represents the graphic extended sub-header data length. The value 0 indicates that no TREs are included in the graphic sub-header. If a tagged record extension exists, the member will contain the sum of the length of all the TREs appearing in the pSXSHD member + 3 bytes length of uSXSOFL member). If a tagged record extension is too long to fit in the pSXSHD member, it shall be put in the TRE overflow DES with DESID set to the value TRE_OVERFLOW.

uSXSOFL

* Value that represents the graphic extended sub-header overflow. This member will contain 0 if the TREs in pSXSHD member do not overflow into a DES or will contain the sequence number of the DES into which they do overflow. The value of this member will be ignored if the value of the uSXSHDL member is 0.

pSXSHD

* Pointer to a character string that contains the graphic extended sub-header data. This member will contain TREs approved and under configuration management by the ISMC. The length of this member will be the length specified by the uSXSHDL member - 3 bytes. TREs in this member for a graphic will contain information pertaining specifically to the graphic. TREs shall appear one after the other in this member with no intervening bytes. The first byte of this member shall be the first byte of the first TREs appearing in the member. The last byte of this member shall be the last byte of the last TRE to appear in the member. This member shall be ignored if the value of the uSXSHDL member is 0.

Comments

pGRAPHICHEADER is a pointer to a GRAPHICHEADER structure. Where a function parameter type is pGRAPHICHEADER, declare a GRAPHICHEADER variable and pass the variable's address in the parameter. Declaring a pGRAPHICHEADER variable is necessary only if the program requires a pointer.

The following functions make use of this structure:

LNITFFile::GetGraphicHeader

LNITFFile::SetGraphicHeader