Index: /issm/trunk/src/c/objects/KML/KML_ColorStyle.cpp
===================================================================
--- /issm/trunk/src/c/objects/KML/KML_ColorStyle.cpp	(revision 7653)
+++ /issm/trunk/src/c/objects/KML/KML_ColorStyle.cpp	(revision 7653)
@@ -0,0 +1,126 @@
+/*!\file KML_ColorStyle.cpp
+ * \brief: implementation of the kml_colorstyle abstract object
+ */
+
+/*Headers:*/
+/*{{{1*/
+#ifdef HAVE_CONFIG_H
+	#include "config.h"
+#else
+#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+#endif
+
+#include "stdio.h"
+#include <string.h>
+#include "../objects.h"
+#include "../../shared/shared.h"
+#include "../../Container/Container.h"
+#include "../../include/include.h"
+/*}}}*/
+
+/*Constructors/destructor/copy*/
+/*FUNCTION KML_ColorStyle::KML_ColorStyle(){{{1*/
+KML_ColorStyle::KML_ColorStyle(){
+
+	strcpy(color     ,"ffffffff");
+	strcpy(colormode ,"normal");
+
+}
+/*}}}*/
+/*FUNCTION KML_ColorStyle::~KML_ColorStyle(){{{1*/
+KML_ColorStyle::~KML_ColorStyle(){
+
+	;
+
+}
+/*}}}*/
+
+/*Other*/
+/*FUNCTION KML_ColorStyle::Echo {{{1*/
+void  KML_ColorStyle::Echo(){
+
+	bool  flag=true;
+
+	KML_SubStyle::Echo();
+
+	_printf_(flag,"         color: %s\n"          ,color);
+	_printf_(flag,"     colormode: %s\n"          ,colormode);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_ColorStyle::DeepEcho {{{1*/
+void  KML_ColorStyle::DeepEcho(){
+
+	char  indent[81]="";
+
+	KML_ColorStyle::DeepEcho(indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_ColorStyle::DeepEcho {{{1*/
+void  KML_ColorStyle::DeepEcho(char* indent){
+
+	bool  flag=true;
+
+	KML_SubStyle::DeepEcho(indent);
+
+	_printf_(flag,"%s         color: %s\n"          ,indent,color);
+	_printf_(flag,"%s     colormode: %s\n"          ,indent,colormode);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_ColorStyle::Write {{{1*/
+void  KML_ColorStyle::Write(FILE* filout,char* indent){
+
+	KML_SubStyle::Write(filout,indent);
+
+	if (color     && strlen(color))
+		fprintf(filout,"%s  <color>%s</color>\n",indent,color);
+	if (colormode && strlen(colormode))
+		fprintf(filout,"%s  <colorMode>%s</colorMode>\n",indent,colormode);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_ColorStyle::Id {{{1*/
+int   KML_ColorStyle::Id(){
+}
+/*}}}*/
+
+/*FUNCTION KML_ColorStyle::MyRank {{{1*/
+int   KML_ColorStyle::MyRank(){
+}
+/*}}}*/
+
+/*FUNCTION KML_ColorStyle::Marshall {{{1*/
+void  KML_ColorStyle::Marshall(char** pmarshalled_dataset){
+}
+/*}}}*/
+
+/*FUNCTION KML_ColorStyle::MarshallSize {{{1*/
+int   KML_ColorStyle::MarshallSize(){
+}
+/*}}}*/
+
+/*FUNCTION KML_ColorStyle::Demarshall {{{1*/
+void  KML_ColorStyle::Demarshall(char** pmarshalled_dataset){
+}
+/*}}}*/
+
+/*FUNCTION KML_ColorStyle::Enum {{{1*/
+int   KML_ColorStyle::Enum(){
+}
+/*}}}*/
+
+/*FUNCTION KML_ColorStyle::copy {{{1*/
+Object* KML_ColorStyle::copy(){
+}
+/*}}}*/
+
Index: /issm/trunk/src/c/objects/KML/KML_ColorStyle.h
===================================================================
--- /issm/trunk/src/c/objects/KML/KML_ColorStyle.h	(revision 7653)
+++ /issm/trunk/src/c/objects/KML/KML_ColorStyle.h	(revision 7653)
@@ -0,0 +1,47 @@
+/*! \file KML_ColorStyle.h 
+ *  \brief: header file for kml_colorstyle abstract object
+ */
+
+#ifndef _KML_COLORSTYLE_H_
+#define _KML_COLORSTYLE_H_
+
+#define KML_COLORSTYLE_COLOR_LENGTH      9
+#define KML_COLORSTYLE_COLORMODE_LENGTH  7
+
+/*Headers:*/
+/*{{{1*/
+#include "../../include/include.h"
+#include "../../shared/Exceptions/exceptions.h"
+#include "../../EnumDefinitions/EnumDefinitions.h"
+
+#include "./KML_SubStyle.h"
+/*}}}*/
+
+class KML_ColorStyle: public KML_SubStyle {
+
+	public:
+
+		char  color[KML_COLORSTYLE_COLOR_LENGTH];
+		char  colormode[KML_COLORSTYLE_COLORMODE_LENGTH];
+
+		/*KML_ColorStyle constructors, destructors {{{1*/
+		KML_ColorStyle();
+		~KML_ColorStyle();
+		/*}}}*/
+		/*Object virtual functions definitions:{{{1*/
+		void  Echo();
+		void  DeepEcho();
+		void  DeepEcho(char* indent);
+		void  Write(FILE* fid,char* indent);
+		int   Id();
+		int   MyRank();
+		void  Marshall(char** pmarshalled_dataset);
+		int   MarshallSize();
+		void  Demarshall(char** pmarshalled_dataset);
+		int   Enum();
+		Object* copy();
+		/*}}}*/
+
+};
+#endif  /* _KML_COLORSTYLE_H */
+
Index: /issm/trunk/src/c/objects/KML/KML_Container.cpp
===================================================================
--- /issm/trunk/src/c/objects/KML/KML_Container.cpp	(revision 7653)
+++ /issm/trunk/src/c/objects/KML/KML_Container.cpp	(revision 7653)
@@ -0,0 +1,110 @@
+/*!\file KML_Container.cpp
+ * \brief: implementation of the kml_container abstract object
+ */
+
+/*Headers:*/
+/*{{{1*/
+#ifdef HAVE_CONFIG_H
+	#include "config.h"
+#else
+#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+#endif
+
+#include "stdio.h"
+#include <string.h>
+#include "../objects.h"
+#include "../../shared/shared.h"
+#include "../../Container/Container.h"
+#include "../../include/include.h"
+/*}}}*/
+
+/*Constructors/destructor/copy*/
+/*FUNCTION KML_Container::KML_Container(){{{1*/
+KML_Container::KML_Container(){
+
+	;
+
+}
+/*}}}*/
+/*FUNCTION KML_Container::~KML_Container(){{{1*/
+KML_Container::~KML_Container(){
+
+	;
+
+}
+/*}}}*/
+
+/*Other*/
+/*FUNCTION KML_Container::Echo {{{1*/
+void  KML_Container::Echo(){
+
+	KML_Feature::Echo();
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Container::DeepEcho {{{1*/
+void  KML_Container::DeepEcho(){
+
+	char  indent[81]="";
+
+	KML_Container::DeepEcho(indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Container::DeepEcho {{{1*/
+void  KML_Container::DeepEcho(char* indent){
+
+	KML_Feature::DeepEcho(indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Container::Write {{{1*/
+void  KML_Container::Write(FILE* filout,char* indent){
+
+	KML_Feature::Write(filout,indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Container::Id {{{1*/
+int   KML_Container::Id(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Container::MyRank {{{1*/
+int   KML_Container::MyRank(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Container::Marshall {{{1*/
+void  KML_Container::Marshall(char** pmarshalled_dataset){
+}
+/*}}}*/
+
+/*FUNCTION KML_Container::MarshallSize {{{1*/
+int   KML_Container::MarshallSize(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Container::Demarshall {{{1*/
+void  KML_Container::Demarshall(char** pmarshalled_dataset){
+}
+/*}}}*/
+
+/*FUNCTION KML_Container::Enum {{{1*/
+int   KML_Container::Enum(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Container::copy {{{1*/
+Object* KML_Container::copy(){
+}
+/*}}}*/
+
Index: /issm/trunk/src/c/objects/KML/KML_Container.h
===================================================================
--- /issm/trunk/src/c/objects/KML/KML_Container.h	(revision 7653)
+++ /issm/trunk/src/c/objects/KML/KML_Container.h	(revision 7653)
@@ -0,0 +1,41 @@
+/*! \file KML_Container.h 
+ *  \brief: header file for kml_container abstract object
+ */
+
+#ifndef _KML_CONTAINER_H_
+#define _KML_CONTAINER_H_
+
+/*Headers:*/
+/*{{{1*/
+#include "../../include/include.h"
+#include "../../shared/Exceptions/exceptions.h"
+#include "../../EnumDefinitions/EnumDefinitions.h"
+
+#include "./KML_Feature.h"
+/*}}}*/
+
+class KML_Container: public KML_Feature {
+
+	public:
+
+		/*KML_Container constructors, destructors {{{1*/
+		KML_Container();
+		~KML_Container();
+		/*}}}*/
+		/*Object virtual functions definitions:{{{1*/
+		void  Echo();
+		void  DeepEcho();
+		void  DeepEcho(char* indent);
+		void  Write(FILE* fid,char* indent);
+		int   Id();
+		int   MyRank();
+		void  Marshall(char** pmarshalled_dataset);
+		int   MarshallSize();
+		void  Demarshall(char** pmarshalled_dataset);
+		int   Enum();
+		Object* copy();
+		/*}}}*/
+
+};
+#endif  /* _KML_CONTAINER_H */
+
Index: /issm/trunk/src/c/objects/KML/KML_Document.cpp
===================================================================
--- /issm/trunk/src/c/objects/KML/KML_Document.cpp	(revision 7653)
+++ /issm/trunk/src/c/objects/KML/KML_Document.cpp	(revision 7653)
@@ -0,0 +1,155 @@
+/*!\file KML_Document.cpp
+ * \brief: implementation of the kml_document object
+ */
+
+/*Headers:*/
+/*{{{1*/
+#ifdef HAVE_CONFIG_H
+	#include "config.h"
+#else
+#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+#endif
+
+#include "stdio.h"
+#include <string.h>
+#include "../objects.h"
+#include "../../shared/shared.h"
+#include "../../Container/Container.h"
+#include "../../include/include.h"
+/*}}}*/
+
+/*Constructors/destructor/copy*/
+/*FUNCTION KML_Document::KML_Document(){{{1*/
+KML_Document::KML_Document(){
+
+	feature   =new DataSet;
+
+}
+/*}}}*/
+/*FUNCTION KML_Document::~KML_Document(){{{1*/
+KML_Document::~KML_Document(){
+
+	if (feature) {
+		delete feature;
+		feature   =NULL;
+	}
+
+}
+/*}}}*/
+
+/*Other*/
+/*FUNCTION KML_Document::Echo {{{1*/
+void  KML_Document::Echo(){
+
+	bool  flag=true;
+
+	_printf_(flag,"KML_Document:\n");
+	KML_Container::Echo();
+
+	_printf_(flag,"       feature: (size=%d)\n" ,feature->Size());
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Document::DeepEcho {{{1*/
+void  KML_Document::DeepEcho(){
+
+	char  indent[81]="";
+
+	KML_Document::DeepEcho(indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Document::DeepEcho {{{1*/
+void  KML_Document::DeepEcho(char* indent){
+
+	int   i;
+	char  indent2[81];
+	bool  flag=true;
+
+	_printf_(flag,"%sKML_Document:\n",indent);
+	KML_Container::DeepEcho(indent);
+
+/*  loop over the features for the document  */
+
+	strcpy(indent2,indent);
+	strcat(indent2,"  ");
+
+	if (feature->Size())
+		for (i=0; i<feature->Size(); i++) {
+			_printf_(flag,"%s       feature: [%d] begin\n" ,indent,i);
+			((KML_Feature *)feature->GetObjectByOffset(i))->DeepEcho(indent2);
+			_printf_(flag,"%s       feature: [%d] end\n"   ,indent,i);
+		}
+	else
+		_printf_(flag,"%s       feature: [empty]\n"    ,indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Document::Write {{{1*/
+void  KML_Document::Write(FILE* filout,char* indent){
+
+	int   i;
+	char  indent2[81];
+
+	if (this->id && strlen(this->id))
+		fprintf(filout,"%s<Document id=\"%s\">\n",indent,this->id);
+	else
+		fprintf(filout,"%s<Document>\n",indent);
+
+	KML_Container::Write(filout,indent);
+
+/*  loop over the features for the document  */
+
+	strcpy(indent2,indent);
+	strcat(indent2,"  ");
+
+	for (i=0; i<feature->Size(); i++)
+		((KML_Feature *)feature->GetObjectByOffset(i))->Write(filout,indent2);
+
+	fprintf(filout,"%s</Document>\n",indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Document::Id {{{1*/
+int   KML_Document::Id(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Document::MyRank {{{1*/
+int   KML_Document::MyRank(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Document::Marshall {{{1*/
+void  KML_Document::Marshall(char** pmarshalled_dataset){
+}
+/*}}}*/
+
+/*FUNCTION KML_Document::MarshallSize {{{1*/
+int   KML_Document::MarshallSize(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Document::Demarshall {{{1*/
+void  KML_Document::Demarshall(char** pmarshalled_dataset){
+}
+/*}}}*/
+
+/*FUNCTION KML_Document::Enum {{{1*/
+int   KML_Document::Enum(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Document::copy {{{1*/
+Object* KML_Document::copy(){
+}
+/*}}}*/
+
Index: /issm/trunk/src/c/objects/KML/KML_Document.h
===================================================================
--- /issm/trunk/src/c/objects/KML/KML_Document.h	(revision 7653)
+++ /issm/trunk/src/c/objects/KML/KML_Document.h	(revision 7653)
@@ -0,0 +1,45 @@
+/*! \file KML_Document.h 
+ *  \brief: header file for kml_document object
+ */
+
+#ifndef _KML_DOCUMENT_H_
+#define _KML_DOCUMENT_H_
+
+/*Headers:*/
+/*{{{1*/
+#include "../../include/include.h"
+#include "../../shared/Exceptions/exceptions.h"
+#include "../../EnumDefinitions/EnumDefinitions.h"
+
+#include "./KML_Container.h"
+class KML_Feature;
+class DataSet;
+/*}}}*/
+
+class KML_Document: public KML_Container {
+
+	public:
+
+		DataSet* feature;
+
+		/*KML_Document constructors, destructors {{{1*/
+		KML_Document();
+		~KML_Document();
+		/*}}}*/
+		/*Object virtual functions definitions:{{{1 */
+		void  Echo();
+		void  DeepEcho();
+		void  DeepEcho(char* indent);
+		void  Write(FILE* fid,char* indent);
+		int   Id();
+		int   MyRank();
+		void  Marshall(char** pmarshalled_dataset);
+		int   MarshallSize();
+		void  Demarshall(char** pmarshalled_dataset);
+		int   Enum();
+		Object* copy();
+		/*}}}*/
+
+};
+#endif  /* _KML_DOCUMENT_H */
+
Index: /issm/trunk/src/c/objects/KML/KML_Feature.cpp
===================================================================
--- /issm/trunk/src/c/objects/KML/KML_Feature.cpp	(revision 7653)
+++ /issm/trunk/src/c/objects/KML/KML_Feature.cpp	(revision 7653)
@@ -0,0 +1,176 @@
+/*!\file KML_Feature.cpp
+ * \brief: implementation of the kml_feature abstract object
+ */
+
+/*Headers:*/
+/*{{{1*/
+#ifdef HAVE_CONFIG_H
+	#include "config.h"
+#else
+#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+#endif
+
+#include "stdio.h"
+#include <string.h>
+#include "../objects.h"
+#include "../../shared/shared.h"
+#include "../../Container/Container.h"
+#include "../../include/include.h"
+/*}}}*/
+
+/*Constructors/destructor/copy*/
+/*FUNCTION KML_Feature::KML_Feature(){{{1*/
+KML_Feature::KML_Feature(){
+
+	strcpy(name      ,"");
+	visibility=true;
+	open      =false;
+	strcpy(snippet   ,"");
+	strcpy(descript  ,"");
+	strcpy(styleurl  ,"");
+	style     =new DataSet;
+
+}
+/*}}}*/
+/*FUNCTION KML_Feature::~KML_Feature(){{{1*/
+KML_Feature::~KML_Feature(){
+
+	if (style) {
+		delete style;
+		style     =NULL;
+	}
+
+}
+/*}}}*/
+
+/*Other*/
+/*FUNCTION KML_Feature::Echo {{{1*/
+void  KML_Feature::Echo(){
+
+	bool  flag=true;
+
+	KML_Object::Echo();
+
+	_printf_(flag,"          name: \"%s\"\n"    ,name);
+	_printf_(flag,"    visibility: %s\n"        ,(visibility ? "true" : "false"));
+	_printf_(flag,"          open: %s\n"        ,(open ? "true" : "false"));
+	_printf_(flag,"       snippet: \"%s\"\n"    ,snippet);
+	_printf_(flag,"      descript: \"%s\"\n"    ,descript);
+	_printf_(flag,"      styleurl: \"%s\"\n"    ,styleurl);
+	_printf_(flag,"         style: (size=%d)\n" ,style->Size());
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Feature::DeepEcho {{{1*/
+void  KML_Feature::DeepEcho(){
+
+	char  indent[81]="";
+
+	KML_Feature::DeepEcho(indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Feature::DeepEcho {{{1*/
+void  KML_Feature::DeepEcho(char* indent){
+
+	int   i;
+	char  indent2[81];
+	bool  flag=true;
+
+	KML_Object::DeepEcho(indent);
+
+	_printf_(flag,"%s          name: \"%s\"\n"      ,indent,name);
+	_printf_(flag,"%s    visibility: %s\n"          ,indent,(visibility ? "true" : "false"));
+	_printf_(flag,"%s          open: %s\n"          ,indent,(open ? "true" : "false"));
+	_printf_(flag,"%s       snippet: \"%s\"\n"      ,indent,snippet);
+	_printf_(flag,"%s      descript: \"%s\"\n"      ,indent,descript);
+	_printf_(flag,"%s      styleurl: \"%s\"\n"      ,indent,styleurl);
+
+/*  loop over any styles for the feature  */
+
+	strcpy(indent2,indent);
+	strcat(indent2,"  ");
+
+	if (style->Size())
+		for (i=0; i<style->Size(); i++) {
+			_printf_(flag,"%s         style: [%d] begin\n" ,indent,i);
+			((KML_Style *)style->GetObjectByOffset(i))->DeepEcho(indent2);
+			_printf_(flag,"%s         style: [%d] end\n"   ,indent,i);
+		}
+	else
+		_printf_(flag,"%s         style: [empty]\n"    ,indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Feature::Write {{{1*/
+void  KML_Feature::Write(FILE* filout,char* indent){
+
+	int   i;
+	char  indent2[81];
+
+	KML_Object::Write(filout,indent);
+
+	if (name     && strlen(name))
+		fprintf(filout,"%s  <name>%s</name>\n",indent,name);
+	fprintf(filout,"%s  <visibility>%d</visibility>\n",indent,(visibility ? 1 : 0));
+	fprintf(filout,"%s  <open>%d</open>\n",indent,(open ? 1 : 0));
+	if (snippet  && strlen(snippet))
+		fprintf(filout,"%s  <Snippet maxLines=\"2\">%s</Snippet>\n",indent,snippet);
+	if (descript && strlen(descript))
+		fprintf(filout,"%s  <description>%s</description>\n",indent,descript);
+	if (styleurl && strlen(styleurl))
+		fprintf(filout,"%s  <styleUrl>%s</styleUrl>\n",indent,styleurl);
+
+/*  loop over any styles for the feature  */
+
+	strcpy(indent2,indent);
+	strcat(indent2,"  ");
+
+    for (i=0; i<style->Size(); i++)
+        ((KML_Style *)style->GetObjectByOffset(i))->Write(filout,indent2);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Feature::Id {{{1*/
+int   KML_Feature::Id(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Feature::MyRank {{{1*/
+int   KML_Feature::MyRank(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Feature::Marshall {{{1*/
+void  KML_Feature::Marshall(char** pmarshalled_dataset){
+}
+/*}}}*/
+
+/*FUNCTION KML_Feature::MarshallSize {{{1*/
+int   KML_Feature::MarshallSize(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Feature::Demarshall {{{1*/
+void  KML_Feature::Demarshall(char** pmarshalled_dataset){
+}
+/*}}}*/
+
+/*FUNCTION KML_Feature::Enum {{{1*/
+int   KML_Feature::Enum(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Feature::copy {{{1*/
+Object* KML_Feature::copy(){
+}
+/*}}}*/
+
Index: /issm/trunk/src/c/objects/KML/KML_Feature.h
===================================================================
--- /issm/trunk/src/c/objects/KML/KML_Feature.h	(revision 7653)
+++ /issm/trunk/src/c/objects/KML/KML_Feature.h	(revision 7653)
@@ -0,0 +1,56 @@
+/*! \file KML_Feature.h 
+ *  \brief: header file for kml_feature abstract object
+ */
+
+#ifndef _KML_FEATURE_H_
+#define _KML_FEATURE_H_
+
+#define KML_FEATURE_NAME_LENGTH         81
+#define KML_FEATURE_SNIPPET_LENGTH     161
+#define KML_FEATURE_DESCRIPT_LENGTH   1281
+#define KML_FEATURE_STYLEURL_LENGTH     81
+
+/*Headers:*/
+/*{{{1*/
+#include "../../include/include.h"
+#include "../../shared/Exceptions/exceptions.h"
+#include "../../EnumDefinitions/EnumDefinitions.h"
+
+#include "./KML_Object.h"
+class KML_Style;
+class DataSet;
+/*}}}*/
+
+class KML_Feature: public KML_Object {
+
+	public:
+
+		char  name[KML_FEATURE_NAME_LENGTH];
+		bool  visibility;
+		bool  open;
+		char  snippet[KML_FEATURE_SNIPPET_LENGTH];
+		char  descript[KML_FEATURE_DESCRIPT_LENGTH];
+		char  styleurl[KML_FEATURE_STYLEURL_LENGTH];
+		DataSet* style;
+
+		/*KML_Feature constructors, destructors {{{1*/
+		KML_Feature();
+		~KML_Feature();
+		/*}}}*/
+		/*Object virtual functions definitions:{{{1*/
+		void  Echo();
+		void  DeepEcho();
+		void  DeepEcho(char* indent);
+		void  Write(FILE* fid,char* indent);
+		int   Id();
+		int   MyRank();
+		void  Marshall(char** pmarshalled_dataset);
+		int   MarshallSize();
+		void  Demarshall(char** pmarshalled_dataset);
+		int   Enum();
+		Object* copy();
+		/*}}}*/
+
+};
+#endif  /* _KML_FEATURE_H */
+
Index: /issm/trunk/src/c/objects/KML/KML_Folder.cpp
===================================================================
--- /issm/trunk/src/c/objects/KML/KML_Folder.cpp	(revision 7653)
+++ /issm/trunk/src/c/objects/KML/KML_Folder.cpp	(revision 7653)
@@ -0,0 +1,155 @@
+/*!\file KML_Folder.cpp
+ * \brief: implementation of the kml_folder object
+ */
+
+/*Headers:*/
+/*{{{1*/
+#ifdef HAVE_CONFIG_H
+	#include "config.h"
+#else
+#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+#endif
+
+#include "stdio.h"
+#include <string.h>
+#include "../objects.h"
+#include "../../shared/shared.h"
+#include "../../Container/Container.h"
+#include "../../include/include.h"
+/*}}}*/
+
+/*Constructors/destructor/copy*/
+/*FUNCTION KML_Folder::KML_Folder(){{{1*/
+KML_Folder::KML_Folder(){
+
+	feature   =new DataSet;
+
+}
+/*}}}*/
+/*FUNCTION KML_Folder::~KML_Folder(){{{1*/
+KML_Folder::~KML_Folder(){
+
+	if (feature) {
+		delete feature;
+		feature   =NULL;
+	}
+
+}
+/*}}}*/
+
+/*Other*/
+/*FUNCTION KML_Folder::Echo {{{1*/
+void  KML_Folder::Echo(){
+
+	bool  flag=true;
+
+	_printf_(flag,"KML_Folder:\n");
+	KML_Container::Echo();
+
+	_printf_(flag,"       feature: (size=%d)\n" ,feature->Size());
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Folder::DeepEcho {{{1*/
+void  KML_Folder::DeepEcho(){
+
+	char  indent[81]="";
+
+	KML_Folder::DeepEcho(indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Folder::DeepEcho {{{1*/
+void  KML_Folder::DeepEcho(char* indent){
+
+	int   i;
+	char  indent2[81];
+	bool  flag=true;
+
+	_printf_(flag,"%sKML_Folder:\n",indent);
+	KML_Container::DeepEcho(indent);
+
+/*  loop over the features for the folder  */
+
+	strcpy(indent2,indent);
+	strcat(indent2,"  ");
+
+	if (feature->Size())
+		for (i=0; i<feature->Size(); i++) {
+			_printf_(flag,"%s       feature: [%d] begin\n" ,indent,i);
+			((KML_Feature *)feature->GetObjectByOffset(i))->DeepEcho(indent2);
+			_printf_(flag,"%s       feature: [%d] end\n"   ,indent,i);
+		}
+	else
+		_printf_(flag,"%s       feature: [empty]\n"    ,indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Folder::Write {{{1*/
+void  KML_Folder::Write(FILE* filout,char* indent){
+
+	int   i;
+	char  indent2[81];
+
+	if (this->id && strlen(this->id))
+		fprintf(filout,"%s<Folder id=\"%s\">\n",indent,this->id);
+	else
+		fprintf(filout,"%s<Folder>\n",indent);
+
+	KML_Container::Write(filout,indent);
+
+/*  loop over the features for the folder  */
+
+	strcpy(indent2,indent);
+	strcat(indent2,"  ");
+
+	for (i=0; i<feature->Size(); i++)
+		((KML_Feature *)feature->GetObjectByOffset(i))->Write(filout,indent2);
+
+	fprintf(filout,"%s</Folder>\n",indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Folder::Id {{{1*/
+int   KML_Folder::Id(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Folder::MyRank {{{1*/
+int   KML_Folder::MyRank(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Folder::Marshall {{{1*/
+void  KML_Folder::Marshall(char** pmarshalled_dataset){
+}
+/*}}}*/
+
+/*FUNCTION KML_Folder::MarshallSize {{{1*/
+int   KML_Folder::MarshallSize(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Folder::Demarshall {{{1*/
+void  KML_Folder::Demarshall(char** pmarshalled_dataset){
+}
+/*}}}*/
+
+/*FUNCTION KML_Folder::Enum {{{1*/
+int   KML_Folder::Enum(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Folder::copy {{{1*/
+Object* KML_Folder::copy(){
+}
+/*}}}*/
+
Index: /issm/trunk/src/c/objects/KML/KML_Folder.h
===================================================================
--- /issm/trunk/src/c/objects/KML/KML_Folder.h	(revision 7653)
+++ /issm/trunk/src/c/objects/KML/KML_Folder.h	(revision 7653)
@@ -0,0 +1,45 @@
+/*! \file KML_Folder.h 
+ *  \brief: header file for kml_folder object
+ */
+
+#ifndef _KML_FOLDER_H_
+#define _KML_FOLDER_H_
+
+/*Headers:*/
+/*{{{1*/
+#include "../../include/include.h"
+#include "../../shared/Exceptions/exceptions.h"
+#include "../../EnumDefinitions/EnumDefinitions.h"
+
+#include "./KML_Container.h"
+class KML_Feature;
+class DataSet;
+/*}}}*/
+
+class KML_Folder: public KML_Container {
+
+	public:
+
+		DataSet* feature;
+
+		/*KML_Folder constructors, destructors {{{1*/
+		KML_Folder();
+		~KML_Folder();
+		/*}}}*/
+		/*Object virtual functions definitions:{{{1 */
+		void  Echo();
+		void  DeepEcho();
+		void  DeepEcho(char* indent);
+		void  Write(FILE* fid,char* indent);
+		int   Id();
+		int   MyRank();
+		void  Marshall(char** pmarshalled_dataset);
+		int   MarshallSize();
+		void  Demarshall(char** pmarshalled_dataset);
+		int   Enum();
+		Object* copy();
+		/*}}}*/
+
+};
+#endif  /* _KML_FOLDER_H */
+
Index: /issm/trunk/src/c/objects/KML/KML_Geometry.cpp
===================================================================
--- /issm/trunk/src/c/objects/KML/KML_Geometry.cpp	(revision 7653)
+++ /issm/trunk/src/c/objects/KML/KML_Geometry.cpp	(revision 7653)
@@ -0,0 +1,110 @@
+/*!\file KML_Geometry.cpp
+ * \brief: implementation of the kml_geometry abstract object
+ */
+
+/*Headers:*/
+/*{{{1*/
+#ifdef HAVE_CONFIG_H
+	#include "config.h"
+#else
+#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+#endif
+
+#include "stdio.h"
+#include <string.h>
+#include "../objects.h"
+#include "../../shared/shared.h"
+#include "../../Container/Container.h"
+#include "../../include/include.h"
+/*}}}*/
+
+/*Constructors/destructor/copy*/
+/*FUNCTION KML_Geometry::KML_Geometry(){{{1*/
+KML_Geometry::KML_Geometry(){
+
+	;
+
+}
+/*}}}*/
+/*FUNCTION KML_Geometry::~KML_Geometry(){{{1*/
+KML_Geometry::~KML_Geometry(){
+
+	;
+
+}
+/*}}}*/
+
+/*Other*/
+/*FUNCTION KML_Geometry::Echo {{{1*/
+void  KML_Geometry::Echo(){
+
+	this->KML_Object::Echo();
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Geometry::DeepEcho {{{1*/
+void  KML_Geometry::DeepEcho(){
+
+	char  indent[81]="";
+
+	KML_Geometry::DeepEcho(indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Geometry::DeepEcho {{{1*/
+void  KML_Geometry::DeepEcho(char* indent){
+
+	this->KML_Object::DeepEcho(indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Geometry::Write {{{1*/
+void  KML_Geometry::Write(FILE* filout,char* indent){
+
+	this->KML_Object::Write(filout,indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Geometry::Id {{{1*/
+int   KML_Geometry::Id(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Geometry::MyRank {{{1*/
+int   KML_Geometry::MyRank(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Geometry::Marshall {{{1*/
+void  KML_Geometry::Marshall(char** pmarshalled_dataset){
+}
+/*}}}*/
+
+/*FUNCTION KML_Geometry::MarshallSize {{{1*/
+int   KML_Geometry::MarshallSize(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Geometry::Demarshall {{{1*/
+void  KML_Geometry::Demarshall(char** pmarshalled_dataset){
+}
+/*}}}*/
+
+/*FUNCTION KML_Geometry::Enum {{{1*/
+int   KML_Geometry::Enum(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Geometry::copy {{{1*/
+Object* KML_Geometry::copy(){
+}
+/*}}}*/
+
Index: /issm/trunk/src/c/objects/KML/KML_Geometry.h
===================================================================
--- /issm/trunk/src/c/objects/KML/KML_Geometry.h	(revision 7653)
+++ /issm/trunk/src/c/objects/KML/KML_Geometry.h	(revision 7653)
@@ -0,0 +1,41 @@
+/*! \file KML_Geometry.h 
+ *  \brief: header file for kml_geometry abstract object
+ */
+
+#ifndef _KML_GEOMETRY_H_
+#define _KML_GEOMETRY_H_
+
+/*Headers:*/
+/*{{{1*/
+#include "../../include/include.h"
+#include "../../shared/Exceptions/exceptions.h"
+#include "../../EnumDefinitions/EnumDefinitions.h"
+
+#include "./KML_Object.h"
+/*}}}*/
+
+class KML_Geometry: public KML_Object {
+
+	public:
+
+		/*KML_Geometry constructors, destructors {{{1*/
+		KML_Geometry();
+		~KML_Geometry();
+		/*}}}*/
+		/*Object virtual functions definitions:{{{1*/
+		void  Echo();
+		void  DeepEcho();
+		void  DeepEcho(char* indent);
+		void  Write(FILE* fid,char* indent);
+		int   Id();
+		int   MyRank();
+		void  Marshall(char** pmarshalled_dataset);
+		int   MarshallSize();
+		void  Demarshall(char** pmarshalled_dataset);
+		int   Enum();
+		Object* copy();
+		/*}}}*/
+
+};
+#endif  /* _KML_GEOMETRY_H */
+
Index: /issm/trunk/src/c/objects/KML/KML_LineString.cpp
===================================================================
--- /issm/trunk/src/c/objects/KML/KML_LineString.cpp	(revision 7653)
+++ /issm/trunk/src/c/objects/KML/KML_LineString.cpp	(revision 7653)
@@ -0,0 +1,158 @@
+/*!\file KML_LineString.cpp
+ * \brief: implementation of the kml_linestring object
+ */
+
+/*Headers:*/
+/*{{{1*/
+#ifdef HAVE_CONFIG_H
+	#include "config.h"
+#else
+#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+#endif
+
+#include "stdio.h"
+#include <string.h>
+#include "../objects.h"
+#include "../../shared/shared.h"
+#include "../../Container/Container.h"
+#include "../../include/include.h"
+/*}}}*/
+
+/*Constructors/destructor/copy*/
+/*FUNCTION KML_LineString::KML_LineString(){{{1*/
+KML_LineString::KML_LineString(){
+
+	extrude   =false;
+	tessellate=false;
+	strcpy(altmode   ,"clampToGround");
+	ncoord    =0;
+	coords    =NULL;
+
+}
+/*}}}*/
+/*FUNCTION KML_LineString::~KML_LineString(){{{1*/
+KML_LineString::~KML_LineString(){
+
+	if (coords) xfree((void**)&coords);
+
+	coords    =NULL;
+	ncoord    =0;
+
+}
+/*}}}*/
+
+/*Other*/
+/*FUNCTION KML_LineString::Echo {{{1*/
+void  KML_LineString::Echo(){
+
+	bool  flag=true;
+
+	_printf_(flag,"KML_LineString:\n");
+	KML_Geometry::Echo();
+
+	_printf_(flag,"       extrude: %s\n"          ,(extrude ? "true" : "false"));
+	_printf_(flag,"    tessellate: %s\n"          ,(tessellate ? "true" : "false"));
+	_printf_(flag,"       altmode: \"%s\"\n"      ,altmode);
+	_printf_(flag,"        coords: (ncoord=%d)\n" ,ncoord);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_LineString::DeepEcho {{{1*/
+void  KML_LineString::DeepEcho(){
+
+	char  indent[81]="";
+
+	KML_LineString::DeepEcho(indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_LineString::DeepEcho {{{1*/
+void  KML_LineString::DeepEcho(char* indent){
+
+	int   i;
+	bool  flag=true;
+
+	_printf_(flag,"%sKML_LineString:\n",indent);
+	KML_Geometry::DeepEcho(indent);
+
+	_printf_(flag,"%s       extrude: %s\n"          ,indent,(extrude ? "true" : "false"));
+	_printf_(flag,"%s    tessellate: %s\n"          ,indent,(tessellate ? "true" : "false"));
+	_printf_(flag,"%s       altmode: \"%s\"\n"      ,indent,altmode);
+	_printf_(flag,"%s        coords: (ncoord=%d)\n" ,indent,ncoord);
+	for (i=0; i<ncoord; i++)
+		_printf_(flag,"%s                (%g,%g,%g)\n" ,indent,
+				coords[i][0],coords[i][1],coords[i][2]);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_LineString::Write {{{1*/
+void  KML_LineString::Write(FILE* filout,char* indent){
+
+	int   i;
+
+	if (this->id && strlen(this->id))
+		fprintf(filout,"%s<LineString id=\"%s\">\n",indent,this->id);
+	else
+		fprintf(filout,"%s<LineString>\n",indent);
+
+	KML_Geometry::Write(filout,indent);
+
+	fprintf(filout,"%s  <extrude>%d</extrude>\n",indent,(extrude ? 1 : 0));
+	fprintf(filout,"%s  <tessellate>%d</tessellate>\n",indent,(tessellate ? 1 : 0));
+	fprintf(filout,"%s  <altitudeMode>%s</altitudeMode>\n",indent,altmode);
+	fprintf(filout,"%s  <coordinates>\n",indent);
+
+/*  loop over the coordinates for the linestring  */
+
+	for (i=0; i<ncoord; i++)
+		fprintf(filout,"%s    %0.16g,%0.16g,%0.16g\n",indent,
+				coords[i][0],coords[i][1],coords[i][2]);
+
+	fprintf(filout,"%s  </coordinates>\n",indent);
+	fprintf(filout,"%s</LineString>\n",indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_LineString::Id {{{1*/
+int   KML_LineString::Id(){
+}
+/*}}}*/
+
+/*FUNCTION KML_LineString::MyRank {{{1*/
+int   KML_LineString::MyRank(){
+}
+/*}}}*/
+
+/*FUNCTION KML_LineString::Marshall {{{1*/
+void  KML_LineString::Marshall(char** pmarshalled_dataset){
+}
+/*}}}*/
+
+/*FUNCTION KML_LineString::MarshallSize {{{1*/
+int   KML_LineString::MarshallSize(){
+}
+/*}}}*/
+
+/*FUNCTION KML_LineString::Demarshall {{{1*/
+void  KML_LineString::Demarshall(char** pmarshalled_dataset){
+}
+/*}}}*/
+
+/*FUNCTION KML_LineString::Enum {{{1*/
+int   KML_LineString::Enum(){
+}
+/*}}}*/
+
+/*FUNCTION KML_LineString::copy {{{1*/
+Object* KML_LineString::copy(){
+}
+/*}}}*/
+
Index: /issm/trunk/src/c/objects/KML/KML_LineString.h
===================================================================
--- /issm/trunk/src/c/objects/KML/KML_LineString.h	(revision 7653)
+++ /issm/trunk/src/c/objects/KML/KML_LineString.h	(revision 7653)
@@ -0,0 +1,49 @@
+/*! \file KML_LineString.h 
+ *  \brief: header file for kml_linestring object
+ */
+
+#ifndef _KML_LINESTRING_H_
+#define _KML_LINESTRING_H_
+
+#define KML_LINESTRING_ALTMODE_LENGTH    19
+
+/*Headers:*/
+/*{{{1*/
+#include "../../include/include.h"
+#include "../../shared/Exceptions/exceptions.h"
+#include "../../EnumDefinitions/EnumDefinitions.h"
+
+#include "./KML_Geometry.h"
+/*}}}*/
+
+class KML_LineString: public KML_Geometry {
+
+	public:
+
+		bool  extrude;
+		bool  tessellate;
+		char  altmode[KML_LINESTRING_ALTMODE_LENGTH];
+        int   ncoord;
+		double (*coords)[3];
+
+		/*KML_LineString constructors, destructors {{{1*/
+		KML_LineString();
+		~KML_LineString();
+		/*}}}*/
+		/*Object virtual functions definitions:{{{1*/
+		void  Echo();
+		void  DeepEcho();
+		void  DeepEcho(char* indent);
+		void  Write(FILE* fid,char* indent);
+		int   Id();
+		int   MyRank();
+		void  Marshall(char** pmarshalled_dataset);
+		int   MarshallSize();
+		void  Demarshall(char** pmarshalled_dataset);
+		int   Enum();
+		Object* copy();
+		/*}}}*/
+
+};
+#endif  /* _KML_LINESTRING_H */
+
Index: /issm/trunk/src/c/objects/KML/KML_LineStyle.cpp
===================================================================
--- /issm/trunk/src/c/objects/KML/KML_LineStyle.cpp	(revision 7653)
+++ /issm/trunk/src/c/objects/KML/KML_LineStyle.cpp	(revision 7653)
@@ -0,0 +1,132 @@
+/*!\file KML_LineStyle.cpp
+ * \brief: implementation of the kml_linestyle object
+ */
+
+/*Headers:*/
+/*{{{1*/
+#ifdef HAVE_CONFIG_H
+	#include "config.h"
+#else
+#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+#endif
+
+#include "stdio.h"
+#include <string.h>
+#include "../objects.h"
+#include "../../shared/shared.h"
+#include "../../Container/Container.h"
+#include "../../include/include.h"
+/*}}}*/
+
+/*Constructors/destructor/copy*/
+/*FUNCTION KML_LineStyle::KML_LineStyle(){{{1*/
+KML_LineStyle::KML_LineStyle(){
+
+	width     =1;
+
+}
+/*}}}*/
+/*FUNCTION KML_LineStyle::~KML_LineStyle(){{{1*/
+KML_LineStyle::~KML_LineStyle(){
+
+	;
+
+}
+/*}}}*/
+
+/*Other*/
+/*FUNCTION KML_LineStyle::Echo {{{1*/
+void  KML_LineStyle::Echo(){
+
+	bool  flag=true;
+
+	_printf_(flag,"KML_LineStyle:\n");
+	KML_ColorStyle::Echo();
+
+	_printf_(flag,"         width: %d\n"          ,width);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_LineStyle::DeepEcho {{{1*/
+void  KML_LineStyle::DeepEcho(){
+
+	char  indent[81]="";
+
+	KML_LineStyle::DeepEcho(indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_LineStyle::DeepEcho {{{1*/
+void  KML_LineStyle::DeepEcho(char* indent){
+
+	int   i;
+	bool  flag=true;
+
+	_printf_(flag,"%sKML_LineStyle:\n",indent);
+	KML_ColorStyle::DeepEcho(indent);
+
+	_printf_(flag,"%s         width: %d\n"          ,indent,width);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_LineStyle::Write {{{1*/
+void  KML_LineStyle::Write(FILE* filout,char* indent){
+
+	int   i;
+
+	if (this->id && strlen(this->id))
+		fprintf(filout,"%s<LineStyle id=\"%s\">\n",indent,this->id);
+	else
+		fprintf(filout,"%s<LineStyle>\n",indent);
+
+	KML_ColorStyle::Write(filout,indent);
+
+	fprintf(filout,"%s  <width>%d</width>\n",indent,width);
+
+	fprintf(filout,"%s</LineStyle>\n",indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_LineStyle::Id {{{1*/
+int   KML_LineStyle::Id(){
+}
+/*}}}*/
+
+/*FUNCTION KML_LineStyle::MyRank {{{1*/
+int   KML_LineStyle::MyRank(){
+}
+/*}}}*/
+
+/*FUNCTION KML_LineStyle::Marshall {{{1*/
+void  KML_LineStyle::Marshall(char** pmarshalled_dataset){
+}
+/*}}}*/
+
+/*FUNCTION KML_LineStyle::MarshallSize {{{1*/
+int   KML_LineStyle::MarshallSize(){
+}
+/*}}}*/
+
+/*FUNCTION KML_LineStyle::Demarshall {{{1*/
+void  KML_LineStyle::Demarshall(char** pmarshalled_dataset){
+}
+/*}}}*/
+
+/*FUNCTION KML_LineStyle::Enum {{{1*/
+int   KML_LineStyle::Enum(){
+}
+/*}}}*/
+
+/*FUNCTION KML_LineStyle::copy {{{1*/
+Object* KML_LineStyle::copy(){
+}
+/*}}}*/
+
Index: /issm/trunk/src/c/objects/KML/KML_LineStyle.h
===================================================================
--- /issm/trunk/src/c/objects/KML/KML_LineStyle.h	(revision 7653)
+++ /issm/trunk/src/c/objects/KML/KML_LineStyle.h	(revision 7653)
@@ -0,0 +1,43 @@
+/*! \file KML_LineStyle.h 
+ *  \brief: header file for kml_linestyle object
+ */
+
+#ifndef _KML_LINESTYLE_H_
+#define _KML_LINESTYLE_H_
+
+/*Headers:*/
+/*{{{1*/
+#include "../../include/include.h"
+#include "../../shared/Exceptions/exceptions.h"
+#include "../../EnumDefinitions/EnumDefinitions.h"
+
+#include "./KML_ColorStyle.h"
+/*}}}*/
+
+class KML_LineStyle: public KML_ColorStyle {
+
+	public:
+
+		int   width;
+
+		/*KML_LineStyle constructors, destructors {{{1*/
+		KML_LineStyle();
+		~KML_LineStyle();
+		/*}}}*/
+		/*Object virtual functions definitions:{{{1 */
+		void  Echo();
+		void  DeepEcho();
+		void  DeepEcho(char* indent);
+		void  Write(FILE* fid,char* indent);
+		int   Id();
+		int   MyRank();
+		void  Marshall(char** pmarshalled_dataset);
+		int   MarshallSize();
+		void  Demarshall(char** pmarshalled_dataset);
+		int   Enum();
+		Object* copy();
+		/*}}}*/
+
+};
+#endif  /* _KML_LINESTYLE_H */
+
Index: /issm/trunk/src/c/objects/KML/KML_LinearRing.cpp
===================================================================
--- /issm/trunk/src/c/objects/KML/KML_LinearRing.cpp	(revision 7653)
+++ /issm/trunk/src/c/objects/KML/KML_LinearRing.cpp	(revision 7653)
@@ -0,0 +1,158 @@
+/*!\file KML_LinearRing.cpp
+ * \brief: implementation of the kml_linearring object
+ */
+
+/*Headers:*/
+/*{{{1*/
+#ifdef HAVE_CONFIG_H
+	#include "config.h"
+#else
+#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+#endif
+
+#include "stdio.h"
+#include <string.h>
+#include "../objects.h"
+#include "../../shared/shared.h"
+#include "../../Container/Container.h"
+#include "../../include/include.h"
+/*}}}*/
+
+/*Constructors/destructor/copy*/
+/*FUNCTION KML_LinearRing::KML_LinearRing(){{{1*/
+KML_LinearRing::KML_LinearRing(){
+
+	extrude   =false;
+	tessellate=false;
+	strcpy(altmode   ,"clampToGround");
+	ncoord    =0;
+	coords    =NULL;
+
+}
+/*}}}*/
+/*FUNCTION KML_LinearRing::~KML_LinearRing(){{{1*/
+KML_LinearRing::~KML_LinearRing(){
+
+	if (coords) xfree((void**)&coords);
+
+	coords    =NULL;
+	ncoord    =0;
+
+}
+/*}}}*/
+
+/*Other*/
+/*FUNCTION KML_LinearRing::Echo {{{1*/
+void  KML_LinearRing::Echo(){
+
+	bool  flag=true;
+
+	_printf_(flag,"KML_LinearRing:\n");
+	KML_Geometry::Echo();
+
+	_printf_(flag,"       extrude: %s\n"          ,(extrude ? "true" : "false"));
+	_printf_(flag,"    tessellate: %s\n"          ,(tessellate ? "true" : "false"));
+	_printf_(flag,"       altmode: \"%s\"\n"      ,altmode);
+	_printf_(flag,"        coords: (ncoord=%d)\n" ,ncoord);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_LinearRing::DeepEcho {{{1*/
+void  KML_LinearRing::DeepEcho(){
+
+	char  indent[81]="";
+
+	KML_LinearRing::DeepEcho(indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_LinearRing::DeepEcho {{{1*/
+void  KML_LinearRing::DeepEcho(char* indent){
+
+	int   i;
+	bool  flag=true;
+
+	_printf_(flag,"%sKML_LinearRing:\n",indent);
+	KML_Geometry::DeepEcho(indent);
+
+	_printf_(flag,"%s       extrude: %s\n"          ,indent,(extrude ? "true" : "false"));
+	_printf_(flag,"%s    tessellate: %s\n"          ,indent,(tessellate ? "true" : "false"));
+	_printf_(flag,"%s       altmode: \"%s\"\n"      ,indent,altmode);
+	_printf_(flag,"%s        coords: (ncoord=%d)\n" ,indent,ncoord);
+	for (i=0; i<ncoord; i++)
+		_printf_(flag,"%s                (%g,%g,%g)\n" ,indent,
+				coords[i][0],coords[i][1],coords[i][2]);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_LinearRing::Write {{{1*/
+void  KML_LinearRing::Write(FILE* filout,char* indent){
+
+	int   i;
+
+	if (this->id && strlen(this->id))
+		fprintf(filout,"%s<LinearRing id=\"%s\">\n",indent,this->id);
+	else
+		fprintf(filout,"%s<LinearRing>\n",indent);
+
+	KML_Geometry::Write(filout,indent);
+
+	fprintf(filout,"%s  <extrude>%d</extrude>\n",indent,(extrude ? 1 : 0));
+	fprintf(filout,"%s  <tessellate>%d</tessellate>\n",indent,(tessellate ? 1 : 0));
+	fprintf(filout,"%s  <altitudeMode>%s</altitudeMode>\n",indent,altmode);
+	fprintf(filout,"%s  <coordinates>\n",indent);
+
+/*  loop over the coordinates for the linearring  */
+
+	for (i=0; i<ncoord; i++)
+		fprintf(filout,"%s    %0.16g,%0.16g,%0.16g\n",indent,
+				coords[i][0],coords[i][1],coords[i][2]);
+
+	fprintf(filout,"%s  </coordinates>\n",indent);
+	fprintf(filout,"%s</LinearRing>\n",indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_LinearRing::Id {{{1*/
+int   KML_LinearRing::Id(){
+}
+/*}}}*/
+
+/*FUNCTION KML_LinearRing::MyRank {{{1*/
+int   KML_LinearRing::MyRank(){
+}
+/*}}}*/
+
+/*FUNCTION KML_LinearRing::Marshall {{{1*/
+void  KML_LinearRing::Marshall(char** pmarshalled_dataset){
+}
+/*}}}*/
+
+/*FUNCTION KML_LinearRing::MarshallSize {{{1*/
+int   KML_LinearRing::MarshallSize(){
+}
+/*}}}*/
+
+/*FUNCTION KML_LinearRing::Demarshall {{{1*/
+void  KML_LinearRing::Demarshall(char** pmarshalled_dataset){
+}
+/*}}}*/
+
+/*FUNCTION KML_LinearRing::Enum {{{1*/
+int   KML_LinearRing::Enum(){
+}
+/*}}}*/
+
+/*FUNCTION KML_LinearRing::copy {{{1*/
+Object* KML_LinearRing::copy(){
+}
+/*}}}*/
+
Index: /issm/trunk/src/c/objects/KML/KML_LinearRing.h
===================================================================
--- /issm/trunk/src/c/objects/KML/KML_LinearRing.h	(revision 7653)
+++ /issm/trunk/src/c/objects/KML/KML_LinearRing.h	(revision 7653)
@@ -0,0 +1,49 @@
+/*! \file KML_LinearRing.h 
+ *  \brief: header file for kml_linearring object
+ */
+
+#ifndef _KML_LINEARRING_H_
+#define _KML_LINEARRING_H_
+
+#define KML_LINEARRING_ALTMODE_LENGTH    19
+
+/*Headers:*/
+/*{{{1*/
+#include "../../include/include.h"
+#include "../../shared/Exceptions/exceptions.h"
+#include "../../EnumDefinitions/EnumDefinitions.h"
+
+#include "./KML_Geometry.h"
+/*}}}*/
+
+class KML_LinearRing: public KML_Geometry {
+
+	public:
+
+		bool  extrude;
+		bool  tessellate;
+		char  altmode[KML_LINEARRING_ALTMODE_LENGTH];
+        int   ncoord;
+		double (*coords)[3];
+
+		/*KML_LinearRing constructors, destructors {{{1*/
+		KML_LinearRing();
+		~KML_LinearRing();
+		/*}}}*/
+		/*Object virtual functions definitions:{{{1*/
+		void  Echo();
+		void  DeepEcho();
+		void  DeepEcho(char* indent);
+		void  Write(FILE* fid,char* indent);
+		int   Id();
+		int   MyRank();
+		void  Marshall(char** pmarshalled_dataset);
+		int   MarshallSize();
+		void  Demarshall(char** pmarshalled_dataset);
+		int   Enum();
+		Object* copy();
+		/*}}}*/
+
+};
+#endif  /* _KML_LINEARRING_H */
+
Index: /issm/trunk/src/c/objects/KML/KML_MultiGeometry.cpp
===================================================================
--- /issm/trunk/src/c/objects/KML/KML_MultiGeometry.cpp	(revision 7653)
+++ /issm/trunk/src/c/objects/KML/KML_MultiGeometry.cpp	(revision 7653)
@@ -0,0 +1,155 @@
+/*!\file KML_MultiGeometry.cpp
+ * \brief: implementation of the kml_multigeometry object
+ */
+
+/*Headers:*/
+/*{{{1*/
+#ifdef HAVE_CONFIG_H
+	#include "config.h"
+#else
+#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+#endif
+
+#include "stdio.h"
+#include <string.h>
+#include "../objects.h"
+#include "../../shared/shared.h"
+#include "../../Container/Container.h"
+#include "../../include/include.h"
+/*}}}*/
+
+/*Constructors/destructor/copy*/
+/*FUNCTION KML_MultiGeometry::KML_MultiGeometry(){{{1*/
+KML_MultiGeometry::KML_MultiGeometry(){
+
+	geometry  =new DataSet;
+
+}
+/*}}}*/
+/*FUNCTION KML_MultiGeometry::~KML_MultiGeometry(){{{1*/
+KML_MultiGeometry::~KML_MultiGeometry(){
+
+	if (geometry) {
+		delete geometry;
+		geometry  =NULL;
+	}
+
+}
+/*}}}*/
+
+/*Other*/
+/*FUNCTION KML_MultiGeometry::Echo {{{1*/
+void  KML_MultiGeometry::Echo(){
+
+	bool  flag=true;
+
+	_printf_(flag,"KML_Multigeometry:\n");
+	KML_Geometry::Echo();
+
+	_printf_(flag,"      geometry: (size=%d)\n" ,geometry->Size());
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_MultiGeometry::DeepEcho {{{1*/
+void  KML_MultiGeometry::DeepEcho(){
+
+	char  indent[81]="";
+
+	KML_MultiGeometry::DeepEcho(indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_MultiGeometry::DeepEcho {{{1*/
+void  KML_MultiGeometry::DeepEcho(char* indent){
+
+	int   i;
+	char  indent2[81];
+	bool  flag=true;
+
+	_printf_(flag,"%sKML_Multigeometry:\n",indent);
+	KML_Geometry::DeepEcho(indent);
+
+/*  loop over the geometry elements for the multigeometry  */
+
+	strcpy(indent2,indent);
+	strcat(indent2,"  ");
+
+	if (geometry->Size())
+		for (i=0; i<geometry->Size(); i++) {
+			_printf_(flag,"%s      geometry: [%d] begin\n" ,indent,i);
+			((KML_Geometry *)geometry->GetObjectByOffset(i))->DeepEcho(indent2);
+			_printf_(flag,"%s      geometry: [%d] end\n"   ,indent,i);
+		}
+	else
+		_printf_(flag,"%s      geometry: [empty]\n"    ,indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_MultiGeometry::Write {{{1*/
+void  KML_MultiGeometry::Write(FILE* filout,char* indent){
+
+	int   i;
+	char  indent2[81];
+
+	if (this->id && strlen(this->id))
+		fprintf(filout,"%s<MultiGeometry id=\"%s\">\n",indent,this->id);
+	else
+		fprintf(filout,"%s<MultiGeometry>\n",indent);
+
+	KML_Geometry::Write(filout,indent);
+
+/*  loop over the geometry elements for the multigeometry  */
+
+	strcpy(indent2,indent);
+	strcat(indent2,"  ");
+
+	for (i=0; i<geometry->Size(); i++)
+		((KML_Geometry *)geometry->GetObjectByOffset(i))->Write(filout,indent2);
+
+	fprintf(filout,"%s</MultiGeometry>\n",indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_MultiGeometry::Id {{{1*/
+int   KML_MultiGeometry::Id(){
+}
+/*}}}*/
+
+/*FUNCTION KML_MultiGeometry::MyRank {{{1*/
+int   KML_MultiGeometry::MyRank(){
+}
+/*}}}*/
+
+/*FUNCTION KML_MultiGeometry::Marshall {{{1*/
+void  KML_MultiGeometry::Marshall(char** pmarshalled_dataset){
+}
+/*}}}*/
+
+/*FUNCTION KML_MultiGeometry::MarshallSize {{{1*/
+int   KML_MultiGeometry::MarshallSize(){
+}
+/*}}}*/
+
+/*FUNCTION KML_MultiGeometry::Demarshall {{{1*/
+void  KML_MultiGeometry::Demarshall(char** pmarshalled_dataset){
+}
+/*}}}*/
+
+/*FUNCTION KML_MultiGeometry::Enum {{{1*/
+int   KML_MultiGeometry::Enum(){
+}
+/*}}}*/
+
+/*FUNCTION KML_MultiGeometry::copy {{{1*/
+Object* KML_MultiGeometry::copy(){
+}
+/*}}}*/
+
Index: /issm/trunk/src/c/objects/KML/KML_MultiGeometry.h
===================================================================
--- /issm/trunk/src/c/objects/KML/KML_MultiGeometry.h	(revision 7653)
+++ /issm/trunk/src/c/objects/KML/KML_MultiGeometry.h	(revision 7653)
@@ -0,0 +1,45 @@
+/*! \file KML_MultiGeometry.h 
+ *  \brief: header file for kml_multigeometry object
+ */
+
+#ifndef _KML_MULTIGEOMETRY_H_
+#define _KML_MULTIGEOMETRY_H_
+
+/*Headers:*/
+/*{{{1*/
+#include "../../include/include.h"
+#include "../../shared/Exceptions/exceptions.h"
+#include "../../EnumDefinitions/EnumDefinitions.h"
+
+#include "./KML_Geometry.h"
+class KML_Geometry;
+class DataSet;
+/*}}}*/
+
+class KML_MultiGeometry: public KML_Geometry {
+
+	public:
+
+		DataSet* geometry;
+
+		/*KML_MultiGeometry constructors, destructors {{{1*/
+		KML_MultiGeometry();
+		~KML_MultiGeometry();
+		/*}}}*/
+		/*Object virtual functions definitions:{{{1*/
+		void  Echo();
+		void  DeepEcho();
+		void  DeepEcho(char* indent);
+		void  Write(FILE* fid,char* indent);
+		int   Id();
+		int   MyRank();
+		void  Marshall(char** pmarshalled_dataset);
+		int   MarshallSize();
+		void  Demarshall(char** pmarshalled_dataset);
+		int   Enum();
+		Object* copy();
+		/*}}}*/
+
+};
+#endif  /* _KML_MULTIGEOMETRY_H */
+
Index: /issm/trunk/src/c/objects/KML/KML_Object.cpp
===================================================================
--- /issm/trunk/src/c/objects/KML/KML_Object.cpp	(revision 7653)
+++ /issm/trunk/src/c/objects/KML/KML_Object.cpp	(revision 7653)
@@ -0,0 +1,116 @@
+/*!\file KML_Object.cpp
+ * \brief: implementation of the kml_object abstract object
+ */
+
+/*Headers:*/
+/*{{{1*/
+#ifdef HAVE_CONFIG_H
+	#include "config.h"
+#else
+#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+#endif
+
+#include "stdio.h"
+#include <string.h>
+#include "../objects.h"
+#include "../../shared/shared.h"
+#include "../../Container/Container.h"
+#include "../../include/include.h"
+/*}}}*/
+
+/*Constructors/destructor/copy*/
+/*FUNCTION KML_Object::KML_Object(){{{1*/
+KML_Object::KML_Object(){
+
+	strcpy(id        ,"");
+
+}
+/*}}}*/
+/*FUNCTION KML_Object::~KML_Object(){{{1*/
+KML_Object::~KML_Object(){
+
+	;
+
+}
+/*}}}*/
+
+/*Other*/
+/*FUNCTION KML_Object::Echo {{{1*/
+void  KML_Object::Echo(){
+
+	bool  flag=true;
+
+	_printf_(flag,"            id: \"%s\"\n"      ,id);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Object::DeepEcho {{{1*/
+void  KML_Object::DeepEcho(){
+
+	char  indent[81]="";
+
+	KML_Object::DeepEcho(indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Object::DeepEcho {{{1*/
+void  KML_Object::DeepEcho(char* indent){
+
+	bool  flag=true;
+
+	_printf_(flag,"%s            id: \"%s\"\n"      ,indent,id);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Object::Write {{{1*/
+void  KML_Object::Write(FILE* filout,char* indent){
+
+//  id is always written in keyword line of derived classes
+
+	;
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Object::Id {{{1*/
+int   KML_Object::Id(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Object::MyRank {{{1*/
+int   KML_Object::MyRank(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Object::Marshall {{{1*/
+void  KML_Object::Marshall(char** pmarshalled_dataset){
+}
+/*}}}*/
+
+/*FUNCTION KML_Object::MarshallSize {{{1*/
+int   KML_Object::MarshallSize(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Object::Demarshall {{{1*/
+void  KML_Object::Demarshall(char** pmarshalled_dataset){
+}
+/*}}}*/
+
+/*FUNCTION KML_Object::Enum {{{1*/
+int   KML_Object::Enum(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Object::copy {{{1*/
+Object* KML_Object::copy(){
+}
+/*}}}*/
+
Index: /issm/trunk/src/c/objects/KML/KML_Object.h
===================================================================
--- /issm/trunk/src/c/objects/KML/KML_Object.h	(revision 7653)
+++ /issm/trunk/src/c/objects/KML/KML_Object.h	(revision 7653)
@@ -0,0 +1,47 @@
+/*! \file KML_Object.h 
+ *  \brief: header file for kml_object abstract object
+ */
+
+#ifndef _KML_OBJECT_H_
+#define _KML_OBJECT_H_
+
+#define KML_OBJECT_ID_LENGTH         81
+
+/*Headers:{{{1*/
+#include "../../include/include.h"
+#include "../../shared/Exceptions/exceptions.h"
+#include "../../EnumDefinitions/EnumDefinitions.h"
+
+#include "../Object.h"
+/*}}}*/
+
+class KML_Object: public Object {
+
+	public:
+
+		char  id[KML_OBJECT_ID_LENGTH];
+
+		/*KML_Object constructors, destructors {{{1*/
+		KML_Object();
+		~KML_Object();
+		/*}}}*/
+		/*Object virtual functions definitions:{{{1*/
+		void  Echo();
+		void  DeepEcho();
+		void  DeepEcho(char* indent);
+		int   Id();
+		int   MyRank();
+		void  Marshall(char** pmarshalled_dataset);
+		int   MarshallSize();
+		void  Demarshall(char** pmarshalled_dataset);
+		int   Enum();
+		Object* copy();
+		/*}}}*/
+
+		/*virtual functions: */
+		virtual void  Write(FILE* fid,char* indent)=0;
+
+
+};
+#endif  /* _KML_OBJECT_H */
+
Index: /issm/trunk/src/c/objects/KML/KML_Placemark.cpp
===================================================================
--- /issm/trunk/src/c/objects/KML/KML_Placemark.cpp	(revision 7653)
+++ /issm/trunk/src/c/objects/KML/KML_Placemark.cpp	(revision 7653)
@@ -0,0 +1,155 @@
+/*!\file KML_Placemark.cpp
+ * \brief: implementation of the kml_placemark object
+ */
+
+/*Headers:*/
+/*{{{1*/
+#ifdef HAVE_CONFIG_H
+	#include "config.h"
+#else
+#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+#endif
+
+#include "stdio.h"
+#include <string.h>
+#include "../objects.h"
+#include "../../shared/shared.h"
+#include "../../Container/Container.h"
+#include "../../include/include.h"
+/*}}}*/
+
+/*Constructors/destructor/copy*/
+/*FUNCTION KML_Placemark::KML_Placemark(){{{1*/
+KML_Placemark::KML_Placemark(){
+
+	geometry  =new DataSet;
+
+}
+/*}}}*/
+/*FUNCTION KML_Placemark::~KML_Placemark(){{{1*/
+KML_Placemark::~KML_Placemark(){
+
+	if (geometry) {
+		delete geometry;
+		geometry  =NULL;
+	}
+
+}
+/*}}}*/
+
+/*Other*/
+/*FUNCTION KML_Placemark::Echo {{{1*/
+void  KML_Placemark::Echo(){
+
+	bool  flag=true;
+
+	_printf_(flag,"KML_Placemark:\n");
+	KML_Feature::Echo();
+
+	_printf_(flag,"      geometry: (size=%d)\n" ,geometry->Size());
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Placemark::DeepEcho {{{1*/
+void  KML_Placemark::DeepEcho(){
+
+	char  indent[81]="";
+
+	KML_Placemark::DeepEcho(indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Placemark::DeepEcho {{{1*/
+void  KML_Placemark::DeepEcho(char* indent){
+
+	int   i;
+	char  indent2[81];
+	bool  flag=true;
+
+	_printf_(flag,"%sKML_Placemark:\n",indent);
+	KML_Feature::DeepEcho(indent);
+
+/*  loop over the geometry elements for the placemark  */
+
+	strcpy(indent2,indent);
+	strcat(indent2,"  ");
+
+	if (geometry->Size())
+		for (i=0; i<geometry->Size(); i++) {
+			_printf_(flag,"%s      geometry: [%d] begin\n" ,indent,i);
+			((KML_Geometry *)geometry->GetObjectByOffset(i))->DeepEcho(indent2);
+			_printf_(flag,"%s      geometry: [%d] end\n"   ,indent,i);
+		}
+	else
+		_printf_(flag,"%s      geometry: [empty]\n"    ,indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Placemark::Write {{{1*/
+void  KML_Placemark::Write(FILE* filout,char* indent){
+
+	int   i;
+	char  indent2[81];
+
+	if (this->id && strlen(this->id))
+		fprintf(filout,"%s<Placemark id=\"%s\">\n",indent,this->id);
+	else
+		fprintf(filout,"%s<Placemark>\n",indent);
+
+	KML_Feature::Write(filout,indent);
+
+/*  loop over the geometry elements for the placemark  */
+
+	strcpy(indent2,indent);
+	strcat(indent2,"  ");
+
+	for (i=0; i<geometry->Size(); i++)
+		((KML_Geometry *)geometry->GetObjectByOffset(i))->Write(filout,indent2);
+
+	fprintf(filout,"%s</Placemark>\n",indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Placemark::Id {{{1*/
+int   KML_Placemark::Id(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Placemark::MyRank {{{1*/
+int   KML_Placemark::MyRank(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Placemark::Marshall {{{1*/
+void  KML_Placemark::Marshall(char** pmarshalled_dataset){
+}
+/*}}}*/
+
+/*FUNCTION KML_Placemark::MarshallSize {{{1*/
+int   KML_Placemark::MarshallSize(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Placemark::Demarshall {{{1*/
+void  KML_Placemark::Demarshall(char** pmarshalled_dataset){
+}
+/*}}}*/
+
+/*FUNCTION KML_Placemark::Enum {{{1*/
+int   KML_Placemark::Enum(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Placemark::copy {{{1*/
+Object* KML_Placemark::copy(){
+}
+/*}}}*/
+
Index: /issm/trunk/src/c/objects/KML/KML_Placemark.h
===================================================================
--- /issm/trunk/src/c/objects/KML/KML_Placemark.h	(revision 7653)
+++ /issm/trunk/src/c/objects/KML/KML_Placemark.h	(revision 7653)
@@ -0,0 +1,45 @@
+/*! \file KML_Placemark.h 
+ *  \brief: header file for kml_placemark object
+ */
+
+#ifndef _KML_PLACEMARK_H_
+#define _KML_PLACEMARK_H_
+
+/*Headers:*/
+/*{{{1*/
+#include "../../include/include.h"
+#include "../../shared/Exceptions/exceptions.h"
+#include "../../EnumDefinitions/EnumDefinitions.h"
+
+#include "./KML_Feature.h"
+class KML_Geometry;
+class DataSet;
+/*}}}*/
+
+class KML_Placemark: public KML_Feature {
+
+	public:
+
+		DataSet* geometry;
+
+		/*KML_Placemark constructors, destructors {{{1*/
+		KML_Placemark();
+		~KML_Placemark();
+		/*}}}*/
+		/*Object virtual functions definitions:{{{1*/
+		void  Echo();
+		void  DeepEcho();
+		void  DeepEcho(char* indent);
+		void  Write(FILE* fid,char* indent);
+		int   Id();
+		int   MyRank();
+		void  Marshall(char** pmarshalled_dataset);
+		int   MarshallSize();
+		void  Demarshall(char** pmarshalled_dataset);
+		int   Enum();
+		Object* copy();
+		/*}}}*/
+
+};
+#endif  /* _KML_PLACEMARK_H */
+
Index: /issm/trunk/src/c/objects/KML/KML_PolyStyle.cpp
===================================================================
--- /issm/trunk/src/c/objects/KML/KML_PolyStyle.cpp	(revision 7653)
+++ /issm/trunk/src/c/objects/KML/KML_PolyStyle.cpp	(revision 7653)
@@ -0,0 +1,136 @@
+/*!\file KML_PolyStyle.cpp
+ * \brief: implementation of the kml_polystyle object
+ */
+
+/*Headers:*/
+/*{{{1*/
+#ifdef HAVE_CONFIG_H
+	#include "config.h"
+#else
+#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+#endif
+
+#include "stdio.h"
+#include <string.h>
+#include "../objects.h"
+#include "../../shared/shared.h"
+#include "../../Container/Container.h"
+#include "../../include/include.h"
+/*}}}*/
+
+/*Constructors/destructor/copy*/
+/*FUNCTION KML_PolyStyle::KML_PolyStyle(){{{1*/
+KML_PolyStyle::KML_PolyStyle(){
+
+	fill      =true;
+	outline   =true;
+
+}
+/*}}}*/
+/*FUNCTION KML_PolyStyle::~KML_PolyStyle(){{{1*/
+KML_PolyStyle::~KML_PolyStyle(){
+
+	;
+
+}
+/*}}}*/
+
+/*Other*/
+/*FUNCTION KML_PolyStyle::Echo {{{1*/
+void  KML_PolyStyle::Echo(){
+
+	bool  flag=true;
+
+	_printf_(flag,"KML_PolyStyle:\n");
+	KML_ColorStyle::Echo();
+
+	_printf_(flag,"          fill: %d\n"          ,fill);
+	_printf_(flag,"       outline: %d\n"          ,outline);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_PolyStyle::DeepEcho {{{1*/
+void  KML_PolyStyle::DeepEcho(){
+
+	char  indent[81]="";
+
+	KML_PolyStyle::DeepEcho(indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_PolyStyle::DeepEcho {{{1*/
+void  KML_PolyStyle::DeepEcho(char* indent){
+
+	int   i;
+	bool  flag=true;
+
+	_printf_(flag,"%sKML_PolyStyle:\n",indent);
+	KML_ColorStyle::DeepEcho(indent);
+
+	_printf_(flag,"%s          fill: %d\n"          ,indent,fill);
+	_printf_(flag,"%s       outline: %d\n"          ,indent,outline);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_PolyStyle::Write {{{1*/
+void  KML_PolyStyle::Write(FILE* filout,char* indent){
+
+	int   i;
+
+	if (this->id && strlen(this->id))
+		fprintf(filout,"%s<PolyStyle id=\"%s\">\n",indent,this->id);
+	else
+		fprintf(filout,"%s<PolyStyle>\n",indent);
+
+	KML_ColorStyle::Write(filout,indent);
+
+	fprintf(filout,"%s  <fill>%d</fill>\n",indent,fill);
+	fprintf(filout,"%s  <outline>%d</outline>\n",indent,outline);
+
+	fprintf(filout,"%s</PolyStyle>\n",indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_PolyStyle::Id {{{1*/
+int   KML_PolyStyle::Id(){
+}
+/*}}}*/
+
+/*FUNCTION KML_PolyStyle::MyRank {{{1*/
+int   KML_PolyStyle::MyRank(){
+}
+/*}}}*/
+
+/*FUNCTION KML_PolyStyle::Marshall {{{1*/
+void  KML_PolyStyle::Marshall(char** pmarshalled_dataset){
+}
+/*}}}*/
+
+/*FUNCTION KML_PolyStyle::MarshallSize {{{1*/
+int   KML_PolyStyle::MarshallSize(){
+}
+/*}}}*/
+
+/*FUNCTION KML_PolyStyle::Demarshall {{{1*/
+void  KML_PolyStyle::Demarshall(char** pmarshalled_dataset){
+}
+/*}}}*/
+
+/*FUNCTION KML_PolyStyle::Enum {{{1*/
+int   KML_PolyStyle::Enum(){
+}
+/*}}}*/
+
+/*FUNCTION KML_PolyStyle::copy {{{1*/
+Object* KML_PolyStyle::copy(){
+}
+/*}}}*/
+
Index: /issm/trunk/src/c/objects/KML/KML_PolyStyle.h
===================================================================
--- /issm/trunk/src/c/objects/KML/KML_PolyStyle.h	(revision 7653)
+++ /issm/trunk/src/c/objects/KML/KML_PolyStyle.h	(revision 7653)
@@ -0,0 +1,44 @@
+/*! \file KML_PolyStyle.h 
+ *  \brief: header file for kml_polystyle object
+ */
+
+#ifndef _KML_POLYSTYLE_H_
+#define _KML_POLYSTYLE_H_
+
+/*Headers:*/
+/*{{{1*/
+#include "../../include/include.h"
+#include "../../shared/Exceptions/exceptions.h"
+#include "../../EnumDefinitions/EnumDefinitions.h"
+
+#include "./KML_ColorStyle.h"
+/*}}}*/
+
+class KML_PolyStyle: public KML_ColorStyle {
+
+	public:
+
+		int   fill;
+		int   outline;
+
+		/*KML_PolyStyle constructors, destructors {{{1*/
+		KML_PolyStyle();
+		~KML_PolyStyle();
+		/*}}}*/
+		/*Object virtual functions definitions:{{{1 */
+		void  Echo();
+		void  DeepEcho();
+		void  DeepEcho(char* indent);
+		void  Write(FILE* fid,char* indent);
+		int   Id();
+		int   MyRank();
+		void  Marshall(char** pmarshalled_dataset);
+		int   MarshallSize();
+		void  Demarshall(char** pmarshalled_dataset);
+		int   Enum();
+		Object* copy();
+		/*}}}*/
+
+};
+#endif  /* _KML_POLYSTYLE_H */
+
Index: /issm/trunk/src/c/objects/KML/KML_Polygon.cpp
===================================================================
--- /issm/trunk/src/c/objects/KML/KML_Polygon.cpp	(revision 7653)
+++ /issm/trunk/src/c/objects/KML/KML_Polygon.cpp	(revision 7653)
@@ -0,0 +1,191 @@
+/*!\file KML_Polygon.cpp
+ * \brief: implementation of the kml_polygon object
+ */
+
+/*Headers:*/
+/*{{{1*/
+#ifdef HAVE_CONFIG_H
+	#include "config.h"
+#else
+#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+#endif
+
+#include "stdio.h"
+#include <string.h>
+#include "../objects.h"
+#include "../../shared/shared.h"
+#include "../../Container/Container.h"
+#include "../../include/include.h"
+/*}}}*/
+
+/*Constructors/destructor/copy*/
+/*FUNCTION KML_Polygon::KML_Polygon(){{{1*/
+KML_Polygon::KML_Polygon(){
+
+	extrude   =false;
+	tessellate=false;
+	strcpy(altmode   ,"clampToGround");
+	outer     =new DataSet;
+	inner     =new DataSet;
+
+}
+/*}}}*/
+/*FUNCTION KML_Polygon::~KML_Polygon(){{{1*/
+KML_Polygon::~KML_Polygon(){
+
+	if (inner) {
+		delete inner;
+		inner     =NULL;
+	}
+
+	if (outer) {
+		delete outer;
+		outer     =NULL;
+	}
+
+}
+/*}}}*/
+
+/*Other*/
+/*FUNCTION KML_Polygon::Echo {{{1*/
+void  KML_Polygon::Echo(){
+
+	bool  flag=true;
+
+	_printf_(flag,"KML_Polygon:\n");
+	KML_Geometry::Echo();
+
+	_printf_(flag,"       extrude: %s\n"          ,(extrude ? "true" : "false"));
+	_printf_(flag,"    tessellate: %s\n"          ,(tessellate ? "true" : "false"));
+	_printf_(flag,"       altmode: \"%s\"\n"      ,altmode);
+	_printf_(flag,"         outer: (size=%d)\n"   ,outer->Size());
+	_printf_(flag,"         inner: (size=%d)\n"   ,inner->Size());
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Polygon::DeepEcho {{{1*/
+void  KML_Polygon::DeepEcho(){
+
+	char  indent[81]="";
+
+	KML_Polygon::DeepEcho(indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Polygon::DeepEcho {{{1*/
+void  KML_Polygon::DeepEcho(char* indent){
+
+	int   i;
+	char  indent2[81];
+	bool  flag=true;
+
+	_printf_(flag,"%sKML_Polygon:\n",indent);
+	KML_Geometry::DeepEcho(indent);
+
+	_printf_(flag,"%s       extrude: %s\n"          ,indent,(extrude ? "true" : "false"));
+	_printf_(flag,"%s    tessellate: %s\n"          ,indent,(tessellate ? "true" : "false"));
+	_printf_(flag,"%s       altmode: \"%s\"\n"      ,indent,altmode);
+
+	strcpy(indent2,indent);
+	strcat(indent2,"  ");
+
+	if (outer->Size())
+		for (i=0; i<outer->Size(); i++) {
+			_printf_(flag,"%s         outer: [%d] begin\n" ,indent,i);
+			((KML_LinearRing *)outer->GetObjectByOffset(i))->DeepEcho(indent2);
+			_printf_(flag,"%s         outer: [%d] end\n"   ,indent,i);
+		}
+	else
+		_printf_(flag,"%s         outer: [empty]\n"    ,indent);
+
+	if (inner->Size())
+		for (i=0; i<inner->Size(); i++) {
+			_printf_(flag,"%s         inner: [%d] begin\n" ,indent,i);
+			((KML_LinearRing *)inner->GetObjectByOffset(i))->DeepEcho(indent2);
+			_printf_(flag,"%s         inner: [%d] end\n"   ,indent,i);
+		}
+	else
+		_printf_(flag,"%s         inner: [empty]\n"    ,indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Polygon::Write {{{1*/
+void  KML_Polygon::Write(FILE* filout,char* indent){
+
+	int   i;
+	char  indent4[81];
+
+	if (this->id && strlen(this->id))
+		fprintf(filout,"%s<Polygon id=\"%s\">\n",indent,this->id);
+	else
+		fprintf(filout,"%s<Polygon>\n",indent);
+
+	KML_Geometry::Write(filout,indent);
+
+	fprintf(filout,"%s  <extrude>%d</extrude>\n",indent,(extrude ? 1 : 0));
+	fprintf(filout,"%s  <tessellate>%d</tessellate>\n",indent,(tessellate ? 1 : 0));
+	fprintf(filout,"%s  <altitudeMode>%s</altitudeMode>\n",indent,altmode);
+
+	strcpy(indent4,indent);
+	strcat(indent4,"    ");
+
+	fprintf(filout,"%s  <outerBoundaryIs>\n",indent);
+	if (outer->Size())
+		((KML_LinearRing *)outer->GetObjectByOffset(0))->Write(filout,indent4);
+	fprintf(filout,"%s  </outerBoundaryIs>\n",indent);
+
+/*  loop over any inner boundaries for the polygon  */
+
+	for (i=0; i<inner->Size(); i++) {
+		fprintf(filout,"%s  <innerBoundaryIs>\n",indent);
+		((KML_LinearRing *)inner->GetObjectByOffset(i))->Write(filout,indent4);
+		fprintf(filout,"%s  </innerBoundaryIs>\n",indent);
+	}
+
+	fprintf(filout,"%s</Polygon>\n",indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Polygon::Id {{{1*/
+int   KML_Polygon::Id(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Polygon::MyRank {{{1*/
+int   KML_Polygon::MyRank(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Polygon::Marshall {{{1*/
+void  KML_Polygon::Marshall(char** pmarshalled_dataset){
+}
+/*}}}*/
+
+/*FUNCTION KML_Polygon::MarshallSize {{{1*/
+int   KML_Polygon::MarshallSize(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Polygon::Demarshall {{{1*/
+void  KML_Polygon::Demarshall(char** pmarshalled_dataset){
+}
+/*}}}*/
+
+/*FUNCTION KML_Polygon::Enum {{{1*/
+int   KML_Polygon::Enum(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Polygon::copy {{{1*/
+Object* KML_Polygon::copy(){
+}
+/*}}}*/
+
Index: /issm/trunk/src/c/objects/KML/KML_Polygon.h
===================================================================
--- /issm/trunk/src/c/objects/KML/KML_Polygon.h	(revision 7653)
+++ /issm/trunk/src/c/objects/KML/KML_Polygon.h	(revision 7653)
@@ -0,0 +1,51 @@
+/*! \file KML_Polygon.h 
+ *  \brief: header file for kml_polygon object
+ */
+
+#ifndef _KML_POLYGON_H_
+#define _KML_POLYGON_H_
+
+#define KML_POLYGON_ALTMODE_LENGTH    19
+
+/*Headers:*/
+/*{{{1*/
+#include "../../include/include.h"
+#include "../../shared/Exceptions/exceptions.h"
+#include "../../EnumDefinitions/EnumDefinitions.h"
+
+#include "./KML_Geometry.h"
+class KML_LinearRing;
+class DataSet;
+/*}}}*/
+
+class KML_Polygon: public KML_Geometry {
+
+	public:
+
+		bool  extrude;
+		bool  tessellate;
+		char  altmode[KML_POLYGON_ALTMODE_LENGTH];
+		DataSet* outer;
+		DataSet* inner;
+
+		/*KML_Polygon constructors, destructors {{{1*/
+		KML_Polygon();
+		~KML_Polygon();
+		/*}}}*/
+		/*Object virtual functions definitions:{{{1*/
+		void  Echo();
+		void  DeepEcho();
+		void  DeepEcho(char* indent);
+		void  Write(FILE* fid,char* indent);
+		int   Id();
+		int   MyRank();
+		void  Marshall(char** pmarshalled_dataset);
+		int   MarshallSize();
+		void  Demarshall(char** pmarshalled_dataset);
+		int   Enum();
+		Object* copy();
+		/*}}}*/
+
+};
+#endif  /* _KML_POLYGON_H */
+
Index: /issm/trunk/src/c/objects/KML/KML_Style.cpp
===================================================================
--- /issm/trunk/src/c/objects/KML/KML_Style.cpp	(revision 7653)
+++ /issm/trunk/src/c/objects/KML/KML_Style.cpp	(revision 7653)
@@ -0,0 +1,211 @@
+/*!\file KML_Style.cpp
+ * \brief: implementation of the kml_style object
+ */
+
+/*Headers:*/
+/*{{{1*/
+#ifdef HAVE_CONFIG_H
+	#include "config.h"
+#else
+#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+#endif
+
+#include "stdio.h"
+#include <string.h>
+#include "../objects.h"
+#include "../../shared/shared.h"
+#include "../../Container/Container.h"
+#include "../../include/include.h"
+/*}}}*/
+
+/*Constructors/destructor/copy*/
+/*FUNCTION KML_Style::KML_Style(){{{1*/
+KML_Style::KML_Style(){
+
+	icon      =NULL;
+	label     =NULL;
+	line      =NULL;
+	poly      =NULL;
+	balloon   =NULL;
+	list      =NULL;
+
+}
+/*}}}*/
+/*FUNCTION KML_Style::~KML_Style(){{{1*/
+KML_Style::~KML_Style(){
+
+	if (list) {
+//		delete list;
+		if (list      ) xfree((void**)&list);
+		list      =NULL;
+	}
+	if (balloon) {
+//		delete balloon;
+		if (balloon   ) xfree((void**)&balloon);
+		balloon   =NULL;
+	}
+	if (poly) {
+		delete poly;
+		poly      =NULL;
+	}
+	if (line) {
+		delete line;
+		line      =NULL;
+	}
+	if (label) {
+//		delete label;
+		if (label     ) xfree((void**)&label);
+		label     =NULL;
+	}
+	if (icon) {
+//		delete icon;
+		if (icon      ) xfree((void**)&icon);
+		icon      =NULL;
+	}
+
+}
+/*}}}*/
+
+/*Other*/
+/*FUNCTION KML_Style::Echo {{{1*/
+void  KML_Style::Echo(){
+
+	bool  flag=true;
+
+	_printf_(flag,"KML_Style:\n");
+	KML_StyleSelector::Echo();
+
+	_printf_(flag,"          icon: %p\n"          ,icon);
+	_printf_(flag,"         label: %p\n"          ,label);
+	_printf_(flag,"          line: %p\n"          ,line);
+	_printf_(flag,"          poly: %p\n"          ,poly);
+	_printf_(flag,"       balloon: %p\n"          ,balloon);
+	_printf_(flag,"          list: %p\n"          ,list);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Style::DeepEcho {{{1*/
+void  KML_Style::DeepEcho(){
+
+	char  indent[81]="";
+
+	KML_Style::DeepEcho(indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Style::DeepEcho {{{1*/
+void  KML_Style::DeepEcho(char* indent){
+
+	int   i;
+	char  indent2[81];
+	bool  flag=true;
+
+	_printf_(flag,"%sKML_Style:\n",indent);
+	KML_StyleSelector::DeepEcho(indent);
+
+	strcpy(indent2,indent);
+	strcat(indent2,"  ");
+
+//	if (icon)
+//		icon->DeepEcho(indent2);
+//	else
+		_printf_(flag,"%s          icon: %p\n"          ,indent,icon);
+//	if (label)
+//		label->DeepEcho(indent2);
+//	else
+		_printf_(flag,"%s         label: %p\n"          ,indent,label);
+	if (line)
+		line->DeepEcho(indent2);
+	else
+		_printf_(flag,"%s          line: %p\n"          ,indent,line);
+	if (poly)
+		poly->DeepEcho(indent2);
+	else
+		_printf_(flag,"%s          poly: %p\n"          ,indent,poly);
+//	if (balloon)
+//		balloon->DeepEcho(indent2);
+//	else
+		_printf_(flag,"%s       balloon: %p\n"          ,indent,balloon);
+//	if (list)
+//		list->DeepEcho(indent2);
+//	else
+		_printf_(flag,"%s          list: %p\n"          ,indent,list);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Style::Write {{{1*/
+void  KML_Style::Write(FILE* filout,char* indent){
+
+	int   i;
+	char  indent2[81];
+
+	if (this->id && strlen(this->id))
+		fprintf(filout,"%s<Style id=\"%s\">\n",indent,this->id);
+	else
+		fprintf(filout,"%s<Style>\n",indent);
+
+	KML_StyleSelector::Write(filout,indent);
+
+	strcpy(indent2,indent);
+	strcat(indent2,"  ");
+
+//	if (icon)
+//		icon->Write(filout,indent2);
+//	if (label)
+//		label->Write(filout,indent2);
+	if (line)
+		line->Write(filout,indent2);
+	if (poly)
+		poly->Write(filout,indent2);
+//	if (balloon)
+//		balloon->Write(filout,indent2);
+//	if (list)
+//		list->Write(filout,indent2);
+
+	fprintf(filout,"%s</Style>\n",indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_Style::Id {{{1*/
+int   KML_Style::Id(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Style::MyRank {{{1*/
+int   KML_Style::MyRank(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Style::Marshall {{{1*/
+void  KML_Style::Marshall(char** pmarshalled_dataset){
+}
+/*}}}*/
+
+/*FUNCTION KML_Style::MarshallSize {{{1*/
+int   KML_Style::MarshallSize(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Style::Demarshall {{{1*/
+void  KML_Style::Demarshall(char** pmarshalled_dataset){
+}
+/*}}}*/
+
+/*FUNCTION KML_Style::Enum {{{1*/
+int   KML_Style::Enum(){
+}
+/*}}}*/
+
+/*FUNCTION KML_Style::copy {{{1*/
+Object* KML_Style::copy(){
+}
+/*}}}*/
+
Index: /issm/trunk/src/c/objects/KML/KML_Style.h
===================================================================
--- /issm/trunk/src/c/objects/KML/KML_Style.h	(revision 7653)
+++ /issm/trunk/src/c/objects/KML/KML_Style.h	(revision 7653)
@@ -0,0 +1,50 @@
+/*! \file KML_Style.h 
+ *  \brief: header file for kml_style object
+ */
+
+#ifndef _KML_STYLE_H_
+#define _KML_STYLE_H_
+
+/*Headers:*/
+/*{{{1*/
+#include "../../include/include.h"
+#include "../../shared/Exceptions/exceptions.h"
+#include "../../EnumDefinitions/EnumDefinitions.h"
+
+#include "./KML_StyleSelector.h"
+class KML_LineStyle;
+class KML_PolyStyle;
+/*}}}*/
+
+class KML_Style: public KML_StyleSelector {
+
+	public:
+
+		void* icon;
+		void* label;
+		KML_LineStyle* line;
+		KML_PolyStyle* poly;
+		void* balloon;
+		void* list;
+
+		/*KML_Style constructors, destructors {{{1*/
+		KML_Style();
+		~KML_Style();
+		/*}}}*/
+		/*Object virtual functions definitions:{{{1*/
+		void  Echo();
+		void  DeepEcho();
+		void  DeepEcho(char* indent);
+		void  Write(FILE* fid,char* indent);
+		int   Id();
+		int   MyRank();
+		void  Marshall(char** pmarshalled_dataset);
+		int   MarshallSize();
+		void  Demarshall(char** pmarshalled_dataset);
+		int   Enum();
+		Object* copy();
+		/*}}}*/
+
+};
+#endif  /* _KML_STYLE_H */
+
Index: /issm/trunk/src/c/objects/KML/KML_StyleSelector.cpp
===================================================================
--- /issm/trunk/src/c/objects/KML/KML_StyleSelector.cpp	(revision 7653)
+++ /issm/trunk/src/c/objects/KML/KML_StyleSelector.cpp	(revision 7653)
@@ -0,0 +1,110 @@
+/*!\file KML_StyleSelector.cpp
+ * \brief: implementation of the kml_styleselector abstract object
+ */
+
+/*Headers:*/
+/*{{{1*/
+#ifdef HAVE_CONFIG_H
+	#include "config.h"
+#else
+#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+#endif
+
+#include "stdio.h"
+#include <string.h>
+#include "../objects.h"
+#include "../../shared/shared.h"
+#include "../../Container/Container.h"
+#include "../../include/include.h"
+/*}}}*/
+
+/*Constructors/destructor/copy*/
+/*FUNCTION KML_StyleSelector::KML_StyleSelector(){{{1*/
+KML_StyleSelector::KML_StyleSelector(){
+
+	;
+
+}
+/*}}}*/
+/*FUNCTION KML_StyleSelector::~KML_StyleSelector(){{{1*/
+KML_StyleSelector::~KML_StyleSelector(){
+
+	;
+
+}
+/*}}}*/
+
+/*Other*/
+/*FUNCTION KML_StyleSelector::Echo {{{1*/
+void  KML_StyleSelector::Echo(){
+
+	KML_Object::Echo();
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_StyleSelector::DeepEcho {{{1*/
+void  KML_StyleSelector::DeepEcho(){
+
+	char  indent[81]="";
+
+	KML_StyleSelector::DeepEcho(indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_StyleSelector::DeepEcho {{{1*/
+void  KML_StyleSelector::DeepEcho(char* indent){
+
+	KML_Object::DeepEcho(indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_StyleSelector::Write {{{1*/
+void  KML_StyleSelector::Write(FILE* filout,char* indent){
+
+	KML_Object::Write(filout,indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_StyleSelector::Id {{{1*/
+int   KML_StyleSelector::Id(){
+}
+/*}}}*/
+
+/*FUNCTION KML_StyleSelector::MyRank {{{1*/
+int   KML_StyleSelector::MyRank(){
+}
+/*}}}*/
+
+/*FUNCTION KML_StyleSelector::Marshall {{{1*/
+void  KML_StyleSelector::Marshall(char** pmarshalled_dataset){
+}
+/*}}}*/
+
+/*FUNCTION KML_StyleSelector::MarshallSize {{{1*/
+int   KML_StyleSelector::MarshallSize(){
+}
+/*}}}*/
+
+/*FUNCTION KML_StyleSelector::Demarshall {{{1*/
+void  KML_StyleSelector::Demarshall(char** pmarshalled_dataset){
+}
+/*}}}*/
+
+/*FUNCTION KML_StyleSelector::Enum {{{1*/
+int   KML_StyleSelector::Enum(){
+}
+/*}}}*/
+
+/*FUNCTION KML_StyleSelector::copy {{{1*/
+Object* KML_StyleSelector::copy(){
+}
+/*}}}*/
+
Index: /issm/trunk/src/c/objects/KML/KML_StyleSelector.h
===================================================================
--- /issm/trunk/src/c/objects/KML/KML_StyleSelector.h	(revision 7653)
+++ /issm/trunk/src/c/objects/KML/KML_StyleSelector.h	(revision 7653)
@@ -0,0 +1,41 @@
+/*! \file KML_StyleSelector.h 
+ *  \brief: header file for kml_styleselector abstract object
+ */
+
+#ifndef _KML_STYLESELECTOR_H_
+#define _KML_STYLESELECTOR_H_
+
+/*Headers:*/
+/*{{{1*/
+#include "../../include/include.h"
+#include "../../shared/Exceptions/exceptions.h"
+#include "../../EnumDefinitions/EnumDefinitions.h"
+
+#include "./KML_Object.h"
+/*}}}*/
+
+class KML_StyleSelector: public KML_Object {
+
+	public:
+
+		/*KML_StyleSelector constructors, destructors {{{1*/
+		KML_StyleSelector();
+		~KML_StyleSelector();
+		/*}}}*/
+		/*Object virtual functions definitions:{{{1*/
+		void  Echo();
+		void  DeepEcho();
+		void  DeepEcho(char* indent);
+		void  Write(FILE* fid,char* indent);
+		int   Id();
+		int   MyRank();
+		void  Marshall(char** pmarshalled_dataset);
+		int   MarshallSize();
+		void  Demarshall(char** pmarshalled_dataset);
+		int   Enum();
+		Object* copy();
+		/*}}}*/
+
+};
+#endif  /* _KML_STYLESELECTOR_H */
+
Index: /issm/trunk/src/c/objects/KML/KML_SubStyle.cpp
===================================================================
--- /issm/trunk/src/c/objects/KML/KML_SubStyle.cpp	(revision 7653)
+++ /issm/trunk/src/c/objects/KML/KML_SubStyle.cpp	(revision 7653)
@@ -0,0 +1,110 @@
+/*!\file KML_SubStyle.cpp
+ * \brief: implementation of the kml_substyle abstract object
+ */
+
+/*Headers:*/
+/*{{{1*/
+#ifdef HAVE_CONFIG_H
+	#include "config.h"
+#else
+#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+#endif
+
+#include "stdio.h"
+#include <string.h>
+#include "../objects.h"
+#include "../../shared/shared.h"
+#include "../../Container/Container.h"
+#include "../../include/include.h"
+/*}}}*/
+
+/*Constructors/destructor/copy*/
+/*FUNCTION KML_SubStyle::KML_SubStyle(){{{1*/
+KML_SubStyle::KML_SubStyle(){
+
+	;
+
+}
+/*}}}*/
+/*FUNCTION KML_SubStyle::~KML_SubStyle(){{{1*/
+KML_SubStyle::~KML_SubStyle(){
+
+	;
+
+}
+/*}}}*/
+
+/*Other*/
+/*FUNCTION KML_SubStyle::Echo {{{1*/
+void  KML_SubStyle::Echo(){
+
+	KML_Object::Echo();
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_SubStyle::DeepEcho {{{1*/
+void  KML_SubStyle::DeepEcho(){
+
+	char  indent[81]="";
+
+	KML_SubStyle::DeepEcho(indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_SubStyle::DeepEcho {{{1*/
+void  KML_SubStyle::DeepEcho(char* indent){
+
+	KML_Object::DeepEcho(indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_SubStyle::Write {{{1*/
+void  KML_SubStyle::Write(FILE* filout,char* indent){
+
+	KML_Object::Write(filout,indent);
+
+	return;
+}
+/*}}}*/
+
+/*FUNCTION KML_SubStyle::Id {{{1*/
+int   KML_SubStyle::Id(){
+}
+/*}}}*/
+
+/*FUNCTION KML_SubStyle::MyRank {{{1*/
+int   KML_SubStyle::MyRank(){
+}
+/*}}}*/
+
+/*FUNCTION KML_SubStyle::Marshall {{{1*/
+void  KML_SubStyle::Marshall(char** pmarshalled_dataset){
+}
+/*}}}*/
+
+/*FUNCTION KML_SubStyle::MarshallSize {{{1*/
+int   KML_SubStyle::MarshallSize(){
+}
+/*}}}*/
+
+/*FUNCTION KML_SubStyle::Demarshall {{{1*/
+void  KML_SubStyle::Demarshall(char** pmarshalled_dataset){
+}
+/*}}}*/
+
+/*FUNCTION KML_SubStyle::Enum {{{1*/
+int   KML_SubStyle::Enum(){
+}
+/*}}}*/
+
+/*FUNCTION KML_SubStyle::copy {{{1*/
+Object* KML_SubStyle::copy(){
+}
+/*}}}*/
+
Index: /issm/trunk/src/c/objects/KML/KML_SubStyle.h
===================================================================
--- /issm/trunk/src/c/objects/KML/KML_SubStyle.h	(revision 7653)
+++ /issm/trunk/src/c/objects/KML/KML_SubStyle.h	(revision 7653)
@@ -0,0 +1,41 @@
+/*! \file KML_SubStyle.h 
+ *  \brief: header file for kml_substyle abstract object
+ */
+
+#ifndef _KML_SUBSTYLE_H_
+#define _KML_SUBSTYLE_H_
+
+/*Headers:*/
+/*{{{1*/
+#include "../../include/include.h"
+#include "../../shared/Exceptions/exceptions.h"
+#include "../../EnumDefinitions/EnumDefinitions.h"
+
+#include "./KML_Object.h"
+/*}}}*/
+
+class KML_SubStyle: public KML_Object {
+
+	public:
+
+		/*KML_SubStyle constructors, destructors {{{1*/
+		KML_SubStyle();
+		~KML_SubStyle();
+		/*}}}*/
+		/*Object virtual functions definitions:{{{1*/
+		void  Echo();
+		void  DeepEcho();
+		void  DeepEcho(char* indent);
+		void  Write(FILE* fid,char* indent);
+		int   Id();
+		int   MyRank();
+		void  Marshall(char** pmarshalled_dataset);
+		int   MarshallSize();
+		void  Demarshall(char** pmarshalled_dataset);
+		int   Enum();
+		Object* copy();
+		/*}}}*/
+
+};
+#endif  /* _KML_SUBSTYLE_H */
+
