You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

381 lines
8.3 KiB
C++

// Copyright 2008, Google Inc. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
//
// 1. Redistributions of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
// 2. Redistributions in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
// 3. Neither the name of Google Inc. nor the names of its contributors may be
// used to endorse or promote products derived from this software without
// specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// This file defines the id of each element.
// The element names exactly match the OGC KML 2.2 Standard:
// http://www.opengeospatial.org/standards/kml
// See also Google's reference especially for the "gx" elements:
// http://code.google.com/apis/kml/documentation/kmlreference.html
// Type_${element_name}
#ifndef KML_DOM_KML22_H
#define KML_DOM_KML22_H
namespace kmldom {
// This list matches kml22_elements_[] exactly:
typedef enum {
Type_Unknown,
Type_ColorStyle,
Type_Container,
Type_Feature,
Type_Geometry,
Type_AbstractLatLonBox,
Type_Object,
Type_Overlay,
Type_StyleSelector,
Type_SubStyle,
Type_TimePrimitive,
Type_AbstractView,
Type_BasicLink,
Type_Vec2,
Type_Alias,
Type_BalloonStyle,
Type_Camera,
Type_Change,
Type_Create,
Type_Data,
Type_Delete,
Type_Document,
Type_ExtendedData,
Type_Folder,
Type_GroundOverlay,
Type_Icon,
Type_IconStyle,
Type_IconStyleIcon,
Type_ImagePyramid,
Type_ItemIcon,
Type_LabelStyle,
Type_LatLonAltBox,
Type_LatLonBox,
Type_LineString,
Type_LineStyle,
Type_LinearRing,
Type_Link,
Type_ListStyle,
Type_Location,
Type_Lod,
Type_LookAt,
Type_Metadata,
Type_Model,
Type_MultiGeometry,
Type_NetworkLink,
Type_NetworkLinkControl,
Type_Orientation,
Type_Pair,
Type_PhotoOverlay,
Type_Placemark,
Type_Point,
Type_PolyStyle,
Type_Polygon,
Type_Region,
Type_ResourceMap,
Type_Scale,
Type_Schema,
Type_SchemaData,
Type_ScreenOverlay,
Type_SimpleData,
Type_SimpleField,
Type_Snippet,
Type_Style,
Type_StyleMap,
Type_TimeSpan,
Type_TimeStamp,
Type_Update,
Type_Url,
Type_ViewVolume,
Type_address,
Type_altitude,
Type_altitudeMode,
Type_altitudeModeGroup,
Type_begin,
Type_bgColor,
Type_bottomFov,
Type_color,
Type_colorMode,
Type_cookie,
Type_coordinates,
Type_description,
Type_displayMode,
Type_displayName,
Type_drawOrder,
Type_east,
Type_end,
Type_expires,
Type_extrude,
Type_fill,
Type_flyToView,
Type_gridOrigin,
Type_heading,
Type_hotSpot,
Type_href,
Type_httpQuery,
Type_innerBoundaryIs,
Type_key,
Type_kml,
Type_latitude,
Type_leftFov,
Type_linkDescription,
Type_linkName,
Type_linkSnippet,
Type_listItemType,
Type_longitude,
Type_maxAltitude,
Type_maxFadeExtent,
Type_maxHeight,
Type_maxLength,
Type_maxLodPixels,
Type_maxSessionLength,
Type_maxSnippetLines,
Type_maxWidth,
Type_message,
Type_minAltitude,
Type_minFadeExtent,
Type_minLodPixels,
Type_minRefreshPeriod,
Type_name,
Type_near,
Type_north,
Type_open,
Type_outerBoundaryIs,
Type_outline,
Type_overlayXY,
Type_phoneNumber,
Type_range,
Type_refreshInterval,
Type_refreshMode,
Type_refreshVisibility,
Type_rightFov,
Type_roll,
Type_rotation,
Type_rotationXY,
Type_scale,
Type_screenXY,
Type_shape,
Type_size,
Type_snippet,
Type_sourceHref,
Type_south,
Type_state,
Type_styleUrl,
Type_targetHref,
Type_tessellate,
Type_text,
Type_textColor,
Type_tileSize,
Type_tilt,
Type_topFov,
Type_units,
Type_value,
Type_viewBoundScale,
Type_viewFormat,
Type_viewRefreshMode,
Type_viewRefreshTime,
Type_visibility,
Type_west,
Type_when,
Type_width,
Type_x,
Type_y,
Type_z,
Type_AtomAuthor,
Type_AtomCategory,
Type_AtomContent,
Type_AtomEntry,
Type_AtomFeed,
Type_AtomLink,
Type_atomEmail,
Type_atomId,
Type_atomLabel,
Type_atomName,
Type_atomScheme,
Type_atomSummary,
Type_atomTerm,
Type_atomTitle,
Type_atomUpdated,
Type_atomUri,
Type_XalAddressDetails,
Type_XalAdministrativeArea,
Type_XalCountry,
Type_XalLocality,
Type_XalPostalCode,
Type_XalSubAdministrativeArea,
Type_XalThoroughfare,
Type_xalAdministrativeAreaName,
Type_xalCountryNameCode,
Type_xalLocalityName,
Type_xalPostalCodeNumber,
Type_xalSubAdministrativeAreaName,
Type_xalThoroughfareName,
Type_xalThoroughfareNumber,
Type_GxTourPrimitive,
Type_GxAnimatedUpdate,
Type_GxFlyTo,
Type_GxLatLonQuad,
Type_GxMultiTrack,
Type_GxPlaylist,
Type_GxSimpleArrayData,
Type_GxSimpleArrayField,
Type_GxSoundCue,
Type_GxTimeSpan,
Type_GxTimeStamp,
Type_GxTour,
Type_GxTourControl,
Type_GxTrack,
Type_GxWait,
Type_GxAltitudeMode,
Type_GxAngles,
Type_GxBalloonVisibility,
Type_GxCoord,
Type_GxDuration,
Type_GxFlyToMode,
Type_GxH,
Type_GxInterpolate,
Type_GxPlayMode,
Type_GxValue,
Type_GxW,
Type_GxX,
Type_GxY,
Type_Invalid
} KmlDomType;
// The value of each enum is the offset to the corresponding string in the
// kKml22Enums table. The enum type name here is the element name with first
// char folded up to be consistent with the convention of type names starting
// with an upper case letter, hence <altitudeMode>'s enum values are of type
// AltitudeModeEnum. Each enum value repeats the name of the element with all
// chars folded up followed by an underscore followed by the name of the
// enumeration value folded to upper case. Thus DOM API code examining a
// <LookAt>'s <altitudeMode> might be as follows:
//
// AltitudeModeEnum altitudemode = lookat->altitudemode();
// switch (altitudemode) {
// case ALTITUDEMODE_CLAMPTOGROUND:
// ...
// case ALTITUDEMODE_RELATIVETOGROUND:
// ...
// case ALTITUDEMODE_ABSOLUTE
// ...
// default:
// // unknown altitudeMode
// };
typedef enum {
ALTITUDEMODE_CLAMPTOGROUND = 0,
ALTITUDEMODE_RELATIVETOGROUND,
ALTITUDEMODE_ABSOLUTE
} AltitudeModeEnum;
typedef enum {
COLORMODE_NORMAL = 0,
COLORMODE_RANDOM
} ColorModeEnum;
typedef enum {
DISPLAYMODE_DEFAULT = 0,
DISPLAYMODE_HIDE
} DisplayModeEnum;
typedef enum {
GRIDORIGIN_LOWERLEFT = 0,
GRIDORIGIN_UPPERLEFT
} GridOriginEnum;
typedef enum {
ITEMICONSTATE_OPEN = 0,
ITEMICONSTATE_CLOSED,
ITEMICONSTATE_ERROR,
ITEMICONSTATE_FETCHING0,
ITEMICONSTATE_FETCHING1,
ITEMICONSTATE_FETCHING2
} ItemIconStateEnum;
typedef enum {
LISTITEMTYPE_CHECK = 0,
LISTITEMTYPE_RADIOFOLDER,
LISTITEMTYPE_CHECKOFFONLY,
LISTITEMTYPE_CHECKHIDECHILDREN
} ListItemTypeEnum;
typedef enum {
REFRESHMODE_ONCHANGE = 0,
REFRESHMODE_ONINTERVAL,
REFRESHMODE_ONEXPIRE
} RefreshModeEnum;
typedef enum {
SHAPE_RECTANGLE = 0,
SHAPE_CYLINDER,
SHAPE_SPHERE
} ShapeEnum;
typedef enum {
STYLESTATE_NORMAL = 0,
STYLESTATE_HIGHLIGHT
} StyleStateEnum;
typedef enum {
UNITS_FRACTION = 0,
UNITS_PIXELS,
UNITS_INSETPIXELS
} UnitsEnum;
typedef enum {
VIEWREFRESHMODE_NEVER = 0,
VIEWREFRESHMODE_ONREQUEST,
VIEWREFRESHMODE_ONSTOP,
VIEWREFRESHMODE_ONREGION
} ViewRefreshModeEnum;
typedef enum {
GX_ALTITUDEMODE_CLAMPTOSEAFLOOR = 0,
GX_ALTITUDEMODE_RELATIVETOSEAFLOOR
} GxAltitudeModeEnum;
typedef enum {
GX_FLYTOMODE_BOUNCE = 0,
GX_FLYTOMODE_SMOOTH
} GxFlyToModeEnum;
typedef enum {
GX_PLAYMODE_PAUSE = 0
} GxPlayModeEnum;
} // end namespace kmldom
#endif // KML_DOM_KML22_H__