[libkml] 05/11: Drop patches applied upstream.
Sebastiaan Couwenberg
sebastic at moszumanska.debian.org
Sun Jul 26 22:22:50 UTC 2015
This is an automated email from the git hooks/post-receive script.
sebastic pushed a commit to branch master
in repository libkml.
commit a0727af022591c30b45584c139f9551845effb21
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date: Sun Jul 26 18:43:30 2015 +0200
Drop patches applied upstream.
---
debian/changelog | 3 +-
debian/patches/compiler-flags.patch | 28 -
debian/patches/include-path.patch | 38 -
debian/patches/install-paths.patch | 69 -
debian/patches/java-install-path.patch | 21 -
debian/patches/java-run-sh-shebang.diff | 13 -
debian/patches/series | 7 -
debian/patches/soversion.patch | 23 -
debian/patches/swig-bindings.patch | 8522 -------------------------------
9 files changed, 2 insertions(+), 8722 deletions(-)
diff --git a/debian/changelog b/debian/changelog
index 655adeb..39c149c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,7 +1,8 @@
libkml (1.3.0~r864+git20150726-3f3f37f-1~exp1) UNRELEASED; urgency=medium
- * Add patches to build swig bindings.
* New upstream git snapshot.
+ - Re-enable swig bindings
+ * Drop patches applied upstream.
-- Bas Couwenberg <sebastic at debian.org> Sun, 26 Jul 2015 18:38:00 +0200
diff --git a/debian/patches/compiler-flags.patch b/debian/patches/compiler-flags.patch
deleted file mode 100644
index 43e206a..0000000
--- a/debian/patches/compiler-flags.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Description: Don't quote compiler flags to avoid insertion of ; character.
- Fixes build failure:
- .
- make[3]: Entering directory '/tmp/buildd/libkml-1.3.0~r864+git20150723-0fa2f22/obj-x86_64-linux-gnu'
- /usr/bin/cmake -E cmake_progress_report "/tmp/buildd/libkml-1.3.0~r864+git20150723-0fa2f22/obj-x86_64-linux-gnu/CMakeFiles"
- [ 0%] Building CXX object src/kml/base/CMakeFiles/kmlbase.dir/time_util.cc.o
- cd "/tmp/buildd/libkml-1.3.0~r864+git20150723-0fa2f22/obj-x86_64-linux-gnu/src/kml/base" && /usr/bin/c++ -Dkmlbase_EXPORTS -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 ;-Wall -Wextra -Wno-unused-parameter -pedantic -fno-rtti -fPIC -I/usr/include/minizip -I/usr/include/uriparser -I"/tmp/buildd/libkml-1.3.0~r864+git20150723-0fa2f22/src" -o CMakeFiles/kmlbase.dir/time_util.cc.o -c "/tmp/buildd/libkml-1.3.0~r864+git20150723-0fa2f22/src/kml/base/t [...]
- c++: fatal error: no input files
- compilation terminated.
- /bin/sh: 1: -Wall: not found
- src/kml/base/CMakeFiles/kmlbase.dir/build.make:57: recipe for target 'src/kml/base/CMakeFiles/kmlbase.dir/time_util.cc.o' failed
- make[3]: *** [src/kml/base/CMakeFiles/kmlbase.dir/time_util.cc.o] Error 127
- .
-Author: Bas Couwenberg <sebastic at debian.org>
-Forwarded: https://github.com/libkml/libkml/pull/197
-Applied-Upstream: https://github.com/libkml/libkml/commit/c08e38a975fd4ed83a16fd0068db267f721536c4
-
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -20,7 +20,7 @@ set(LIBKML_DATA_DIR ${CMAKE_SOURCE_DIR}
- #AM_CXXFLAGS = -Wall -Wextra -Wno-unused-parameter -pedantic -fno-rtti
- #AM_TEST_CXXFLAGS = -Wall -Wextra -Wno-unused-parameter -Werror -fno-rtti -DGTEST_HAS_RTTI=0
- if(CMAKE_COMPILER_IS_GNUCXX)
--set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "-Wall -Wextra -Wno-unused-parameter -pedantic -fno-rtti")
-+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wno-unused-parameter -pedantic -fno-rtti")
- set(TEST_FLAGS "-Wall -Wextra -Wno-unused-parameter -fno-rtti -DGTEST_HAS_RTTI=0")
- endif()
-
diff --git a/debian/patches/include-path.patch b/debian/patches/include-path.patch
deleted file mode 100644
index e31e2cf..0000000
--- a/debian/patches/include-path.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-Description: Fix include path, from kmlbase/attributes.h to kml/base/attributes.h.
-Author: Bas Couwenberg <sebastic at debian.org>
-Bug: https://github.com/libkml/libkml/pull/198
-Origin: https://github.com/libkml/libkml/commit/8601371365f7ce5e40215d7a5f3dce22e045ac5c
-Forwarded: https://github.com/libkml/libkml/pull/199
-Applied-Upstream: https://github.com/libkml/libkml/commit/94a80ce7ae969b7036895da5f0b476d81981465c
-
---- a/cmake/LibKMLHelper.cmake
-+++ b/cmake/LibKMLHelper.cmake
-@@ -21,7 +21,7 @@ macro(build_target)
- string(SUBSTRING ${LIB_NAME} 3 ${${LIB_NAME}_END} ${LIB_NAME}_INCLUDE_DIR)
- install(
- FILES ${LIB_INCS}
-- DESTINATION ${INCLUDE_INSTALL_DIR}/${LIB_NAME})
-+ DESTINATION ${INCLUDE_INSTALL_DIR}/${${LIB_NAME}_INCLUDE_DIR})
-
- install_target(${LIB_NAME})
-
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -38,7 +38,7 @@ if(NOT DEFINED DATA_INSTALL_DIR)
- set(DATA_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share")
- endif(NOT DEFINED DATA_INSTALL_DIR)
- if(NOT DEFINED INCLUDE_INSTALL_DIR)
-- set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include")
-+ set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include/kml")
- endif(NOT DEFINED INCLUDE_INSTALL_DIR)
- if(NOT DEFINED MAN_INSTALL_DIR)
- set(MAN_INSTALL_DIR "${DATA_INSTALL_DIR}/man")
---- a/src/kml/CMakeLists.txt
-+++ b/src/kml/CMakeLists.txt
-@@ -7,5 +7,5 @@ add_subdirectory(regionator)
-
-
- install( FILES dom.h engine.h
-- DESTINATION ${INCLUDE_INSTALL_DIR}/kml
-+ DESTINATION ${INCLUDE_INSTALL_DIR}
- COMPONENT Development)
diff --git a/debian/patches/install-paths.patch b/debian/patches/install-paths.patch
deleted file mode 100644
index 4c99a45..0000000
--- a/debian/patches/install-paths.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-Description: Add user customizable install paths.
-Author: Bas Couwenberg <sebastic at debian.org>
-Forwarded: https://github.com/libkml/libkml/pull/198
-Applied-Upstream: https://github.com/libkml/libkml/commit/361643ce925bd06e16f2311badabf1d05714e75d
-
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -28,6 +28,28 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMA
- set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
- set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
-
-+if(NOT DEFINED BIN_INSTALL_DIR)
-+ set(BIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/bin")
-+endif(NOT DEFINED BIN_INSTALL_DIR)
-+if(NOT DEFINED LIB_INSTALL_DIR)
-+ set(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib")
-+endif(NOT DEFINED LIB_INSTALL_DIR)
-+if(NOT DEFINED DATA_INSTALL_DIR)
-+ set(DATA_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share")
-+endif(NOT DEFINED DATA_INSTALL_DIR)
-+if(NOT DEFINED INCLUDE_INSTALL_DIR)
-+ set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include")
-+endif(NOT DEFINED INCLUDE_INSTALL_DIR)
-+if(NOT DEFINED MAN_INSTALL_DIR)
-+ set(MAN_INSTALL_DIR "${DATA_INSTALL_DIR}/man")
-+endif(NOT DEFINED MAN_INSTALL_DIR)
-+if(NOT DEFINED RESOURCE_INSTALL_DIR)
-+ set(RESOURCE_INSTALL_DIR "${DATA_INSTALL_DIR}/libkml${VERSION_MAJOR}/resource/")
-+endif(NOT DEFINED RESOURCE_INSTALL_DIR)
-+if(NOT DEFINED LOCALE_INSTALL_DIR)
-+ set(LOCALE_INSTALL_DIR "${DATA_INSTALL_DIR}/locale/")
-+endif(NOT DEFINED LOCALE_INSTALL_DIR)
-+
- set(HAVE_SYSTEM_ZLIB CACHE INTERNAL FALSE)
- set(HAVE_SYSTEM_MINIZIP CACHE INTERNAL FALSE)
- set(HAVE_SYSTEM_EXPAT CACHE INTERNAL FALSE)
---- a/cmake/LibKMLHelper.cmake
-+++ b/cmake/LibKMLHelper.cmake
-@@ -21,7 +21,7 @@ macro(build_target)
- string(SUBSTRING ${LIB_NAME} 3 ${${LIB_NAME}_END} ${LIB_NAME}_INCLUDE_DIR)
- install(
- FILES ${LIB_INCS}
-- DESTINATION include/${${LIB_NAME}_INCLUDE_DIR})
-+ DESTINATION ${INCLUDE_INSTALL_DIR}/${LIB_NAME})
-
- install_target(${LIB_NAME})
-
-@@ -29,9 +29,9 @@ endmacro(build_target)
-
- macro(install_target _target)
- install(TARGETS ${_target}
-- RUNTIME DESTINATION bin
-- LIBRARY DESTINATION lib
-- ARCHIVE DESTINATION lib)
-+ RUNTIME DESTINATION ${BIN_INSTALL_DIR}
-+ LIBRARY DESTINATION ${LIB_INSTALL_DIR}
-+ ARCHIVE DESTINATION ${LIB_INSTALL_DIR})
- endmacro(install_target)
-
- function(build_test)
---- a/src/kml/CMakeLists.txt
-+++ b/src/kml/CMakeLists.txt
-@@ -7,5 +7,5 @@ add_subdirectory(regionator)
-
-
- install( FILES dom.h engine.h
-- DESTINATION include/kml
-+ DESTINATION ${INCLUDE_INSTALL_DIR}/kml
- COMPONENT Development)
diff --git a/debian/patches/java-install-path.patch b/debian/patches/java-install-path.patch
deleted file mode 100644
index cce49c9..0000000
--- a/debian/patches/java-install-path.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From 55e0c8f83149e898fdb5e72b5e007f96f693ddc1 Mon Sep 17 00:00:00 2001
-From: Bas Couwenberg <sebastic at xs4all.nl>
-Date: Sun, 26 Jul 2015 17:49:04 +0200
-Subject: [PATCH] Fix Java JAR installation directory, /usr/share/java instead
- of /usr/lib/java.
-
----
- CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -53,7 +53,7 @@ if(NOT DEFINED PYTHON_INSTALL_DIR)
- set(PYTHON_INSTALL_DIR "${LIB_INSTALL_DIR}/python")
- endif(NOT DEFINED PYTHON_INSTALL_DIR)
- if(NOT DEFINED JAVA_INSTALL_DIR)
-- set(JAVA_INSTALL_DIR "${LIB_INSTALL_DIR}/java")
-+ set(JAVA_INSTALL_DIR "${DATA_INSTALL_DIR}/java")
- endif(NOT DEFINED JAVA_INSTALL_DIR)
-
- # Path to additional CMake modules
diff --git a/debian/patches/java-run-sh-shebang.diff b/debian/patches/java-run-sh-shebang.diff
deleted file mode 100644
index 53feb5d..0000000
--- a/debian/patches/java-run-sh-shebang.diff
+++ /dev/null
@@ -1,13 +0,0 @@
-Description: Add shebang to java run example to fix lintian issue.
-Author: Bas Couwenberg <sebastic at xs4al.nl>
-Forwarded: https://github.com/libkml/libkml/pull/197
-Applied-Upstream: https://github.com/libkml/libkml/commit/c08e38a975fd4ed83a16fd0068db267f721536c4
-
---- a/examples/java/run.sh
-+++ b/examples/java/run.sh
-@@ -1,3 +1,5 @@
-+#!/bin/sh
-+
- # The relative path to the directory that holds the build shared libraries.
- BUILT_LIB_DIR=../../build/src/swig/.libs
- echo "=== setting shared library path to built libraries dir: $BUILT_LIB_DIR"
diff --git a/debian/patches/series b/debian/patches/series
deleted file mode 100644
index 0f79c0a..0000000
--- a/debian/patches/series
+++ /dev/null
@@ -1,7 +0,0 @@
-java-run-sh-shebang.diff
-compiler-flags.patch
-soversion.patch
-install-paths.patch
-include-path.patch
-swig-bindings.patch
-java-install-path.patch
diff --git a/debian/patches/soversion.patch b/debian/patches/soversion.patch
deleted file mode 100644
index 3d94bfa..0000000
--- a/debian/patches/soversion.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Description: Fix SOVERSION to single integer.
-Author: Bas Couwenberg <sebastic at debian.org>
-Forwarded: https://github.com/libkml/libkml/pull/197
-Applied-Upstream: https://github.com/libkml/libkml/commit/c08e38a975fd4ed83a16fd0068db267f721536c4
-
---- a/cmake/LibKMLHelper.cmake
-+++ b/cmake/LibKMLHelper.cmake
-@@ -14,7 +14,7 @@ macro(build_target)
- if(VERSION_STRING)
- set_target_properties(${LIB_NAME} PROPERTIES
- VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}"
-- SOVERSION "${VERSION_MAJOR}.${VERSION_MINOR}")
-+ SOVERSION "${VERSION_MAJOR}")
- endif()
- string(LENGTH ${LIB_NAME} ${LIB_NAME}_LEN)
- MATH(EXPR ${LIB_NAME}_END "${${LIB_NAME}_LEN} - 3")
-@@ -63,4 +63,4 @@ macro(include_project_vars _project _lib
- endif(WIN32)
- set(${_project}_LIBRARY "${INSTALL_DIR}/lib/${_lib}${_suffix}" )
- include_directories(${${_project}_INCLUDE_DIR})
--endmacro()
-\ No newline at end of file
-+endmacro()
diff --git a/debian/patches/swig-bindings.patch b/debian/patches/swig-bindings.patch
deleted file mode 100644
index e9b81c5..0000000
--- a/debian/patches/swig-bindings.patch
+++ /dev/null
@@ -1,8522 +0,0 @@
-From d05d79a84387bfa96c3bd066fbc5b52bb146b522 Mon Sep 17 00:00:00 2001
-From: Rashad Kanavath <mohammedrashadkm at gmail.com>
-Date: Sun, 26 Jul 2015 02:18:24 +0200
-Subject: [PATCH 1/7] building python bindings
-
----
- CMakeLists.txt | 6 +-
- cmake/pycompile.py | 3 +
- src/CMakeLists.txt | 2 +-
- src/swig/CMakeLists.txt | 52 ++
- src/swig/kmldom.i | 14 +-
- src/swig/kmlelements.i | 1750 -----------------------------------------
- src/swig/libkml_kmlelements.i | 1750 +++++++++++++++++++++++++++++++++++++++++
- 7 files changed, 1816 insertions(+), 1761 deletions(-)
- create mode 100755 cmake/pycompile.py
- create mode 100644 src/swig/CMakeLists.txt
- delete mode 100644 src/swig/kmlelements.i
- create mode 100644 src/swig/libkml_kmlelements.i
-
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -11,9 +11,9 @@ option(BUILD_EXAMPLES "Build examples."
- option(INSTALL_EXAMPLES "Install examples sources and executables" OFF)
- option(BUILD_SHARED_LIBS "Build shared libs." ON)
-
--option(BUILD_SWIG "Build swig bindings" OFF)
--option(BUILD_SWIG_PYTHON "Build python bindings" OFF)
--option(BUILD_SWIG_JAVA "Build java bindings" OFF)
-+option(WITH_SWIG "Build all swig bindings" ON)
-+option(WITH_PYTHON "Build python bindings" ON)
-+option(WITH_JAVA "Build java bindings" ON)
-
- set(LIBKML_DATA_DIR ${CMAKE_SOURCE_DIR}/testdata CACHE "Directory containing test data" PATH)
-
-@@ -29,32 +29,32 @@ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMA
- set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
-
- if(NOT DEFINED BIN_INSTALL_DIR)
-- set(BIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/bin")
-+ set(BIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/bin")
- endif(NOT DEFINED BIN_INSTALL_DIR)
- if(NOT DEFINED LIB_INSTALL_DIR)
-- set(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib")
-+ set(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib")
- endif(NOT DEFINED LIB_INSTALL_DIR)
- if(NOT DEFINED DATA_INSTALL_DIR)
-- set(DATA_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share")
-+ set(DATA_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share")
- endif(NOT DEFINED DATA_INSTALL_DIR)
- if(NOT DEFINED INCLUDE_INSTALL_DIR)
-- set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include/kml")
-+ set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include/kml")
- endif(NOT DEFINED INCLUDE_INSTALL_DIR)
- if(NOT DEFINED MAN_INSTALL_DIR)
-- set(MAN_INSTALL_DIR "${DATA_INSTALL_DIR}/man")
-+ set(MAN_INSTALL_DIR "${DATA_INSTALL_DIR}/man")
- endif(NOT DEFINED MAN_INSTALL_DIR)
- if(NOT DEFINED RESOURCE_INSTALL_DIR)
-- set(RESOURCE_INSTALL_DIR "${DATA_INSTALL_DIR}/libkml${VERSION_MAJOR}/resource/")
-+ set(RESOURCE_INSTALL_DIR "${DATA_INSTALL_DIR}/libkml${VERSION_MAJOR}/resource/")
- endif(NOT DEFINED RESOURCE_INSTALL_DIR)
- if(NOT DEFINED LOCALE_INSTALL_DIR)
-- set(LOCALE_INSTALL_DIR "${DATA_INSTALL_DIR}/locale/")
-+ set(LOCALE_INSTALL_DIR "${DATA_INSTALL_DIR}/locale/")
- endif(NOT DEFINED LOCALE_INSTALL_DIR)
--
--set(HAVE_SYSTEM_ZLIB CACHE INTERNAL FALSE)
--set(HAVE_SYSTEM_MINIZIP CACHE INTERNAL FALSE)
--set(HAVE_SYSTEM_EXPAT CACHE INTERNAL FALSE)
--set(HAVE_SYSTEM_BOOST CACHE INTERNAL FALSE)
--set(HAVE_SYSTEM_URIPARSER CACHE INTERNAL FALSE)
-+if(NOT DEFINED PYTHON_INSTALL_DIR)
-+ set(PYTHON_INSTALL_DIR "${LIB_INSTALL_DIR}/python")
-+endif(NOT DEFINED PYTHON_INSTALL_DIR)
-+if(NOT DEFINED JAVA_INSTALL_DIR)
-+ set(JAVA_INSTALL_DIR "${LIB_INSTALL_DIR}/java")
-+endif(NOT DEFINED JAVA_INSTALL_DIR)
-
- # Path to additional CMake modules
- set(CMAKE_MODULE_PATH
-@@ -63,8 +63,6 @@ set(CMAKE_MODULE_PATH
-
- include(LibKMLHelper)
-
--set(KMLBASE_DEPENDS)
--
- if(NOT CMAKE_BUILD_TYPE)
- set(CMAKE_BUILD_TYPE "Release")
- endif()
-@@ -72,23 +70,23 @@ endif()
- include(ExternalProject)
-
- if(NOT INSTALL_DIR)
-- set(INSTALL_DIR "${CMAKE_INSTALL_PREFIX}")
-+ set(INSTALL_DIR "${CMAKE_INSTALL_PREFIX}" CACHE "install directory " PATH)
- endif()
-
--set(KMLBASE_LINK_LIBS)
--set(KMLBASE_DEPENDS)
--set(MINIZIP_DEPENDS)
-+set(KMLBASE_LINK_LIBS "" CACHE INTERNAL "KMLBASE_LINK_LIBS")
-+set(KMLBASE_DEPENDS "" CACHE INTERNAL "KMLBASE_DEPENDS")
-+set(MINIZIP_DEPENDS "" CACHE INTERNAL "MINIZIP_DEPENDS")
-
--include(ImportEXPAT)
--if(HAVE_SYSTEM_EXPAT)
-+find_package(EXPAT)
-+if(EXPAT_FOUND)
- include_directories(${EXPAT_INCLUDE_DIR})
- else()
- include(External_expat)
- list(APPEND KMLBASE_DEPENDS EXPAT)
- endif()
-
--include(ImportZLIB)
--if(HAVE_SYSTEM_ZLIB)
-+find_package(ZLIB 1.2.8)
-+if(ZLIB_FOUND)
- include_directories(${ZLIB_INCLUDE_DIR})
- else()
- include(External_zlib)
-@@ -96,24 +94,24 @@ else()
- list(APPEND MINIZIP_DEPENDS ZLIB)
- endif()
-
--include(ImportMinizip)
--if(HAVE_SYSTEM_MINIZIP)
-+find_package(MiniZip)
-+if(MINIZIP_FOUND)
- include_directories(${MINIZIP_INCLUDE_DIR})
- else()
- include(External_minizip)
- list(APPEND KMLBASE_DEPENDS MINIZIP)
- endif()
-
--include(ImportUriParser)
--if(HAVE_SYSTEM_URIPARSER)
-+find_package(UriParser)
-+if(URIPARSER_FOUND)
- include_directories(${URIPARSER_INCLUDE_DIR})
- else()
- include(External_uriparser)
- list(APPEND KMLBASE_DEPENDS URIPARSER)
- endif()
-
--include(ImportBoost)
--if(HAVE_SYSTEM_BOOST)
-+find_package(Boost)
-+if(Boost_FOUND)
- message(STATUS "Found Boost: ${Boost_VERSION}")
- else()
- include(External_boost)
-@@ -134,7 +132,7 @@ add_subdirectory(src)
-
- if(BUILD_TESTING)
- enable_testing()
-- include(ImportGoogleTest)
-+ find_package(GoogleTest REQUIRED)
- include_directories(${GTEST_INCLUDE_DIR})
- include_directories(${CMAKE_SOURCE_DIR}/tests)
- add_definitions("-DDATADIR=\"${LIBKML_DATA_DIR}\"")
---- /dev/null
-+++ b/cmake/pycompile.py
-@@ -0,0 +1,3 @@
-+import compileall
-+from sys import argv
-+compileall.compile_file(argv[1])
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -1,4 +1,4 @@
- add_subdirectory(kml)
--if(BUILD_SWIG)
-+if(WITH_SWIG)
- add_subdirectory(swig)
- endif()
-\ No newline at end of file
---- /dev/null
-+++ b/src/swig/CMakeLists.txt
-@@ -0,0 +1,95 @@
-+find_package(SWIG REQUIRED)
-+include(${SWIG_USE_FILE})
-+
-+if(WITH_PYTHON)
-+ find_package(PythonLibs REQUIRED)
-+ if(NOT PYTHONLIBS_FOUND)
-+ message(FATAL_ERROR "Python Libraries not found.")
-+ endif()
-+
-+ find_package(PythonInterp REQUIRED)
-+
-+ include_directories(${PYTHON_INCLUDE_PATH})
-+
-+ # execute_process(COMMAND
-+ # python -c "from distutils.sysconfig import get_python_lib; print get_python_lib(True)"
-+ # OUTPUT_VARIABLE PYTHON_SITE_PACKAGES
-+ # OUTPUT_STRIP_TRAILING_WHITESPACE )
-+
-+ file(GLOB IFILES "kml*.i")
-+ foreach(INTERFACE_FILE ${IFILES})
-+ get_filename_component(MODULE_NAME ${INTERFACE_FILE} NAME_WE)
-+ set_source_files_properties(${INTERFACE_FILE} PROPERTIES CPLUSPLUS ON )
-+ set_source_files_properties(${INTERFACE_FILE} PROPERTIES CMAKE_SWIG_FLAGS "-includeall -DSWIGPYTHON")
-+ set_source_files_properties( ${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME}PYTHON_wrap.cxx COMPILE_FLAGS "-Wno-long-long" )
-+ swig_add_module(${MODULE_NAME} python ${INTERFACE_FILE})
-+ swig_link_libraries(${MODULE_NAME} kmlbase kmlengine kmldom ${PYTHON_LIBRARIES})
-+ add_custom_command(
-+ TARGET _${MODULE_NAME}
-+ POST_BUILD
-+ COMMAND ${CMAKE_COMMAND} -E echo "Byte-compiling ${MODULE_NAME}.py"
-+ COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/cmake/pycompile.py ${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME}.py
-+ DEPENDS kmlbase kmlengine kmldom)
-+
-+ install(TARGETS
-+ _${MODULE_NAME}
-+ DESTINATION ${PYTHON_INSTALL_DIR})
-+
-+ install(FILES
-+ ${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME}.py
-+ ${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME}.pyc
-+ DESTINATION ${PYTHON_INSTALL_DIR})
-+
-+ endforeach()
-+
-+endif(WITH_PYTHON)
-+
-+if(WITH_JAVA)
-+ find_package(Java REQUIRED)
-+ find_package(JNI REQUIRED)
-+ mark_as_advanced(JAVA_HOME)
-+
-+ include_directories(${JAVA_INCLUDE_PATH}
-+ ${JNI_INCLUDE_DIRS})
-+ include_directories ( ${JAVA_INCLUDE_PATH} ${JNI_INCLUDE_DIRS} )
-+
-+ # Make sure the nested directory structure exists
-+ set(JAVA_SOURCE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/com/google/libkml)
-+ set(JAVA_BINARY_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/build)
-+ if(NOT EXISTS "${JAVA_SOURCE_DIRECTORY}")
-+ file(MAKE_DIRECTORY ${JAVA_SOURCE_DIRECTORY})
-+ endif()
-+ if(NOT EXISTS "${JAVA_BINARY_DIRECTORY}")
-+ file(MAKE_DIRECTORY ${JAVA_BINARY_DIRECTORY})
-+ endif()
-+ # java_package_dir = com/googlecode/libkml
-+ file(GLOB IFILES "kml*.i")
-+ set(LIBKML_JAVA_PACKAGE "com.googlecode.libkml")
-+ set(CMAKE_SWIG_OUTDIR ${JAVA_SOURCE_DIRECTORY})
-+ set(CMAKE_SWIG_FLAGS -package "${LIBKML_JAVA_PACKAGE}" ${CMAKE_SWIG_GLOBAL_FLAGS})
-+
-+ foreach(INTERFACE_FILE ${IFILES})
-+ get_filename_component(MODULE_NAME ${INTERFACE_FILE} NAME_WE)
-+ set_source_files_properties(${INTERFACE_FILE} PROPERTIES CPLUSPLUS ON)
-+ set_source_files_properties(${INTERFACE_FILE} PROPERTIES CMAKE_SWIG_FLAGS "-includeall -DSWIGJAVA")
-+ set_source_files_properties( ${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME}JAVA_wrap.cxx COMPILE_FLAGS "-w")
-+ swig_add_module(${MODULE_NAME}_java java ${INTERFACE_FILE})
-+ swig_link_libraries(${MODULE_NAME}_java kmlbase kmlengine kmldom)
-+ endforeach()
-+
-+ add_custom_target(LibKML_jar ALL DEPENDS LibKML.jar)
-+
-+ add_custom_command(
-+ OUTPUT LibKML.jar
-+ COMMENT "Creating jar file..."
-+ COMMAND ${Java_JAVAC_EXECUTABLE} -d ${JAVA_BINARY_DIRECTORY} ${JAVA_SOURCE_DIRECTORY}/*.java
-+ COMMAND ${Java_JAR_EXECUTABLE} cf ${CMAKE_CURRENT_BINARY_DIR}/LibKML.jar -C ${JAVA_BINARY_DIRECTORY} com
-+ DEPENDS LibKML_jar kmlbase_java kmldom_java kmlengine_java kmlengine kmlbase kmldom)
-+
-+ # Get the location of the extension directory
-+ string(REGEX REPLACE "include" "jre/lib/ext" JAVA_EXTENSION_DIR ${JAVA_INCLUDE_PATH})
-+
-+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/LibKML.jar
-+ DESTINATION ${JAVA_INSTALL_DIR})
-+
-+endif(WITH_JAVA)
---- a/src/swig/kmldom.i
-+++ b/src/swig/kmldom.i
-@@ -1,9 +1,9 @@
- // Copyright 2008, Google Inc. All rights reserved.
- //
--// Redistribution and use in source and binary forms, with or without
-+// 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,
-+// 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
-@@ -13,14 +13,14 @@
- // 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
-+// 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,
-+// 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
-+// 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 is the SWIG interface file for the KML DOM.
-@@ -33,6 +33,7 @@
- // Include the headers needed to build kmldom_wrap.cc.
- %{
- #include "kml/dom.h"
-+#include "kml/dom/xsd.h"
- %}
-
- // Tell SWIG about boost::intrusive_ptr and the inheritance hierarchy
-@@ -176,7 +177,11 @@ SWIG_INTRUSIVE_PTR_DERIVED(GxWait, kmldo
- // Tell SWIG about C++ Standard Library std::string.
- %include "std_string.i"
-
-+
-+%include "kml/dom/xsd.h"
-+
- // Tell SWIG about the kmldom type ids (Type_Placemark, etc).
-+
- %include "kml/dom/kml22.h"
-
- // Tell SWIG about the intrusive_ptr typedefs.
-@@ -249,7 +254,7 @@ public:
- void clear_yunits();
- };
-
--%include "kmlelements.i"
-+%include "libkml_kmlelements.i"
-
- %nodefaultctor KmlFactory;
- class KmlFactory {
---- a/src/swig/kmlelements.i
-+++ /dev/null
-@@ -1,1750 +0,0 @@
--// 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.
--
--// Generated from the KML 2.2 XSD.
--
--// This is the SWIG interface file for the public API to the KML DOM.
--// In addition to serving the needs of SWIG this also serves to document the
--// public C++ API separate from the present implementation found in the
--// private sections of the present C++ .h files.
--
--// This is AbstractObjectType in the KML 2.2 XSD.
--%nodefaultctor Object;
--class Object : public Element {
--public:
-- // id=
-- const std::string& get_id();
-- void set_id(const std::string& id);
-- bool has_id();
-- void clear_id();
--
-- // targetId=
-- const std::string& get_targetid();
-- void set_targetid(const std::string& targetid);
-- bool has_targetid();
-- void clear_targetid();
--};
--
--%nodefaultctor SubStyle;
--class SubStyle : public Object {
--};
--
--%nodefaultctor ColorStyle;
--class ColorStyle : public SubStyle {
--public:
-- // <color>
-- const kmlbase::Color32& get_color();
-- void set_color(const kmlbase::Color32& color);
-- bool has_color();
-- void clear_color();
--
-- // <colorMode>
-- int get_colormode();
-- void set_colormode(int colormode);
-- bool has_colormode();
-- void clear_colormode();
--};
--
--%nodefaultctor SnippetCommon;
--class SnippetCommon : public Element {
--public:
-- // Content.
-- const std::string& get_text();
-- void set_text(const std::string& text);
-- bool has_text();
-- void clear_text();
--
-- // maxLines=
-- int get_maxlines();
-- void set_maxlines(int maxlines);
-- bool has_maxlines();
-- void clear_maxlines();
--};
--
--%nodefaultctor Snippet;
--class Snippet : public SnippetCommon {
--};
--
--%nodefaultctor LinkSnippet;
--class LinkSnippet : public SnippetCommon {
--};
--
--%nodefaultctor AbstractView;
--class AbstractView : public Object {
-- public:
-- // gx:TimeStamp and gx:TimeSpan.
-- const TimePrimitivePtr get_gx_timeprimitive();
-- bool has_gx_timeprimitive();
-- void set_gx_timeprimitive(const TimePrimitivePtr& gx_timeprimitive);
-- void clear_gx_timeprimitive();
--};
--
--%nodefaultctor TimePrimitive;
--class TimePrimitive : public Object {
--};
--
--%nodefaultctor StyleSelector;
--class StyleSelector : public Object {
--};
--
--%nodefaultctor AbstractLatLonBox;
--class AbstractLatLonBox : public Object {
--public:
-- // <north>
-- double get_north();
-- bool has_north();
-- void set_north(double north);
-- void clear_north();
--
-- // <south>
-- double get_south();
-- bool has_south();
-- void set_south(double south);
-- void clear_south();
--
-- // <east>
-- double get_east();
-- bool has_east();
-- void set_east(double east);
-- void clear_east();
--
-- // <west>
-- double get_west();
-- bool has_west();
-- void set_west(double west);
-- void clear_west();
--};
--
--%nodefaultctor LatLonAltBox;
--class LatLonAltBox : public AbstractLatLonBox {
--public:
-- // <minAltitude>
-- double get_minaltitude();
-- void set_minaltitude(double minaltitude);
-- bool has_minaltitude();
-- void clear_minaltitude();
--
-- // <maxAltitude>
-- double get_maxaltitude();
-- void set_maxaltitude(double maxaltitude);
-- bool has_maxaltitude();
-- void clear_maxaltitude();
--
-- // <altitudeMode>
-- int get_altitudemode();
-- void set_altitudemode(int altitudemode);
-- bool has_altitudemode();
-- void clear_altitudemode();
--
-- // <gx:altitudeMode>
-- int get_gx_altitudemode();
-- bool has_gx_altitudemode();
-- void set_gx_altitudemode(int gx_altitudemode);
-- void clear_gx_altitudemode();
--};
--
--%nodefaultctor Lod;
--class Lod : public Object {
--public:
-- // <minLodPixels>
-- double get_minlodpixels();
-- void set_minlodpixels(double minlodpixels);
-- bool has_minlodpixels();
-- void clear_minlodpixels();
--
-- // <maxLodPixels>
-- double get_maxlodpixels();
-- void set_maxlodpixels(double maxlodpixels);
-- bool has_maxlodpixels();
-- void clear_maxlodpixels();
--
-- // <minFadeExtent>
-- double get_minfadeextent();
-- void set_minfadeextent(double minfadeextent);
-- bool has_minfadeextent();
-- void clear_minfadeextent();
--
-- // <maxFadeExtent>
-- double get_maxfadeextent();
-- void set_maxfadeextent(double maxfadeextent);
-- bool has_maxfadeextent();
-- void clear_maxfadeextent();
--};
--
--%nodefaultctor Region;
--class Region : public Object {
--public:
-- // <LatLonAltBox>
-- const LatLonAltBoxPtr get_latlonaltbox();
-- void set_latlonaltbox(LatLonAltBoxPtr latlonaltbox);
-- bool has_latlonaltbox();
-- void clear_latlonaltbox();
--
-- // <Lod>
-- const LodPtr get_lod();
-- void set_lod(LodPtr lod);
-- bool has_lod();
-- void clear_lod();
--};
--
--%nodefaultctor ExtendedData;
--class ExtendedData : public Element {
--public:
-- // <Data>.
-- void add_data(DataPtr data);
-- const size_t get_data_array_size();
-- const DataPtr get_data_array_at(unsigned int index);
-- // <SchemaData>.
-- void add_schemadata(SchemaDataPtr schemadata);
-- const size_t get_schemadata_array_size();
-- const SchemaDataPtr get_schemadata_array_at(unsigned int index);
--};
--
--%nodefaultctor Feature;
--class Feature : public Object {
--public:
-- // <name>
-- const std::string& get_name();
-- void set_name(const std::string& name);
-- bool has_name();
-- void clear_name();
--
-- // <visibility>
-- bool get_visibility();
-- void set_visibility(bool visibility);
-- bool has_visibility();
-- void clear_visibility();
--
-- // <open>
-- bool get_open();
-- void set_open(bool open);
-- bool has_open();
-- void clear_open();
--
-- // <atom:author>
-- const AtomAuthorPtr get_atomauthor();
-- bool has_atomauthor();
-- void set_atomauthor(AtomAuthorPtr atomauthor);
-- void clear_atomauthor();
--
-- // <atom:link>
-- const AtomLinkPtr get_atomlink();
-- bool has_atomlink();
-- void set_atomlink(AtomLinkPtr atomlink);
-- void clear_atomlink();
--
-- // <address>
-- const std::string& get_address();
-- void set_address(const std::string& address);
-- bool has_address();
-- void clear_address();
--
-- // <phoneNumber>
-- const std::string& get_phonenumber();
-- void set_phonenumber(const std::string& phonenumber);
-- bool has_phonenumber();
-- void clear_phonenumber();
--
-- // <Snippet>
-- const SnippetPtr get_snippet();
-- void set_snippet(SnippetPtr snippet);
-- bool has_snippet();
-- void clear_snippet();
--
-- // <description>
-- const std::string& get_description();
-- void set_description(const std::string& description);
-- bool has_description();
-- void clear_description();
--
-- // AbstractView
-- const AbstractViewPtr get_abstractview();
-- void set_abstractview(AbstractViewPtr abstractview);
-- bool has_abstractview();
-- void clear_abstractview();
--
-- // TimePrimitive
-- const TimePrimitivePtr get_timeprimitive();
-- void set_timeprimitive(TimePrimitivePtr timeprimitive);
-- bool has_timeprimitive();
-- void clear_timeprimitive();
--
-- // <styleUrl>
-- const std::string& get_styleurl();
-- void set_styleurl(const std::string& styleurl);
-- bool has_styleurl();
-- void clear_styleurl();
--
-- // StyleSelector
-- const StyleSelectorPtr get_styleselector();
-- void set_styleselector(StyleSelectorPtr styleselector);
-- bool has_styleselector();
-- void clear_styleselector();
--
-- // <Region>
-- const RegionPtr get_region();
-- void set_region(RegionPtr region);
-- bool has_region();
-- void clear_region();
--
-- // <ExtendedData>
-- const ExtendedDataPtr get_extendeddata();
-- void set_extendeddata(ExtendedDataPtr extendeddata);
-- bool has_extendeddata();
-- void clear_extendeddata();
--
-- // <gx:balloonVisibility>
-- bool get_gx_balloonvisibility();
-- void set_gx_balloonvisibility(bool balloonvisibility);
-- bool has_gx_balloonvisibility();
-- void clear_gx_balloonvisibility();
--};
--
--%nodefaultctor Container;
--class Container : public Feature {
--public:
-- // Feature...
-- void add_feature(FeaturePtr feature);
-- const size_t get_feature_array_size();
-- const FeaturePtr get_feature_array_at(unsigned int index);
--};
--
--%nodefaultctor Geometry;
--class Geometry : public Object {
--};
--
--%nodefaultctor BasicLink;
--class BasicLink : public Object {
--public:
-- // <href>
-- const std::string& get_href();
-- bool has_href();
-- void set_href(const std::string& href);
-- void clear_href();
--};
--
--%nodefaultctor Icon;
--class Icon : public BasicLink {
--public:
-- // <refreshMode>
-- int get_refreshmode();
-- void set_refreshmode(int refreshmode);
-- bool has_refreshmode();
-- void clear_refreshmode();
--
-- // <refreshInterval>
-- double get_refreshinterval();
-- void set_refreshinterval(double refreshinterval);
-- bool has_refreshinterval();
-- void clear_refreshinterval();
--
-- // <viewRefreshMode>
-- int get_viewrefreshmode();
-- void set_viewrefreshmode(int viewrefreshmode);
-- bool has_viewrefreshmode();
-- void clear_viewrefreshmode();
--
-- // <viewRefreshTime>
-- double get_viewrefreshtime();
-- void set_viewrefreshtime(double viewrefreshtime);
-- bool has_viewrefreshtime();
-- void clear_viewrefreshtime();
--
-- // <viewBoundScale>
-- double get_viewboundscale();
-- void set_viewboundscale(double viewboundscale);
-- bool has_viewboundscale();
-- void clear_viewboundscale();
--
-- // <viewFormat>
-- const std::string& get_viewformat();
-- void set_viewformat(const std::string& viewformat);
-- bool has_viewformat();
-- void clear_viewformat();
--
-- // <httpQuery>
-- const std::string& get_httpquery();
-- void set_httpquery(const std::string& httpquery);
-- bool has_httpquery();
-- void clear_httpquery();
--};
--
--%nodefaultctor IconStyleIcon;
--class IconStyleIcon : public BasicLink {
--public:
-- // <href>
-- const std::string& get_href();
-- bool has_href();
-- void set_href(const std::string& href);
-- void clear_href();
--};
--
--%nodefaultctor Overlay;
--class Overlay : public Feature {
--public:
-- // <color>
-- const kmlbase::Color32& get_color();
-- void set_color(const kmlbase::Color32& color);
-- bool has_color();
-- void clear_color();
--
-- // <drawOrder>
-- int get_draworder();
-- void set_draworder(int draworder);
-- bool has_draworder();
-- void clear_draworder();
--
-- // <Icon>
-- const IconPtr get_icon();
-- void set_icon(IconPtr icon);
-- bool has_icon();
-- void clear_icon();
--};
--
--%nodefaultctor BalloonStyle;
--class BalloonStyle : public SubStyle {
--public:
-- // <bgColor>
-- const kmlbase::Color32& get_bgcolor();
-- void set_bgcolor(const kmlbase::Color32& bgcolor);
-- bool has_bgcolor();
-- void clear_bgcolor();
--
-- // <textColor>
-- const kmlbase::Color32& get_textcolor();
-- void set_textcolor(const kmlbase::Color32& textcolor);
-- bool has_textcolor();
-- void clear_textcolor();
--
-- // <text>
-- const std::string& get_text();
-- void set_text(const std::string& text);
-- bool has_text();
-- void clear_text();
--
-- // <displayMode>
-- int get_displaymode();
-- void set_displaymode(int displaymode);
-- bool has_displaymode();
-- void clear_displaymode();
--};
--
--%nodefaultctor Camera;
--class Camera : public AbstractView {
--public:
-- // <longitude>
-- double get_longitude();
-- void set_longitude(double longitude);
-- bool has_longitude();
-- void clear_longitude();
--
-- // <latitude>
-- double get_latitude();
-- void set_latitude(double latitude);
-- bool has_latitude();
-- void clear_latitude();
--
-- // <altitude>
-- double get_altitude();
-- void set_altitude(double altitude);
-- bool has_altitude();
-- void clear_altitude();
--
-- // <heading>
-- double get_heading();
-- void set_heading(double heading);
-- bool has_heading();
-- void clear_heading();
--
-- // <tilt>
-- double get_tilt();
-- void set_tilt(double tilt);
-- bool has_tilt();
-- void clear_tilt();
--
-- // <roll>
-- double get_roll();
-- void set_roll(double roll);
-- bool has_roll();
-- void clear_roll();
--
-- // <altitudeMode>
-- int get_altitudemode();
-- void set_altitudemode(int altitudemode);
-- bool has_altitudemode();
-- void clear_altitudemode();
--
-- // <gx:altitudeMode>
-- int get_gx_altitudemode();
-- bool has_gx_altitudemode();
-- void set_gx_altitudemode(int gx_altitudemode);
-- void clear_gx_altitudemode();
--};
--
--%nodefaultctor UpdateOperation;
--class UpdateOperation : public Element {
--};
--
--%nodefaultctor Change;
--class Change : public UpdateOperation {
--public:
-- // Object...
-- void add_object(ObjectPtr object);
-- const size_t get_object_array_size();
-- const ObjectPtr get_object_array_at(unsigned int index);
--};
--
--%nodefaultctor Create;
--class Create : public UpdateOperation {
--public:
-- // Container...
-- void add_container(ContainerPtr container);
-- const size_t get_container_array_size();
-- const ContainerPtr get_container_array_at(unsigned int index);
--};
--
--%nodefaultctor Data;
--class Data : public Object {
--public:
-- // name=
-- const std::string& get_name();
-- bool has_name();
-- void set_name(const std::string& name);
-- void clear_name();
--
-- // <displayname>
-- const std::string& get_displayname();
-- bool has_displayname();
-- void set_displayname(const std::string& displayname);
-- void clear_displayname();
--
-- // <value>
-- const std::string& get_value();
-- bool has_value();
-- void set_value(const std::string& value);
-- void clear_value();
--};
--
--%nodefaultctor Delete;
--class Delete : public UpdateOperation {
--public:
-- // Feature...
-- void add_feature(FeaturePtr feature);
-- const size_t get_feature_array_size();
-- const FeaturePtr get_feature_array_at(unsigned int index);
--};
--
--%nodefaultctor SimpleField;
--class SimpleField : public Element {
--public:
-- // type=
-- const std::string& get_type();
-- bool has_type();
-- void set_type(const std::string& value);
-- void clear_type();
--
-- // name=
-- const std::string& get_name();
-- bool has_name();
-- void set_name(const std::string& value);
-- void clear_name();
--
-- // <displayName>
-- const std::string& get_displayname();
-- void set_displayname(const std::string& displayname);
-- bool has_displayname();
-- void clear_displayname();
--};
--
--%nodefaultctor Schema;
--class Schema : public Object {
--public:
-- // name=
-- const std::string& get_name();
-- bool has_name();
-- void set_name(const std::string& value);
-- void clear_name();
--
-- // <SimpleField>...
-- void add_simplefield(SimpleFieldPtr simplefield);
-- const size_t get_simplefield_array_size();
-- const SimpleFieldPtr get_simplefield_array_at(unsigned int index);
--};
--
--%nodefaultctor Document;
--class Document : public Container {
--public:
-- // <Schema>...
-- void add_schema(SchemaPtr schema);
-- const size_t get_schema_array_size();
-- const SchemaPtr get_schema_array_at(unsigned int index);
--
-- // <Style>,<StyleMap>...
-- void add_styleselector(StyleSelectorPtr styleselector);
-- const size_t get_styleselector_array_size();
-- const StyleSelectorPtr get_styleselector_array_at(unsigned int index);
--};
--
--%nodefaultctor Folder;
--class Folder : public Container {
--};
--
--%nodefaultctor LatLonBox;
--class LatLonBox : public AbstractLatLonBox {
--public:
-- // <rotation>
-- double get_rotation();
-- void set_rotation(double rotation);
-- bool has_rotation();
-- void clear_rotation();
--};
--
--%nodefaultctor GxLatLonQuad;
--class GxLatLonQuad : public Object {
--public:
-- // <coordinates>
-- const CoordinatesPtr get_coordinates();
-- bool has_coordinates();
-- void set_coordinates(const CoordinatesPtr& coordinates);
-- void clear_coordinates();
--};
--
--%nodefaultctor GroundOverlay;
--class GroundOverlay : public Overlay {
--public:
-- // <altitude>
-- double get_altitude();
-- void set_altitude(double altitude);
-- bool has_altitude();
-- void clear_altitude();
--
-- // <altitudeMode>
-- int get_altitudemode();
-- void set_altitudemode(int altitudemode);
-- bool has_altitudemode();
-- void clear_altitudemode();
--
-- // <gx:altitudeMode>
-- int get_gx_altitudemode();
-- bool has_gx_altitudemode();
-- void set_gx_altitudemode(int gx_altitudemode);
-- void clear_gx_altitudemode();
--
-- // <LatLonBox>
-- const LatLonBoxPtr get_latlonbox();
-- void set_latlonbox(LatLonBoxPtr latlonbox);
-- bool has_latlonbox();
-- void clear_latlonbox();
--
-- // <gx:LatLonQuad>
-- const GxLatLonQuadPtr get_gx_latlonquad();
-- bool has_gx_latlonquad();
-- void set_gx_latlonquad(GxLatLonQuadPtr gx_latlonquad);
-- void clear_gx_latlonquad();
--};
--
--%nodefaultctor HotSpot;
--class HotSpot : public Vec2 {
--};
--
--%nodefaultctor IconStyle;
--class IconStyle : public ColorStyle {
--public:
-- // <scale>
-- double get_scale();
-- void set_scale(double scale);
-- bool has_scale();
-- void clear_scale();
--
-- // <Icon> (different from Overlay Icon)
-- const IconStyleIconPtr get_icon();
-- void set_icon(IconStyleIconPtr icon);
-- bool has_icon();
-- void clear_icon();
--
-- // <heading>
-- double get_heading();
-- void set_heading(double heading);
-- bool has_heading();
-- void clear_heading();
--
-- // <hotSpot>
-- const HotSpotPtr get_hotspot();
-- void set_hotspot(HotSpotPtr hotspot);
-- bool has_hotspot();
-- void clear_hotspot();
--};
--
--%nodefaultctor ImagePyramid;
--class ImagePyramid : public Object {
--public:
-- // <tileSize>
-- int get_tilesize();
-- void set_tilesize(int tilesize);
-- bool has_tilesize();
-- void clear_tilesize();
--
-- // <maxWidth>
-- int get_maxwidth();
-- void set_maxwidth(int maxwidth);
-- bool has_maxwidth();
-- void clear_maxwidth();
--
-- // <maxHeight>
-- int get_maxheight();
-- void set_maxheight(int maxheight);
-- bool has_maxheight();
-- void clear_maxheight();
--
-- // <gridOrigin>
-- int get_gridorigin();
-- void set_gridorigin(int gridorigin);
-- bool has_gridorigin();
-- void clear_gridorigin();
--};
--
--%nodefaultctor ItemIcon;
--class ItemIcon : public Object {
--public:
-- // <state>
-- int get_state_array_at(unsigned int index);
-- const size_t get_state_array_size();
-- bool has_state();
-- void add_state(int state);
-- void clear_state();
--
-- // <href>
-- const std::string& get_href();
-- void set_href(const std::string& href);
-- bool has_href();
-- void clear_href();
--};
--
--%nodefaultctor LabelStyle;
--class LabelStyle : public ColorStyle {
--public:
-- // <scale>
-- double get_scale();
-- void set_scale(double scale);
-- bool has_scale();
-- void clear_scale();
--};
--
--%nodefaultctor LineString;
--class LineString : public Geometry {
--public:
-- // <extrude>
-- bool get_extrude();
-- void set_extrude(bool extrude);
-- bool has_extrude();
-- void clear_extrude();
--
-- // <tessellate>
-- bool get_tessellate();
-- void set_tessellate(bool tessellate);
-- bool has_tessellate();
-- void clear_tessellate();
--
-- // <altitudeMode>
-- int get_altitudemode();
-- void set_altitudemode(int altitudemode);
-- bool has_altitudemode();
-- void clear_altitudemode();
--
-- // <gx:altitudeMode>
-- int get_gx_altitudemode();
-- bool has_gx_altitudemode();
-- void set_gx_altitudemode(int gx_altitudemode);
-- void clear_gx_altitudemode();
--
-- // <coordinates>
-- const CoordinatesPtr get_coordinates();
-- void set_coordinates(CoordinatesPtr coordinates);
-- bool has_coordinates();
-- void clear_coordinates();
--};
--
--%nodefaultctor LineStyle;
--class LineStyle : public ColorStyle {
--public:
-- // <width>
-- double get_width();
-- void set_width(double width);
-- bool has_width();
-- void clear_width();
--};
--
--%nodefaultctor LinearRing;
--class LinearRing : public Geometry {
--public:
-- // <extrude>
-- bool get_extrude();
-- void set_extrude(bool extrude);
-- bool has_extrude();
-- void clear_extrude();
--
-- // <tessellate>
-- bool get_tessellate();
-- void set_tessellate(bool tessellate);
-- bool has_tessellate();
-- void clear_tessellate();
--
-- // <altitudeMode>
-- int get_altitudemode();
-- void set_altitudemode(int altitudemode);
-- bool has_altitudemode();
-- void clear_altitudemode();
--
-- // <gx:altitudeMode>
-- int get_gx_altitudemode();
-- bool has_gx_altitudemode();
-- void set_gx_altitudemode(int gx_altitudemode);
-- void clear_gx_altitudemode();
--
-- // <coordinates>
-- const CoordinatesPtr get_coordinates();
-- void set_coordinates(CoordinatesPtr coordinates);
-- bool has_coordinates();
-- void clear_coordinates();
--};
--
--%nodefaultctor Link;
--class Link : public BasicLink {
--public:
-- // <refreshMode>
-- int get_refreshmode();
-- void set_refreshmode(int refreshmode);
-- bool has_refreshmode();
-- void clear_refreshmode();
--
-- // <refreshInterval>
-- double get_refreshinterval();
-- void set_refreshinterval(double refreshinterval);
-- bool has_refreshinterval();
-- void clear_refreshinterval();
--
-- // <viewRefreshMode>
-- int get_viewrefreshmode();
-- void set_viewrefreshmode(int viewrefreshmode);
-- bool has_viewrefreshmode();
-- void clear_viewrefreshmode();
--
-- // <viewRefreshTime>
-- double get_viewrefreshtime();
-- void set_viewrefreshtime(double viewrefreshtime);
-- bool has_viewrefreshtime();
-- void clear_viewrefreshtime();
--
-- // <viewBoundScale>
-- double get_viewboundscale();
-- void set_viewboundscale(double viewboundscale);
-- bool has_viewboundscale();
-- void clear_viewboundscale();
--
-- // <viewFormat>
-- const std::string& get_viewformat();
-- void set_viewformat(const std::string& viewformat);
-- bool has_viewformat();
-- void clear_viewformat();
--
-- // <httpQuery>
-- const std::string& get_httpquery();
-- void set_httpquery(const std::string& httpquery);
-- bool has_httpquery();
-- void clear_httpquery();
--};
--
--%nodefaultctor ListStyle;
--class ListStyle : public SubStyle {
--public:
-- // <listItemType>
-- int get_listitemtype();
-- void set_listitemtype(int listitemtype);
-- bool has_listitemtype();
-- void clear_listitemtype();
--
-- // <bgColor>
-- const kmlbase::Color32& get_bgcolor();
-- void set_bgcolor(const kmlbase::Color32& bgcolor);
-- bool has_bgcolor();
-- void clear_bgcolor();
--
-- // <ItemIcon>...
-- void add_itemicon(ItemIconPtr itemicon);
-- const size_t get_itemicon_array_size();
-- const ItemIconPtr get_itemicon_array_at(unsigned int index);
--};
--
--%nodefaultctor Location;
--class Location : public Object {
--public:
-- // <longitude>
-- double get_longitude();
-- void set_longitude(double longitude);
-- bool has_longitude();
-- void clear_longitude();
--
-- // <latitude>
-- double get_latitude();
-- void set_latitude(double latitude);
-- bool has_latitude();
-- void clear_latitude();
--
-- // <altitude>
-- double get_altitude();
-- void set_altitude(double altitude);
-- bool has_altitude();
-- void clear_altitude();
--};
--
--%nodefaultctor LookAt;
--class LookAt : public AbstractView {
--public:
-- // <longitude>
-- double get_longitude();
-- void set_longitude(double longitude);
-- bool has_longitude();
-- void clear_longitude();
--
-- // <latitude>
-- double get_latitude();
-- void set_latitude(double latitude);
-- bool has_latitude();
-- void clear_latitude();
--
-- // <altitude>
-- double get_altitude();
-- void set_altitude(double altitude);
-- bool has_altitude();
-- void clear_altitude();
--
-- // <heading>
-- double get_heading();
-- void set_heading(double heading);
-- bool has_heading();
-- void clear_heading();
--
-- // <tilt>
-- double get_tilt();
-- void set_tilt(double tilt);
-- bool has_tilt();
-- void clear_tilt();
--
-- // <range>
-- double get_range();
-- void set_range(double range);
-- bool has_range();
-- void clear_range();
--
-- // <altitudeMode>
-- int get_altitudemode();
-- void set_altitudemode(int altitudemode);
-- bool has_altitudemode();
-- void clear_altitudemode();
--
-- // <gx:altitudeMode>
-- int get_gx_altitudemode();
-- bool has_gx_altitudemode();
-- void set_gx_altitudemode(int gx_altitudemode);
-- void clear_gx_altitudemode();
--};
--
--%nodefaultctor Orientation;
--class Orientation : public Object {
--public:
-- // <heading>
-- double get_heading();
-- void set_heading(double heading);
-- bool has_heading();
-- void clear_heading();
--
-- // <tilt>
-- double get_tilt();
-- void set_tilt(double tilt);
-- bool has_tilt();
-- void clear_tilt();
--
-- // <roll>
-- double get_roll();
-- void set_roll(double roll);
-- bool has_roll();
-- void clear_roll();
--};
--
--%nodefaultctor Scale;
--class Scale : public Object {
--public:
-- // <x>
-- double get_x();
-- void set_x(double x);
-- bool has_x();
-- void clear_x();
--
-- // <y>
-- double get_y();
-- void set_y(double y);
-- bool has_y();
-- void clear_y();
--
-- // <z>
-- double get_z();
-- void set_z(double z);
-- bool has_z();
-- void clear_z();
--};
--
--%nodefaultctor Alias;
--class Alias : public Object {
--public:
-- // <targetHref>
-- const std::string& get_targethref();
-- void set_targethref(const std::string& targethref);
-- bool has_targethref();
-- void clear_targethref();
--
-- // <sourceHref>
-- const std::string& get_sourcehref();
-- void set_sourcehref(const std::string& sourcehref);
-- bool has_sourcehref();
-- void clear_sourcehref();
--};
--
--%nodefaultctor ResourceMap;
--class ResourceMap : public Object {
--public:
-- // <Alias>...
-- void add_alias(AliasPtr alias);
-- const size_t get_alias_array_size();
-- const AliasPtr get_alias_array_at(unsigned int index);
--};
--
--%nodefaultctor Model;
--class Model : public Geometry {
--public:
-- // <altitudeMode>
-- int get_altitudemode();
-- void set_altitudemode(int altitudemode);
-- bool has_altitudemode();
-- void clear_altitudemode();
--
-- // <gx:altitudeMode>
-- int get_gx_altitudemode();
-- bool has_gx_altitudemode();
-- void set_gx_altitudemode(int gx_altitudemode);
-- void clear_gx_altitudemode();
--
-- // <Location>
-- const LocationPtr get_location();
-- void set_location(LocationPtr location);
-- bool has_location();
-- void clear_location();
--
-- // <Orientation>
-- const OrientationPtr get_orientation();
-- void set_orientation(OrientationPtr orientation);
-- bool has_orientation();
-- void clear_orientation();
--
-- // <Scale>
-- const ScalePtr get_scale();
-- void set_scale(ScalePtr scale);
-- bool has_scale();
-- void clear_scale();
--
-- // <Link>
-- const LinkPtr get_link();
-- void set_link(LinkPtr link);
-- bool has_link();
-- void clear_link();
--
-- // <ResourceMap>
-- const ResourceMapPtr get_resourcemap();
-- void set_resourcemap(ResourceMapPtr resourcemap);
-- bool has_resourcemap();
-- void clear_resourcemap();
--};
--
--%nodefaultctor MultiGeometry;
--class MultiGeometry : public Geometry {
--public:
-- // Geometry...
-- void add_geometry(GeometryPtr geometry);
-- const size_t get_geometry_array_size();
-- const GeometryPtr get_geometry_array_at(unsigned int index);
--};
--
--%nodefaultctor NetworkLink;
--class NetworkLink : public Feature {
--public:
-- // <refreshVisibility>
-- bool get_refreshvisibility();
-- void set_refreshvisibility(bool refreshvisibility);
-- bool has_refreshvisibility();
-- void clear_refreshvisibility();
--
-- // <flyToView>
-- bool get_flytoview();
-- void set_flytoview(bool flytoview);
-- bool has_flytoview();
-- void clear_flytoview();
--
-- // <Link>
-- const LinkPtr get_link();
-- void set_link(LinkPtr link);
-- bool has_link();
-- void clear_link();
--};
--
--%nodefaultctor Update;
--class Update : public Element {
--public:
-- // <targetHref>
-- const std::string& get_targethref();
-- bool has_targethref();
-- void set_targethref(const std::string& targethref);
-- void clear_targethref();
--
-- // <Change>,<Create>,<Delete>...
-- void add_updateoperation(UpdateOperationPtr updateoperation);
-- const size_t get_updateoperation_array_size();
-- const UpdateOperationPtr get_updateoperation_array_at(unsigned int index);
--};
--
--%nodefaultctor NetworkLinkControl;
--class NetworkLinkControl : public Element {
--public:
-- // <minRefreshPeriod>
-- double get_minrefreshperiod();
-- void set_minrefreshperiod(double minrefreshperiod);
-- bool has_minrefreshperiod();
-- void clear_minrefreshperiod();
--
-- // <maxSessionLength>
-- double get_maxsessionlength();
-- void set_maxsessionlength(double maxsessionlength);
-- bool has_maxsessionlength();
-- void clear_maxsessionlength();
--
-- // <cookie>
-- const std::string& get_cookie();
-- void set_cookie(const std::string& cookie);
-- bool has_cookie();
-- void clear_cookie();
--
-- // <message>
-- const std::string& get_message();
-- void set_message(const std::string& message);
-- bool has_message();
-- void clear_message();
--
-- // <linkName>
-- const std::string& get_linkname();
-- void set_linkname(const std::string& linkname);
-- bool has_linkname();
-- void clear_linkname();
--
-- // <linkDescription>
-- const std::string& get_linkdescription();
-- void set_linkdescription(const std::string& linkdescription);
-- bool has_linkdescription();
-- void clear_linkdescription();
--
-- // <linkSnippet>
-- const LinkSnippetPtr get_linksnippet();
-- void set_linksnippet(LinkSnippetPtr linksnippet);
-- bool has_linksnippet();
-- void clear_linksnippet();
--
-- // <expires>
-- const std::string& get_expires();
-- void set_expires(const std::string& expires);
-- bool has_expires();
-- void clear_expires();
--
-- // <Update>
-- const UpdatePtr get_update();
-- void set_update(UpdatePtr update);
-- bool has_update();
-- void clear_update();
--
-- // AbstractView
-- const AbstractViewPtr get_abstractview();
-- void set_abstractview(AbstractViewPtr abstractview);
-- bool has_abstractview();
-- void clear_abstractview();
--};
--
--%nodefaultctor Pair;
--class Pair : public Object {
--public:
-- // <key>
-- int get_key();
-- void set_key(int key);
-- bool has_key();
-- void clear_key();
--
-- // <styleUrl>
-- const std::string& get_styleurl();
-- void set_styleurl(const std::string& styleurl);
-- bool has_styleurl();
-- void clear_styleurl();
--
-- // <StyleSelector>
-- const StyleSelectorPtr get_styleselector();
-- void set_styleselector(StyleSelectorPtr styleselector);
-- bool has_styleselector();
-- void clear_styleselector();
--};
--
--%nodefaultctor ViewVolume;
--class ViewVolume : public Object {
--public:
-- // <leftFov>
-- double get_leftfov();
-- void set_leftfov(double leftfov);
-- bool has_leftfov();
-- void clear_leftfov();
--
-- // <rightFov>
-- double get_rightfov();
-- void set_rightfov(double rightfov);
-- bool has_rightfov();
-- void clear_rightfov();
--
-- // <bottomFov>
-- double get_bottomfov();
-- void set_bottomfov(double bottomfov);
-- bool has_bottomfov();
-- void clear_bottomfov();
--
-- // <topFov>
-- double get_topfov();
-- void set_topfov(double topfov);
-- bool has_topfov();
-- void clear_topfov();
--
-- // <near>
-- double get_near();
-- void set_near(double val);
-- bool has_near();
-- void clear_near();
--};
--
--%nodefaultctor Point;
--class Point : public Geometry {
--public:
-- // <extrude>
-- bool get_extrude();
-- void set_extrude(bool extrude);
-- bool has_extrude();
-- void clear_extrude();
--
-- // <altitudeMode>
-- int get_altitudemode();
-- void set_altitudemode(int altitudemode);
-- bool has_altitudemode();
-- void clear_altitudemode();
--
-- // <gx:altitudeMode>
-- int get_gx_altitudemode();
-- bool has_gx_altitudemode();
-- void set_gx_altitudemode(int gx_altitudemode);
-- void clear_gx_altitudemode();
--
-- // <coordinates>
-- const CoordinatesPtr get_coordinates();
-- void set_coordinates(CoordinatesPtr coordinates);
-- bool has_coordinates();
-- void clear_coordinates();
--};
--
--%nodefaultctor PhotoOverlay;
--class PhotoOverlay : public Overlay {
--public:
-- // <rotation>
-- double get_rotation();
-- void set_rotation(double rotation);
-- bool has_rotation();
-- void clear_rotation();
--
-- // <ViewVolume>
-- const ViewVolumePtr get_viewvolume();
-- void set_viewvolume(ViewVolumePtr viewvolume);
-- bool has_viewvolume();
-- void clear_viewvolume();
--
-- // <ImagePyramid>
-- const ImagePyramidPtr get_imagepyramid();
-- void set_imagepyramid(ImagePyramidPtr imagepyramid);
-- bool has_imagepyramid();
-- void clear_imagepyramid();
--
-- // <Point>
-- const PointPtr get_point();
-- void set_point(PointPtr point);
-- bool has_point();
-- void clear_point();
--
-- // <shape>
-- int get_shape();
-- bool has_shape();
-- void set_shape(int shape);
-- void clear_shape();
--};
--
--%nodefaultctor Placemark;
--class Placemark : public Feature {
--public:
-- // Geometry
-- const GeometryPtr get_geometry();
-- void set_geometry(GeometryPtr geometry);
-- bool has_geometry();
-- void clear_geometry();
--};
--
--%nodefaultctor PolyStyle;
--class PolyStyle : public ColorStyle {
--public:
-- // <fill>
-- bool get_fill();
-- void set_fill(bool fill);
-- bool has_fill();
-- void clear_fill();
--
-- // <outline>
-- bool get_outline();
-- void set_outline(bool outline);
-- bool has_outline();
-- void clear_outline();
--};
--
--%nodefaultctor OuterBoundaryIs;
--class OuterBoundaryIs : public Element {
--public:
-- // <LinearRing>
-- const LinearRingPtr get_linearring();
-- void set_linearring(LinearRingPtr linearring);
-- bool has_linearring();
-- void clear_linearring();
--};
--
--%nodefaultctor InnerBoundaryIs;
--class InnerBoundaryIs : public Element {
--public:
-- // <LinearRing>
-- const LinearRingPtr get_linearring();
-- void set_linearring(LinearRingPtr linearring);
-- bool has_linearring();
-- void clear_linearring();
--};
--
--%nodefaultctor Polygon;
--class Polygon : public Geometry {
--public:
-- // <extrude>
-- bool get_extrude();
-- void set_extrude(bool extrude);
-- bool has_extrude();
-- void clear_extrude();
--
-- // <tessellate>
-- bool get_tessellate();
-- void set_tessellate(bool tessellate);
-- bool has_tessellate();
-- void clear_tessellate();
--
-- // <altitudeMode>
-- int get_altitudemode();
-- void set_altitudemode(int altitudemode);
-- bool has_altitudemode();
-- void clear_altitudemode();
--
-- // <gx:altitudeMode>
-- int get_gx_altitudemode();
-- bool has_gx_altitudemode();
-- void set_gx_altitudemode(int gx_altitudemode);
-- void clear_gx_altitudemode();
--
-- // <outerBoundaryIs>
-- const OuterBoundaryIsPtr get_outerboundaryis();
-- void set_outerboundaryis(OuterBoundaryIsPtr outerboundaryis);
-- bool has_outerboundaryis();
-- void clear_outerboundaryis();
--
-- // <innerBoundaryIs>...
-- void add_innerboundaryis(InnerBoundaryIsPtr innerboundaryis);
-- const size_t get_innerboundaryis_array_size();
-- const InnerBoundaryIsPtr get_innerboundaryis_array_at(unsigned int index);
--};
--
--%nodefaultctor SimpleData;
--class SimpleData : public Element {
--public:
-- // name=
-- const std::string& get_name();
-- bool has_name();
-- void set_name(const std::string& value);
-- void clear_name();
--
-- // char data
-- const std::string& get_text();
-- bool has_text();
-- void set_text(const std::string& value);
-- void clear_text();
--};
--
--%nodefaultctor SchemaData;
--class SchemaData : public Object {
--public:
-- // schemaUrl=
-- const std::string& get_schemaurl();
-- bool has_schemaurl();
-- void set_schemaurl(const std::string& value);
-- void clear_schemaurl();
-- // <SimpleData>...
-- void add_simpledata(SimpleDataPtr simpledata);
-- const size_t get_simpledata_array_size();
-- const SimpleDataPtr get_simpledata_array_at(unsigned int index);
--};
--
--%nodefaultctor OverlayXY;
--class OverlayXY : public Vec2 {
--};
--
--%nodefaultctor ScreenXY;
--class ScreenXY : public Vec2 {
--};
--
--%nodefaultctor RotationXY;
--class RotationXY : public Vec2 {
--};
--
--%nodefaultctor Size;
--class Size : public Vec2 {
--};
--
--%nodefaultctor ScreenOverlay;
--class ScreenOverlay : public Overlay {
--public:
-- // <OverlayXY>
-- const OverlayXYPtr get_overlayxy();
-- void set_overlayxy(OverlayXYPtr overlayxy);
-- bool has_overlayxy();
-- void clear_overlayxy();
--
-- // <ScreenXY>
-- const ScreenXYPtr get_screenxy();
-- void set_screenxy(ScreenXYPtr screenxy);
-- bool has_screenxy();
-- void clear_screenxy();
--
-- // <RotationXY>
-- const RotationXYPtr get_rotationxy();
-- void set_rotationxy(RotationXYPtr rotationxy);
-- bool has_rotationxy();
-- void clear_rotationxy();
--
-- // <size>
-- const SizePtr get_size();
-- void set_size(SizePtr size);
-- bool has_size();
-- void clear_size();
--
-- // <rotation>
-- double get_rotation();
-- void set_rotation(double rotation);
-- bool has_rotation();
-- void clear_rotation();
--};
--
--%nodefaultctor Style;
--class Style : public StyleSelector {
--public:
-- // <IconStyle>
-- const IconStylePtr get_iconstyle();
-- void set_iconstyle(IconStylePtr iconstyle);
-- bool has_iconstyle();
-- void clear_iconstyle();
--
-- // <LabelStyle>
-- const LabelStylePtr get_labelstyle();
-- void set_labelstyle(LabelStylePtr labelstyle);
-- bool has_labelstyle();
-- void clear_labelstyle();
--
-- // <LineStyle>
-- const LineStylePtr get_linestyle();
-- void set_linestyle(LineStylePtr linestyle);
-- bool has_linestyle();
-- void clear_linestyle();
--
-- // <PolyStyle>
-- const PolyStylePtr get_polystyle();
-- void set_polystyle(PolyStylePtr polystyle);
-- bool has_polystyle();
-- void clear_polystyle();
--
-- // <BalloonStyle>
-- const BalloonStylePtr get_balloonstyle();
-- void set_balloonstyle(BalloonStylePtr balloonstyle);
-- bool has_balloonstyle();
-- void clear_balloonstyle();
--
-- // <ListStyle>
-- const ListStylePtr get_liststyle();
-- void set_liststyle(ListStylePtr liststyle);
-- bool has_liststyle();
-- void clear_liststyle();
--};
--
--%nodefaultctor StyleMap;
--class StyleMap : public StyleSelector {
--public:
-- // <Pair>...
-- void add_pair(PairPtr pair);
-- const size_t get_pair_array_size();
-- const PairPtr get_pair_array_at(unsigned int index);
--};
--
--%nodefaultctor TimeSpan;
--class TimeSpan : public TimePrimitive {
--public:
-- // <begin>
-- const std::string& get_begin();
-- void set_begin(const std::string& begin);
-- bool has_begin();
-- void clear_begin();
--
-- // <end>
-- const std::string& get_end();
-- void set_end(const std::string& end);
-- bool has_end();
-- void clear_end();
--};
--
--%nodefaultctor GxTimeSpan;
--class GxTimeSpan : public TimeSpan {
--};
--
--%nodefaultctor TimeStamp;
--class TimeStamp : public TimePrimitive {
--public:
-- // <when>
-- const std::string& get_when();
-- void set_when(const std::string& when);
-- bool has_when();
-- void clear_when();
--};
--
--%nodefaultctor GxTimeStamp;
--class GxTimeStamp : public TimeStamp {
--};
--
--%nodefaultctor Kml;
--class Kml : public Element {
--public:
-- // hint=
-- const std::string& get_hint();
-- void set_hint(const std::string& hint);
-- bool has_hint();
-- void clear_hint();
--
-- // <NetworkLinkControl>
-- const NetworkLinkControlPtr get_networklinkcontrol();
-- void set_networklinkcontrol(NetworkLinkControlPtr networklinkcontrol);
-- bool has_networklinkcontrol();
-- void clear_networklinkcontrol();
--
-- // Feature
-- const FeaturePtr get_feature();
-- void set_feature(FeaturePtr feature);
-- bool has_feature();
-- void clear_feature();
--};
--
--// <atom:author>
--%nodefaultctor AtomAuthor;
--class AtomAuthor : public Element {
--public:
-- // <atom:name>
-- const std::string& get_name();
-- void set_name(const std::string& name);
-- bool has_name();
-- void clear_name();
--
-- // <atom:uri>
-- const std::string& get_uri();
-- void set_uri(const std::string& uri);
-- bool has_uri();
-- void clear_uri();
--
-- // <atom:email>
-- const std::string& get_email();
-- void set_email(const std::string& email);
-- bool has_email();
-- void clear_email();
--};
--
--// <atom:link>
--%nodefaultctor AtomLink;
--class AtomLink : public Element {
--public:
-- // href=, RFC 4287 4.2.7.1, RFC 3987
-- const std::string& get_href();
-- bool has_href();
-- void set_href(const std::string& value);
-- void clear_href();
--
-- // rel=, RFC 4287 4.2.7.2, RFC 3987
-- const std::string& get_rel();
-- bool has_rel();
-- void set_rel(const std::string& value);
-- void clear_rel();
--
-- // type=, RFC 4287 4.2.7.3, MIME
-- const std::string& get_type();
-- bool has_type();
-- void set_type(const std::string& value);
-- void clear_type();
--
-- // hreflang=, RFC 4287 4.2.7.4, RFC 3066
-- const std::string& get_hreflang();
-- bool has_hreflang();
-- void set_hreflang(const std::string& value);
-- void clear_hreflang();
--
-- // title=, RFC 4287 4.2.7.5
-- const std::string& get_title();
-- bool has_title();
-- void set_title(const std::string& value);
-- void clear_title();
--
-- // length=, RFC 4287 4.2.7.6
-- const int get_length();
-- bool has_length();
-- void set_length(int value);
-- void clear_length();
--};
--
--// GxTourPrimitive is an abstract base type. This corresponds to
--// gx:AbstractGxTourPrimitiveType/Group in KML 2.2 gx.
--%nodefaultctor GxTourPrimitive;
--class GxTourPrimitive : public Object {
--};
--
--// <gx:Playlist>
--%nodefaultctor GxPlaylist;
--class GxPlaylist : public Object {
-- // GxTourPrimitive...
-- public:
-- void add_gx_tourprimitive(GxTourPrimitivePtr tourprimitive);
-- const size_t get_gx_tourprimitive_array_size();
-- const GxTourPrimitivePtr get_gx_tourprimitive_array_at(unsigned int index);
--};
--
--// <gx:Tour>
--%nodefaultctor GxTour;
--class GxTour : public Feature {
-- public:
-- // <gx:Playlist>
-- const GxPlaylistPtr get_gx_playlist();
-- bool has_gx_playlist();
-- void set_gx_playlist(GxPlaylistPtr gx_playlist);
-- void clear_gx_playlist();
--};
--
--// <gx:AnimatedUpdate>
--%nodefaultctor GxAnimatedUpdate;
--class GxAnimatedUpdate : public GxTourPrimitive {
--public:
-- // <gx:duration>
-- double get_gx_duration();
-- bool has_gx_duration();
-- void set_gx_duration(double gx_duration);
-- void clear_gx_duration();
--
-- // <Update>
-- const UpdatePtr get_update();
-- bool has_update();
-- void set_update(UpdatePtr update);
-- void clear_update();
--};
--
--// <gx:FlyTo>
--%nodefaultctor GxFlyTo;
--class GxFlyTo : public GxTourPrimitive {
-- public:
-- // <gx:duration>
-- double get_gx_duration();
-- bool has_gx_duration();
-- void set_gx_duration(double gx_duration);
-- void clear_gx_duration();
--
-- // <gx:flyToMode>.
-- int get_gx_flytomode();
-- bool has_gx_flytomode();
-- void set_gx_flytomode(int value);
-- void clear_gx_flytomode();
--
-- // AbstractView
-- const AbstractViewPtr get_abstractview();
-- bool has_abstractview();
-- void set_abstractview(AbstractViewPtr abstractview);
-- void clear_abstractview();
--};
--
--// <gx:Wait>
--%nodefaultctor GxWait;
--class GxWait : public GxTourPrimitive {
--public:
-- // <gx:duration>
-- double get_gx_duration();
-- bool has_gx_duration();
-- void set_gx_duration(double gx_duration);
-- void clear_gx_duration();
--};
--
--// <gx:SoundCue>
--%nodefaultctor GxSoundCue;
--class GxSoundCue : public GxTourPrimitive {
--public:
-- // <href>
-- const std::string& get_href();
-- bool has_href();
-- void set_href(const std::string& href);
-- void clear_href();
--};
--
--// <gx:TourControl>
--%nodefaultctor GxTourControl;
--class GxTourControl : public GxTourPrimitive {
--public:
-- // <gx:playMode>
-- int get_gx_playmode();
-- bool has_gx_playmode();
-- void set_gx_playmode(int value);
-- void clear_gx_playmode();
--};
--
---- /dev/null
-+++ b/src/swig/libkml_kmlelements.i
-@@ -0,0 +1,1750 @@
-+// 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.
-+
-+// Generated from the KML 2.2 XSD.
-+
-+// This is the SWIG interface file for the public API to the KML DOM.
-+// In addition to serving the needs of SWIG this also serves to document the
-+// public C++ API separate from the present implementation found in the
-+// private sections of the present C++ .h files.
-+
-+// This is AbstractObjectType in the KML 2.2 XSD.
-+%nodefaultctor Object;
-+class Object : public Element {
-+public:
-+ // id=
-+ const std::string& get_id();
-+ void set_id(const std::string& id);
-+ bool has_id();
-+ void clear_id();
-+
-+ // targetId=
-+ const std::string& get_targetid();
-+ void set_targetid(const std::string& targetid);
-+ bool has_targetid();
-+ void clear_targetid();
-+};
-+
-+%nodefaultctor SubStyle;
-+class SubStyle : public Object {
-+};
-+
-+%nodefaultctor ColorStyle;
-+class ColorStyle : public SubStyle {
-+public:
-+ // <color>
-+ const kmlbase::Color32& get_color();
-+ void set_color(const kmlbase::Color32& color);
-+ bool has_color();
-+ void clear_color();
-+
-+ // <colorMode>
-+ int get_colormode();
-+ void set_colormode(int colormode);
-+ bool has_colormode();
-+ void clear_colormode();
-+};
-+
-+%nodefaultctor SnippetCommon;
-+class SnippetCommon : public Element {
-+public:
-+ // Content.
-+ const std::string& get_text();
-+ void set_text(const std::string& text);
-+ bool has_text();
-+ void clear_text();
-+
-+ // maxLines=
-+ int get_maxlines();
-+ void set_maxlines(int maxlines);
-+ bool has_maxlines();
-+ void clear_maxlines();
-+};
-+
-+%nodefaultctor Snippet;
-+class Snippet : public SnippetCommon {
-+};
-+
-+%nodefaultctor LinkSnippet;
-+class LinkSnippet : public SnippetCommon {
-+};
-+
-+%nodefaultctor AbstractView;
-+class AbstractView : public Object {
-+ public:
-+ // gx:TimeStamp and gx:TimeSpan.
-+ const TimePrimitivePtr get_gx_timeprimitive();
-+ bool has_gx_timeprimitive();
-+ void set_gx_timeprimitive(const TimePrimitivePtr& gx_timeprimitive);
-+ void clear_gx_timeprimitive();
-+};
-+
-+%nodefaultctor TimePrimitive;
-+class TimePrimitive : public Object {
-+};
-+
-+%nodefaultctor StyleSelector;
-+class StyleSelector : public Object {
-+};
-+
-+%nodefaultctor AbstractLatLonBox;
-+class AbstractLatLonBox : public Object {
-+public:
-+ // <north>
-+ double get_north();
-+ bool has_north();
-+ void set_north(double north);
-+ void clear_north();
-+
-+ // <south>
-+ double get_south();
-+ bool has_south();
-+ void set_south(double south);
-+ void clear_south();
-+
-+ // <east>
-+ double get_east();
-+ bool has_east();
-+ void set_east(double east);
-+ void clear_east();
-+
-+ // <west>
-+ double get_west();
-+ bool has_west();
-+ void set_west(double west);
-+ void clear_west();
-+};
-+
-+%nodefaultctor LatLonAltBox;
-+class LatLonAltBox : public AbstractLatLonBox {
-+public:
-+ // <minAltitude>
-+ double get_minaltitude();
-+ void set_minaltitude(double minaltitude);
-+ bool has_minaltitude();
-+ void clear_minaltitude();
-+
-+ // <maxAltitude>
-+ double get_maxaltitude();
-+ void set_maxaltitude(double maxaltitude);
-+ bool has_maxaltitude();
-+ void clear_maxaltitude();
-+
-+ // <altitudeMode>
-+ int get_altitudemode();
-+ void set_altitudemode(int altitudemode);
-+ bool has_altitudemode();
-+ void clear_altitudemode();
-+
-+ // <gx:altitudeMode>
-+ int get_gx_altitudemode();
-+ bool has_gx_altitudemode();
-+ void set_gx_altitudemode(int gx_altitudemode);
-+ void clear_gx_altitudemode();
-+};
-+
-+%nodefaultctor Lod;
-+class Lod : public Object {
-+public:
-+ // <minLodPixels>
-+ double get_minlodpixels();
-+ void set_minlodpixels(double minlodpixels);
-+ bool has_minlodpixels();
-+ void clear_minlodpixels();
-+
-+ // <maxLodPixels>
-+ double get_maxlodpixels();
-+ void set_maxlodpixels(double maxlodpixels);
-+ bool has_maxlodpixels();
-+ void clear_maxlodpixels();
-+
-+ // <minFadeExtent>
-+ double get_minfadeextent();
-+ void set_minfadeextent(double minfadeextent);
-+ bool has_minfadeextent();
-+ void clear_minfadeextent();
-+
-+ // <maxFadeExtent>
-+ double get_maxfadeextent();
-+ void set_maxfadeextent(double maxfadeextent);
-+ bool has_maxfadeextent();
-+ void clear_maxfadeextent();
-+};
-+
-+%nodefaultctor Region;
-+class Region : public Object {
-+public:
-+ // <LatLonAltBox>
-+ const LatLonAltBoxPtr get_latlonaltbox();
-+ void set_latlonaltbox(LatLonAltBoxPtr latlonaltbox);
-+ bool has_latlonaltbox();
-+ void clear_latlonaltbox();
-+
-+ // <Lod>
-+ const LodPtr get_lod();
-+ void set_lod(LodPtr lod);
-+ bool has_lod();
-+ void clear_lod();
-+};
-+
-+%nodefaultctor ExtendedData;
-+class ExtendedData : public Element {
-+public:
-+ // <Data>.
-+ void add_data(DataPtr data);
-+ const size_t get_data_array_size();
-+ const DataPtr get_data_array_at(unsigned int index);
-+ // <SchemaData>.
-+ void add_schemadata(SchemaDataPtr schemadata);
-+ const size_t get_schemadata_array_size();
-+ const SchemaDataPtr get_schemadata_array_at(unsigned int index);
-+};
-+
-+%nodefaultctor Feature;
-+class Feature : public Object {
-+public:
-+ // <name>
-+ const std::string& get_name();
-+ void set_name(const std::string& name);
-+ bool has_name();
-+ void clear_name();
-+
-+ // <visibility>
-+ bool get_visibility();
-+ void set_visibility(bool visibility);
-+ bool has_visibility();
-+ void clear_visibility();
-+
-+ // <open>
-+ bool get_open();
-+ void set_open(bool open);
-+ bool has_open();
-+ void clear_open();
-+
-+ // <atom:author>
-+ const AtomAuthorPtr get_atomauthor();
-+ bool has_atomauthor();
-+ void set_atomauthor(AtomAuthorPtr atomauthor);
-+ void clear_atomauthor();
-+
-+ // <atom:link>
-+ const AtomLinkPtr get_atomlink();
-+ bool has_atomlink();
-+ void set_atomlink(AtomLinkPtr atomlink);
-+ void clear_atomlink();
-+
-+ // <address>
-+ const std::string& get_address();
-+ void set_address(const std::string& address);
-+ bool has_address();
-+ void clear_address();
-+
-+ // <phoneNumber>
-+ const std::string& get_phonenumber();
-+ void set_phonenumber(const std::string& phonenumber);
-+ bool has_phonenumber();
-+ void clear_phonenumber();
-+
-+ // <Snippet>
-+ const SnippetPtr get_snippet();
-+ void set_snippet(SnippetPtr snippet);
-+ bool has_snippet();
-+ void clear_snippet();
-+
-+ // <description>
-+ const std::string& get_description();
-+ void set_description(const std::string& description);
-+ bool has_description();
-+ void clear_description();
-+
-+ // AbstractView
-+ const AbstractViewPtr get_abstractview();
-+ void set_abstractview(AbstractViewPtr abstractview);
-+ bool has_abstractview();
-+ void clear_abstractview();
-+
-+ // TimePrimitive
-+ const TimePrimitivePtr get_timeprimitive();
-+ void set_timeprimitive(TimePrimitivePtr timeprimitive);
-+ bool has_timeprimitive();
-+ void clear_timeprimitive();
-+
-+ // <styleUrl>
-+ const std::string& get_styleurl();
-+ void set_styleurl(const std::string& styleurl);
-+ bool has_styleurl();
-+ void clear_styleurl();
-+
-+ // StyleSelector
-+ const StyleSelectorPtr get_styleselector();
-+ void set_styleselector(StyleSelectorPtr styleselector);
-+ bool has_styleselector();
-+ void clear_styleselector();
-+
-+ // <Region>
-+ const RegionPtr get_region();
-+ void set_region(RegionPtr region);
-+ bool has_region();
-+ void clear_region();
-+
-+ // <ExtendedData>
-+ const ExtendedDataPtr get_extendeddata();
-+ void set_extendeddata(ExtendedDataPtr extendeddata);
-+ bool has_extendeddata();
-+ void clear_extendeddata();
-+
-+ // <gx:balloonVisibility>
-+ bool get_gx_balloonvisibility();
-+ void set_gx_balloonvisibility(bool balloonvisibility);
-+ bool has_gx_balloonvisibility();
-+ void clear_gx_balloonvisibility();
-+};
-+
-+%nodefaultctor Container;
-+class Container : public Feature {
-+public:
-+ // Feature...
-+ void add_feature(FeaturePtr feature);
-+ const size_t get_feature_array_size();
-+ const FeaturePtr get_feature_array_at(unsigned int index);
-+};
-+
-+%nodefaultctor Geometry;
-+class Geometry : public Object {
-+};
-+
-+%nodefaultctor BasicLink;
-+class BasicLink : public Object {
-+public:
-+ // <href>
-+ const std::string& get_href();
-+ bool has_href();
-+ void set_href(const std::string& href);
-+ void clear_href();
-+};
-+
-+%nodefaultctor Icon;
-+class Icon : public BasicLink {
-+public:
-+ // <refreshMode>
-+ int get_refreshmode();
-+ void set_refreshmode(int refreshmode);
-+ bool has_refreshmode();
-+ void clear_refreshmode();
-+
-+ // <refreshInterval>
-+ double get_refreshinterval();
-+ void set_refreshinterval(double refreshinterval);
-+ bool has_refreshinterval();
-+ void clear_refreshinterval();
-+
-+ // <viewRefreshMode>
-+ int get_viewrefreshmode();
-+ void set_viewrefreshmode(int viewrefreshmode);
-+ bool has_viewrefreshmode();
-+ void clear_viewrefreshmode();
-+
-+ // <viewRefreshTime>
-+ double get_viewrefreshtime();
-+ void set_viewrefreshtime(double viewrefreshtime);
-+ bool has_viewrefreshtime();
-+ void clear_viewrefreshtime();
-+
-+ // <viewBoundScale>
-+ double get_viewboundscale();
-+ void set_viewboundscale(double viewboundscale);
-+ bool has_viewboundscale();
-+ void clear_viewboundscale();
-+
-+ // <viewFormat>
-+ const std::string& get_viewformat();
-+ void set_viewformat(const std::string& viewformat);
-+ bool has_viewformat();
-+ void clear_viewformat();
-+
-+ // <httpQuery>
-+ const std::string& get_httpquery();
-+ void set_httpquery(const std::string& httpquery);
-+ bool has_httpquery();
-+ void clear_httpquery();
-+};
-+
-+%nodefaultctor IconStyleIcon;
-+class IconStyleIcon : public BasicLink {
-+public:
-+ // <href>
-+ const std::string& get_href();
-+ bool has_href();
-+ void set_href(const std::string& href);
-+ void clear_href();
-+};
-+
-+%nodefaultctor Overlay;
-+class Overlay : public Feature {
-+public:
-+ // <color>
-+ const kmlbase::Color32& get_color();
-+ void set_color(const kmlbase::Color32& color);
-+ bool has_color();
-+ void clear_color();
-+
-+ // <drawOrder>
-+ int get_draworder();
-+ void set_draworder(int draworder);
-+ bool has_draworder();
-+ void clear_draworder();
-+
-+ // <Icon>
-+ const IconPtr get_icon();
-+ void set_icon(IconPtr icon);
-+ bool has_icon();
-+ void clear_icon();
-+};
-+
-+%nodefaultctor BalloonStyle;
-+class BalloonStyle : public SubStyle {
-+public:
-+ // <bgColor>
-+ const kmlbase::Color32& get_bgcolor();
-+ void set_bgcolor(const kmlbase::Color32& bgcolor);
-+ bool has_bgcolor();
-+ void clear_bgcolor();
-+
-+ // <textColor>
-+ const kmlbase::Color32& get_textcolor();
-+ void set_textcolor(const kmlbase::Color32& textcolor);
-+ bool has_textcolor();
-+ void clear_textcolor();
-+
-+ // <text>
-+ const std::string& get_text();
-+ void set_text(const std::string& text);
-+ bool has_text();
-+ void clear_text();
-+
-+ // <displayMode>
-+ int get_displaymode();
-+ void set_displaymode(int displaymode);
-+ bool has_displaymode();
-+ void clear_displaymode();
-+};
-+
-+%nodefaultctor Camera;
-+class Camera : public AbstractView {
-+public:
-+ // <longitude>
-+ double get_longitude();
-+ void set_longitude(double longitude);
-+ bool has_longitude();
-+ void clear_longitude();
-+
-+ // <latitude>
-+ double get_latitude();
-+ void set_latitude(double latitude);
-+ bool has_latitude();
-+ void clear_latitude();
-+
-+ // <altitude>
-+ double get_altitude();
-+ void set_altitude(double altitude);
-+ bool has_altitude();
-+ void clear_altitude();
-+
-+ // <heading>
-+ double get_heading();
-+ void set_heading(double heading);
-+ bool has_heading();
-+ void clear_heading();
-+
-+ // <tilt>
-+ double get_tilt();
-+ void set_tilt(double tilt);
-+ bool has_tilt();
-+ void clear_tilt();
-+
-+ // <roll>
-+ double get_roll();
-+ void set_roll(double roll);
-+ bool has_roll();
-+ void clear_roll();
-+
-+ // <altitudeMode>
-+ int get_altitudemode();
-+ void set_altitudemode(int altitudemode);
-+ bool has_altitudemode();
-+ void clear_altitudemode();
-+
-+ // <gx:altitudeMode>
-+ int get_gx_altitudemode();
-+ bool has_gx_altitudemode();
-+ void set_gx_altitudemode(int gx_altitudemode);
-+ void clear_gx_altitudemode();
-+};
-+
-+%nodefaultctor UpdateOperation;
-+class UpdateOperation : public Element {
-+};
-+
-+%nodefaultctor Change;
-+class Change : public UpdateOperation {
-+public:
-+ // Object...
-+ void add_object(ObjectPtr object);
-+ const size_t get_object_array_size();
-+ const ObjectPtr get_object_array_at(unsigned int index);
-+};
-+
-+%nodefaultctor Create;
-+class Create : public UpdateOperation {
-+public:
-+ // Container...
-+ void add_container(ContainerPtr container);
-+ const size_t get_container_array_size();
-+ const ContainerPtr get_container_array_at(unsigned int index);
-+};
-+
-+%nodefaultctor Data;
-+class Data : public Object {
-+public:
-+ // name=
-+ const std::string& get_name();
-+ bool has_name();
-+ void set_name(const std::string& name);
-+ void clear_name();
-+
-+ // <displayname>
-+ const std::string& get_displayname();
-+ bool has_displayname();
-+ void set_displayname(const std::string& displayname);
-+ void clear_displayname();
-+
-+ // <value>
-+ const std::string& get_value();
-+ bool has_value();
-+ void set_value(const std::string& value);
-+ void clear_value();
-+};
-+
-+%nodefaultctor Delete;
-+class Delete : public UpdateOperation {
-+public:
-+ // Feature...
-+ void add_feature(FeaturePtr feature);
-+ const size_t get_feature_array_size();
-+ const FeaturePtr get_feature_array_at(unsigned int index);
-+};
-+
-+%nodefaultctor SimpleField;
-+class SimpleField : public Element {
-+public:
-+ // type=
-+ const std::string& get_type();
-+ bool has_type();
-+ void set_type(const std::string& value);
-+ void clear_type();
-+
-+ // name=
-+ const std::string& get_name();
-+ bool has_name();
-+ void set_name(const std::string& value);
-+ void clear_name();
-+
-+ // <displayName>
-+ const std::string& get_displayname();
-+ void set_displayname(const std::string& displayname);
-+ bool has_displayname();
-+ void clear_displayname();
-+};
-+
-+%nodefaultctor Schema;
-+class Schema : public Object {
-+public:
-+ // name=
-+ const std::string& get_name();
-+ bool has_name();
-+ void set_name(const std::string& value);
-+ void clear_name();
-+
-+ // <SimpleField>...
-+ void add_simplefield(SimpleFieldPtr simplefield);
-+ const size_t get_simplefield_array_size();
-+ const SimpleFieldPtr get_simplefield_array_at(unsigned int index);
-+};
-+
-+%nodefaultctor Document;
-+class Document : public Container {
-+public:
-+ // <Schema>...
-+ void add_schema(SchemaPtr schema);
-+ const size_t get_schema_array_size();
-+ const SchemaPtr get_schema_array_at(unsigned int index);
-+
-+ // <Style>,<StyleMap>...
-+ void add_styleselector(StyleSelectorPtr styleselector);
-+ const size_t get_styleselector_array_size();
-+ const StyleSelectorPtr get_styleselector_array_at(unsigned int index);
-+};
-+
-+%nodefaultctor Folder;
-+class Folder : public Container {
-+};
-+
-+%nodefaultctor LatLonBox;
-+class LatLonBox : public AbstractLatLonBox {
-+public:
-+ // <rotation>
-+ double get_rotation();
-+ void set_rotation(double rotation);
-+ bool has_rotation();
-+ void clear_rotation();
-+};
-+
-+%nodefaultctor GxLatLonQuad;
-+class GxLatLonQuad : public Object {
-+public:
-+ // <coordinates>
-+ const CoordinatesPtr get_coordinates();
-+ bool has_coordinates();
-+ void set_coordinates(const CoordinatesPtr& coordinates);
-+ void clear_coordinates();
-+};
-+
-+%nodefaultctor GroundOverlay;
-+class GroundOverlay : public Overlay {
-+public:
-+ // <altitude>
-+ double get_altitude();
-+ void set_altitude(double altitude);
-+ bool has_altitude();
-+ void clear_altitude();
-+
-+ // <altitudeMode>
-+ int get_altitudemode();
-+ void set_altitudemode(int altitudemode);
-+ bool has_altitudemode();
-+ void clear_altitudemode();
-+
-+ // <gx:altitudeMode>
-+ int get_gx_altitudemode();
-+ bool has_gx_altitudemode();
-+ void set_gx_altitudemode(int gx_altitudemode);
-+ void clear_gx_altitudemode();
-+
-+ // <LatLonBox>
-+ const LatLonBoxPtr get_latlonbox();
-+ void set_latlonbox(LatLonBoxPtr latlonbox);
-+ bool has_latlonbox();
-+ void clear_latlonbox();
-+
-+ // <gx:LatLonQuad>
-+ const GxLatLonQuadPtr get_gx_latlonquad();
-+ bool has_gx_latlonquad();
-+ void set_gx_latlonquad(GxLatLonQuadPtr gx_latlonquad);
-+ void clear_gx_latlonquad();
-+};
-+
-+%nodefaultctor HotSpot;
-+class HotSpot : public Vec2 {
-+};
-+
-+%nodefaultctor IconStyle;
-+class IconStyle : public ColorStyle {
-+public:
-+ // <scale>
-+ double get_scale();
-+ void set_scale(double scale);
-+ bool has_scale();
-+ void clear_scale();
-+
-+ // <Icon> (different from Overlay Icon)
-+ const IconStyleIconPtr get_icon();
-+ void set_icon(IconStyleIconPtr icon);
-+ bool has_icon();
-+ void clear_icon();
-+
-+ // <heading>
-+ double get_heading();
-+ void set_heading(double heading);
-+ bool has_heading();
-+ void clear_heading();
-+
-+ // <hotSpot>
-+ const HotSpotPtr get_hotspot();
-+ void set_hotspot(HotSpotPtr hotspot);
-+ bool has_hotspot();
-+ void clear_hotspot();
-+};
-+
-+%nodefaultctor ImagePyramid;
-+class ImagePyramid : public Object {
-+public:
-+ // <tileSize>
-+ int get_tilesize();
-+ void set_tilesize(int tilesize);
-+ bool has_tilesize();
-+ void clear_tilesize();
-+
-+ // <maxWidth>
-+ int get_maxwidth();
-+ void set_maxwidth(int maxwidth);
-+ bool has_maxwidth();
-+ void clear_maxwidth();
-+
-+ // <maxHeight>
-+ int get_maxheight();
-+ void set_maxheight(int maxheight);
-+ bool has_maxheight();
-+ void clear_maxheight();
-+
-+ // <gridOrigin>
-+ int get_gridorigin();
-+ void set_gridorigin(int gridorigin);
-+ bool has_gridorigin();
-+ void clear_gridorigin();
-+};
-+
-+%nodefaultctor ItemIcon;
-+class ItemIcon : public Object {
-+public:
-+ // <state>
-+ int get_state_array_at(unsigned int index);
-+ const size_t get_state_array_size();
-+ bool has_state();
-+ void add_state(int state);
-+ void clear_state();
-+
-+ // <href>
-+ const std::string& get_href();
-+ void set_href(const std::string& href);
-+ bool has_href();
-+ void clear_href();
-+};
-+
-+%nodefaultctor LabelStyle;
-+class LabelStyle : public ColorStyle {
-+public:
-+ // <scale>
-+ double get_scale();
-+ void set_scale(double scale);
-+ bool has_scale();
-+ void clear_scale();
-+};
-+
-+%nodefaultctor LineString;
-+class LineString : public Geometry {
-+public:
-+ // <extrude>
-+ bool get_extrude();
-+ void set_extrude(bool extrude);
-+ bool has_extrude();
-+ void clear_extrude();
-+
-+ // <tessellate>
-+ bool get_tessellate();
-+ void set_tessellate(bool tessellate);
-+ bool has_tessellate();
-+ void clear_tessellate();
-+
-+ // <altitudeMode>
-+ int get_altitudemode();
-+ void set_altitudemode(int altitudemode);
-+ bool has_altitudemode();
-+ void clear_altitudemode();
-+
-+ // <gx:altitudeMode>
-+ int get_gx_altitudemode();
-+ bool has_gx_altitudemode();
-+ void set_gx_altitudemode(int gx_altitudemode);
-+ void clear_gx_altitudemode();
-+
-+ // <coordinates>
-+ const CoordinatesPtr get_coordinates();
-+ void set_coordinates(CoordinatesPtr coordinates);
-+ bool has_coordinates();
-+ void clear_coordinates();
-+};
-+
-+%nodefaultctor LineStyle;
-+class LineStyle : public ColorStyle {
-+public:
-+ // <width>
-+ double get_width();
-+ void set_width(double width);
-+ bool has_width();
-+ void clear_width();
-+};
-+
-+%nodefaultctor LinearRing;
-+class LinearRing : public Geometry {
-+public:
-+ // <extrude>
-+ bool get_extrude();
-+ void set_extrude(bool extrude);
-+ bool has_extrude();
-+ void clear_extrude();
-+
-+ // <tessellate>
-+ bool get_tessellate();
-+ void set_tessellate(bool tessellate);
-+ bool has_tessellate();
-+ void clear_tessellate();
-+
-+ // <altitudeMode>
-+ int get_altitudemode();
-+ void set_altitudemode(int altitudemode);
-+ bool has_altitudemode();
-+ void clear_altitudemode();
-+
-+ // <gx:altitudeMode>
-+ int get_gx_altitudemode();
-+ bool has_gx_altitudemode();
-+ void set_gx_altitudemode(int gx_altitudemode);
-+ void clear_gx_altitudemode();
-+
-+ // <coordinates>
-+ const CoordinatesPtr get_coordinates();
-+ void set_coordinates(CoordinatesPtr coordinates);
-+ bool has_coordinates();
-+ void clear_coordinates();
-+};
-+
-+%nodefaultctor Link;
-+class Link : public BasicLink {
-+public:
-+ // <refreshMode>
-+ int get_refreshmode();
-+ void set_refreshmode(int refreshmode);
-+ bool has_refreshmode();
-+ void clear_refreshmode();
-+
-+ // <refreshInterval>
-+ double get_refreshinterval();
-+ void set_refreshinterval(double refreshinterval);
-+ bool has_refreshinterval();
-+ void clear_refreshinterval();
-+
-+ // <viewRefreshMode>
-+ int get_viewrefreshmode();
-+ void set_viewrefreshmode(int viewrefreshmode);
-+ bool has_viewrefreshmode();
-+ void clear_viewrefreshmode();
-+
-+ // <viewRefreshTime>
-+ double get_viewrefreshtime();
-+ void set_viewrefreshtime(double viewrefreshtime);
-+ bool has_viewrefreshtime();
-+ void clear_viewrefreshtime();
-+
-+ // <viewBoundScale>
-+ double get_viewboundscale();
-+ void set_viewboundscale(double viewboundscale);
-+ bool has_viewboundscale();
-+ void clear_viewboundscale();
-+
-+ // <viewFormat>
-+ const std::string& get_viewformat();
-+ void set_viewformat(const std::string& viewformat);
-+ bool has_viewformat();
-+ void clear_viewformat();
-+
-+ // <httpQuery>
-+ const std::string& get_httpquery();
-+ void set_httpquery(const std::string& httpquery);
-+ bool has_httpquery();
-+ void clear_httpquery();
-+};
-+
-+%nodefaultctor ListStyle;
-+class ListStyle : public SubStyle {
-+public:
-+ // <listItemType>
-+ int get_listitemtype();
-+ void set_listitemtype(int listitemtype);
-+ bool has_listitemtype();
-+ void clear_listitemtype();
-+
-+ // <bgColor>
-+ const kmlbase::Color32& get_bgcolor();
-+ void set_bgcolor(const kmlbase::Color32& bgcolor);
-+ bool has_bgcolor();
-+ void clear_bgcolor();
-+
-+ // <ItemIcon>...
-+ void add_itemicon(ItemIconPtr itemicon);
-+ const size_t get_itemicon_array_size();
-+ const ItemIconPtr get_itemicon_array_at(unsigned int index);
-+};
-+
-+%nodefaultctor Location;
-+class Location : public Object {
-+public:
-+ // <longitude>
-+ double get_longitude();
-+ void set_longitude(double longitude);
-+ bool has_longitude();
-+ void clear_longitude();
-+
-+ // <latitude>
-+ double get_latitude();
-+ void set_latitude(double latitude);
-+ bool has_latitude();
-+ void clear_latitude();
-+
-+ // <altitude>
-+ double get_altitude();
-+ void set_altitude(double altitude);
-+ bool has_altitude();
-+ void clear_altitude();
-+};
-+
-+%nodefaultctor LookAt;
-+class LookAt : public AbstractView {
-+public:
-+ // <longitude>
-+ double get_longitude();
-+ void set_longitude(double longitude);
-+ bool has_longitude();
-+ void clear_longitude();
-+
-+ // <latitude>
-+ double get_latitude();
-+ void set_latitude(double latitude);
-+ bool has_latitude();
-+ void clear_latitude();
-+
-+ // <altitude>
-+ double get_altitude();
-+ void set_altitude(double altitude);
-+ bool has_altitude();
-+ void clear_altitude();
-+
-+ // <heading>
-+ double get_heading();
-+ void set_heading(double heading);
-+ bool has_heading();
-+ void clear_heading();
-+
-+ // <tilt>
-+ double get_tilt();
-+ void set_tilt(double tilt);
-+ bool has_tilt();
-+ void clear_tilt();
-+
-+ // <range>
-+ double get_range();
-+ void set_range(double range);
-+ bool has_range();
-+ void clear_range();
-+
-+ // <altitudeMode>
-+ int get_altitudemode();
-+ void set_altitudemode(int altitudemode);
-+ bool has_altitudemode();
-+ void clear_altitudemode();
-+
-+ // <gx:altitudeMode>
-+ int get_gx_altitudemode();
-+ bool has_gx_altitudemode();
-+ void set_gx_altitudemode(int gx_altitudemode);
-+ void clear_gx_altitudemode();
-+};
-+
-+%nodefaultctor Orientation;
-+class Orientation : public Object {
-+public:
-+ // <heading>
-+ double get_heading();
-+ void set_heading(double heading);
-+ bool has_heading();
-+ void clear_heading();
-+
-+ // <tilt>
-+ double get_tilt();
-+ void set_tilt(double tilt);
-+ bool has_tilt();
-+ void clear_tilt();
-+
-+ // <roll>
-+ double get_roll();
-+ void set_roll(double roll);
-+ bool has_roll();
-+ void clear_roll();
-+};
-+
-+%nodefaultctor Scale;
-+class Scale : public Object {
-+public:
-+ // <x>
-+ double get_x();
-+ void set_x(double x);
-+ bool has_x();
-+ void clear_x();
-+
-+ // <y>
-+ double get_y();
-+ void set_y(double y);
-+ bool has_y();
-+ void clear_y();
-+
-+ // <z>
-+ double get_z();
-+ void set_z(double z);
-+ bool has_z();
-+ void clear_z();
-+};
-+
-+%nodefaultctor Alias;
-+class Alias : public Object {
-+public:
-+ // <targetHref>
-+ const std::string& get_targethref();
-+ void set_targethref(const std::string& targethref);
-+ bool has_targethref();
-+ void clear_targethref();
-+
-+ // <sourceHref>
-+ const std::string& get_sourcehref();
-+ void set_sourcehref(const std::string& sourcehref);
-+ bool has_sourcehref();
-+ void clear_sourcehref();
-+};
-+
-+%nodefaultctor ResourceMap;
-+class ResourceMap : public Object {
-+public:
-+ // <Alias>...
-+ void add_alias(AliasPtr alias);
-+ const size_t get_alias_array_size();
-+ const AliasPtr get_alias_array_at(unsigned int index);
-+};
-+
-+%nodefaultctor Model;
-+class Model : public Geometry {
-+public:
-+ // <altitudeMode>
-+ int get_altitudemode();
-+ void set_altitudemode(int altitudemode);
-+ bool has_altitudemode();
-+ void clear_altitudemode();
-+
-+ // <gx:altitudeMode>
-+ int get_gx_altitudemode();
-+ bool has_gx_altitudemode();
-+ void set_gx_altitudemode(int gx_altitudemode);
-+ void clear_gx_altitudemode();
-+
-+ // <Location>
-+ const LocationPtr get_location();
-+ void set_location(LocationPtr location);
-+ bool has_location();
-+ void clear_location();
-+
-+ // <Orientation>
-+ const OrientationPtr get_orientation();
-+ void set_orientation(OrientationPtr orientation);
-+ bool has_orientation();
-+ void clear_orientation();
-+
-+ // <Scale>
-+ const ScalePtr get_scale();
-+ void set_scale(ScalePtr scale);
-+ bool has_scale();
-+ void clear_scale();
-+
-+ // <Link>
-+ const LinkPtr get_link();
-+ void set_link(LinkPtr link);
-+ bool has_link();
-+ void clear_link();
-+
-+ // <ResourceMap>
-+ const ResourceMapPtr get_resourcemap();
-+ void set_resourcemap(ResourceMapPtr resourcemap);
-+ bool has_resourcemap();
-+ void clear_resourcemap();
-+};
-+
-+%nodefaultctor MultiGeometry;
-+class MultiGeometry : public Geometry {
-+public:
-+ // Geometry...
-+ void add_geometry(GeometryPtr geometry);
-+ const size_t get_geometry_array_size();
-+ const GeometryPtr get_geometry_array_at(unsigned int index);
-+};
-+
-+%nodefaultctor NetworkLink;
-+class NetworkLink : public Feature {
-+public:
-+ // <refreshVisibility>
-+ bool get_refreshvisibility();
-+ void set_refreshvisibility(bool refreshvisibility);
-+ bool has_refreshvisibility();
-+ void clear_refreshvisibility();
-+
-+ // <flyToView>
-+ bool get_flytoview();
-+ void set_flytoview(bool flytoview);
-+ bool has_flytoview();
-+ void clear_flytoview();
-+
-+ // <Link>
-+ const LinkPtr get_link();
-+ void set_link(LinkPtr link);
-+ bool has_link();
-+ void clear_link();
-+};
-+
-+%nodefaultctor Update;
-+class Update : public Element {
-+public:
-+ // <targetHref>
-+ const std::string& get_targethref();
-+ bool has_targethref();
-+ void set_targethref(const std::string& targethref);
-+ void clear_targethref();
-+
-+ // <Change>,<Create>,<Delete>...
-+ void add_updateoperation(UpdateOperationPtr updateoperation);
-+ const size_t get_updateoperation_array_size();
-+ const UpdateOperationPtr get_updateoperation_array_at(unsigned int index);
-+};
-+
-+%nodefaultctor NetworkLinkControl;
-+class NetworkLinkControl : public Element {
-+public:
-+ // <minRefreshPeriod>
-+ double get_minrefreshperiod();
-+ void set_minrefreshperiod(double minrefreshperiod);
-+ bool has_minrefreshperiod();
-+ void clear_minrefreshperiod();
-+
-+ // <maxSessionLength>
-+ double get_maxsessionlength();
-+ void set_maxsessionlength(double maxsessionlength);
-+ bool has_maxsessionlength();
-+ void clear_maxsessionlength();
-+
-+ // <cookie>
-+ const std::string& get_cookie();
-+ void set_cookie(const std::string& cookie);
-+ bool has_cookie();
-+ void clear_cookie();
-+
-+ // <message>
-+ const std::string& get_message();
-+ void set_message(const std::string& message);
-+ bool has_message();
-+ void clear_message();
-+
-+ // <linkName>
-+ const std::string& get_linkname();
-+ void set_linkname(const std::string& linkname);
-+ bool has_linkname();
-+ void clear_linkname();
-+
-+ // <linkDescription>
-+ const std::string& get_linkdescription();
-+ void set_linkdescription(const std::string& linkdescription);
-+ bool has_linkdescription();
-+ void clear_linkdescription();
-+
-+ // <linkSnippet>
-+ const LinkSnippetPtr get_linksnippet();
-+ void set_linksnippet(LinkSnippetPtr linksnippet);
-+ bool has_linksnippet();
-+ void clear_linksnippet();
-+
-+ // <expires>
-+ const std::string& get_expires();
-+ void set_expires(const std::string& expires);
-+ bool has_expires();
-+ void clear_expires();
-+
-+ // <Update>
-+ const UpdatePtr get_update();
-+ void set_update(UpdatePtr update);
-+ bool has_update();
-+ void clear_update();
-+
-+ // AbstractView
-+ const AbstractViewPtr get_abstractview();
-+ void set_abstractview(AbstractViewPtr abstractview);
-+ bool has_abstractview();
-+ void clear_abstractview();
-+};
-+
-+%nodefaultctor Pair;
-+class Pair : public Object {
-+public:
-+ // <key>
-+ int get_key();
-+ void set_key(int key);
-+ bool has_key();
-+ void clear_key();
-+
-+ // <styleUrl>
-+ const std::string& get_styleurl();
-+ void set_styleurl(const std::string& styleurl);
-+ bool has_styleurl();
-+ void clear_styleurl();
-+
-+ // <StyleSelector>
-+ const StyleSelectorPtr get_styleselector();
-+ void set_styleselector(StyleSelectorPtr styleselector);
-+ bool has_styleselector();
-+ void clear_styleselector();
-+};
-+
-+%nodefaultctor ViewVolume;
-+class ViewVolume : public Object {
-+public:
-+ // <leftFov>
-+ double get_leftfov();
-+ void set_leftfov(double leftfov);
-+ bool has_leftfov();
-+ void clear_leftfov();
-+
-+ // <rightFov>
-+ double get_rightfov();
-+ void set_rightfov(double rightfov);
-+ bool has_rightfov();
-+ void clear_rightfov();
-+
-+ // <bottomFov>
-+ double get_bottomfov();
-+ void set_bottomfov(double bottomfov);
-+ bool has_bottomfov();
-+ void clear_bottomfov();
-+
-+ // <topFov>
-+ double get_topfov();
-+ void set_topfov(double topfov);
-+ bool has_topfov();
-+ void clear_topfov();
-+
-+ // <near>
-+ double get_near();
-+ void set_near(double val);
-+ bool has_near();
-+ void clear_near();
-+};
-+
-+%nodefaultctor Point;
-+class Point : public Geometry {
-+public:
-+ // <extrude>
-+ bool get_extrude();
-+ void set_extrude(bool extrude);
-+ bool has_extrude();
-+ void clear_extrude();
-+
-+ // <altitudeMode>
-+ int get_altitudemode();
-+ void set_altitudemode(int altitudemode);
-+ bool has_altitudemode();
-+ void clear_altitudemode();
-+
-+ // <gx:altitudeMode>
-+ int get_gx_altitudemode();
-+ bool has_gx_altitudemode();
-+ void set_gx_altitudemode(int gx_altitudemode);
-+ void clear_gx_altitudemode();
-+
-+ // <coordinates>
-+ const CoordinatesPtr get_coordinates();
-+ void set_coordinates(CoordinatesPtr coordinates);
-+ bool has_coordinates();
-+ void clear_coordinates();
-+};
-+
-+%nodefaultctor PhotoOverlay;
-+class PhotoOverlay : public Overlay {
-+public:
-+ // <rotation>
-+ double get_rotation();
-+ void set_rotation(double rotation);
-+ bool has_rotation();
-+ void clear_rotation();
-+
-+ // <ViewVolume>
-+ const ViewVolumePtr get_viewvolume();
-+ void set_viewvolume(ViewVolumePtr viewvolume);
-+ bool has_viewvolume();
-+ void clear_viewvolume();
-+
-+ // <ImagePyramid>
-+ const ImagePyramidPtr get_imagepyramid();
-+ void set_imagepyramid(ImagePyramidPtr imagepyramid);
-+ bool has_imagepyramid();
-+ void clear_imagepyramid();
-+
-+ // <Point>
-+ const PointPtr get_point();
-+ void set_point(PointPtr point);
-+ bool has_point();
-+ void clear_point();
-+
-+ // <shape>
-+ int get_shape();
-+ bool has_shape();
-+ void set_shape(int shape);
-+ void clear_shape();
-+};
-+
-+%nodefaultctor Placemark;
-+class Placemark : public Feature {
-+public:
-+ // Geometry
-+ const GeometryPtr get_geometry();
-+ void set_geometry(GeometryPtr geometry);
-+ bool has_geometry();
-+ void clear_geometry();
-+};
-+
-+%nodefaultctor PolyStyle;
-+class PolyStyle : public ColorStyle {
-+public:
-+ // <fill>
-+ bool get_fill();
-+ void set_fill(bool fill);
-+ bool has_fill();
-+ void clear_fill();
-+
-+ // <outline>
-+ bool get_outline();
-+ void set_outline(bool outline);
-+ bool has_outline();
-+ void clear_outline();
-+};
-+
-+%nodefaultctor OuterBoundaryIs;
-+class OuterBoundaryIs : public Element {
-+public:
-+ // <LinearRing>
-+ const LinearRingPtr get_linearring();
-+ void set_linearring(LinearRingPtr linearring);
-+ bool has_linearring();
-+ void clear_linearring();
-+};
-+
-+%nodefaultctor InnerBoundaryIs;
-+class InnerBoundaryIs : public Element {
-+public:
-+ // <LinearRing>
-+ const LinearRingPtr get_linearring();
-+ void set_linearring(LinearRingPtr linearring);
-+ bool has_linearring();
-+ void clear_linearring();
-+};
-+
-+%nodefaultctor Polygon;
-+class Polygon : public Geometry {
-+public:
-+ // <extrude>
-+ bool get_extrude();
-+ void set_extrude(bool extrude);
-+ bool has_extrude();
-+ void clear_extrude();
-+
-+ // <tessellate>
-+ bool get_tessellate();
-+ void set_tessellate(bool tessellate);
-+ bool has_tessellate();
-+ void clear_tessellate();
-+
-+ // <altitudeMode>
-+ int get_altitudemode();
-+ void set_altitudemode(int altitudemode);
-+ bool has_altitudemode();
-+ void clear_altitudemode();
-+
-+ // <gx:altitudeMode>
-+ int get_gx_altitudemode();
-+ bool has_gx_altitudemode();
-+ void set_gx_altitudemode(int gx_altitudemode);
-+ void clear_gx_altitudemode();
-+
-+ // <outerBoundaryIs>
-+ const OuterBoundaryIsPtr get_outerboundaryis();
-+ void set_outerboundaryis(OuterBoundaryIsPtr outerboundaryis);
-+ bool has_outerboundaryis();
-+ void clear_outerboundaryis();
-+
-+ // <innerBoundaryIs>...
-+ void add_innerboundaryis(InnerBoundaryIsPtr innerboundaryis);
-+ const size_t get_innerboundaryis_array_size();
-+ const InnerBoundaryIsPtr get_innerboundaryis_array_at(unsigned int index);
-+};
-+
-+%nodefaultctor SimpleData;
-+class SimpleData : public Element {
-+public:
-+ // name=
-+ const std::string& get_name();
-+ bool has_name();
-+ void set_name(const std::string& value);
-+ void clear_name();
-+
-+ // char data
-+ const std::string& get_text();
-+ bool has_text();
-+ void set_text(const std::string& value);
-+ void clear_text();
-+};
-+
-+%nodefaultctor SchemaData;
-+class SchemaData : public Object {
-+public:
-+ // schemaUrl=
-+ const std::string& get_schemaurl();
-+ bool has_schemaurl();
-+ void set_schemaurl(const std::string& value);
-+ void clear_schemaurl();
-+ // <SimpleData>...
-+ void add_simpledata(SimpleDataPtr simpledata);
-+ const size_t get_simpledata_array_size();
-+ const SimpleDataPtr get_simpledata_array_at(unsigned int index);
-+};
-+
-+%nodefaultctor OverlayXY;
-+class OverlayXY : public Vec2 {
-+};
-+
-+%nodefaultctor ScreenXY;
-+class ScreenXY : public Vec2 {
-+};
-+
-+%nodefaultctor RotationXY;
-+class RotationXY : public Vec2 {
-+};
-+
-+%nodefaultctor Size;
-+class Size : public Vec2 {
-+};
-+
-+%nodefaultctor ScreenOverlay;
-+class ScreenOverlay : public Overlay {
-+public:
-+ // <OverlayXY>
-+ const OverlayXYPtr get_overlayxy();
-+ void set_overlayxy(OverlayXYPtr overlayxy);
-+ bool has_overlayxy();
-+ void clear_overlayxy();
-+
-+ // <ScreenXY>
-+ const ScreenXYPtr get_screenxy();
-+ void set_screenxy(ScreenXYPtr screenxy);
-+ bool has_screenxy();
-+ void clear_screenxy();
-+
-+ // <RotationXY>
-+ const RotationXYPtr get_rotationxy();
-+ void set_rotationxy(RotationXYPtr rotationxy);
-+ bool has_rotationxy();
-+ void clear_rotationxy();
-+
-+ // <size>
-+ const SizePtr get_size();
-+ void set_size(SizePtr size);
-+ bool has_size();
-+ void clear_size();
-+
-+ // <rotation>
-+ double get_rotation();
-+ void set_rotation(double rotation);
-+ bool has_rotation();
-+ void clear_rotation();
-+};
-+
-+%nodefaultctor Style;
-+class Style : public StyleSelector {
-+public:
-+ // <IconStyle>
-+ const IconStylePtr get_iconstyle();
-+ void set_iconstyle(IconStylePtr iconstyle);
-+ bool has_iconstyle();
-+ void clear_iconstyle();
-+
-+ // <LabelStyle>
-+ const LabelStylePtr get_labelstyle();
-+ void set_labelstyle(LabelStylePtr labelstyle);
-+ bool has_labelstyle();
-+ void clear_labelstyle();
-+
-+ // <LineStyle>
-+ const LineStylePtr get_linestyle();
-+ void set_linestyle(LineStylePtr linestyle);
-+ bool has_linestyle();
-+ void clear_linestyle();
-+
-+ // <PolyStyle>
-+ const PolyStylePtr get_polystyle();
-+ void set_polystyle(PolyStylePtr polystyle);
-+ bool has_polystyle();
-+ void clear_polystyle();
-+
-+ // <BalloonStyle>
-+ const BalloonStylePtr get_balloonstyle();
-+ void set_balloonstyle(BalloonStylePtr balloonstyle);
-+ bool has_balloonstyle();
-+ void clear_balloonstyle();
-+
-+ // <ListStyle>
-+ const ListStylePtr get_liststyle();
-+ void set_liststyle(ListStylePtr liststyle);
-+ bool has_liststyle();
-+ void clear_liststyle();
-+};
-+
-+%nodefaultctor StyleMap;
-+class StyleMap : public StyleSelector {
-+public:
-+ // <Pair>...
-+ void add_pair(PairPtr pair);
-+ const size_t get_pair_array_size();
-+ const PairPtr get_pair_array_at(unsigned int index);
-+};
-+
-+%nodefaultctor TimeSpan;
-+class TimeSpan : public TimePrimitive {
-+public:
-+ // <begin>
-+ const std::string& get_begin();
-+ void set_begin(const std::string& begin);
-+ bool has_begin();
-+ void clear_begin();
-+
-+ // <end>
-+ const std::string& get_end();
-+ void set_end(const std::string& end);
-+ bool has_end();
-+ void clear_end();
-+};
-+
-+%nodefaultctor GxTimeSpan;
-+class GxTimeSpan : public TimeSpan {
-+};
-+
-+%nodefaultctor TimeStamp;
-+class TimeStamp : public TimePrimitive {
-+public:
-+ // <when>
-+ const std::string& get_when();
-+ void set_when(const std::string& when);
-+ bool has_when();
-+ void clear_when();
-+};
-+
-+%nodefaultctor GxTimeStamp;
-+class GxTimeStamp : public TimeStamp {
-+};
-+
-+%nodefaultctor Kml;
-+class Kml : public Element {
-+public:
-+ // hint=
-+ const std::string& get_hint();
-+ void set_hint(const std::string& hint);
-+ bool has_hint();
-+ void clear_hint();
-+
-+ // <NetworkLinkControl>
-+ const NetworkLinkControlPtr get_networklinkcontrol();
-+ void set_networklinkcontrol(NetworkLinkControlPtr networklinkcontrol);
-+ bool has_networklinkcontrol();
-+ void clear_networklinkcontrol();
-+
-+ // Feature
-+ const FeaturePtr get_feature();
-+ void set_feature(FeaturePtr feature);
-+ bool has_feature();
-+ void clear_feature();
-+};
-+
-+// <atom:author>
-+%nodefaultctor AtomAuthor;
-+class AtomAuthor : public Element {
-+public:
-+ // <atom:name>
-+ const std::string& get_name();
-+ void set_name(const std::string& name);
-+ bool has_name();
-+ void clear_name();
-+
-+ // <atom:uri>
-+ const std::string& get_uri();
-+ void set_uri(const std::string& uri);
-+ bool has_uri();
-+ void clear_uri();
-+
-+ // <atom:email>
-+ const std::string& get_email();
-+ void set_email(const std::string& email);
-+ bool has_email();
-+ void clear_email();
-+};
-+
-+// <atom:link>
-+%nodefaultctor AtomLink;
-+class AtomLink : public Element {
-+public:
-+ // href=, RFC 4287 4.2.7.1, RFC 3987
-+ const std::string& get_href();
-+ bool has_href();
-+ void set_href(const std::string& value);
-+ void clear_href();
-+
-+ // rel=, RFC 4287 4.2.7.2, RFC 3987
-+ const std::string& get_rel();
-+ bool has_rel();
-+ void set_rel(const std::string& value);
-+ void clear_rel();
-+
-+ // type=, RFC 4287 4.2.7.3, MIME
-+ const std::string& get_type();
-+ bool has_type();
-+ void set_type(const std::string& value);
-+ void clear_type();
-+
-+ // hreflang=, RFC 4287 4.2.7.4, RFC 3066
-+ const std::string& get_hreflang();
-+ bool has_hreflang();
-+ void set_hreflang(const std::string& value);
-+ void clear_hreflang();
-+
-+ // title=, RFC 4287 4.2.7.5
-+ const std::string& get_title();
-+ bool has_title();
-+ void set_title(const std::string& value);
-+ void clear_title();
-+
-+ // length=, RFC 4287 4.2.7.6
-+ const int get_length();
-+ bool has_length();
-+ void set_length(int value);
-+ void clear_length();
-+};
-+
-+// GxTourPrimitive is an abstract base type. This corresponds to
-+// gx:AbstractGxTourPrimitiveType/Group in KML 2.2 gx.
-+%nodefaultctor GxTourPrimitive;
-+class GxTourPrimitive : public Object {
-+};
-+
-+// <gx:Playlist>
-+%nodefaultctor GxPlaylist;
-+class GxPlaylist : public Object {
-+ // GxTourPrimitive...
-+ public:
-+ void add_gx_tourprimitive(GxTourPrimitivePtr tourprimitive);
-+ const size_t get_gx_tourprimitive_array_size();
-+ const GxTourPrimitivePtr get_gx_tourprimitive_array_at(unsigned int index);
-+};
-+
-+// <gx:Tour>
-+%nodefaultctor GxTour;
-+class GxTour : public Feature {
-+ public:
-+ // <gx:Playlist>
-+ const GxPlaylistPtr get_gx_playlist();
-+ bool has_gx_playlist();
-+ void set_gx_playlist(GxPlaylistPtr gx_playlist);
-+ void clear_gx_playlist();
-+};
-+
-+// <gx:AnimatedUpdate>
-+%nodefaultctor GxAnimatedUpdate;
-+class GxAnimatedUpdate : public GxTourPrimitive {
-+public:
-+ // <gx:duration>
-+ double get_gx_duration();
-+ bool has_gx_duration();
-+ void set_gx_duration(double gx_duration);
-+ void clear_gx_duration();
-+
-+ // <Update>
-+ const UpdatePtr get_update();
-+ bool has_update();
-+ void set_update(UpdatePtr update);
-+ void clear_update();
-+};
-+
-+// <gx:FlyTo>
-+%nodefaultctor GxFlyTo;
-+class GxFlyTo : public GxTourPrimitive {
-+ public:
-+ // <gx:duration>
-+ double get_gx_duration();
-+ bool has_gx_duration();
-+ void set_gx_duration(double gx_duration);
-+ void clear_gx_duration();
-+
-+ // <gx:flyToMode>.
-+ int get_gx_flytomode();
-+ bool has_gx_flytomode();
-+ void set_gx_flytomode(int value);
-+ void clear_gx_flytomode();
-+
-+ // AbstractView
-+ const AbstractViewPtr get_abstractview();
-+ bool has_abstractview();
-+ void set_abstractview(AbstractViewPtr abstractview);
-+ void clear_abstractview();
-+};
-+
-+// <gx:Wait>
-+%nodefaultctor GxWait;
-+class GxWait : public GxTourPrimitive {
-+public:
-+ // <gx:duration>
-+ double get_gx_duration();
-+ bool has_gx_duration();
-+ void set_gx_duration(double gx_duration);
-+ void clear_gx_duration();
-+};
-+
-+// <gx:SoundCue>
-+%nodefaultctor GxSoundCue;
-+class GxSoundCue : public GxTourPrimitive {
-+public:
-+ // <href>
-+ const std::string& get_href();
-+ bool has_href();
-+ void set_href(const std::string& href);
-+ void clear_href();
-+};
-+
-+// <gx:TourControl>
-+%nodefaultctor GxTourControl;
-+class GxTourControl : public GxTourPrimitive {
-+public:
-+ // <gx:playMode>
-+ int get_gx_playmode();
-+ bool has_gx_playmode();
-+ void set_gx_playmode(int value);
-+ void clear_gx_playmode();
-+};
-+
---- a/.travis.yml
-+++ b/.travis.yml
-@@ -6,5 +6,7 @@ compiler:
- before_script:
- - mkdir build
- - cd build
-+ - sudo apt-get update -qq
-+ - sudo apt-get install swig python-dev
-
- script: cmake -DCMAKE_INSTALL_PREFIX=../../install .. && make
---- a/cmake/FindMiniZip.cmake
-+++ b/cmake/FindMiniZip.cmake
-@@ -7,32 +7,26 @@
-
-
- if (MINIZIP_INCLUDE_DIR)
-- #check cache
-+ #check cache
- set(MINIZIP_FIND_QUIETLY TRUE)
- endif ()
-
-
- if (NOT MINIZIP_INCLUDE_DIR)
- find_path(MINIZIP_INCLUDE_DIR NAMES unzip.h zip.h PATH_SUFFIXES minizip)
-- set(MINIZIP_INCLUDE_DIR ${MINIZIP_INCLUDE_DIR}/minizip CACHE PATH "MiniZip includes")
- endif ()
-
- find_library(MINIZIP_LIBRARY NAMES minizip)
-
--if (MINIZIP_INCLUDE_DIR AND MINIZIP_LIBRARY)
-- set(MINIZIP_FOUND TRUE)
--endif ()
--
--if (MINIZIP_FOUND)
-- if (NOT MINIZIP_FIND_QUIETLY)
-- message(STATUS "Found MiniZip: ${MINIZIP_LIBRARY}")
-- endif ()
--else ()
-- if (MINIZIP_FIND_REQUIRED)
-- message(FATAL_ERROR "Could NOT find MiniZip")
-- else ()
-- message(STATUS "Could NOT find MiniZip")
-- endif ()
--endif ()
-+include( FindPackageHandleStandardArgs )
-+find_package_handle_standard_args( MINIZIP DEFAULT_MSG MINIZIP_LIBRARY MINIZIP_INCLUDE_DIR )
-
-+mark_as_advanced( MINIZIP_INCLUDE_DIR MINIZIP_LIBRARY )
-
-+if(MINIZIP_FOUND)
-+ set(MINIZIP_INCLUDE_DIRS ${MINIZIP_INCLUDE_DIR})
-+ set(MINIZIP_LIBRARIES ${MINIZIP_LIBRARY})
-+else()
-+ set(MINIZIP_INCLUDE_DIRS)
-+ set(MINIZIP_LIBRARIES)
-+endif()
---- a/cmake/FindUriParser.cmake
-+++ b/cmake/FindUriParser.cmake
-@@ -6,32 +6,26 @@
- # URIPARSER_FOUND - TRUE if UriParser is found
-
- if (URIPARSER_INCLUDE_DIR)
-- #check cache
-+ #check cache
- set(URIPARSER_FIND_QUIETLY TRUE)
- endif ()
-
-
- if (NOT URIPARSER_INCLUDE_DIR)
-- find_path(URIPARSER_INCLUDE_DIR NAMES Uri.h UriBase.h PATH_SUFFIXES uriparser)
-- set(URIPARSER_INCLUDE_DIR ${URIPARSER_INCLUDE_DIR}/uriparser CACHE PATH "UriParser includes")
-+ find_path(URIPARSER_INCLUDE_DIR NAMES uriparser/Uri.h uriparser/UriBase.h )
- endif ()
-
- find_library(URIPARSER_LIBRARY NAMES uriparser)
-
--if (URIPARSER_INCLUDE_DIR AND URIPARSER_LIBRARY)
-- set(URIPARSER_FOUND TRUE)
--endif ()
--
--if (URIPARSER_FOUND)
-- if (NOT URIPARSER_FIND_QUIETLY)
-- message(STATUS "Found UriParser: ${URIPARSER_LIBRARY}")
-- endif ()
--else ()
-- if (URIPARSER_FIND_REQUIRED)
-- message(FATAL_ERROR "Could not find UriParser library")
-- else ()
-- message(STATUS "Could not find UriParser library")
-- endif ()
--endif ()
-+include( FindPackageHandleStandardArgs )
-+FIND_PACKAGE_HANDLE_STANDARD_ARGS( URIPARSER DEFAULT_MSG URIPARSER_LIBRARY URIPARSER_INCLUDE_DIR )
-
-+mark_as_advanced( URIPARSER_INCLUDE_DIR URIPARSER_LIBRARY )
-
-+if(URIPARSER_FOUND)
-+ set(URIPARSER_INCLUDE_DIRS ${URIPARSER_INCLUDE_DIR})
-+ set(URIPARSER_LIBRARIES ${URIPARSER_LIBRARY})
-+else()
-+ set(URIPARSER_INCLUDE_DIRS)
-+ set(URIPARSER_LIBRARIES)
-+endif()
---- a/cmake/ImportBoost.cmake
-+++ /dev/null
-@@ -1,7 +0,0 @@
--find_package(Boost)
--mark_as_advanced(Boost_DIR)
--if(Boost_FOUND)
-- set(HAVE_SYSTEM_BOOST TRUE)
--else()
-- set(HAVE_SYSTEM_BOOST FALSE)
--endif()
-\ No newline at end of file
---- a/cmake/ImportEXPAT.cmake
-+++ /dev/null
-@@ -1,9 +0,0 @@
--find_package(EXPAT)
--mark_as_advanced(EXPAT_INCLUDE_DIR)
--mark_as_advanced(EXPAT_LIBRARY)
--if(EXPAT_FOUND)
-- set(HAVE_SYSTEM_EXPAT TRUE)
-- set(EXPAT_LIBRARY ${EXPAT_LIBRARIES})
--else()
-- set(HAVE_SYSTEM_EXPAT FALSE)
--endif()
-\ No newline at end of file
---- a/cmake/ImportGoogleTest.cmake
-+++ /dev/null
-@@ -1,8 +0,0 @@
--find_package(GoogleTest REQUIRED)
--mark_as_advanced(GTEST_INCLUDE_DIR)
--mark_as_advanced(GTEST_LIBRARY)
--if(GTEST_FOUND)
-- set(HAVE_SYSTEM_GTEST TRUE)
--else()
-- set(HAVE_SYSTEM_GTEST FALSE)
--endif()
-\ No newline at end of file
---- a/cmake/ImportMinizip.cmake
-+++ /dev/null
-@@ -1,8 +0,0 @@
--find_package(MiniZip)
--mark_as_advanced(MINIZIP_INCLUDE_DIR)
--mark_as_advanced(MINIZIP_LIBRARY)
--if(MINIZIP_FOUND)
-- set(HAVE_SYSTEM_MINIZIP TRUE)
--else()
-- set(HAVE_SYSTEM_MINIZIP FALSE)
--endif()
-\ No newline at end of file
---- a/cmake/ImportUriParser.cmake
-+++ /dev/null
-@@ -1,8 +0,0 @@
--find_package(UriParser)
--mark_as_advanced(URIPARSER_INCLUDE_DIR)
--mark_as_advanced(URIPARSER_LIBRARY)
--if(URIPARSER_FOUND)
-- set(HAVE_SYSTEM_URIPARSER TRUE)
--else()
-- set(HAVE_SYSTEM_URIPARSER FALSE)
--endif()
-\ No newline at end of file
---- a/cmake/ImportZLIB.cmake
-+++ /dev/null
-@@ -1,9 +0,0 @@
--find_package(ZLIB 1.2.8)
--mark_as_advanced(ZLIB_INCLUDE_DIR)
--mark_as_advanced(ZLIB_LIBRARY)
--if(ZLIB_FOUND)
-- set(HAVE_SYSTEM_ZLIB TRUE)
-- set(ZLIB_LIBRARY ${ZLIB_LIBRARIES})
--else()
-- set(HAVE_SYSTEM_ZLIB FALSE)
--endif()
-\ No newline at end of file
---- a/tests/CMakeLists.txt
-+++ b/tests/CMakeLists.txt
-@@ -1,4 +1,4 @@
- add_subdirectory(kml)
--if(BUILD_SWIG)
-+if(WITH_SWIG)
- add_subdirectory(swig)
- endif()
-\ No newline at end of file
---- /dev/null
-+++ b/tests/swig/CMakeLists.txt
-@@ -0,0 +1,19 @@
-+if(WITH_PYTHON)
-+add_test(NAME test_python_kmlbase
-+ COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/kmlbase_test.py)
-+
-+add_test(NAME test_python_kmldom
-+ COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/kmldom_test.py)
-+
-+add_test(NAME test_python_kmlengine
-+ COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/kmlengine_test.py)
-+endif()
-+
-+if(WITH_JAVA)
-+add_test( NAME test_java_kmlbase
-+ COMMAND
-+ ${Java_JAVA_EXECUTABLE}
-+ -cp "${CMAKE_JAVA_INCLUDE_PATH}${PATH_SEPARATOR}${CMAKE_BINARY_DIR}/src/swig/LibKML.jar;${CMAKE_CURRENT_BINARY_DIR}"
-+ KmlBaseTest )
-+
-+endif()
-\ No newline at end of file
---- /dev/null
-+++ b/tests/swig/KmlBaseTest.java
-@@ -0,0 +1,92 @@
-+// Copyright 2009, 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 is a small subset of the python tests to ensure sanity of the basic
-+// Java bindings.
-+
-+import org.junit.*;
-+import static org.junit.Assert.*;
-+
-+import com.googlecode.libkml.*;
-+
-+public class KmlBaseTest {
-+
-+ static {
-+ try {
-+ System.loadLibrary("kmlbase_swig_java");
-+ } catch (UnsatisfiedLinkError e) {
-+ System.err.println("Failed to load kmlbase. " + e);
-+ System.err.println("Make sure you have your classpath set correctly " +
-+ "and that LD_LIBRARY_PATH can see " +
-+ "libkmldom_swig_java and friends");
-+ System.exit(1);
-+ }
-+ }
-+
-+ @Test public void testBasicAttributes() {
-+ Attributes attributes = new Attributes();
-+ assertEquals(0, attributes.GetSize());
-+ }
-+
-+ @Test public void testBasicColor32() {
-+ Color32 color = new Color32();
-+ long expected = 0xffffffffL;
-+ assertEquals(expected, color.get_color_abgr());
-+
-+ long red = 0xff0000ffL;
-+ color = new Color32(red);
-+ assertEquals(red, color.get_color_abgr());
-+
-+ String red_str = "ff0000ff";
-+ color = new Color32(red_str);
-+ assertEquals(red, color.get_color_abgr());
-+ }
-+
-+ @Test public void testBasicDateTime() {
-+ String when = "2008-10-03T09:25:42Z";
-+ DateTime datetime = DateTime.Create(when);
-+ assertEquals(1223025942, datetime.GetTimeT());
-+ assertEquals("09:25:42", datetime.GetXsdTime());
-+ assertEquals("2008-10-03", datetime.GetXsdDate());
-+ assertEquals(when, datetime.GetXsdDateTime());
-+ }
-+
-+ @Test public void testBasicVec3() {
-+ double latitude = 38.12345;
-+ double longitude = -121.123123;
-+ double altitude = 9876.5432;
-+ Vec3 vec3 = new Vec3(longitude, latitude, altitude);
-+ assertEquals(latitude, vec3.get_latitude(), 0.000001);
-+ assertEquals(longitude, vec3.get_longitude(), 0.000001);
-+ assertTrue(vec3.has_altitude());
-+ assertEquals(altitude, vec3.get_altitude(), 0.000001);
-+ vec3 = new Vec3(longitude, latitude);
-+ assertEquals(latitude, vec3.get_latitude(), 0.000001);
-+ assertEquals(longitude, vec3.get_longitude(), 0.000001);
-+ assertFalse(vec3.has_altitude());
-+ }
-+
-+}
-+
---- /dev/null
-+++ b/tests/swig/kmlbase_test.py
-@@ -0,0 +1,161 @@
-+#!/usr/bin/env python
-+
-+# 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 contains unit tests for the KML Base Python SWIG bindings.
-+"""
-+
-+import unittest
-+import kmlbase
-+
-+# These VerySimple tests really only verify that the function/class exists.
-+# Based on kml/base/color32_test.cc.
-+
-+class BasicAttributesTestCase(unittest.TestCase):
-+ def runTest(self):
-+ attributes = kmlbase.Attributes()
-+ assert 0 == attributes.GetSize()
-+ found,value = attributes.FindValue("key")
-+ assert not found
-+ found,key = attributes.FindKey("value")
-+ assert not found
-+
-+class BasicColor32TestCase(unittest.TestCase):
-+ """Verify very simple Color32 usage """
-+ def runTest(self):
-+ # Default construction.
-+ color = kmlbase.Color32()
-+ assert 0xffffffff == color.get_color_abgr()
-+
-+ # Construction from specific color.
-+ red = 0xff0000ff
-+ color = kmlbase.Color32(red)
-+ assert red == color.get_color_abgr()
-+
-+ # Construction from RGBA chars.
-+ A = 0xff
-+ B = 0x00
-+ G = 0x00
-+ R = 0xff
-+ color = kmlbase.Color32(A, B, G, R)
-+ assert red == color.get_color_abgr()
-+
-+ # Construction from string.
-+ red_str = "ff0000ff"
-+ color = kmlbase.Color32(red_str)
-+ assert red == color.get_color_abgr()
-+
-+ # Bad construction.
-+ nonsense = "This isn't even close to a color value"
-+ color = kmlbase.Color32(nonsense)
-+ assert "00000000" == color.to_string_abgr()
-+
-+ # Getters in default state.
-+ color = kmlbase.Color32()
-+ kFF = 0xff
-+
-+ assert kFF == color.get_alpha()
-+ assert kFF == color.get_blue()
-+ assert kFF == color.get_green()
-+ assert kFF == color.get_red()
-+
-+ # Verify getters of newly set state.
-+ kAB = 0xab
-+ color.set_alpha(kAB)
-+ color.set_blue(kAB)
-+ color.set_green(kAB)
-+ color.set_red(kAB)
-+ assert kAB == color.get_alpha()
-+ assert kAB == color.get_blue()
-+ assert kAB == color.get_green()
-+ assert kAB == color.get_red()
-+
-+ # Verify get_color_abgr and get_color_rgba.
-+ kOpaqueGreen = 0xff00ff00
-+ color = kmlbase.Color32(kOpaqueGreen)
-+ assert kOpaqueGreen == color.get_color_abgr()
-+ kOpaqueGreenARGB = 0xff00ff00
-+ assert kOpaqueGreenARGB == color.get_color_argb()
-+
-+ # Verify reconstruction to AABBGGRR string.
-+ kOpaqueRedStr = "ff0000ff"
-+ color = kmlbase.Color32(kOpaqueRedStr);
-+ assert kOpaqueRedStr == color.to_string_abgr()
-+
-+ # Verify to_argb_string.
-+ assert kOpaqueRedStr == color.to_string_abgr()
-+ kOpaqueRedStr_argb = "ffff0000"
-+ assert kOpaqueRedStr_argb == color.to_string_argb()
-+
-+ # Equality operator.
-+ red = kmlbase.Color32(kOpaqueRedStr)
-+ green = kmlbase.Color32(kOpaqueGreen)
-+ assert red == red
-+ assert green != red
-+
-+class BasicDateTimeTestCase(unittest.TestCase):
-+ def runTest(self):
-+ kWhen = "2008-10-03T09:25:42Z"
-+ datetime = kmlbase.DateTime_Create(kWhen)
-+ assert datetime
-+ assert 1223025942 == datetime.GetTimeT()
-+ assert "09:25:42" == datetime.GetXsdTime()
-+ assert "2008-10-03" == datetime.GetXsdDate()
-+ assert kWhen == datetime.GetXsdDateTime()
-+
-+class BasicVec3TestCase(unittest.TestCase):
-+ def runTest(self):
-+ kLatitude = 38.12345
-+ kLongitude = -121.123123
-+ kAltitude = 9876.5432
-+ vec3 = kmlbase.Vec3(kLongitude, kLatitude, kAltitude)
-+ assert vec3
-+ assert kLatitude == vec3.get_latitude()
-+ assert kLongitude == vec3.get_longitude()
-+ assert vec3.has_altitude()
-+ assert kAltitude == vec3.get_altitude()
-+ vec3 = kmlbase.Vec3(kLongitude, kLatitude)
-+ assert vec3
-+ assert kLatitude == vec3.get_latitude()
-+ assert kLongitude == vec3.get_longitude()
-+ assert not vec3.has_altitude()
-+
-+class BasicVersionTestCase(unittest.TestCase):
-+ def runTest(self):
-+ assert "1.3.0" == kmlbase.Version_GetString()
-+
-+def suite():
-+ suite = unittest.TestSuite()
-+ suite.addTest(BasicAttributesTestCase())
-+ suite.addTest(BasicColor32TestCase())
-+ suite.addTest(BasicDateTimeTestCase())
-+ suite.addTest(BasicVec3TestCase())
-+ suite.addTest(BasicVersionTestCase())
-+ return suite
-+
-+runner = unittest.TextTestRunner()
-+runner.run(suite())
---- /dev/null
-+++ b/tests/swig/kmldom_test.py
-@@ -0,0 +1,1655 @@
-+#!/usr/bin/env python
-+
-+# 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 contains unit tests for the KML DOM Python SWIG bindings.
-+"""
-+
-+import unittest
-+import kmlbase
-+import kmldom
-+
-+
-+class VerySimpleParseTestCase(unittest.TestCase):
-+ """ This simply verifies the existence of the binding to ParseKml() """
-+
-+ def runTest(self):
-+ assert kmldom.ParseKml('<kml/>')
-+
-+
-+class VerySimpleSerializeTestCase(unittest.TestCase):
-+ """ This verifies the existence of the binding to SerializeRaw() """
-+
-+ def runTest(self):
-+ kml = '<kml/>'
-+ assert kml == kmldom.SerializeRaw(kmldom.ParseKml(kml))
-+
-+
-+class SimpleFactoryTestCase(unittest.TestCase):
-+ """
-+ This verifies the existence of the binding to KmlFactory::GetFactory
-+ and the exitence of bindings for all factory methods.
-+ """
-+
-+ def runTest(self):
-+ factory = kmldom.KmlFactory_GetFactory()
-+ assert factory.CreateElementById(kmldom.Type_Placemark)
-+ assert factory.CreateAlias()
-+ assert factory.CreateAtomAuthor()
-+ assert factory.CreateAtomLink()
-+ assert factory.CreateBalloonStyle()
-+ assert factory.CreateCamera()
-+ assert factory.CreateChange()
-+ assert factory.CreateCreate()
-+ assert factory.CreateData()
-+ assert factory.CreateDelete()
-+ assert factory.CreateDocument()
-+ assert factory.CreateExtendedData()
-+ assert factory.CreateFolder()
-+ assert factory.CreateGroundOverlay()
-+ assert factory.CreateIcon()
-+ assert factory.CreateIconStyle()
-+ assert factory.CreateImagePyramid()
-+ assert factory.CreateItemIcon()
-+ assert factory.CreateLabelStyle()
-+ assert factory.CreateLatLonAltBox()
-+ assert factory.CreateLatLonBox()
-+ assert factory.CreateLineString()
-+ assert factory.CreateLineStyle()
-+ assert factory.CreateLinearRing()
-+ assert factory.CreateLink()
-+ assert factory.CreateListStyle()
-+ assert factory.CreateLocation()
-+ assert factory.CreateLod()
-+ assert factory.CreateLookAt()
-+ assert factory.CreateModel()
-+ assert factory.CreateMultiGeometry()
-+ assert factory.CreateNetworkLink()
-+ assert factory.CreateNetworkLinkControl()
-+ assert factory.CreateOrientation()
-+ assert factory.CreatePair()
-+ assert factory.CreatePhotoOverlay()
-+ assert factory.CreatePlacemark()
-+ assert factory.CreatePoint()
-+ assert factory.CreatePolyStyle()
-+ assert factory.CreatePolygon()
-+ assert factory.CreateRegion()
-+ assert factory.CreateResourceMap()
-+ assert factory.CreateScale()
-+ assert factory.CreateSchema()
-+ assert factory.CreateSchemaData()
-+ assert factory.CreateScreenOverlay()
-+ assert factory.CreateSimpleData()
-+ assert factory.CreateSimpleField()
-+ assert factory.CreateSnippet()
-+ assert factory.CreateStyle()
-+ assert factory.CreateStyleMap()
-+ assert factory.CreateTimeSpan()
-+ assert factory.CreateTimeStamp()
-+ assert factory.CreateUpdate()
-+ assert factory.CreateViewVolume()
-+ assert factory.CreateHotSpot()
-+ assert factory.CreateInnerBoundaryIs()
-+ assert factory.CreateKml()
-+ assert factory.CreateLinkSnippet()
-+ assert factory.CreateOuterBoundaryIs()
-+ assert factory.CreateOverlayXY()
-+ assert factory.CreateRotationXY()
-+ assert factory.CreateScreenXY()
-+ assert factory.CreateSize()
-+ assert factory.CreateGxAnimatedUpdate()
-+ assert factory.CreateGxFlyTo()
-+ assert factory.CreateGxLatLonQuad()
-+ assert factory.CreateGxPlaylist()
-+ assert factory.CreateGxSoundCue()
-+ assert factory.CreateGxTimeSpan()
-+ assert factory.CreateGxTimeStamp()
-+ assert factory.CreateGxTour()
-+ assert factory.CreateGxTourControl()
-+ assert factory.CreateGxWait()
-+
-+class FactoryCreateElementByIdTestCase(unittest.TestCase):
-+ def runTest(self):
-+ factory = kmldom.KmlFactory_GetFactory()
-+ assert factory.CreateElementById(kmldom.Type_Alias)
-+ assert factory.CreateElementById(kmldom.Type_AtomAuthor)
-+ assert factory.CreateElementById(kmldom.Type_AtomLink)
-+ assert factory.CreateElementById(kmldom.Type_BalloonStyle)
-+ assert factory.CreateElementById(kmldom.Type_Camera)
-+ assert factory.CreateElementById(kmldom.Type_Change)
-+ assert factory.CreateElementById(kmldom.Type_coordinates)
-+ assert factory.CreateElementById(kmldom.Type_Create)
-+ assert factory.CreateElementById(kmldom.Type_Data)
-+ assert factory.CreateElementById(kmldom.Type_Delete)
-+ assert factory.CreateElementById(kmldom.Type_Document)
-+ assert factory.CreateElementById(kmldom.Type_ExtendedData)
-+ assert factory.CreateElementById(kmldom.Type_Folder)
-+ assert factory.CreateElementById(kmldom.Type_GroundOverlay)
-+ assert factory.CreateElementById(kmldom.Type_Icon)
-+ assert factory.CreateElementById(kmldom.Type_IconStyle)
-+ assert factory.CreateElementById(kmldom.Type_ImagePyramid)
-+ assert factory.CreateElementById(kmldom.Type_ItemIcon)
-+ assert factory.CreateElementById(kmldom.Type_LabelStyle)
-+ assert factory.CreateElementById(kmldom.Type_LatLonAltBox)
-+ assert factory.CreateElementById(kmldom.Type_LatLonBox)
-+ assert factory.CreateElementById(kmldom.Type_LineString)
-+ assert factory.CreateElementById(kmldom.Type_LineStyle)
-+ assert factory.CreateElementById(kmldom.Type_LinearRing)
-+ assert factory.CreateElementById(kmldom.Type_Link)
-+ assert factory.CreateElementById(kmldom.Type_ListStyle)
-+ assert factory.CreateElementById(kmldom.Type_Location)
-+ assert factory.CreateElementById(kmldom.Type_Lod)
-+ assert factory.CreateElementById(kmldom.Type_LookAt)
-+ assert factory.CreateElementById(kmldom.Type_Model)
-+ assert factory.CreateElementById(kmldom.Type_MultiGeometry)
-+ assert factory.CreateElementById(kmldom.Type_NetworkLink)
-+ assert factory.CreateElementById(kmldom.Type_NetworkLinkControl)
-+ assert factory.CreateElementById(kmldom.Type_Orientation)
-+ assert factory.CreateElementById(kmldom.Type_Pair)
-+ assert factory.CreateElementById(kmldom.Type_PhotoOverlay)
-+ assert factory.CreateElementById(kmldom.Type_Placemark)
-+ assert factory.CreateElementById(kmldom.Type_Point)
-+ assert factory.CreateElementById(kmldom.Type_PolyStyle)
-+ assert factory.CreateElementById(kmldom.Type_Polygon)
-+ assert factory.CreateElementById(kmldom.Type_Region)
-+ assert factory.CreateElementById(kmldom.Type_ResourceMap)
-+ assert factory.CreateElementById(kmldom.Type_Scale)
-+ assert factory.CreateElementById(kmldom.Type_Schema)
-+ assert factory.CreateElementById(kmldom.Type_SchemaData)
-+ assert factory.CreateElementById(kmldom.Type_ScreenOverlay)
-+ assert factory.CreateElementById(kmldom.Type_SimpleData)
-+ assert factory.CreateElementById(kmldom.Type_SimpleField)
-+ assert factory.CreateElementById(kmldom.Type_Snippet)
-+ assert factory.CreateElementById(kmldom.Type_Style)
-+ assert factory.CreateElementById(kmldom.Type_StyleMap)
-+ assert factory.CreateElementById(kmldom.Type_TimeSpan)
-+ assert factory.CreateElementById(kmldom.Type_TimeStamp)
-+ assert factory.CreateElementById(kmldom.Type_Update)
-+ assert factory.CreateElementById(kmldom.Type_ViewVolume)
-+ assert factory.CreateElementById(kmldom.Type_hotSpot)
-+ assert factory.CreateElementById(kmldom.Type_innerBoundaryIs)
-+ assert factory.CreateElementById(kmldom.Type_kml)
-+ assert factory.CreateElementById(kmldom.Type_linkSnippet)
-+ assert factory.CreateElementById(kmldom.Type_outerBoundaryIs)
-+ assert factory.CreateElementById(kmldom.Type_overlayXY)
-+ assert factory.CreateElementById(kmldom.Type_rotationXY)
-+ assert factory.CreateElementById(kmldom.Type_screenXY)
-+ assert factory.CreateElementById(kmldom.Type_size)
-+ assert factory.CreateElementById(kmldom.Type_GxAnimatedUpdate)
-+ assert factory.CreateElementById(kmldom.Type_GxFlyTo)
-+ assert factory.CreateElementById(kmldom.Type_GxLatLonQuad)
-+ assert factory.CreateElementById(kmldom.Type_GxPlaylist)
-+ assert factory.CreateElementById(kmldom.Type_GxSoundCue)
-+ assert factory.CreateElementById(kmldom.Type_GxTimeSpan)
-+ assert factory.CreateElementById(kmldom.Type_GxTimeStamp)
-+ assert factory.CreateElementById(kmldom.Type_GxTour)
-+ assert factory.CreateElementById(kmldom.Type_GxTourControl)
-+ assert factory.CreateElementById(kmldom.Type_GxWait)
-+
-+class VerySimpleCastTestCase(unittest.TestCase):
-+ """ This verifies the existence of the bindings to a few of the casts """
-+
-+ def runTest(self):
-+ """ kmldom.ParseKml() returns an ElementPtr """
-+ assert kmldom.AsCoordinates(kmldom.ParseKml('<coordinates/>'))
-+ assert not kmldom.AsCoordinates(kmldom.ParseKml('<Document/>'))
-+ assert kmldom.AsFolder(kmldom.ParseKml('<Folder/>'))
-+ assert not kmldom.AsFolder(kmldom.ParseKml('<Document/>'))
-+ assert kmldom.AsKml(kmldom.ParseKml('<kml/>'))
-+ assert not kmldom.AsKml(kmldom.ParseKml('<Placemark/>'))
-+ assert kmldom.AsPlacemark(kmldom.ParseKml('<Placemark/>'))
-+ assert not kmldom.AsPlacemark(kmldom.ParseKml('<NetworkLink/>'))
-+ assert kmldom.AsPoint(kmldom.ParseKml('<Point/>'))
-+ assert not kmldom.AsPoint(kmldom.ParseKml('<LineString/>'))
-+ assert kmldom.AsGxAnimatedUpdate(kmldom.ParseKml('<gx:AnimatedUpdate/>'))
-+ assert kmldom.AsGxFlyTo(kmldom.ParseKml('<gx:FlyTo/>'))
-+ assert kmldom.AsGxLatLonQuad(kmldom.ParseKml('<gx:LatLonQuad/>'))
-+ assert kmldom.AsGxPlaylist(kmldom.ParseKml('<gx:Playlist/>'))
-+ assert kmldom.AsGxSoundCue(kmldom.ParseKml('<gx:SoundCue/>'))
-+ assert kmldom.AsGxTimeSpan(kmldom.ParseKml('<gx:TimeSpan/>'))
-+ assert kmldom.AsGxTimeStamp(kmldom.ParseKml('<gx:TimeStamp/>'))
-+ assert kmldom.AsGxTour(kmldom.ParseKml('<gx:Tour/>'))
-+ assert kmldom.AsGxTourControl(kmldom.ParseKml('<gx:TourControl/>'))
-+ assert kmldom.AsGxWait(kmldom.ParseKml('<gx:Wait/>'))
-+
-+
-+class VerySimpleSimpleChildTestCase(unittest.TestCase):
-+ """
-+ This tests that an element derived from Feature can properly set/get/clear
-+ the simple value <name> element.
-+ """
-+
-+ def runTest(self):
-+ factory = kmldom.KmlFactory_GetFactory()
-+ folder = factory.CreateFolder()
-+ assert not folder.has_name()
-+ name = 'my name'
-+ folder.set_name(name)
-+ assert folder.has_name()
-+ assert name == folder.get_name()
-+ folder.clear_name()
-+ assert not folder.has_name()
-+
-+
-+class VerySimpleComplexChildTestCase(unittest.TestCase):
-+ """
-+ This tests that a complex child of a specific type can be set and
-+ cleared as a child of another element.
-+ """
-+
-+ def runTest(self):
-+ factory = kmldom.KmlFactory_GetFactory()
-+ region = factory.CreateRegion()
-+ assert not region.has_lod()
-+ assert not region.has_latlonaltbox()
-+ region.set_lod(factory.CreateLod())
-+ region.set_latlonaltbox(factory.CreateLatLonAltBox())
-+ assert region.has_lod()
-+ assert region.has_latlonaltbox()
-+ region.clear_lod()
-+ region.clear_latlonaltbox()
-+ assert not region.has_lod()
-+ assert not region.has_latlonaltbox()
-+
-+
-+class SimpleAtomAuthorTestCase(unittest.TestCase):
-+ """ This tests the AtomAuthor element."""
-+
-+ def setUp(self):
-+ self.factory = kmldom.KmlFactory_GetFactory()
-+ self.atomauthor = self.factory.CreateAtomAuthor()
-+
-+ def testDefault(self):
-+ assert kmldom.Type_AtomAuthor == self.atomauthor.Type()
-+ assert self.atomauthor.IsA(kmldom.Type_AtomAuthor)
-+ # default state
-+ assert not self.atomauthor.has_name()
-+ assert "" == self.atomauthor.get_name()
-+ assert not self.atomauthor.has_uri()
-+ assert "" == self.atomauthor.get_uri()
-+ assert not self.atomauthor.has_email()
-+ assert "" == self.atomauthor.get_email()
-+
-+ def testSetClear(self):
-+ # name
-+ name = 'Scott Turow'
-+ self.atomauthor.set_name(name)
-+ assert self.atomauthor.has_name()
-+ assert name == self.atomauthor.get_name()
-+ self.atomauthor.clear_name()
-+
-+ # uri
-+ uri = 'http://www.authorsguild.org/'
-+ self.atomauthor.set_uri(uri)
-+ assert self.atomauthor.has_uri()
-+ assert uri == self.atomauthor.get_uri()
-+ self.atomauthor.clear_uri()
-+
-+ # email
-+ email = 'jsmith at example.com'
-+ self.atomauthor.set_email(email)
-+ assert self.atomauthor.has_email()
-+ assert email == self.atomauthor.get_email()
-+ self.atomauthor.clear_email()
-+
-+ self.testDefault()
-+
-+
-+class SimpleAtomLinkTestCase(unittest.TestCase):
-+ """ This tests the AtomLink element."""
-+
-+ def setUp(self):
-+ self.factory = kmldom.KmlFactory_GetFactory()
-+ self.atomlink = self.factory.CreateAtomLink()
-+
-+ def testDefault(self):
-+ assert kmldom.Type_AtomLink == self.atomlink.Type()
-+ assert self.atomlink.IsA(kmldom.Type_AtomLink)
-+ assert not self.atomlink.has_href()
-+ assert "" == self.atomlink.get_href()
-+ assert not self.atomlink.has_rel()
-+ assert "" == self.atomlink.get_rel()
-+ assert not self.atomlink.has_type()
-+ assert "" == self.atomlink.get_type()
-+ assert not self.atomlink.has_hreflang()
-+ assert "" == self.atomlink.get_hreflang()
-+ assert not self.atomlink.has_title()
-+ assert "" == self.atomlink.get_title()
-+ assert not self.atomlink.has_length()
-+ assert 0 == self.atomlink.get_length()
-+
-+ def testSetClear(self):
-+ # href
-+ href = 'http://example.com'
-+ self.atomlink.set_href(href)
-+ assert self.atomlink.has_href()
-+ assert href == self.atomlink.get_href()
-+ self.atomlink.clear_href()
-+
-+ rel = 'alternate'
-+ self.atomlink.set_rel(rel)
-+ assert self.atomlink.has_rel()
-+ assert rel == self.atomlink.get_rel()
-+ self.atomlink.clear_rel()
-+
-+ type = 'text/html'
-+ self.atomlink.set_type(type)
-+ assert self.atomlink.has_type()
-+ assert type == self.atomlink.get_type()
-+ self.atomlink.clear_type()
-+
-+ hreflang = 'en'
-+ self.atomlink.set_hreflang(hreflang)
-+ assert self.atomlink.has_hreflang()
-+ assert hreflang == self.atomlink.get_hreflang()
-+ self.atomlink.clear_hreflang()
-+
-+ title = 'dive into mark'
-+ self.atomlink.set_title(title)
-+ assert self.atomlink.has_title()
-+ assert title == self.atomlink.get_title()
-+ self.atomlink.clear_title()
-+
-+ length = 42
-+ self.atomlink.set_length(length)
-+ assert self.atomlink.has_length()
-+ assert length == self.atomlink.get_length()
-+ self.atomlink.clear_length()
-+
-+ self.testDefault()
-+
-+ def testParse(self):
-+ # Straight out of RFC 4287
-+ link_xml = '<link rel=\"alternate\" type=\"text/html\" '
-+ link_xml += 'hreflang=\"en\" href=\"http://example.org/\"/>'
-+ self.atomlink = kmldom.ParseKml(link_xml)
-+ assert self.atomlink.has_rel()
-+ assert self.atomlink.has_type()
-+ assert self.atomlink.has_hreflang()
-+ assert self.atomlink.has_href()
-+ assert not self.atomlink.has_title()
-+ assert not self.atomlink.has_length()
-+
-+ assert self.atomlink.clear_rel()
-+ assert self.atomlink.clear_type()
-+ assert self.atomlink.clear_hreflang()
-+ assert self.atomlink.clear_href()
-+
-+ self.testDefault()
-+
-+class SimpleCoordinatesTestCase(unittest.TestCase):
-+ """ This tests the methods on Coordinates and Vec3 """
-+ def runTest(self):
-+ factory = kmldom.KmlFactory_GetFactory()
-+ coordinates = factory.CreateCoordinates()
-+ # Test the Element methods
-+ assert kmldom.Type_coordinates == coordinates.Type()
-+ assert coordinates.IsA(kmldom.Type_coordinates)
-+ # Test the Coordinates methods
-+ lon = -123.456
-+ lat = 38.765
-+ alt = 1001.909
-+ assert 0 == coordinates.get_coordinates_array_size()
-+ coordinates.add_latlng(lat, lon)
-+ assert 1 == coordinates.get_coordinates_array_size()
-+ coordinates.add_latlngalt(lat, lon, alt)
-+ assert 2 == coordinates.get_coordinates_array_size()
-+ vec0 = coordinates.get_coordinates_array_at(0)
-+ vec1 = coordinates.get_coordinates_array_at(1)
-+ # Test the Vec3 methods
-+ assert lon == vec0.get_longitude()
-+ assert lat == vec0.get_latitude()
-+ assert 0 == vec0.get_altitude()
-+ assert lon == vec1.get_longitude()
-+ assert lat == vec1.get_latitude()
-+ assert alt == vec1.get_altitude()
-+
-+
-+class SimpleVec2TestCase(unittest.TestCase):
-+ """ This tests the methods on Vec2 (using HotSpot) """
-+ def runTest(self):
-+ factory = kmldom.KmlFactory_GetFactory()
-+ hotspot = factory.CreateHotSpot()
-+ # Test the Element methods
-+ assert kmldom.Type_hotSpot == hotspot.Type()
-+ assert hotspot.IsA(kmldom.Type_hotSpot)
-+ # Test the Vec2 methods
-+ assert not hotspot.has_x()
-+ assert not hotspot.has_xunits()
-+ assert not hotspot.has_y()
-+ assert not hotspot.has_yunits()
-+ x = 128
-+ xunits = kmldom.UNITS_PIXELS
-+ y = .7
-+ yunits = kmldom.UNITS_FRACTION
-+ # Test the setters
-+ hotspot.set_x(x)
-+ hotspot.set_xunits(xunits)
-+ hotspot.set_y(y)
-+ hotspot.set_yunits(yunits)
-+ # Test the has'ers
-+ assert hotspot.has_x()
-+ assert hotspot.has_xunits()
-+ assert hotspot.has_y()
-+ assert hotspot.has_yunits()
-+ # Test the getters
-+ assert x == hotspot.get_x()
-+ assert xunits == hotspot.get_xunits()
-+ assert y == hotspot.get_y()
-+ assert yunits == hotspot.get_yunits()
-+ # Test the clear'ers
-+ hotspot.clear_x()
-+ hotspot.clear_xunits()
-+ hotspot.clear_y()
-+ hotspot.clear_yunits()
-+ assert not hotspot.has_x()
-+ assert not hotspot.has_xunits()
-+ assert not hotspot.has_y()
-+ assert not hotspot.has_yunits()
-+
-+
-+class SimpleObjectTestCase(unittest.TestCase):
-+ """ This tests the Object methods (using Placemark) """
-+ def runTest(self):
-+ factory = kmldom.KmlFactory_GetFactory()
-+ placemark = factory.CreatePlacemark()
-+ # Element methods
-+ assert kmldom.Type_Placemark == placemark.Type()
-+ assert placemark.IsA(kmldom.Type_Object)
-+ assert placemark.IsA(kmldom.Type_Placemark)
-+ # Object methods
-+ # has_xxx()...
-+ assert not placemark.has_id()
-+ assert not placemark.has_targetid()
-+ id = 'placemark123'
-+ targetid ='placemark456'
-+ # set_xxx()...
-+ placemark.set_id(id)
-+ placemark.set_targetid(targetid)
-+ assert placemark.has_id()
-+ assert placemark.has_targetid()
-+ # xxx()...
-+ assert id == placemark.get_id()
-+ assert targetid == placemark.get_targetid()
-+ # clear_xxx()...
-+ placemark.clear_id()
-+ placemark.clear_targetid()
-+ assert not placemark.has_id()
-+ assert not placemark.has_targetid()
-+
-+
-+class SimpleFeatureTestCase(unittest.TestCase):
-+ """ This tests the Feature methods (using Folder) """
-+ def runTest(self):
-+ factory = kmldom.KmlFactory_GetFactory()
-+ folder = factory.CreateFolder()
-+
-+ # Element methods
-+ assert kmldom.Type_Folder == folder.Type()
-+ assert folder.IsA(kmldom.Type_Object)
-+ assert folder.IsA(kmldom.Type_Feature)
-+ assert folder.IsA(kmldom.Type_Folder)
-+
-+ # TODO: Object methods
-+
-+ # Feature methods
-+ # TODO everything else
-+
-+ assert not folder.has_phonenumber()
-+ phonenumber = '867-5309'
-+ folder.set_phonenumber(phonenumber)
-+ assert folder.has_phonenumber()
-+ assert phonenumber == folder.get_phonenumber()
-+
-+ assert not folder.has_atomauthor()
-+ atomauthor = factory.CreateAtomAuthor()
-+ assert atomauthor
-+ atom_name = 'D.F. Wallace'
-+ atomauthor.set_name(atom_name)
-+ folder.set_atomauthor(atomauthor)
-+ got_atomauthor = folder.get_atomauthor()
-+ assert atom_name == got_atomauthor.get_name()
-+
-+ assert not folder.has_atomlink()
-+ atomlink = factory.CreateAtomLink()
-+ assert atomlink
-+ atom_href = 'http://infinitesummer.org'
-+ atomlink.set_href(atom_href)
-+ folder.set_atomlink(atomlink)
-+ got_atomlink = folder.get_atomlink()
-+ assert atom_href == got_atomlink.get_href()
-+
-+ assert not folder.has_snippet()
-+ folder.set_snippet(factory.CreateSnippet())
-+ assert folder.has_snippet()
-+ snippet = folder.get_snippet()
-+ # Test that the snippet() returns a SnippetPtr
-+ assert not snippet.has_maxlines()
-+ folder.clear_snippet()
-+ assert not folder.has_snippet()
-+
-+ def testParseAtom(self):
-+ kml = ('<Placemark>'
-+ '<atom:author>'
-+ '<atom:name>D.F. Wallace</atom:name>'
-+ '</atom:author>'
-+ '<atom:link href="http://infinitesummer.org"></atom:link>'
-+ '</Placemark>')
-+ root = kmldom.ParseKml(kml)
-+ assert root
-+ placemark = kmldom.AsPlacemark(root)
-+ assert placemark
-+ assert placemark.has_atomauthor()
-+ author = kmldom.AsAtomAuthor(placemark.get_atomauthor())
-+ assert author
-+ assert author.has_name();
-+ assert "D.F. Wallace" == author.get_name()
-+ assert placemark.has_atomlink()
-+ link = kmldom.AsAtomLink(placemark.get_atomlink())
-+ assert link
-+ assert link.has_href()
-+ assert "http://infinitesummer.org" == link.get_href()
-+
-+
-+class SimpleRegionTestCase(unittest.TestCase):
-+ """ This tests the methods on Region """
-+ def runTest(self):
-+ factory = kmldom.KmlFactory_GetFactory()
-+ region = factory.CreateRegion()
-+
-+ # Element methods
-+ assert kmldom.Type_Region == region.Type()
-+ assert region.IsA(kmldom.Type_Object)
-+ assert region.IsA(kmldom.Type_Region)
-+
-+ # Object methods
-+ # has_xxx()...
-+ assert not region.has_id()
-+ assert not region.has_targetid()
-+ id = 'region123'
-+ targetid ='region456'
-+ # set_xxx()...
-+ region.set_id(id)
-+ region.set_targetid(targetid)
-+ assert region.has_id()
-+ assert region.has_targetid()
-+ # xxx()...
-+ assert id == region.get_id()
-+ assert targetid == region.get_targetid()
-+ # clear_xxx()...
-+ region.clear_id()
-+ region.clear_targetid()
-+ assert not region.has_id()
-+ assert not region.has_targetid()
-+
-+ # Region methods
-+ assert not region.has_lod()
-+ assert not region.has_latlonaltbox()
-+ region.set_lod(factory.CreateLod())
-+ region.set_latlonaltbox(factory.CreateLatLonAltBox())
-+ assert region.has_lod()
-+ assert region.has_latlonaltbox()
-+ region.clear_lod()
-+ region.clear_latlonaltbox()
-+ assert not region.has_lod()
-+ assert not region.has_latlonaltbox()
-+
-+
-+class SimpleParseTestCase(unittest.TestCase):
-+ """ This tests the Parse() function."""
-+
-+ def setUp(self):
-+ self.factory = kmldom.KmlFactory_GetFactory()
-+ self.root = kmldom.ParseKml('<kml>'
-+ '<Placemark id=\"pm123\">'
-+ '<name>hi</name>'
-+ '</Placemark>'
-+ '</kml>')
-+
-+ def tearDown(self):
-+ """ KML DOM memory is managed with smart pointers no tear down is needed """
-+
-+ def testBasic(self):
-+ assert self.root
-+ kml = kmldom.AsKml(self.root)
-+ assert kml
-+ assert not kml.has_hint()
-+ assert not kml.has_networklinkcontrol()
-+ assert kml.has_feature()
-+ placemark = kmldom.AsPlacemark(kml.get_feature())
-+ assert placemark
-+ assert placemark.has_id()
-+ assert 'pm123' == placemark.get_id()
-+ assert placemark.has_name()
-+ assert 'hi' == placemark.get_name()
-+ assert not placemark.has_geometry()
-+
-+
-+class SimpleSerializePrettyTestCase(unittest.TestCase):
-+ """ This tests the SerializePretty() function."""
-+
-+ def setUp(self):
-+ self.factory = kmldom.KmlFactory_GetFactory()
-+ self.kml = self.factory.CreateKml()
-+ self.folder = self.factory.CreateFolder()
-+ self.folder.set_name('folder')
-+ self.placemark = self.factory.CreatePlacemark()
-+ self.placemark.set_name('placemark')
-+ self.folder.add_feature(self.placemark)
-+ self.kml.set_feature(self.folder)
-+ self.xml = kmldom.SerializePretty(self.kml)
-+
-+ def testBasic(self):
-+ assert self.xml
-+ assert '<kml>\n'\
-+ ' <Folder>\n'\
-+ ' <name>folder</name>\n'\
-+ ' <Placemark>\n'\
-+ ' <name>placemark</name>\n'\
-+ ' </Placemark>\n'\
-+ ' </Folder>\n'\
-+ '</kml>\n' == self.xml
-+
-+
-+class SimpleSerializeRawTestCase(unittest.TestCase):
-+ """ This tests the SerializeRaw() function."""
-+
-+ def setUp(self):
-+ self.factory = kmldom.KmlFactory_GetFactory()
-+ self.kml = self.factory.CreateKml()
-+ self.folder = self.factory.CreateFolder()
-+ self.folder.set_name('folder')
-+ self.placemark = self.factory.CreatePlacemark()
-+ self.placemark.set_name('placemark')
-+ self.folder.add_feature(self.placemark)
-+ self.kml.set_feature(self.folder)
-+ self.xml = kmldom.SerializeRaw(self.kml)
-+
-+ def testBasic(self):
-+ assert self.xml
-+ assert '<kml>'\
-+ '<Folder>'\
-+ '<name>folder</name>'\
-+ '<Placemark>'\
-+ '<name>placemark</name>'\
-+ '</Placemark>'\
-+ '</Folder>'\
-+ '</kml>' == self.xml
-+
-+
-+class SimpleExtendedDataTestCase(unittest.TestCase):
-+ """ This tests the ExtendedData element."""
-+
-+ def setUp(self):
-+ self.factory = kmldom.KmlFactory_GetFactory()
-+ self.extendeddata = self.factory.CreateExtendedData()
-+
-+ def testDefault(self):
-+ assert kmldom.AsExtendedData(self.extendeddata)
-+ assert 0 == self.extendeddata.get_data_array_size()
-+ assert 0 == self.extendeddata.get_schemadata_array_size()
-+
-+class DataTestCase(unittest.TestCase):
-+ """ This tests the Data element """
-+
-+ def setUp(self):
-+ self.factory = kmldom.KmlFactory_GetFactory()
-+ self.data = self.factory.CreateData()
-+
-+ def testDefault(self):
-+ assert kmldom.AsData(self.data)
-+ assert not self.data.has_name()
-+ assert "" == self.data.get_name()
-+ assert not self.data.has_displayname()
-+ assert "" == self.data.get_displayname()
-+ assert not self.data.has_value()
-+ assert "" == self.data.get_value()
-+
-+class SimpleDataTestCase(unittest.TestCase):
-+ """ This tests the SimpleData element """
-+
-+ def setUp(self):
-+ self.factory = kmldom.KmlFactory_GetFactory()
-+ self.simpledata = self.factory.CreateSimpleData()
-+
-+ def testDefault(self):
-+ assert kmldom.AsSimpleData(self.simpledata)
-+ assert not self.simpledata.has_name()
-+ assert "" == self.simpledata.get_name()
-+ assert not self.simpledata.has_text()
-+ assert "" == self.simpledata.get_text()
-+
-+def TestColorStyle(colorstyle):
-+ """ This tests the ColorStyle elements of the given ColorStyle-derived
-+ element"""
-+ # ColorStyle fields
-+ # Verify default state of <color>
-+ assert not colorstyle.has_color()
-+ # Set <color> to a given value and verify get_ and has_
-+ color = kmlbase.Color32(0xf0f0c80f)
-+ colorstyle.set_color(color)
-+ assert colorstyle.has_color()
-+ assert color == colorstyle.get_color()
-+ # Clear <color> and verify has_
-+ colorstyle.clear_color()
-+ assert not colorstyle.has_color()
-+
-+ assert not colorstyle.has_colormode()
-+ colormode = kmldom.COLORMODE_RANDOM
-+ colorstyle.set_colormode(colormode)
-+ assert colorstyle.has_colormode()
-+ assert colormode == colorstyle.get_colormode()
-+ colorstyle.clear_colormode()
-+ assert not colorstyle.has_colormode()
-+
-+class SimpleIconStyleTestCase(unittest.TestCase):
-+ """ This tests the IconStyle element."""
-+
-+ def setUp(self):
-+ self.factory = kmldom.KmlFactory_GetFactory()
-+ self.iconstyle = self.factory.CreateIconStyle()
-+
-+ def testDefault(self):
-+ assert kmldom.AsObject(self.iconstyle)
-+ assert kmldom.AsSubStyle(self.iconstyle)
-+ assert kmldom.AsColorStyle(self.iconstyle)
-+
-+ TestColorStyle(self.iconstyle)
-+
-+class SimpleKmlTestCase(unittest.TestCase):
-+ """ This tests the Kml element."""
-+
-+ def setUp(self):
-+ self.factory = kmldom.KmlFactory_GetFactory()
-+ self.kml = self.factory.CreateKml()
-+
-+ def testDefault(self):
-+ assert kmldom.Type_kml == self.kml.Type()
-+ assert self.kml.IsA(kmldom.Type_kml)
-+ assert not self.kml.has_hint()
-+ assert "" == self.kml.get_hint()
-+ assert not self.kml.has_networklinkcontrol()
-+ assert None == self.kml.get_networklinkcontrol()
-+ assert not self.kml.has_feature()
-+ assert None == self.kml.get_feature()
-+
-+ def testSetClear(self):
-+ hint = 'target=sky'
-+ self.kml.set_hint(hint)
-+ assert self.kml.has_hint()
-+ assert hint == self.kml.get_hint()
-+ self.kml.clear_hint()
-+ self.testDefault()
-+
-+class SimpleLabelStyleTestCase(unittest.TestCase):
-+ """ This tests the LabelStyle element."""
-+
-+ def setUp(self):
-+ self.factory = kmldom.KmlFactory_GetFactory()
-+ self.labelstyle = self.factory.CreateLabelStyle()
-+
-+ def testDefault(self):
-+ assert kmldom.AsObject(self.labelstyle)
-+ assert kmldom.AsSubStyle(self.labelstyle)
-+ assert kmldom.AsColorStyle(self.labelstyle)
-+
-+ TestColorStyle(self.labelstyle)
-+
-+class SimpleLineStyleTestCase(unittest.TestCase):
-+ """ This tests the LineStyle element."""
-+
-+ def setUp(self):
-+ self.factory = kmldom.KmlFactory_GetFactory()
-+ self.linestyle = self.factory.CreateLineStyle()
-+
-+ def testDefault(self):
-+ assert kmldom.AsObject(self.linestyle)
-+ assert kmldom.AsSubStyle(self.linestyle)
-+ assert kmldom.AsColorStyle(self.linestyle)
-+
-+ TestColorStyle(self.linestyle)
-+
-+ # LineStyle fields
-+ # Verify default state of <width>
-+ assert not self.linestyle.has_width()
-+ # Set <width> and verify get_ and has_
-+ width = 4
-+ self.linestyle.set_width(width)
-+ assert self.linestyle.has_width()
-+ assert width == self.linestyle.get_width()
-+ # Clear <width> and verify has_
-+ self.linestyle.clear_width()
-+ assert not self.linestyle.has_width()
-+
-+class SimpleListStyleTestCase(unittest.TestCase):
-+ """ This tests the ListStyle element."""
-+
-+ def setUp(self):
-+ self.factory = kmldom.KmlFactory_GetFactory()
-+ self.liststyle = self.factory.CreateListStyle()
-+
-+ def testDefault(self):
-+ assert kmldom.AsObject(self.liststyle)
-+ assert kmldom.AsSubStyle(self.liststyle)
-+ assert kmldom.AsListStyle(self.liststyle)
-+ assert not self.liststyle.has_id()
-+ assert 0 == self.liststyle.get_itemicon_array_size()
-+
-+class SimpleNetworkLinkControlTestCase(unittest.TestCase):
-+ """ This tests the NetworkLinkControl element."""
-+
-+ def setUp(self):
-+ self.factory = kmldom.KmlFactory_GetFactory()
-+ self.nlc = self.factory.CreateNetworkLinkControl()
-+
-+ def testDefault(self):
-+ assert kmldom.Type_NetworkLinkControl == self.nlc.Type()
-+ assert self.nlc.IsA(kmldom.Type_NetworkLinkControl)
-+ assert not self.nlc.has_minrefreshperiod()
-+ assert not self.nlc.has_maxsessionlength()
-+ assert not self.nlc.has_cookie()
-+ assert not self.nlc.has_message()
-+ assert not self.nlc.has_linkname()
-+ assert not self.nlc.has_linkdescription()
-+ assert not self.nlc.has_linksnippet()
-+ assert not self.nlc.has_expires()
-+ assert not self.nlc.has_update()
-+ assert not self.nlc.has_abstractview()
-+
-+ def testSetClear(self):
-+ minrefreshperiod = 42.123
-+ self.nlc.set_minrefreshperiod(minrefreshperiod)
-+ assert self.nlc.has_minrefreshperiod()
-+ assert minrefreshperiod == self.nlc.get_minrefreshperiod()
-+ self.nlc.clear_minrefreshperiod()
-+ assert not self.nlc.has_minrefreshperiod()
-+
-+class SimplePhotoOverlayTestCase(unittest.TestCase):
-+ """ This tests the PhotoOverlay element."""
-+
-+ def setUp(self):
-+ self.factory = kmldom.KmlFactory_GetFactory()
-+ self.photooverlay = self.factory.CreatePhotoOverlay()
-+
-+ def testDefault(self):
-+ assert kmldom.AsObject(self.photooverlay)
-+ assert kmldom.AsFeature(self.photooverlay)
-+ assert kmldom.AsOverlay(self.photooverlay)
-+ assert kmldom.AsPhotoOverlay(self.photooverlay)
-+ assert not self.photooverlay.has_id() # Object-ness
-+ assert not self.photooverlay.has_name() # Feature-ness
-+ assert not self.photooverlay.has_icon() # Overlay-ness
-+ assert not self.photooverlay.has_rotation() # PhotoOverlay-ness...
-+ assert not self.photooverlay.has_viewvolume()
-+ assert not self.photooverlay.has_imagepyramid()
-+ assert not self.photooverlay.has_point()
-+ assert not self.photooverlay.has_shape()
-+
-+
-+class SimplePlacemarkTestCase(unittest.TestCase):
-+ """ This tests the Placemark element."""
-+
-+ def setUp(self):
-+ self.factory = kmldom.KmlFactory_GetFactory()
-+ self.placemark = self.factory.CreatePlacemark()
-+
-+ def testDefault(self):
-+ assert kmldom.AsObject(self.placemark)
-+ assert kmldom.AsFeature(self.placemark)
-+ assert kmldom.AsPlacemark(self.placemark)
-+ assert not self.placemark.has_id() # Object-ness
-+ assert not self.placemark.has_name() # Feature-ness
-+ assert not self.placemark.has_geometry() # Placemark-ness
-+
-+ def testName(self):
-+ name = 'This is my name'
-+ self.placemark.set_name(name)
-+ assert self.placemark.has_name()
-+ assert name == self.placemark.get_name()
-+ self.placemark.clear_name()
-+ assert not self.placemark.has_name()
-+
-+
-+class SimpleLatLonBoxTestCase(unittest.TestCase):
-+ """ This tests the LatLonBox element."""
-+
-+ def setUp(self):
-+ self.factory = kmldom.KmlFactory_GetFactory()
-+ self.latlonbox = self.factory.CreateLatLonBox()
-+
-+ def testDefault(self):
-+ assert kmldom.AsObject(self.latlonbox)
-+ assert kmldom.AsLatLonBox(self.latlonbox)
-+ assert not self.latlonbox.has_id() # Object-ness
-+ assert not self.latlonbox.has_north()
-+ assert 180.0 == self.latlonbox.get_north()
-+ assert not self.latlonbox.has_south()
-+ assert -180.0 == self.latlonbox.get_south()
-+ assert not self.latlonbox.has_east()
-+ assert 180.0 == self.latlonbox.get_east()
-+ assert not self.latlonbox.has_west()
-+ assert -180.0 == self.latlonbox.get_west()
-+
-+ def testSetClear(self):
-+ north = 42.42
-+ south = -11.12
-+ east = -80.80
-+ west = -123.321
-+ self.latlonbox.set_north(north)
-+ self.latlonbox.set_south(south)
-+ self.latlonbox.set_east(east)
-+ self.latlonbox.set_west(west)
-+ assert self.latlonbox.has_north()
-+ assert north == self.latlonbox.get_north()
-+ assert self.latlonbox.has_south()
-+ assert south == self.latlonbox.get_south()
-+ assert self.latlonbox.has_east()
-+ assert east == self.latlonbox.get_east()
-+ assert self.latlonbox.has_west()
-+ assert west == self.latlonbox.get_west()
-+ self.latlonbox.clear_north()
-+ self.latlonbox.clear_south()
-+ self.latlonbox.clear_east()
-+ self.latlonbox.clear_west()
-+ # Clearing everything returns to default state
-+ self.testDefault()
-+
-+
-+class SimpleLinkTestCase(unittest.TestCase):
-+ """ This tests the Link element."""
-+
-+ def setUp(self):
-+ self.factory = kmldom.KmlFactory_GetFactory()
-+ self.link = self.factory.CreateLink()
-+
-+ def testDefault(self):
-+ assert kmldom.AsObject(self.link)
-+ assert kmldom.AsLink(self.link)
-+ assert not self.link.has_id() # Object-ness
-+ assert not self.link.has_href() # Link-ness
-+
-+ def testSetClear(self):
-+ href = 'http://example.com/cool.kml'
-+ self.link.set_href(href)
-+ assert self.link.has_href()
-+ assert href == self.link.get_href()
-+ self.link.clear_href()
-+ # Clearing everything returns to default state
-+ self.testDefault()
-+
-+
-+class SimpleChangeTestCase(unittest.TestCase):
-+ """ This tests the Change element."""
-+
-+ def setUp(self):
-+ self.factory = kmldom.KmlFactory_GetFactory()
-+ self.change = self.factory.CreateChange()
-+
-+ def testDefault(self):
-+ assert kmldom.AsChange(self.change)
-+ assert 0 == self.change.get_object_array_size()
-+
-+ def testAddOneObject(self):
-+ placemark = self.factory.CreatePlacemark()
-+ name = 'hi'
-+ placemark.set_name(name)
-+ self.change.add_object(placemark)
-+ assert 1 == self.change.get_object_array_size()
-+ placemark = kmldom.AsPlacemark(self.change.get_object_array_at(0))
-+ assert name == placemark.get_name()
-+
-+ def testAddNObjects(self):
-+ placemark = self.factory.CreatePlacemark()
-+ placemark_id = 'pm123'
-+ placemark.set_id(placemark_id)
-+ self.change.add_object(placemark)
-+
-+ latlonbox = self.factory.CreateLatLonBox()
-+ latlonbox_id = 'llb123'
-+ latlonbox.set_id(latlonbox_id)
-+ self.change.add_object(latlonbox)
-+
-+ location = self.factory.CreateLocation()
-+ location_id = 'location123'
-+ location.set_id(location_id)
-+ self.change.add_object(location)
-+
-+ """ Verify there are 3 items in the array in the proper order."""
-+ assert 3 == self.change.get_object_array_size()
-+ assert placemark_id == self.change.get_object_array_at(0).get_id()
-+ assert latlonbox_id == self.change.get_object_array_at(1).get_id()
-+ assert location_id == self.change.get_object_array_at(2).get_id()
-+
-+
-+class SimpleCreateTestCase(unittest.TestCase):
-+ """ This tests the Create element."""
-+
-+ def setUp(self):
-+ self.factory = kmldom.KmlFactory_GetFactory()
-+ self.create = self.factory.CreateCreate()
-+
-+ def testDefault(self):
-+ assert kmldom.AsCreate(self.create)
-+ assert 0 == self.create.get_container_array_size()
-+
-+ def testAddOneContainer(self):
-+ folder = self.factory.CreateFolder()
-+ target_folder_id = 'target-folder'
-+ folder.set_targetid(target_folder_id)
-+ self.create.add_container(folder)
-+ assert 1 == self.create.get_container_array_size()
-+ folder = kmldom.AsFolder(self.create.get_container_array_at(0))
-+ assert target_folder_id == folder.get_targetid()
-+
-+ def testAddNContainers(self):
-+ folder = self.factory.CreateFolder()
-+ folder_a_id = 'folder-a'
-+ folder.set_id(folder_a_id)
-+ self.create.add_container(folder)
-+
-+ document = self.factory.CreateFolder()
-+ document_a_id = 'container-a'
-+ document.set_id(document_a_id)
-+ self.create.add_container(document)
-+
-+ document = self.factory.CreateFolder()
-+ document_b_id = 'container-b'
-+ document.set_id(document_b_id)
-+ self.create.add_container(document)
-+
-+ folder = self.factory.CreateFolder()
-+ folder_b_id = 'folder-b'
-+ folder.set_id(folder_b_id)
-+ self.create.add_container(folder)
-+
-+ # Verify there are 4 items in the array in the proper order.
-+ assert 4 == self.create.get_container_array_size()
-+ assert folder_a_id == self.create.get_container_array_at(0).get_id()
-+ assert document_a_id == self.create.get_container_array_at(1).get_id()
-+ assert document_b_id == self.create.get_container_array_at(2).get_id()
-+ assert folder_b_id == self.create.get_container_array_at(3).get_id()
-+
-+
-+class SimpleDeleteTestCase(unittest.TestCase):
-+ """ This tests the Delete element."""
-+
-+ def setUp(self):
-+ self.factory = kmldom.KmlFactory_GetFactory()
-+ self.delete = self.factory.CreateDelete()
-+
-+ def testDefault(self):
-+ assert kmldom.AsDelete(self.delete)
-+ assert 0 == self.delete.get_feature_array_size()
-+
-+ def testAddOneFeature(self):
-+ groundoverlay = self.factory.CreateGroundOverlay()
-+ target_groundoverlay_id = 'target-groundoverlay'
-+ groundoverlay.set_targetid(target_groundoverlay_id)
-+ self.delete.add_feature(groundoverlay)
-+ assert 1 == self.delete.get_feature_array_size()
-+ groundoverlay = kmldom.AsGroundOverlay(self.delete.get_feature_array_at(0))
-+ assert target_groundoverlay_id == groundoverlay.get_targetid()
-+
-+ def testAddNFeatures(self):
-+ document = self.factory.CreateDocument()
-+ document_id = 'document-id'
-+ document.set_id(document_id)
-+ self.delete.add_feature(document)
-+
-+ folder = self.factory.CreateFolder()
-+ folder_id = 'folder-id'
-+ folder.set_id(folder_id)
-+ self.delete.add_feature(folder)
-+
-+ groundoverlay = self.factory.CreateGroundOverlay()
-+ groundoverlay_id = 'groundoverlay-id'
-+ groundoverlay.set_id(groundoverlay_id)
-+ self.delete.add_feature(groundoverlay)
-+
-+ networklink = self.factory.CreateNetworkLink()
-+ networklink_id = 'networklink-id'
-+ networklink.set_id(networklink_id)
-+ self.delete.add_feature(networklink)
-+
-+ placemark = self.factory.CreatePlacemark()
-+ placemark_id = 'placemark-id'
-+ placemark.set_id(placemark_id)
-+ self.delete.add_feature(placemark)
-+
-+ photooverlay = self.factory.CreatePhotoOverlay()
-+ photooverlay_id = 'photooverlay-id'
-+ photooverlay.set_id(photooverlay_id)
-+ self.delete.add_feature(photooverlay)
-+
-+ screenoverlay = self.factory.CreateScreenOverlay()
-+ screenoverlay_id = 'screenoverlay-id'
-+ screenoverlay.set_id(screenoverlay_id)
-+ self.delete.add_feature(screenoverlay)
-+
-+ # Verify there are 7 items in the array in the proper order.
-+ assert 7 == self.delete.get_feature_array_size()
-+ assert document_id == self.delete.get_feature_array_at(0).get_id()
-+ assert folder_id == self.delete.get_feature_array_at(1).get_id()
-+ assert groundoverlay_id == self.delete.get_feature_array_at(2).get_id()
-+ assert networklink_id == self.delete.get_feature_array_at(3).get_id()
-+ assert placemark_id == self.delete.get_feature_array_at(4).get_id()
-+ assert photooverlay_id == self.delete.get_feature_array_at(5).get_id()
-+ assert screenoverlay_id == self.delete.get_feature_array_at(6).get_id()
-+
-+
-+class SimpleDocumentTestCase(unittest.TestCase):
-+ """ This tests the Document element."""
-+
-+ def setUp(self):
-+ self.factory = kmldom.KmlFactory_GetFactory()
-+ self.document = self.factory.CreateDocument()
-+
-+ def testDefault(self):
-+ assert kmldom.AsObject(self.document)
-+ assert kmldom.AsFeature(self.document)
-+ assert kmldom.AsContainer(self.document)
-+ assert kmldom.AsDocument(self.document)
-+ assert not self.document.has_id() # Object-ness
-+ assert not self.document.has_name() # Feature-ness
-+ assert 0 == self.document.get_feature_array_size() # Container-ness
-+ assert 0 == self.document.get_schema_array_size() # Document-ness
-+ assert 0 == self.document.get_styleselector_array_size() # Document-ness
-+
-+
-+class SimpleMultiGeometryTestCase(unittest.TestCase):
-+ """ This tests the MultiGeometry element."""
-+
-+ def setUp(self):
-+ self.factory = kmldom.KmlFactory_GetFactory()
-+ self.multigeometry = self.factory.CreateMultiGeometry()
-+
-+ def testDefault(self):
-+ assert kmldom.AsObject(self.multigeometry)
-+ assert kmldom.AsGeometry(self.multigeometry)
-+ assert kmldom.AsMultiGeometry(self.multigeometry)
-+ assert not self.multigeometry.has_id() # Object-ness
-+ # MultiGeometry-ness
-+ assert 0 == self.multigeometry.get_geometry_array_size()
-+
-+
-+class SimpleOuterBoundaryIsTestCase(unittest.TestCase):
-+ """ TODO: This tests the OuterBoundaryIs element."""
-+
-+
-+class SimpleInnerBoundaryIsTestCase(unittest.TestCase):
-+ """ TODO: This tests the InnerBoundaryIs element."""
-+
-+
-+class SimplePolygonTestCase(unittest.TestCase):
-+ """ TODO: This tests the Polygon element."""
-+
-+class SimplePolyStyleTestCase(unittest.TestCase):
-+ """ This tests the PolyStyle element."""
-+
-+ def setUp(self):
-+ self.factory = kmldom.KmlFactory_GetFactory()
-+ self.polystyle = self.factory.CreatePolyStyle()
-+
-+ def testDefault(self):
-+ assert kmldom.AsObject(self.polystyle)
-+ assert kmldom.AsSubStyle(self.polystyle)
-+ assert kmldom.AsColorStyle(self.polystyle)
-+
-+ TestColorStyle(self.polystyle)
-+
-+ # PolyStyle fields
-+ # Verify default state of <fill>
-+ assert not self.polystyle.has_fill()
-+ # Set <fill> and verify get_ and has_
-+ fill = True
-+ self.polystyle.set_fill(fill)
-+ assert self.polystyle.has_fill()
-+ assert fill == self.polystyle.get_fill()
-+ # Clear <fill> and verify has_
-+ self.polystyle.clear_fill()
-+ assert not self.polystyle.has_fill()
-+
-+ # Verify default state of <outline>
-+ assert not self.polystyle.has_outline()
-+ # Set <outline> and verify get_ and has_
-+ outline = True
-+ self.polystyle.set_outline(outline)
-+ assert self.polystyle.has_outline()
-+ assert outline == self.polystyle.get_outline()
-+ # Clear <outline> and verify has_
-+ self.polystyle.clear_outline()
-+ assert not self.polystyle.has_outline()
-+
-+class SimpleResourceMapTestCase(unittest.TestCase):
-+ """ This tests the ResourceMap element."""
-+
-+ def setUp(self):
-+ self.factory = kmldom.KmlFactory_GetFactory()
-+ self.resourcemap = self.factory.CreateResourceMap()
-+
-+ def testDefault(self):
-+ assert kmldom.AsObject(self.resourcemap)
-+ assert kmldom.AsResourceMap(self.resourcemap)
-+ assert not self.resourcemap.has_id()
-+ assert 0 == self.resourcemap.get_alias_array_size()
-+
-+
-+class SimpleSchemaTestCase(unittest.TestCase):
-+ """ This tests the Schema element."""
-+
-+ def setUp(self):
-+ self.factory = kmldom.KmlFactory_GetFactory()
-+ self.schema = self.factory.CreateSchema()
-+
-+ def testDefault(self):
-+ assert kmldom.AsSchema(self.schema)
-+ assert not self.schema.has_name()
-+ assert not self.schema.has_id()
-+ assert 0 == self.schema.get_simplefield_array_size()
-+
-+
-+class SimpleSchemaDataTestCase(unittest.TestCase):
-+ """ This tests the SchemaData element."""
-+
-+ def setUp(self):
-+ self.factory = kmldom.KmlFactory_GetFactory()
-+ self.schemadata = self.factory.CreateSchemaData()
-+
-+ def testDefault(self):
-+ assert kmldom.AsObject(self.schemadata)
-+ assert kmldom.AsSchemaData(self.schemadata)
-+ assert not self.schemadata.has_schemaurl()
-+ assert "" == self.schemadata.get_schemaurl()
-+ assert not self.schemadata.has_id()
-+ assert 0 == self.schemadata.get_simpledata_array_size()
-+
-+
-+class SimpleSimpleFieldTestCase(unittest.TestCase):
-+ """ This tests the SimpleField element."""
-+
-+ def setUp(self):
-+ self.factory = kmldom.KmlFactory_GetFactory()
-+ self.simplefield = self.factory.CreateSimpleField()
-+
-+ def testDefault(self):
-+ assert kmldom.AsSimpleField(self.simplefield)
-+ assert not self.simplefield.has_type()
-+ assert not self.simplefield.has_name()
-+ assert not self.simplefield.has_displayname()
-+
-+
-+class SimpleStyleMapTestCase(unittest.TestCase):
-+ """ TODO: This tests the StyleMap element."""
-+
-+
-+class SimpleUpdateTestCase(unittest.TestCase):
-+ """ This tests the Update element."""
-+
-+ def setUp(self):
-+ self.factory = kmldom.KmlFactory_GetFactory()
-+ self.update = self.factory.CreateUpdate()
-+
-+ def testDefault(self):
-+ assert kmldom.AsUpdate(self.update)
-+ assert 0 == self.update.get_updateoperation_array_size()
-+
-+ def testTargetHref(self):
-+ assert not self.update.has_targethref()
-+ assert '' == self.update.get_targethref()
-+ href = 'mycoolhref'
-+ self.update.set_targethref(href)
-+ assert self.update.has_targethref()
-+ assert href == self.update.get_targethref()
-+
-+class SimpleStyleMapTestCase(unittest.TestCase):
-+ """ TODO: This tests the StyleMap element."""
-+
-+class SimpleIconStyleIconTestCase(unittest.TestCase):
-+ """ This tests the IconStyleIcon element."""
-+
-+ def setUp(self):
-+ self.factory = kmldom.KmlFactory_GetFactory()
-+ self.iconstyleicon= self.factory.CreateIconStyleIcon()
-+
-+ def testBasic(self):
-+ assert not self.iconstyleicon.has_href() # default state
-+ assert '' == self.iconstyleicon.get_href()
-+ href = 'http://blah.blah'
-+ self.iconstyleicon.set_href(href)
-+ assert self.iconstyleicon.has_href()
-+ assert href == self.iconstyleicon.get_href()
-+ self.iconstyleicon.clear_href()
-+ assert not self.iconstyleicon.has_href() # back in default state
-+ assert '' == self.iconstyleicon.get_href()
-+
-+class GxExtensionsTestCase(unittest.TestCase):
-+ """ This tests the gx: elements extended by Google Earth 5.0
-+ These are basic subsets of the full suite of tests in the main
-+ C++ code and verify the basic operation of the API """
-+
-+ def setUp(self):
-+ self.factory = kmldom.KmlFactory_GetFactory()
-+
-+ # Feature's gx:balloonVisibility.
-+ def testGxBalloonVisibility(self):
-+ placemark = self.factory.CreatePlacemark()
-+ assert not placemark.has_gx_balloonvisibility()
-+ assert False == placemark.get_gx_balloonvisibility()
-+ placemark.set_gx_balloonvisibility(True)
-+ assert placemark.has_gx_balloonvisibility()
-+ assert True == placemark.get_gx_balloonvisibility()
-+ expected = (
-+ '<Placemark>\n'
-+ ' <gx:balloonVisibility>1</gx:balloonVisibility>\n'
-+ '</Placemark>\n')
-+ assert expected == kmldom.SerializePretty(placemark)
-+
-+ # <gx:TimeStamp> and <gx:TimeSpan> in AbstractView.
-+ def testGxTimePrimitives(self):
-+ lookat = self.factory.CreateLookAt()
-+ assert not lookat.has_gx_timeprimitive()
-+ assert None == lookat.get_gx_timeprimitive()
-+ timespan = self.factory.CreateGxTimeSpan()
-+ lookat.set_gx_timeprimitive(timespan)
-+ assert lookat.has_gx_timeprimitive()
-+ expected_lookat = (
-+ '<LookAt>\n'
-+ ' <gx:TimeSpan/>\n'
-+ '</LookAt>\n')
-+ assert expected_lookat == kmldom.SerializePretty(lookat)
-+
-+ camera = self.factory.CreateCamera()
-+ assert not camera.has_gx_timeprimitive()
-+ assert None == camera.get_gx_timeprimitive()
-+ timestamp = self.factory.CreateGxTimeStamp()
-+ camera.set_gx_timeprimitive(timestamp)
-+ assert camera.has_gx_timeprimitive()
-+ expected_camera = (
-+ '<Camera>\n'
-+ ' <gx:TimeStamp/>\n'
-+ '</Camera>\n')
-+ assert expected_camera == kmldom.SerializePretty(camera)
-+
-+ # <gx:altitudeMode>clampToSeaFloor|relativeToSeaFloor.
-+ def testGxAltitudeModes(self):
-+ llab = self.factory.CreateLatLonAltBox()
-+ assert not llab.has_gx_altitudemode()
-+ assert kmldom.GX_ALTITUDEMODE_CLAMPTOSEAFLOOR == llab.get_gx_altitudemode()
-+ altmode_rel = kmldom.GX_ALTITUDEMODE_RELATIVETOSEAFLOOR
-+ llab.set_gx_altitudemode(altmode_rel)
-+ assert llab.has_gx_altitudemode()
-+ assert altmode_rel == llab.get_gx_altitudemode()
-+ expected = (
-+ '<LatLonAltBox>\n'
-+ ' <gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>\n'
-+ '</LatLonAltBox>\n')
-+ assert expected == kmldom.SerializePretty(llab)
-+ # TODO: Camera, GroundOverlay, LineString, LineStyle, LinearRing, LookAt,
-+ # Model, Point, Polygon.
-+
-+ # <gx:LatLonQuad>
-+ def testGxLatLonQuad(self):
-+ groundoverlay = self.factory.CreateGroundOverlay()
-+ assert False == groundoverlay.has_gx_latlonquad()
-+ assert None == groundoverlay.get_gx_latlonquad()
-+ llq = self.factory.CreateGxLatLonQuad()
-+ coords = self.factory.CreateCoordinates()
-+ llq.set_coordinates(coords)
-+ groundoverlay.set_gx_latlonquad(llq)
-+ assert True == groundoverlay.has_gx_latlonquad()
-+ expected = (
-+ '<GroundOverlay>\n'
-+ ' <gx:LatLonQuad>\n'
-+ ' <coordinates/>\n'
-+ ' </gx:LatLonQuad>\n'
-+ '</GroundOverlay>\n')
-+ assert expected == kmldom.SerializePretty(groundoverlay)
-+
-+ # <gx:Tour>
-+ def testGxTour(self):
-+ tour = self.factory.CreateGxTour()
-+ assert not tour.has_gx_playlist()
-+ assert None == tour.get_gx_playlist()
-+ tour.set_gx_playlist(self.factory.CreateGxPlaylist())
-+ assert tour.has_gx_playlist()
-+
-+ # <gx:Playlist>
-+ def testGxPlaylist(self):
-+ playlist = self.factory.CreateGxPlaylist()
-+ assert 0 == playlist.get_gx_tourprimitive_array_size()
-+ playlist.add_gx_tourprimitive(self.factory.CreateGxFlyTo())
-+ assert 1 == playlist.get_gx_tourprimitive_array_size()
-+
-+ # <gx:AnimatedUpdate>
-+ def testGxAnimatedUpdate(self):
-+ animatedupdate = self.factory.CreateGxAnimatedUpdate()
-+ assert False == animatedupdate.has_gx_duration()
-+ assert 0.0 == animatedupdate.get_gx_duration()
-+ animatedupdate.set_gx_duration(1.0)
-+ assert animatedupdate.has_gx_duration()
-+ assert 1.0 == animatedupdate.get_gx_duration()
-+
-+ assert False == animatedupdate.has_update()
-+ assert None == animatedupdate.get_update()
-+ animatedupdate.set_update(self.factory.CreateUpdate())
-+ assert animatedupdate.has_update()
-+
-+ # <gx:FlyTo>
-+ def testGxFlyTo(self):
-+ flyto = self.factory.CreateGxFlyTo()
-+ assert False == flyto.has_gx_duration()
-+ assert 0.0 == flyto.get_gx_duration()
-+ flyto.set_gx_duration(1.0)
-+ assert flyto.has_gx_duration()
-+ assert 1.0 == flyto.get_gx_duration()
-+
-+ assert False == flyto.has_gx_flytomode()
-+ assert kmldom.GX_FLYTOMODE_BOUNCE == flyto.get_gx_flytomode()
-+ flyto.set_gx_flytomode(kmldom.GX_FLYTOMODE_SMOOTH)
-+ assert flyto.has_gx_flytomode()
-+ assert kmldom.GX_FLYTOMODE_SMOOTH == flyto.get_gx_flytomode()
-+
-+ # <gx:Wait>
-+ def testGxWait(self):
-+ wait = self.factory.CreateGxWait()
-+ assert False == wait.has_gx_duration()
-+ assert 0.0 == wait.get_gx_duration()
-+ wait.set_gx_duration(1.0)
-+ assert wait.has_gx_duration()
-+ assert 1.0 == wait.get_gx_duration()
-+
-+ # <gx:SoundCue>
-+ def testGxSoundCue(self):
-+ soundcue = self.factory.CreateGxSoundCue()
-+ assert False == soundcue.has_href()
-+ assert '' == soundcue.get_href()
-+ href = 'some href'
-+ soundcue.set_href(href)
-+ assert soundcue.has_href()
-+ assert href == soundcue.get_href()
-+
-+ # <gx:TourControl>
-+ def testGxTourControl(self):
-+ tourcontrol = self.factory.CreateGxTourControl()
-+ assert False == tourcontrol.has_gx_playmode()
-+ assert kmldom.GX_PLAYMODE_PAUSE == tourcontrol.get_gx_playmode()
-+ tourcontrol.set_gx_playmode(kmldom.GX_PLAYMODE_PAUSE)
-+ assert tourcontrol.has_gx_playmode()
-+ assert kmldom.GX_PLAYMODE_PAUSE == tourcontrol.get_gx_playmode()
-+
-+ # Parse and serialization of gx:Tour and friends.
-+ def testGxTourParseSerialize(self):
-+ kml = (
-+ '<gx:Tour>'
-+ '<gx:Playlist>'
-+ '<gx:SoundCue><href>x</href></gx:SoundCue>'
-+ '<gx:FlyTo>'
-+ '<gx:duration>1.0</gx:duration>'
-+ '</gx:FlyTo>'
-+ '<gx:AnimatedUpdate>'
-+ '<gx:duration>2.0</gx:duration>'
-+ '<Update/>'
-+ '</gx:AnimatedUpdate>'
-+ '<gx:TourControl><gx:playMode>pause</gx:playMode></gx:TourControl>'
-+ '<gx:Wait><gx:duration>3.0</gx:duration></gx:Wait>'
-+ '</gx:Playlist>'
-+ '</gx:Tour>')
-+ assert kmldom.ParseKml(kml)
-+ assert kmldom.AsGxTour(kmldom.ParseKml(kml))
-+ tour = kmldom.AsGxTour(kmldom.ParseKml(kml))
-+ assert tour.has_gx_playlist()
-+ playlist = tour.get_gx_playlist()
-+ assert 5 == playlist.get_gx_tourprimitive_array_size()
-+ soundcue = kmldom.AsGxSoundCue(playlist.get_gx_tourprimitive_array_at(0))
-+ assert soundcue
-+ assert soundcue.has_href()
-+ assert 'x' == soundcue.get_href()
-+ flyto = kmldom.AsGxFlyTo(playlist.get_gx_tourprimitive_array_at(1))
-+ assert flyto
-+ assert flyto.has_gx_duration()
-+ assert 1.0 == flyto.get_gx_duration()
-+ au = kmldom.AsGxAnimatedUpdate(playlist.get_gx_tourprimitive_array_at(2))
-+ assert au
-+ assert au.has_gx_duration()
-+ assert 2.0 == au.get_gx_duration()
-+ assert au.has_update()
-+ assert kmldom.AsUpdate(au.get_update())
-+ tc = kmldom.AsGxTourControl(playlist.get_gx_tourprimitive_array_at(3))
-+ assert tc
-+ assert tc.has_gx_playmode()
-+ assert kmldom.GX_PLAYMODE_PAUSE == tc.get_gx_playmode()
-+ wait = kmldom.AsGxWait(playlist.get_gx_tourprimitive_array_at(4))
-+ assert wait
-+ assert wait.has_gx_duration()
-+ assert 3.0 == wait.get_gx_duration()
-+
-+class ItemIconTestCase(unittest.TestCase):
-+ """ This verifies the behavior of ItemIcon and its children """
-+
-+ def setUp(self):
-+ self.factory = kmldom.KmlFactory_GetFactory()
-+ self.itemicon = self.factory.CreateItemIcon()
-+
-+ def testDefaults(self):
-+ assert not self.itemicon.has_state()
-+ assert 1 == self.itemicon.get_state_array_size()
-+ assert kmldom.ITEMICONSTATE_OPEN == self.itemicon.get_state_array_at(0)
-+ assert not self.itemicon.has_href()
-+ assert "" == self.itemicon.get_href()
-+
-+ def testState(self):
-+ state_open = kmldom.ITEMICONSTATE_OPEN
-+ state_error = kmldom.ITEMICONSTATE_ERROR
-+ state_fetching0 = kmldom.ITEMICONSTATE_FETCHING0
-+
-+ self.itemicon.clear_state()
-+ assert 0 == self.itemicon.get_state_array_size()
-+ self.itemicon.add_state(state_error)
-+ assert 1 == self.itemicon.get_state_array_size()
-+ assert state_error == self.itemicon.get_state_array_at(0)
-+ self.itemicon.add_state(state_fetching0)
-+ assert 2 == self.itemicon.get_state_array_size()
-+ assert state_fetching0 == self.itemicon.get_state_array_at(1)
-+
-+
-+def suite():
-+ suite = unittest.TestSuite()
-+ suite.addTest(VerySimpleParseTestCase())
-+ suite.addTest(VerySimpleSerializeTestCase())
-+ suite.addTest(SimpleFactoryTestCase())
-+ suite.addTest(FactoryCreateElementByIdTestCase())
-+ suite.addTest(VerySimpleCastTestCase())
-+ suite.addTest(VerySimpleSimpleChildTestCase())
-+ suite.addTest(VerySimpleComplexChildTestCase())
-+ suite.addTest(SimpleAtomAuthorTestCase('testDefault'))
-+ suite.addTest(SimpleAtomAuthorTestCase('testSetClear'))
-+ suite.addTest(SimpleAtomLinkTestCase('testDefault'))
-+ suite.addTest(SimpleAtomLinkTestCase('testSetClear'))
-+ suite.addTest(SimpleCoordinatesTestCase())
-+ suite.addTest(SimpleVec2TestCase())
-+ suite.addTest(SimpleObjectTestCase())
-+ suite.addTest(SimpleFeatureTestCase())
-+ suite.addTest(SimpleFeatureTestCase('testParseAtom'))
-+ suite.addTest(SimpleRegionTestCase())
-+ suite.addTest(SimpleParseTestCase('testBasic'))
-+ suite.addTest(SimpleSerializePrettyTestCase('testBasic'))
-+ suite.addTest(SimpleSerializeRawTestCase('testBasic'))
-+ suite.addTest(SimpleExtendedDataTestCase('testDefault'))
-+ suite.addTest(DataTestCase('testDefault'))
-+ suite.addTest(SimpleDataTestCase('testDefault'))
-+ suite.addTest(SimpleIconStyleTestCase('testDefault'))
-+ suite.addTest(SimpleKmlTestCase('testDefault'))
-+ suite.addTest(SimpleKmlTestCase('testSetClear'))
-+ suite.addTest(SimpleNetworkLinkControlTestCase('testDefault'))
-+ suite.addTest(SimpleNetworkLinkControlTestCase('testSetClear'))
-+ suite.addTest(SimpleLabelStyleTestCase('testDefault'))
-+ suite.addTest(SimpleLineStyleTestCase('testDefault'))
-+ suite.addTest(SimpleListStyleTestCase('testDefault'))
-+ suite.addTest(SimplePhotoOverlayTestCase('testDefault'))
-+ suite.addTest(SimplePlacemarkTestCase('testDefault'))
-+ suite.addTest(SimplePlacemarkTestCase('testName'))
-+ suite.addTest(SimplePolyStyleTestCase('testDefault'))
-+ suite.addTest(SimpleLatLonBoxTestCase('testDefault'))
-+ suite.addTest(SimpleLatLonBoxTestCase('testSetClear'))
-+ suite.addTest(SimpleLinkTestCase('testDefault'))
-+ suite.addTest(SimpleLinkTestCase('testSetClear'))
-+ suite.addTest(SimpleChangeTestCase('testDefault'))
-+ suite.addTest(SimpleChangeTestCase('testAddOneObject'))
-+ suite.addTest(SimpleChangeTestCase('testAddNObjects'))
-+ suite.addTest(SimpleCreateTestCase('testDefault'))
-+ suite.addTest(SimpleCreateTestCase('testAddOneContainer'))
-+ suite.addTest(SimpleCreateTestCase('testAddNContainers'))
-+ suite.addTest(SimpleDeleteTestCase('testAddOneFeature'))
-+ suite.addTest(SimpleDeleteTestCase('testAddNFeatures'))
-+ suite.addTest(SimpleDocumentTestCase('testDefault'))
-+ suite.addTest(SimpleResourceMapTestCase('testDefault'))
-+ suite.addTest(SimpleMultiGeometryTestCase('testDefault'))
-+ suite.addTest(SimpleSchemaTestCase('testDefault'))
-+ suite.addTest(SimpleSchemaDataTestCase('testDefault'))
-+ suite.addTest(SimpleSimpleFieldTestCase('testDefault'))
-+ suite.addTest(SimpleUpdateTestCase('testDefault'))
-+ suite.addTest(SimpleUpdateTestCase('testTargetHref'))
-+ suite.addTest(SimpleIconStyleIconTestCase('testBasic'))
-+ suite.addTest(GxExtensionsTestCase('testGxBalloonVisibility'))
-+ suite.addTest(GxExtensionsTestCase('testGxTimePrimitives'))
-+ suite.addTest(GxExtensionsTestCase('testGxAltitudeModes'))
-+ suite.addTest(GxExtensionsTestCase('testGxLatLonQuad'))
-+ suite.addTest(GxExtensionsTestCase('testGxTour'))
-+ suite.addTest(GxExtensionsTestCase('testGxPlaylist'))
-+ suite.addTest(GxExtensionsTestCase('testGxAnimatedUpdate'))
-+ suite.addTest(GxExtensionsTestCase('testGxFlyTo'))
-+ suite.addTest(GxExtensionsTestCase('testGxWait'))
-+ suite.addTest(GxExtensionsTestCase('testGxSoundCue'))
-+ suite.addTest(GxExtensionsTestCase('testGxTourControl'))
-+ suite.addTest(GxExtensionsTestCase('testGxTourParseSerialize'))
-+ suite.addTest(ItemIconTestCase('testDefaults'))
-+ suite.addTest(ItemIconTestCase('testState'))
-+ return suite
-+
-+
-+runner = unittest.TextTestRunner()
-+runner.run(suite())
---- /dev/null
-+++ b/tests/swig/kmlengine_test.py
-@@ -0,0 +1,283 @@
-+#!/usr/bin/env python
-+
-+# 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 contains unit tests for the KML Engine Python SWIG bindings.
-+"""
-+
-+import unittest
-+import kmldom
-+import kmlengine
-+
-+# These VerySimple tests really only verify that the function/class exists.
-+
-+class VerySimpleKmlDomTestCase(unittest.TestCase):
-+ """ Verify very simple KML DOM usage """
-+ def runTest(self):
-+ factory = kmldom.KmlFactory_GetFactory()
-+ placemark = factory.CreatePlacemark()
-+ name = 'hi'
-+ placemark.set_name(name)
-+ assert name == placemark.get_name()
-+
-+class VerySimpleBboxTestCase(unittest.TestCase):
-+ """ Verify very simple usage of class Bbox """
-+ def runTest(self):
-+ bbox = kmlengine.Bbox(38, 36, -120, -122)
-+ assert bbox.Contains(37, -121)
-+
-+class AllMethodsBboxTestCase(unittest.TestCase):
-+ """ Verify basic usage of each method of kmlengine.Bbox """
-+ def runTest(self):
-+ bbox = kmlengine.Bbox()
-+ assert -180.0 == bbox.get_north()
-+ assert 180.0 == bbox.get_south()
-+ assert -180.0 == bbox.get_east()
-+ assert 180.0 == bbox.get_west()
-+
-+ bbox_a = kmlengine.Bbox(10.1, -11.2, 99.99, -88.88)
-+ bbox.ExpandFromBbox(bbox_a)
-+ assert 10.1 == bbox.get_north()
-+ assert -11.2 == bbox.get_south()
-+ assert 99.99 == bbox.get_east()
-+ assert -88.88 == bbox.get_west()
-+
-+ bbox.ExpandLatitude(20.2)
-+ assert 20.2 == bbox.get_north()
-+ assert -11.2 == bbox.get_south()
-+ bbox.ExpandLatitude(-20.2)
-+ assert 20.2 == bbox.get_north()
-+ assert -20.2 == bbox.get_south()
-+ bbox.ExpandLongitude(101.101)
-+ assert 101.101 == bbox.get_east()
-+ assert -88.88 == bbox.get_west()
-+ bbox.ExpandLongitude(-101.101)
-+ assert 101.101 == bbox.get_east()
-+ assert -101.101 == bbox.get_west()
-+
-+ bbox.ExpandLatLon(30.3, -111.222);
-+ assert 30.3 == bbox.get_north()
-+ assert -20.2 == bbox.get_south()
-+ assert 101.101 == bbox.get_east()
-+ assert -111.222 == bbox.get_west()
-+
-+class VerySimpleCloneTestCase(unittest.TestCase):
-+ """ Verify very simple usage of Clone() """
-+ def runTest(self):
-+ factory = kmldom.KmlFactory_GetFactory()
-+ placemark = factory.CreatePlacemark()
-+ name = 'hi'
-+ placemark.set_name(name)
-+ clone_element = kmlengine.Clone(placemark)
-+ assert clone_element
-+ clone_placemark = kmldom.AsPlacemark(clone_element)
-+ assert clone_placemark
-+ assert name == clone_placemark.get_name()
-+ # Change the name in the original
-+ new_name = 'new name'
-+ placemark.set_name(new_name)
-+ # Verify that the clone still has the old name
-+ assert name == clone_placemark.get_name()
-+
-+class VerySimpleGetFeatureLatLonTestCase(unittest.TestCase):
-+ def runTest(self):
-+ kml = '<Placemark>' \
-+ '<Point><coordinates>1,2,3</coordinates></Point>' \
-+ '</Placemark>'
-+ element = kmldom.ParseKml(kml)
-+ assert element
-+ feature = kmldom.AsFeature(element)
-+ assert feature
-+ status,lat,lon = kmlengine.GetFeatureLatLon(feature)
-+ assert True == status
-+ assert 1 == lon
-+ assert 2 == lat
-+
-+class VerySimpleGetFeatureBoundsTestCase(unittest.TestCase):
-+ def runTest(self):
-+ kml = '<Placemark>' \
-+ '<LineString><coordinates>1,2 -1,-2</coordinates></LineString>' \
-+ '</Placemark>'
-+ element = kmldom.ParseKml(kml)
-+ assert element
-+ feature = kmldom.AsFeature(element)
-+ assert feature
-+ bbox = kmlengine.Bbox()
-+ status = kmlengine.GetFeatureBounds(feature, bbox)
-+ assert status
-+ assert 2 == bbox.get_north()
-+ assert -2 == bbox.get_south()
-+ assert 1 == bbox.get_east()
-+ assert -1 == bbox.get_west()
-+
-+class VerySimpleGetRootFeatureTestCase(unittest.TestCase):
-+ """ Verify very simple usage of GetRootFeature() """
-+ def runTest(self):
-+ factory = kmldom.KmlFactory_GetFactory()
-+ placemark = factory.CreatePlacemark()
-+ feature = kmlengine.GetRootFeature(placemark)
-+ assert feature
-+ assert kmldom.AsPlacemark(feature)
-+
-+class VerySimpleKmzSplitTestCase(unittest.TestCase):
-+ def runTest(self):
-+ kml_url = 'http://foo.com/goo.kmz/bar.jpg'
-+ status,kmz_url,kmz_path = kmlengine.KmzSplit(kml_url)
-+ assert True == status
-+ assert 'http://foo.com/goo.kmz' == kmz_url
-+ assert 'bar.jpg' == kmz_path
-+
-+class VerySimpleSplitUriTestCase(unittest.TestCase):
-+ def runTest(self):
-+ status,scheme,host,port,path,query,fragment = \
-+ kmlengine.SplitUri('http://host.com:82/a/b/c.kml?p=q#id')
-+ assert True == status
-+ assert 'http' == scheme
-+ assert 'host.com' == host
-+ assert 'a/b/c.kml' == path
-+ assert 'p=q' == query
-+ assert 'id' == fragment
-+
-+class BasicKmlFileCreateFromParseTestCase(unittest.TestCase):
-+ """ Verify very simple usage of the KmlFile::CreateFromParse() method """
-+ def runTest(self):
-+ id = 'pm123'
-+ kml = '<Placemark id="%s"><name>hello</name></Placemark>' % id
-+ kmlfile,errors = kmlengine.KmlFile.CreateFromParse(kml)
-+ assert kmlfile
-+ object = kmlfile.GetObjectById(id)
-+ assert object
-+ placemark = kmldom.AsPlacemark(object)
-+ assert placemark
-+ assert placemark.has_id()
-+ assert id == placemark.get_id()
-+
-+class KmlFileCreateFromParseOfBasicElementTestCase(unittest.TestCase):
-+ def runTest(self):
-+ kmlfile,errors = kmlengine.KmlFile.CreateFromParse('<kml/>')
-+ assert kmlfile
-+ root = kmlfile.get_root()
-+ assert kmldom.Type_kml == root.Type()
-+
-+class BasicKmlFileCreateFromImportTestCase(unittest.TestCase):
-+ def runTest(self):
-+ factory = kmldom.KmlFactory_GetFactory()
-+ placemark = factory.CreatePlacemark()
-+ id = 'placemark123'
-+ name = 'some name'
-+ placemark.set_id(id)
-+ placemark.set_name(name)
-+ folder = factory.CreateFolder()
-+ folder.add_feature(placemark)
-+ kmlfile = kmlengine.KmlFile.CreateFromImport(folder)
-+ assert kmlfile
-+ object = kmlfile.GetObjectById(id)
-+ assert object
-+ placemark = kmldom.AsPlacemark(object)
-+ assert placemark
-+ assert placemark.has_id()
-+ assert id == placemark.get_id()
-+ assert placemark.has_name()
-+ assert name == placemark.get_name()
-+
-+class KmlFileCreateFromImportOfBasicElementTestCase(unittest.TestCase):
-+ def runTest(self):
-+ factory = kmldom.KmlFactory_GetFactory()
-+ # TODO: This crashes CreateFromImport as do all non-Object complex elements
-+ # kml = factory.CreateKml()
-+ # This returns an ElementPtr for the given element and works fine in
-+ # CreateFromImport:
-+ kml_as_element = factory.CreateElementById(kmldom.Type_kml)
-+ kml = kmldom.AsKml(kml_as_element)
-+ kml.set_feature(factory.CreatePlacemark())
-+ kmlfile = kmlengine.KmlFile.CreateFromImport(kml_as_element)
-+ assert kmlfile
-+ root = kmlfile.get_root()
-+ assert root
-+ kml = kmldom.AsKml(root)
-+ assert kml
-+ assert kml.has_feature()
-+ placemark = kmldom.AsPlacemark(kml.get_feature())
-+ assert placemark
-+
-+class BasicKmlFileSerializeToStringTestCase(unittest.TestCase):
-+ def runTest(self):
-+ factory = kmldom.KmlFactory_GetFactory()
-+ kml = factory.CreateElementById(kmldom.Type_kml)
-+ assert kml
-+ kmlfile = kmlengine.KmlFile.CreateFromImport(kml)
-+ assert kmlfile
-+ (ok, xml) = kmlfile.SerializeToString()
-+ assert ok
-+ kExpectedXml = '<?xml version="1.0" encoding="utf-8"?>\n' \
-+ '<kml xmlns="http://www.opengis.net/kml/2.2"/>\n'
-+ assert kExpectedXml == xml
-+
-+class BasicKmzFileTestCase(unittest.TestCase):
-+ def runTest(self):
-+ kmz_filepath = '../../testdata/kmz/model-macky.kmz'
-+ kmzfile = kmlengine.KmzFile.OpenFromFile(kmz_filepath)
-+ assert kmzfile
-+ (ok, kml) = kmzfile.ReadKml()
-+ assert ok
-+ (kmlfile,errors) = kmlengine.KmlFile.CreateFromParse(kml)
-+ assert kmlfile
-+ root = kmldom.AsKml(kmlfile.get_root())
-+ assert root
-+ placemark = kmldom.AsPlacemark(root.get_feature())
-+ assert placemark
-+ assert 'SketchUp Model of Macky Auditorium' == placemark.get_name()
-+ assert placemark.has_geometry()
-+ model = kmldom.AsModel(placemark.get_geometry())
-+ assert model
-+ assert 'model_4' == model.get_id()
-+ (ok, dae) = kmzfile.ReadFile('geometry/CU-Macky.dae')
-+ assert ok
-+ assert 268477 == len(dae)
-+
-+def suite():
-+ suite = unittest.TestSuite()
-+ suite.addTest(VerySimpleKmlDomTestCase())
-+ suite.addTest(VerySimpleBboxTestCase())
-+ suite.addTest(AllMethodsBboxTestCase())
-+ suite.addTest(VerySimpleCloneTestCase())
-+ suite.addTest(VerySimpleGetRootFeatureTestCase())
-+ suite.addTest(VerySimpleGetFeatureLatLonTestCase())
-+ suite.addTest(VerySimpleGetFeatureBoundsTestCase())
-+ suite.addTest(VerySimpleKmzSplitTestCase())
-+ suite.addTest(VerySimpleSplitUriTestCase())
-+ suite.addTest(KmlFileCreateFromParseOfBasicElementTestCase())
-+ suite.addTest(BasicKmlFileCreateFromParseTestCase())
-+ suite.addTest(BasicKmlFileCreateFromImportTestCase())
-+ suite.addTest(KmlFileCreateFromImportOfBasicElementTestCase())
-+ suite.addTest(BasicKmlFileSerializeToStringTestCase())
-+ suite.addTest(BasicKmzFileTestCase())
-+ return suite
-+
-+
-+runner = unittest.TextTestRunner()
-+runner.run(suite())
---- a/src/swig/KmlBaseTest.java
-+++ /dev/null
-@@ -1,92 +0,0 @@
--// Copyright 2009, 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 is a small subset of the python tests to ensure sanity of the basic
--// Java bindings.
--
--import org.junit.*;
--import static org.junit.Assert.*;
--
--import com.googlecode.libkml.*;
--
--public class KmlBaseTest {
--
-- static {
-- try {
-- System.loadLibrary("kmlbase_swig_java");
-- } catch (UnsatisfiedLinkError e) {
-- System.err.println("Failed to load kmlbase. " + e);
-- System.err.println("Make sure you have your classpath set correctly " +
-- "and that LD_LIBRARY_PATH can see " +
-- "libkmldom_swig_java and friends");
-- System.exit(1);
-- }
-- }
--
-- @Test public void testBasicAttributes() {
-- Attributes attributes = new Attributes();
-- assertEquals(0, attributes.GetSize());
-- }
--
-- @Test public void testBasicColor32() {
-- Color32 color = new Color32();
-- long expected = 0xffffffffL;
-- assertEquals(expected, color.get_color_abgr());
--
-- long red = 0xff0000ffL;
-- color = new Color32(red);
-- assertEquals(red, color.get_color_abgr());
--
-- String red_str = "ff0000ff";
-- color = new Color32(red_str);
-- assertEquals(red, color.get_color_abgr());
-- }
--
-- @Test public void testBasicDateTime() {
-- String when = "2008-10-03T09:25:42Z";
-- DateTime datetime = DateTime.Create(when);
-- assertEquals(1223025942, datetime.GetTimeT());
-- assertEquals("09:25:42", datetime.GetXsdTime());
-- assertEquals("2008-10-03", datetime.GetXsdDate());
-- assertEquals(when, datetime.GetXsdDateTime());
-- }
--
-- @Test public void testBasicVec3() {
-- double latitude = 38.12345;
-- double longitude = -121.123123;
-- double altitude = 9876.5432;
-- Vec3 vec3 = new Vec3(longitude, latitude, altitude);
-- assertEquals(latitude, vec3.get_latitude(), 0.000001);
-- assertEquals(longitude, vec3.get_longitude(), 0.000001);
-- assertTrue(vec3.has_altitude());
-- assertEquals(altitude, vec3.get_altitude(), 0.000001);
-- vec3 = new Vec3(longitude, latitude);
-- assertEquals(latitude, vec3.get_latitude(), 0.000001);
-- assertEquals(longitude, vec3.get_longitude(), 0.000001);
-- assertFalse(vec3.has_altitude());
-- }
--
--}
--
---- a/src/swig/kmlbase.i
-+++ b/src/swig/kmlbase.i
-@@ -1,9 +1,9 @@
- // Copyright 2008, Google Inc. All rights reserved.
- //
--// Redistribution and use in source and binary forms, with or without
-+// 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,
-+// 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
-@@ -13,19 +13,21 @@
- // 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
-+// 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,
-+// 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
-+// 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 is the SWIG interface file for the KML Base module.
- // This was developed with SWIG version 1.3.35.
-
-+//%rename(__set__) *::operator=;
-+//%rename(__getitem__) *::operator[];
- %module kmlbase
-
- // Include the headers needed to build kmlengine_wrap.cc.
-@@ -52,6 +54,8 @@
- %apply std::string* OUTPUT { std::string* output_value };
- %apply std::string* OUTPUT { std::string* output_key };
-
-+
-+
- typedef long time_t;
-
- namespace kmlbase {
-@@ -64,6 +68,8 @@ class Attributes {
- void SetString(const std::string& attr_name, const std::string& attr_val);
- };
-
-+%rename(Color32_op_equal) Color32::operator==;
-+
- class Color32 {
- public:
- Color32();
-@@ -88,6 +94,7 @@ class Color32 {
- unsigned char g, unsigned char r);
- void set_color_argb(uint32_t color_argb);
- bool operator==(const Color32& color) const;
-+
- // TODO: other operator overrides.
- };
-
---- a/src/swig/kmlbase_test.py
-+++ /dev/null
-@@ -1,161 +0,0 @@
--#!/usr/bin/env python
--
--# 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 contains unit tests for the KML Base Python SWIG bindings.
--"""
--
--import unittest
--import kmlbase
--
--# These VerySimple tests really only verify that the function/class exists.
--# Based on kml/base/color32_test.cc.
--
--class BasicAttributesTestCase(unittest.TestCase):
-- def runTest(self):
-- attributes = kmlbase.Attributes()
-- assert 0 == attributes.GetSize()
-- found,value = attributes.FindValue("key")
-- assert not found
-- found,key = attributes.FindKey("value")
-- assert not found
--
--class BasicColor32TestCase(unittest.TestCase):
-- """Verify very simple Color32 usage """
-- def runTest(self):
-- # Default construction.
-- color = kmlbase.Color32()
-- assert 0xffffffff == color.get_color_abgr()
--
-- # Construction from specific color.
-- red = 0xff0000ff
-- color = kmlbase.Color32(red)
-- assert red == color.get_color_abgr()
--
-- # Construction from RGBA chars.
-- A = 0xff
-- B = 0x00
-- G = 0x00
-- R = 0xff
-- color = kmlbase.Color32(A, B, G, R)
-- assert red == color.get_color_abgr()
--
-- # Construction from string.
-- red_str = "ff0000ff"
-- color = kmlbase.Color32(red_str)
-- assert red == color.get_color_abgr()
--
-- # Bad construction.
-- nonsense = "This isn't even close to a color value"
-- color = kmlbase.Color32(nonsense)
-- assert "00000000" == color.to_string_abgr()
--
-- # Getters in default state.
-- color = kmlbase.Color32()
-- kFF = 0xff
--
-- assert kFF == color.get_alpha()
-- assert kFF == color.get_blue()
-- assert kFF == color.get_green()
-- assert kFF == color.get_red()
--
-- # Verify getters of newly set state.
-- kAB = 0xab
-- color.set_alpha(kAB)
-- color.set_blue(kAB)
-- color.set_green(kAB)
-- color.set_red(kAB)
-- assert kAB == color.get_alpha()
-- assert kAB == color.get_blue()
-- assert kAB == color.get_green()
-- assert kAB == color.get_red()
--
-- # Verify get_color_abgr and get_color_rgba.
-- kOpaqueGreen = 0xff00ff00
-- color = kmlbase.Color32(kOpaqueGreen)
-- assert kOpaqueGreen == color.get_color_abgr()
-- kOpaqueGreenARGB = 0xff00ff00
-- assert kOpaqueGreenARGB == color.get_color_argb()
--
-- # Verify reconstruction to AABBGGRR string.
-- kOpaqueRedStr = "ff0000ff"
-- color = kmlbase.Color32(kOpaqueRedStr);
-- assert kOpaqueRedStr == color.to_string_abgr()
--
-- # Verify to_argb_string.
-- assert kOpaqueRedStr == color.to_string_abgr()
-- kOpaqueRedStr_argb = "ffff0000"
-- assert kOpaqueRedStr_argb == color.to_string_argb()
--
-- # Equality operator.
-- red = kmlbase.Color32(kOpaqueRedStr)
-- green = kmlbase.Color32(kOpaqueGreen)
-- assert red == red
-- assert green != red
--
--class BasicDateTimeTestCase(unittest.TestCase):
-- def runTest(self):
-- kWhen = "2008-10-03T09:25:42Z"
-- datetime = kmlbase.DateTime_Create(kWhen)
-- assert datetime
-- assert 1223025942 == datetime.GetTimeT()
-- assert "09:25:42" == datetime.GetXsdTime()
-- assert "2008-10-03" == datetime.GetXsdDate()
-- assert kWhen == datetime.GetXsdDateTime()
--
--class BasicVec3TestCase(unittest.TestCase):
-- def runTest(self):
-- kLatitude = 38.12345
-- kLongitude = -121.123123
-- kAltitude = 9876.5432
-- vec3 = kmlbase.Vec3(kLongitude, kLatitude, kAltitude)
-- assert vec3
-- assert kLatitude == vec3.get_latitude()
-- assert kLongitude == vec3.get_longitude()
-- assert vec3.has_altitude()
-- assert kAltitude == vec3.get_altitude()
-- vec3 = kmlbase.Vec3(kLongitude, kLatitude)
-- assert vec3
-- assert kLatitude == vec3.get_latitude()
-- assert kLongitude == vec3.get_longitude()
-- assert not vec3.has_altitude()
--
--class BasicVersionTestCase(unittest.TestCase):
-- def runTest(self):
-- assert "1.3.0" == kmlbase.Version_GetString()
--
--def suite():
-- suite = unittest.TestSuite()
-- suite.addTest(BasicAttributesTestCase())
-- suite.addTest(BasicColor32TestCase())
-- suite.addTest(BasicDateTimeTestCase())
-- suite.addTest(BasicVec3TestCase())
-- suite.addTest(BasicVersionTestCase())
-- return suite
--
--runner = unittest.TextTestRunner()
--runner.run(suite())
---- a/src/swig/kmldom_test.py
-+++ /dev/null
-@@ -1,1655 +0,0 @@
--#!/usr/bin/env python
--
--# 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 contains unit tests for the KML DOM Python SWIG bindings.
--"""
--
--import unittest
--import kmlbase
--import kmldom
--
--
--class VerySimpleParseTestCase(unittest.TestCase):
-- """ This simply verifies the existence of the binding to ParseKml() """
--
-- def runTest(self):
-- assert kmldom.ParseKml('<kml/>')
--
--
--class VerySimpleSerializeTestCase(unittest.TestCase):
-- """ This verifies the existence of the binding to SerializeRaw() """
--
-- def runTest(self):
-- kml = '<kml/>'
-- assert kml == kmldom.SerializeRaw(kmldom.ParseKml(kml))
--
--
--class SimpleFactoryTestCase(unittest.TestCase):
-- """
-- This verifies the existence of the binding to KmlFactory::GetFactory
-- and the exitence of bindings for all factory methods.
-- """
--
-- def runTest(self):
-- factory = kmldom.KmlFactory_GetFactory()
-- assert factory.CreateElementById(kmldom.Type_Placemark)
-- assert factory.CreateAlias()
-- assert factory.CreateAtomAuthor()
-- assert factory.CreateAtomLink()
-- assert factory.CreateBalloonStyle()
-- assert factory.CreateCamera()
-- assert factory.CreateChange()
-- assert factory.CreateCreate()
-- assert factory.CreateData()
-- assert factory.CreateDelete()
-- assert factory.CreateDocument()
-- assert factory.CreateExtendedData()
-- assert factory.CreateFolder()
-- assert factory.CreateGroundOverlay()
-- assert factory.CreateIcon()
-- assert factory.CreateIconStyle()
-- assert factory.CreateImagePyramid()
-- assert factory.CreateItemIcon()
-- assert factory.CreateLabelStyle()
-- assert factory.CreateLatLonAltBox()
-- assert factory.CreateLatLonBox()
-- assert factory.CreateLineString()
-- assert factory.CreateLineStyle()
-- assert factory.CreateLinearRing()
-- assert factory.CreateLink()
-- assert factory.CreateListStyle()
-- assert factory.CreateLocation()
-- assert factory.CreateLod()
-- assert factory.CreateLookAt()
-- assert factory.CreateModel()
-- assert factory.CreateMultiGeometry()
-- assert factory.CreateNetworkLink()
-- assert factory.CreateNetworkLinkControl()
-- assert factory.CreateOrientation()
-- assert factory.CreatePair()
-- assert factory.CreatePhotoOverlay()
-- assert factory.CreatePlacemark()
-- assert factory.CreatePoint()
-- assert factory.CreatePolyStyle()
-- assert factory.CreatePolygon()
-- assert factory.CreateRegion()
-- assert factory.CreateResourceMap()
-- assert factory.CreateScale()
-- assert factory.CreateSchema()
-- assert factory.CreateSchemaData()
-- assert factory.CreateScreenOverlay()
-- assert factory.CreateSimpleData()
-- assert factory.CreateSimpleField()
-- assert factory.CreateSnippet()
-- assert factory.CreateStyle()
-- assert factory.CreateStyleMap()
-- assert factory.CreateTimeSpan()
-- assert factory.CreateTimeStamp()
-- assert factory.CreateUpdate()
-- assert factory.CreateViewVolume()
-- assert factory.CreateHotSpot()
-- assert factory.CreateInnerBoundaryIs()
-- assert factory.CreateKml()
-- assert factory.CreateLinkSnippet()
-- assert factory.CreateOuterBoundaryIs()
-- assert factory.CreateOverlayXY()
-- assert factory.CreateRotationXY()
-- assert factory.CreateScreenXY()
-- assert factory.CreateSize()
-- assert factory.CreateGxAnimatedUpdate()
-- assert factory.CreateGxFlyTo()
-- assert factory.CreateGxLatLonQuad()
-- assert factory.CreateGxPlaylist()
-- assert factory.CreateGxSoundCue()
-- assert factory.CreateGxTimeSpan()
-- assert factory.CreateGxTimeStamp()
-- assert factory.CreateGxTour()
-- assert factory.CreateGxTourControl()
-- assert factory.CreateGxWait()
--
--class FactoryCreateElementByIdTestCase(unittest.TestCase):
-- def runTest(self):
-- factory = kmldom.KmlFactory_GetFactory()
-- assert factory.CreateElementById(kmldom.Type_Alias)
-- assert factory.CreateElementById(kmldom.Type_AtomAuthor)
-- assert factory.CreateElementById(kmldom.Type_AtomLink)
-- assert factory.CreateElementById(kmldom.Type_BalloonStyle)
-- assert factory.CreateElementById(kmldom.Type_Camera)
-- assert factory.CreateElementById(kmldom.Type_Change)
-- assert factory.CreateElementById(kmldom.Type_coordinates)
-- assert factory.CreateElementById(kmldom.Type_Create)
-- assert factory.CreateElementById(kmldom.Type_Data)
-- assert factory.CreateElementById(kmldom.Type_Delete)
-- assert factory.CreateElementById(kmldom.Type_Document)
-- assert factory.CreateElementById(kmldom.Type_ExtendedData)
-- assert factory.CreateElementById(kmldom.Type_Folder)
-- assert factory.CreateElementById(kmldom.Type_GroundOverlay)
-- assert factory.CreateElementById(kmldom.Type_Icon)
-- assert factory.CreateElementById(kmldom.Type_IconStyle)
-- assert factory.CreateElementById(kmldom.Type_ImagePyramid)
-- assert factory.CreateElementById(kmldom.Type_ItemIcon)
-- assert factory.CreateElementById(kmldom.Type_LabelStyle)
-- assert factory.CreateElementById(kmldom.Type_LatLonAltBox)
-- assert factory.CreateElementById(kmldom.Type_LatLonBox)
-- assert factory.CreateElementById(kmldom.Type_LineString)
-- assert factory.CreateElementById(kmldom.Type_LineStyle)
-- assert factory.CreateElementById(kmldom.Type_LinearRing)
-- assert factory.CreateElementById(kmldom.Type_Link)
-- assert factory.CreateElementById(kmldom.Type_ListStyle)
-- assert factory.CreateElementById(kmldom.Type_Location)
-- assert factory.CreateElementById(kmldom.Type_Lod)
-- assert factory.CreateElementById(kmldom.Type_LookAt)
-- assert factory.CreateElementById(kmldom.Type_Model)
-- assert factory.CreateElementById(kmldom.Type_MultiGeometry)
-- assert factory.CreateElementById(kmldom.Type_NetworkLink)
-- assert factory.CreateElementById(kmldom.Type_NetworkLinkControl)
-- assert factory.CreateElementById(kmldom.Type_Orientation)
-- assert factory.CreateElementById(kmldom.Type_Pair)
-- assert factory.CreateElementById(kmldom.Type_PhotoOverlay)
-- assert factory.CreateElementById(kmldom.Type_Placemark)
-- assert factory.CreateElementById(kmldom.Type_Point)
-- assert factory.CreateElementById(kmldom.Type_PolyStyle)
-- assert factory.CreateElementById(kmldom.Type_Polygon)
-- assert factory.CreateElementById(kmldom.Type_Region)
-- assert factory.CreateElementById(kmldom.Type_ResourceMap)
-- assert factory.CreateElementById(kmldom.Type_Scale)
-- assert factory.CreateElementById(kmldom.Type_Schema)
-- assert factory.CreateElementById(kmldom.Type_SchemaData)
-- assert factory.CreateElementById(kmldom.Type_ScreenOverlay)
-- assert factory.CreateElementById(kmldom.Type_SimpleData)
-- assert factory.CreateElementById(kmldom.Type_SimpleField)
-- assert factory.CreateElementById(kmldom.Type_Snippet)
-- assert factory.CreateElementById(kmldom.Type_Style)
-- assert factory.CreateElementById(kmldom.Type_StyleMap)
-- assert factory.CreateElementById(kmldom.Type_TimeSpan)
-- assert factory.CreateElementById(kmldom.Type_TimeStamp)
-- assert factory.CreateElementById(kmldom.Type_Update)
-- assert factory.CreateElementById(kmldom.Type_ViewVolume)
-- assert factory.CreateElementById(kmldom.Type_hotSpot)
-- assert factory.CreateElementById(kmldom.Type_innerBoundaryIs)
-- assert factory.CreateElementById(kmldom.Type_kml)
-- assert factory.CreateElementById(kmldom.Type_linkSnippet)
-- assert factory.CreateElementById(kmldom.Type_outerBoundaryIs)
-- assert factory.CreateElementById(kmldom.Type_overlayXY)
-- assert factory.CreateElementById(kmldom.Type_rotationXY)
-- assert factory.CreateElementById(kmldom.Type_screenXY)
-- assert factory.CreateElementById(kmldom.Type_size)
-- assert factory.CreateElementById(kmldom.Type_GxAnimatedUpdate)
-- assert factory.CreateElementById(kmldom.Type_GxFlyTo)
-- assert factory.CreateElementById(kmldom.Type_GxLatLonQuad)
-- assert factory.CreateElementById(kmldom.Type_GxPlaylist)
-- assert factory.CreateElementById(kmldom.Type_GxSoundCue)
-- assert factory.CreateElementById(kmldom.Type_GxTimeSpan)
-- assert factory.CreateElementById(kmldom.Type_GxTimeStamp)
-- assert factory.CreateElementById(kmldom.Type_GxTour)
-- assert factory.CreateElementById(kmldom.Type_GxTourControl)
-- assert factory.CreateElementById(kmldom.Type_GxWait)
--
--class VerySimpleCastTestCase(unittest.TestCase):
-- """ This verifies the existence of the bindings to a few of the casts """
--
-- def runTest(self):
-- """ kmldom.ParseKml() returns an ElementPtr """
-- assert kmldom.AsCoordinates(kmldom.ParseKml('<coordinates/>'))
-- assert not kmldom.AsCoordinates(kmldom.ParseKml('<Document/>'))
-- assert kmldom.AsFolder(kmldom.ParseKml('<Folder/>'))
-- assert not kmldom.AsFolder(kmldom.ParseKml('<Document/>'))
-- assert kmldom.AsKml(kmldom.ParseKml('<kml/>'))
-- assert not kmldom.AsKml(kmldom.ParseKml('<Placemark/>'))
-- assert kmldom.AsPlacemark(kmldom.ParseKml('<Placemark/>'))
-- assert not kmldom.AsPlacemark(kmldom.ParseKml('<NetworkLink/>'))
-- assert kmldom.AsPoint(kmldom.ParseKml('<Point/>'))
-- assert not kmldom.AsPoint(kmldom.ParseKml('<LineString/>'))
-- assert kmldom.AsGxAnimatedUpdate(kmldom.ParseKml('<gx:AnimatedUpdate/>'))
-- assert kmldom.AsGxFlyTo(kmldom.ParseKml('<gx:FlyTo/>'))
-- assert kmldom.AsGxLatLonQuad(kmldom.ParseKml('<gx:LatLonQuad/>'))
-- assert kmldom.AsGxPlaylist(kmldom.ParseKml('<gx:Playlist/>'))
-- assert kmldom.AsGxSoundCue(kmldom.ParseKml('<gx:SoundCue/>'))
-- assert kmldom.AsGxTimeSpan(kmldom.ParseKml('<gx:TimeSpan/>'))
-- assert kmldom.AsGxTimeStamp(kmldom.ParseKml('<gx:TimeStamp/>'))
-- assert kmldom.AsGxTour(kmldom.ParseKml('<gx:Tour/>'))
-- assert kmldom.AsGxTourControl(kmldom.ParseKml('<gx:TourControl/>'))
-- assert kmldom.AsGxWait(kmldom.ParseKml('<gx:Wait/>'))
--
--
--class VerySimpleSimpleChildTestCase(unittest.TestCase):
-- """
-- This tests that an element derived from Feature can properly set/get/clear
-- the simple value <name> element.
-- """
--
-- def runTest(self):
-- factory = kmldom.KmlFactory_GetFactory()
-- folder = factory.CreateFolder()
-- assert not folder.has_name()
-- name = 'my name'
-- folder.set_name(name)
-- assert folder.has_name()
-- assert name == folder.get_name()
-- folder.clear_name()
-- assert not folder.has_name()
--
--
--class VerySimpleComplexChildTestCase(unittest.TestCase):
-- """
-- This tests that a complex child of a specific type can be set and
-- cleared as a child of another element.
-- """
--
-- def runTest(self):
-- factory = kmldom.KmlFactory_GetFactory()
-- region = factory.CreateRegion()
-- assert not region.has_lod()
-- assert not region.has_latlonaltbox()
-- region.set_lod(factory.CreateLod())
-- region.set_latlonaltbox(factory.CreateLatLonAltBox())
-- assert region.has_lod()
-- assert region.has_latlonaltbox()
-- region.clear_lod()
-- region.clear_latlonaltbox()
-- assert not region.has_lod()
-- assert not region.has_latlonaltbox()
--
--
--class SimpleAtomAuthorTestCase(unittest.TestCase):
-- """ This tests the AtomAuthor element."""
--
-- def setUp(self):
-- self.factory = kmldom.KmlFactory_GetFactory()
-- self.atomauthor = self.factory.CreateAtomAuthor()
--
-- def testDefault(self):
-- assert kmldom.Type_AtomAuthor == self.atomauthor.Type()
-- assert self.atomauthor.IsA(kmldom.Type_AtomAuthor)
-- # default state
-- assert not self.atomauthor.has_name()
-- assert "" == self.atomauthor.get_name()
-- assert not self.atomauthor.has_uri()
-- assert "" == self.atomauthor.get_uri()
-- assert not self.atomauthor.has_email()
-- assert "" == self.atomauthor.get_email()
--
-- def testSetClear(self):
-- # name
-- name = 'Scott Turow'
-- self.atomauthor.set_name(name)
-- assert self.atomauthor.has_name()
-- assert name == self.atomauthor.get_name()
-- self.atomauthor.clear_name()
--
-- # uri
-- uri = 'http://www.authorsguild.org/'
-- self.atomauthor.set_uri(uri)
-- assert self.atomauthor.has_uri()
-- assert uri == self.atomauthor.get_uri()
-- self.atomauthor.clear_uri()
--
-- # email
-- email = 'jsmith at example.com'
-- self.atomauthor.set_email(email)
-- assert self.atomauthor.has_email()
-- assert email == self.atomauthor.get_email()
-- self.atomauthor.clear_email()
--
-- self.testDefault()
--
--
--class SimpleAtomLinkTestCase(unittest.TestCase):
-- """ This tests the AtomLink element."""
--
-- def setUp(self):
-- self.factory = kmldom.KmlFactory_GetFactory()
-- self.atomlink = self.factory.CreateAtomLink()
--
-- def testDefault(self):
-- assert kmldom.Type_AtomLink == self.atomlink.Type()
-- assert self.atomlink.IsA(kmldom.Type_AtomLink)
-- assert not self.atomlink.has_href()
-- assert "" == self.atomlink.get_href()
-- assert not self.atomlink.has_rel()
-- assert "" == self.atomlink.get_rel()
-- assert not self.atomlink.has_type()
-- assert "" == self.atomlink.get_type()
-- assert not self.atomlink.has_hreflang()
-- assert "" == self.atomlink.get_hreflang()
-- assert not self.atomlink.has_title()
-- assert "" == self.atomlink.get_title()
-- assert not self.atomlink.has_length()
-- assert 0 == self.atomlink.get_length()
--
-- def testSetClear(self):
-- # href
-- href = 'http://example.com'
-- self.atomlink.set_href(href)
-- assert self.atomlink.has_href()
-- assert href == self.atomlink.get_href()
-- self.atomlink.clear_href()
--
-- rel = 'alternate'
-- self.atomlink.set_rel(rel)
-- assert self.atomlink.has_rel()
-- assert rel == self.atomlink.get_rel()
-- self.atomlink.clear_rel()
--
-- type = 'text/html'
-- self.atomlink.set_type(type)
-- assert self.atomlink.has_type()
-- assert type == self.atomlink.get_type()
-- self.atomlink.clear_type()
--
-- hreflang = 'en'
-- self.atomlink.set_hreflang(hreflang)
-- assert self.atomlink.has_hreflang()
-- assert hreflang == self.atomlink.get_hreflang()
-- self.atomlink.clear_hreflang()
--
-- title = 'dive into mark'
-- self.atomlink.set_title(title)
-- assert self.atomlink.has_title()
-- assert title == self.atomlink.get_title()
-- self.atomlink.clear_title()
--
-- length = 42
-- self.atomlink.set_length(length)
-- assert self.atomlink.has_length()
-- assert length == self.atomlink.get_length()
-- self.atomlink.clear_length()
--
-- self.testDefault()
--
-- def testParse(self):
-- # Straight out of RFC 4287
-- link_xml = '<link rel=\"alternate\" type=\"text/html\" '
-- link_xml += 'hreflang=\"en\" href=\"http://example.org/\"/>'
-- self.atomlink = kmldom.ParseKml(link_xml)
-- assert self.atomlink.has_rel()
-- assert self.atomlink.has_type()
-- assert self.atomlink.has_hreflang()
-- assert self.atomlink.has_href()
-- assert not self.atomlink.has_title()
-- assert not self.atomlink.has_length()
--
-- assert self.atomlink.clear_rel()
-- assert self.atomlink.clear_type()
-- assert self.atomlink.clear_hreflang()
-- assert self.atomlink.clear_href()
--
-- self.testDefault()
--
--class SimpleCoordinatesTestCase(unittest.TestCase):
-- """ This tests the methods on Coordinates and Vec3 """
-- def runTest(self):
-- factory = kmldom.KmlFactory_GetFactory()
-- coordinates = factory.CreateCoordinates()
-- # Test the Element methods
-- assert kmldom.Type_coordinates == coordinates.Type()
-- assert coordinates.IsA(kmldom.Type_coordinates)
-- # Test the Coordinates methods
-- lon = -123.456
-- lat = 38.765
-- alt = 1001.909
-- assert 0 == coordinates.get_coordinates_array_size()
-- coordinates.add_latlng(lat, lon)
-- assert 1 == coordinates.get_coordinates_array_size()
-- coordinates.add_latlngalt(lat, lon, alt)
-- assert 2 == coordinates.get_coordinates_array_size()
-- vec0 = coordinates.get_coordinates_array_at(0)
-- vec1 = coordinates.get_coordinates_array_at(1)
-- # Test the Vec3 methods
-- assert lon == vec0.get_longitude()
-- assert lat == vec0.get_latitude()
-- assert 0 == vec0.get_altitude()
-- assert lon == vec1.get_longitude()
-- assert lat == vec1.get_latitude()
-- assert alt == vec1.get_altitude()
--
--
--class SimpleVec2TestCase(unittest.TestCase):
-- """ This tests the methods on Vec2 (using HotSpot) """
-- def runTest(self):
-- factory = kmldom.KmlFactory_GetFactory()
-- hotspot = factory.CreateHotSpot()
-- # Test the Element methods
-- assert kmldom.Type_hotSpot == hotspot.Type()
-- assert hotspot.IsA(kmldom.Type_hotSpot)
-- # Test the Vec2 methods
-- assert not hotspot.has_x()
-- assert not hotspot.has_xunits()
-- assert not hotspot.has_y()
-- assert not hotspot.has_yunits()
-- x = 128
-- xunits = kmldom.UNITS_PIXELS
-- y = .7
-- yunits = kmldom.UNITS_FRACTION
-- # Test the setters
-- hotspot.set_x(x)
-- hotspot.set_xunits(xunits)
-- hotspot.set_y(y)
-- hotspot.set_yunits(yunits)
-- # Test the has'ers
-- assert hotspot.has_x()
-- assert hotspot.has_xunits()
-- assert hotspot.has_y()
-- assert hotspot.has_yunits()
-- # Test the getters
-- assert x == hotspot.get_x()
-- assert xunits == hotspot.get_xunits()
-- assert y == hotspot.get_y()
-- assert yunits == hotspot.get_yunits()
-- # Test the clear'ers
-- hotspot.clear_x()
-- hotspot.clear_xunits()
-- hotspot.clear_y()
-- hotspot.clear_yunits()
-- assert not hotspot.has_x()
-- assert not hotspot.has_xunits()
-- assert not hotspot.has_y()
-- assert not hotspot.has_yunits()
--
--
--class SimpleObjectTestCase(unittest.TestCase):
-- """ This tests the Object methods (using Placemark) """
-- def runTest(self):
-- factory = kmldom.KmlFactory_GetFactory()
-- placemark = factory.CreatePlacemark()
-- # Element methods
-- assert kmldom.Type_Placemark == placemark.Type()
-- assert placemark.IsA(kmldom.Type_Object)
-- assert placemark.IsA(kmldom.Type_Placemark)
-- # Object methods
-- # has_xxx()...
-- assert not placemark.has_id()
-- assert not placemark.has_targetid()
-- id = 'placemark123'
-- targetid ='placemark456'
-- # set_xxx()...
-- placemark.set_id(id)
-- placemark.set_targetid(targetid)
-- assert placemark.has_id()
-- assert placemark.has_targetid()
-- # xxx()...
-- assert id == placemark.get_id()
-- assert targetid == placemark.get_targetid()
-- # clear_xxx()...
-- placemark.clear_id()
-- placemark.clear_targetid()
-- assert not placemark.has_id()
-- assert not placemark.has_targetid()
--
--
--class SimpleFeatureTestCase(unittest.TestCase):
-- """ This tests the Feature methods (using Folder) """
-- def runTest(self):
-- factory = kmldom.KmlFactory_GetFactory()
-- folder = factory.CreateFolder()
--
-- # Element methods
-- assert kmldom.Type_Folder == folder.Type()
-- assert folder.IsA(kmldom.Type_Object)
-- assert folder.IsA(kmldom.Type_Feature)
-- assert folder.IsA(kmldom.Type_Folder)
--
-- # TODO: Object methods
--
-- # Feature methods
-- # TODO everything else
--
-- assert not folder.has_phonenumber()
-- phonenumber = '867-5309'
-- folder.set_phonenumber(phonenumber)
-- assert folder.has_phonenumber()
-- assert phonenumber == folder.get_phonenumber()
--
-- assert not folder.has_atomauthor()
-- atomauthor = factory.CreateAtomAuthor()
-- assert atomauthor
-- atom_name = 'D.F. Wallace'
-- atomauthor.set_name(atom_name)
-- folder.set_atomauthor(atomauthor)
-- got_atomauthor = folder.get_atomauthor()
-- assert atom_name == got_atomauthor.get_name()
--
-- assert not folder.has_atomlink()
-- atomlink = factory.CreateAtomLink()
-- assert atomlink
-- atom_href = 'http://infinitesummer.org'
-- atomlink.set_href(atom_href)
-- folder.set_atomlink(atomlink)
-- got_atomlink = folder.get_atomlink()
-- assert atom_href == got_atomlink.get_href()
--
-- assert not folder.has_snippet()
-- folder.set_snippet(factory.CreateSnippet())
-- assert folder.has_snippet()
-- snippet = folder.get_snippet()
-- # Test that the snippet() returns a SnippetPtr
-- assert not snippet.has_maxlines()
-- folder.clear_snippet()
-- assert not folder.has_snippet()
--
-- def testParseAtom(self):
-- kml = ('<Placemark>'
-- '<atom:author>'
-- '<atom:name>D.F. Wallace</atom:name>'
-- '</atom:author>'
-- '<atom:link href="http://infinitesummer.org"></atom:link>'
-- '</Placemark>')
-- root = kmldom.ParseKml(kml)
-- assert root
-- placemark = kmldom.AsPlacemark(root)
-- assert placemark
-- assert placemark.has_atomauthor()
-- author = kmldom.AsAtomAuthor(placemark.get_atomauthor())
-- assert author
-- assert author.has_name();
-- assert "D.F. Wallace" == author.get_name()
-- assert placemark.has_atomlink()
-- link = kmldom.AsAtomLink(placemark.get_atomlink())
-- assert link
-- assert link.has_href()
-- assert "http://infinitesummer.org" == link.get_href()
--
--
--class SimpleRegionTestCase(unittest.TestCase):
-- """ This tests the methods on Region """
-- def runTest(self):
-- factory = kmldom.KmlFactory_GetFactory()
-- region = factory.CreateRegion()
--
-- # Element methods
-- assert kmldom.Type_Region == region.Type()
-- assert region.IsA(kmldom.Type_Object)
-- assert region.IsA(kmldom.Type_Region)
--
-- # Object methods
-- # has_xxx()...
-- assert not region.has_id()
-- assert not region.has_targetid()
-- id = 'region123'
-- targetid ='region456'
-- # set_xxx()...
-- region.set_id(id)
-- region.set_targetid(targetid)
-- assert region.has_id()
-- assert region.has_targetid()
-- # xxx()...
-- assert id == region.get_id()
-- assert targetid == region.get_targetid()
-- # clear_xxx()...
-- region.clear_id()
-- region.clear_targetid()
-- assert not region.has_id()
-- assert not region.has_targetid()
--
-- # Region methods
-- assert not region.has_lod()
-- assert not region.has_latlonaltbox()
-- region.set_lod(factory.CreateLod())
-- region.set_latlonaltbox(factory.CreateLatLonAltBox())
-- assert region.has_lod()
-- assert region.has_latlonaltbox()
-- region.clear_lod()
-- region.clear_latlonaltbox()
-- assert not region.has_lod()
-- assert not region.has_latlonaltbox()
--
--
--class SimpleParseTestCase(unittest.TestCase):
-- """ This tests the Parse() function."""
--
-- def setUp(self):
-- self.factory = kmldom.KmlFactory_GetFactory()
-- self.root = kmldom.ParseKml('<kml>'
-- '<Placemark id=\"pm123\">'
-- '<name>hi</name>'
-- '</Placemark>'
-- '</kml>')
--
-- def tearDown(self):
-- """ KML DOM memory is managed with smart pointers no tear down is needed """
--
-- def testBasic(self):
-- assert self.root
-- kml = kmldom.AsKml(self.root)
-- assert kml
-- assert not kml.has_hint()
-- assert not kml.has_networklinkcontrol()
-- assert kml.has_feature()
-- placemark = kmldom.AsPlacemark(kml.get_feature())
-- assert placemark
-- assert placemark.has_id()
-- assert 'pm123' == placemark.get_id()
-- assert placemark.has_name()
-- assert 'hi' == placemark.get_name()
-- assert not placemark.has_geometry()
--
--
--class SimpleSerializePrettyTestCase(unittest.TestCase):
-- """ This tests the SerializePretty() function."""
--
-- def setUp(self):
-- self.factory = kmldom.KmlFactory_GetFactory()
-- self.kml = self.factory.CreateKml()
-- self.folder = self.factory.CreateFolder()
-- self.folder.set_name('folder')
-- self.placemark = self.factory.CreatePlacemark()
-- self.placemark.set_name('placemark')
-- self.folder.add_feature(self.placemark)
-- self.kml.set_feature(self.folder)
-- self.xml = kmldom.SerializePretty(self.kml)
--
-- def testBasic(self):
-- assert self.xml
-- assert '<kml>\n'\
-- ' <Folder>\n'\
-- ' <name>folder</name>\n'\
-- ' <Placemark>\n'\
-- ' <name>placemark</name>\n'\
-- ' </Placemark>\n'\
-- ' </Folder>\n'\
-- '</kml>\n' == self.xml
--
--
--class SimpleSerializeRawTestCase(unittest.TestCase):
-- """ This tests the SerializeRaw() function."""
--
-- def setUp(self):
-- self.factory = kmldom.KmlFactory_GetFactory()
-- self.kml = self.factory.CreateKml()
-- self.folder = self.factory.CreateFolder()
-- self.folder.set_name('folder')
-- self.placemark = self.factory.CreatePlacemark()
-- self.placemark.set_name('placemark')
-- self.folder.add_feature(self.placemark)
-- self.kml.set_feature(self.folder)
-- self.xml = kmldom.SerializeRaw(self.kml)
--
-- def testBasic(self):
-- assert self.xml
-- assert '<kml>'\
-- '<Folder>'\
-- '<name>folder</name>'\
-- '<Placemark>'\
-- '<name>placemark</name>'\
-- '</Placemark>'\
-- '</Folder>'\
-- '</kml>' == self.xml
--
--
--class SimpleExtendedDataTestCase(unittest.TestCase):
-- """ This tests the ExtendedData element."""
--
-- def setUp(self):
-- self.factory = kmldom.KmlFactory_GetFactory()
-- self.extendeddata = self.factory.CreateExtendedData()
--
-- def testDefault(self):
-- assert kmldom.AsExtendedData(self.extendeddata)
-- assert 0 == self.extendeddata.get_data_array_size()
-- assert 0 == self.extendeddata.get_schemadata_array_size()
--
--class DataTestCase(unittest.TestCase):
-- """ This tests the Data element """
--
-- def setUp(self):
-- self.factory = kmldom.KmlFactory_GetFactory()
-- self.data = self.factory.CreateData()
--
-- def testDefault(self):
-- assert kmldom.AsData(self.data)
-- assert not self.data.has_name()
-- assert "" == self.data.get_name()
-- assert not self.data.has_displayname()
-- assert "" == self.data.get_displayname()
-- assert not self.data.has_value()
-- assert "" == self.data.get_value()
--
--class SimpleDataTestCase(unittest.TestCase):
-- """ This tests the SimpleData element """
--
-- def setUp(self):
-- self.factory = kmldom.KmlFactory_GetFactory()
-- self.simpledata = self.factory.CreateSimpleData()
--
-- def testDefault(self):
-- assert kmldom.AsSimpleData(self.simpledata)
-- assert not self.simpledata.has_name()
-- assert "" == self.simpledata.get_name()
-- assert not self.simpledata.has_text()
-- assert "" == self.simpledata.get_text()
--
--def TestColorStyle(colorstyle):
-- """ This tests the ColorStyle elements of the given ColorStyle-derived
-- element"""
-- # ColorStyle fields
-- # Verify default state of <color>
-- assert not colorstyle.has_color()
-- # Set <color> to a given value and verify get_ and has_
-- color = kmlbase.Color32(0xf0f0c80f)
-- colorstyle.set_color(color)
-- assert colorstyle.has_color()
-- assert color == colorstyle.get_color()
-- # Clear <color> and verify has_
-- colorstyle.clear_color()
-- assert not colorstyle.has_color()
--
-- assert not colorstyle.has_colormode()
-- colormode = kmldom.COLORMODE_RANDOM
-- colorstyle.set_colormode(colormode)
-- assert colorstyle.has_colormode()
-- assert colormode == colorstyle.get_colormode()
-- colorstyle.clear_colormode()
-- assert not colorstyle.has_colormode()
--
--class SimpleIconStyleTestCase(unittest.TestCase):
-- """ This tests the IconStyle element."""
--
-- def setUp(self):
-- self.factory = kmldom.KmlFactory_GetFactory()
-- self.iconstyle = self.factory.CreateIconStyle()
--
-- def testDefault(self):
-- assert kmldom.AsObject(self.iconstyle)
-- assert kmldom.AsSubStyle(self.iconstyle)
-- assert kmldom.AsColorStyle(self.iconstyle)
--
-- TestColorStyle(self.iconstyle)
--
--class SimpleKmlTestCase(unittest.TestCase):
-- """ This tests the Kml element."""
--
-- def setUp(self):
-- self.factory = kmldom.KmlFactory_GetFactory()
-- self.kml = self.factory.CreateKml()
--
-- def testDefault(self):
-- assert kmldom.Type_kml == self.kml.Type()
-- assert self.kml.IsA(kmldom.Type_kml)
-- assert not self.kml.has_hint()
-- assert "" == self.kml.get_hint()
-- assert not self.kml.has_networklinkcontrol()
-- assert None == self.kml.get_networklinkcontrol()
-- assert not self.kml.has_feature()
-- assert None == self.kml.get_feature()
--
-- def testSetClear(self):
-- hint = 'target=sky'
-- self.kml.set_hint(hint)
-- assert self.kml.has_hint()
-- assert hint == self.kml.get_hint()
-- self.kml.clear_hint()
-- self.testDefault()
--
--class SimpleLabelStyleTestCase(unittest.TestCase):
-- """ This tests the LabelStyle element."""
--
-- def setUp(self):
-- self.factory = kmldom.KmlFactory_GetFactory()
-- self.labelstyle = self.factory.CreateLabelStyle()
--
-- def testDefault(self):
-- assert kmldom.AsObject(self.labelstyle)
-- assert kmldom.AsSubStyle(self.labelstyle)
-- assert kmldom.AsColorStyle(self.labelstyle)
--
-- TestColorStyle(self.labelstyle)
--
--class SimpleLineStyleTestCase(unittest.TestCase):
-- """ This tests the LineStyle element."""
--
-- def setUp(self):
-- self.factory = kmldom.KmlFactory_GetFactory()
-- self.linestyle = self.factory.CreateLineStyle()
--
-- def testDefault(self):
-- assert kmldom.AsObject(self.linestyle)
-- assert kmldom.AsSubStyle(self.linestyle)
-- assert kmldom.AsColorStyle(self.linestyle)
--
-- TestColorStyle(self.linestyle)
--
-- # LineStyle fields
-- # Verify default state of <width>
-- assert not self.linestyle.has_width()
-- # Set <width> and verify get_ and has_
-- width = 4
-- self.linestyle.set_width(width)
-- assert self.linestyle.has_width()
-- assert width == self.linestyle.get_width()
-- # Clear <width> and verify has_
-- self.linestyle.clear_width()
-- assert not self.linestyle.has_width()
--
--class SimpleListStyleTestCase(unittest.TestCase):
-- """ This tests the ListStyle element."""
--
-- def setUp(self):
-- self.factory = kmldom.KmlFactory_GetFactory()
-- self.liststyle = self.factory.CreateListStyle()
--
-- def testDefault(self):
-- assert kmldom.AsObject(self.liststyle)
-- assert kmldom.AsSubStyle(self.liststyle)
-- assert kmldom.AsListStyle(self.liststyle)
-- assert not self.liststyle.has_id()
-- assert 0 == self.liststyle.get_itemicon_array_size()
--
--class SimpleNetworkLinkControlTestCase(unittest.TestCase):
-- """ This tests the NetworkLinkControl element."""
--
-- def setUp(self):
-- self.factory = kmldom.KmlFactory_GetFactory()
-- self.nlc = self.factory.CreateNetworkLinkControl()
--
-- def testDefault(self):
-- assert kmldom.Type_NetworkLinkControl == self.nlc.Type()
-- assert self.nlc.IsA(kmldom.Type_NetworkLinkControl)
-- assert not self.nlc.has_minrefreshperiod()
-- assert not self.nlc.has_maxsessionlength()
-- assert not self.nlc.has_cookie()
-- assert not self.nlc.has_message()
-- assert not self.nlc.has_linkname()
-- assert not self.nlc.has_linkdescription()
-- assert not self.nlc.has_linksnippet()
-- assert not self.nlc.has_expires()
-- assert not self.nlc.has_update()
-- assert not self.nlc.has_abstractview()
--
-- def testSetClear(self):
-- minrefreshperiod = 42.123
-- self.nlc.set_minrefreshperiod(minrefreshperiod)
-- assert self.nlc.has_minrefreshperiod()
-- assert minrefreshperiod == self.nlc.get_minrefreshperiod()
-- self.nlc.clear_minrefreshperiod()
-- assert not self.nlc.has_minrefreshperiod()
--
--class SimplePhotoOverlayTestCase(unittest.TestCase):
-- """ This tests the PhotoOverlay element."""
--
-- def setUp(self):
-- self.factory = kmldom.KmlFactory_GetFactory()
-- self.photooverlay = self.factory.CreatePhotoOverlay()
--
-- def testDefault(self):
-- assert kmldom.AsObject(self.photooverlay)
-- assert kmldom.AsFeature(self.photooverlay)
-- assert kmldom.AsOverlay(self.photooverlay)
-- assert kmldom.AsPhotoOverlay(self.photooverlay)
-- assert not self.photooverlay.has_id() # Object-ness
-- assert not self.photooverlay.has_name() # Feature-ness
-- assert not self.photooverlay.has_icon() # Overlay-ness
-- assert not self.photooverlay.has_rotation() # PhotoOverlay-ness...
-- assert not self.photooverlay.has_viewvolume()
-- assert not self.photooverlay.has_imagepyramid()
-- assert not self.photooverlay.has_point()
-- assert not self.photooverlay.has_shape()
--
--
--class SimplePlacemarkTestCase(unittest.TestCase):
-- """ This tests the Placemark element."""
--
-- def setUp(self):
-- self.factory = kmldom.KmlFactory_GetFactory()
-- self.placemark = self.factory.CreatePlacemark()
--
-- def testDefault(self):
-- assert kmldom.AsObject(self.placemark)
-- assert kmldom.AsFeature(self.placemark)
-- assert kmldom.AsPlacemark(self.placemark)
-- assert not self.placemark.has_id() # Object-ness
-- assert not self.placemark.has_name() # Feature-ness
-- assert not self.placemark.has_geometry() # Placemark-ness
--
-- def testName(self):
-- name = 'This is my name'
-- self.placemark.set_name(name)
-- assert self.placemark.has_name()
-- assert name == self.placemark.get_name()
-- self.placemark.clear_name()
-- assert not self.placemark.has_name()
--
--
--class SimpleLatLonBoxTestCase(unittest.TestCase):
-- """ This tests the LatLonBox element."""
--
-- def setUp(self):
-- self.factory = kmldom.KmlFactory_GetFactory()
-- self.latlonbox = self.factory.CreateLatLonBox()
--
-- def testDefault(self):
-- assert kmldom.AsObject(self.latlonbox)
-- assert kmldom.AsLatLonBox(self.latlonbox)
-- assert not self.latlonbox.has_id() # Object-ness
-- assert not self.latlonbox.has_north()
-- assert 180.0 == self.latlonbox.get_north()
-- assert not self.latlonbox.has_south()
-- assert -180.0 == self.latlonbox.get_south()
-- assert not self.latlonbox.has_east()
-- assert 180.0 == self.latlonbox.get_east()
-- assert not self.latlonbox.has_west()
-- assert -180.0 == self.latlonbox.get_west()
--
-- def testSetClear(self):
-- north = 42.42
-- south = -11.12
-- east = -80.80
-- west = -123.321
-- self.latlonbox.set_north(north)
-- self.latlonbox.set_south(south)
-- self.latlonbox.set_east(east)
-- self.latlonbox.set_west(west)
-- assert self.latlonbox.has_north()
-- assert north == self.latlonbox.get_north()
-- assert self.latlonbox.has_south()
-- assert south == self.latlonbox.get_south()
-- assert self.latlonbox.has_east()
-- assert east == self.latlonbox.get_east()
-- assert self.latlonbox.has_west()
-- assert west == self.latlonbox.get_west()
-- self.latlonbox.clear_north()
-- self.latlonbox.clear_south()
-- self.latlonbox.clear_east()
-- self.latlonbox.clear_west()
-- # Clearing everything returns to default state
-- self.testDefault()
--
--
--class SimpleLinkTestCase(unittest.TestCase):
-- """ This tests the Link element."""
--
-- def setUp(self):
-- self.factory = kmldom.KmlFactory_GetFactory()
-- self.link = self.factory.CreateLink()
--
-- def testDefault(self):
-- assert kmldom.AsObject(self.link)
-- assert kmldom.AsLink(self.link)
-- assert not self.link.has_id() # Object-ness
-- assert not self.link.has_href() # Link-ness
--
-- def testSetClear(self):
-- href = 'http://example.com/cool.kml'
-- self.link.set_href(href)
-- assert self.link.has_href()
-- assert href == self.link.get_href()
-- self.link.clear_href()
-- # Clearing everything returns to default state
-- self.testDefault()
--
--
--class SimpleChangeTestCase(unittest.TestCase):
-- """ This tests the Change element."""
--
-- def setUp(self):
-- self.factory = kmldom.KmlFactory_GetFactory()
-- self.change = self.factory.CreateChange()
--
-- def testDefault(self):
-- assert kmldom.AsChange(self.change)
-- assert 0 == self.change.get_object_array_size()
--
-- def testAddOneObject(self):
-- placemark = self.factory.CreatePlacemark()
-- name = 'hi'
-- placemark.set_name(name)
-- self.change.add_object(placemark)
-- assert 1 == self.change.get_object_array_size()
-- placemark = kmldom.AsPlacemark(self.change.get_object_array_at(0))
-- assert name == placemark.get_name()
--
-- def testAddNObjects(self):
-- placemark = self.factory.CreatePlacemark()
-- placemark_id = 'pm123'
-- placemark.set_id(placemark_id)
-- self.change.add_object(placemark)
--
-- latlonbox = self.factory.CreateLatLonBox()
-- latlonbox_id = 'llb123'
-- latlonbox.set_id(latlonbox_id)
-- self.change.add_object(latlonbox)
--
-- location = self.factory.CreateLocation()
-- location_id = 'location123'
-- location.set_id(location_id)
-- self.change.add_object(location)
--
-- """ Verify there are 3 items in the array in the proper order."""
-- assert 3 == self.change.get_object_array_size()
-- assert placemark_id == self.change.get_object_array_at(0).get_id()
-- assert latlonbox_id == self.change.get_object_array_at(1).get_id()
-- assert location_id == self.change.get_object_array_at(2).get_id()
--
--
--class SimpleCreateTestCase(unittest.TestCase):
-- """ This tests the Create element."""
--
-- def setUp(self):
-- self.factory = kmldom.KmlFactory_GetFactory()
-- self.create = self.factory.CreateCreate()
--
-- def testDefault(self):
-- assert kmldom.AsCreate(self.create)
-- assert 0 == self.create.get_container_array_size()
--
-- def testAddOneContainer(self):
-- folder = self.factory.CreateFolder()
-- target_folder_id = 'target-folder'
-- folder.set_targetid(target_folder_id)
-- self.create.add_container(folder)
-- assert 1 == self.create.get_container_array_size()
-- folder = kmldom.AsFolder(self.create.get_container_array_at(0))
-- assert target_folder_id == folder.get_targetid()
--
-- def testAddNContainers(self):
-- folder = self.factory.CreateFolder()
-- folder_a_id = 'folder-a'
-- folder.set_id(folder_a_id)
-- self.create.add_container(folder)
--
-- document = self.factory.CreateFolder()
-- document_a_id = 'container-a'
-- document.set_id(document_a_id)
-- self.create.add_container(document)
--
-- document = self.factory.CreateFolder()
-- document_b_id = 'container-b'
-- document.set_id(document_b_id)
-- self.create.add_container(document)
--
-- folder = self.factory.CreateFolder()
-- folder_b_id = 'folder-b'
-- folder.set_id(folder_b_id)
-- self.create.add_container(folder)
--
-- # Verify there are 4 items in the array in the proper order.
-- assert 4 == self.create.get_container_array_size()
-- assert folder_a_id == self.create.get_container_array_at(0).get_id()
-- assert document_a_id == self.create.get_container_array_at(1).get_id()
-- assert document_b_id == self.create.get_container_array_at(2).get_id()
-- assert folder_b_id == self.create.get_container_array_at(3).get_id()
--
--
--class SimpleDeleteTestCase(unittest.TestCase):
-- """ This tests the Delete element."""
--
-- def setUp(self):
-- self.factory = kmldom.KmlFactory_GetFactory()
-- self.delete = self.factory.CreateDelete()
--
-- def testDefault(self):
-- assert kmldom.AsDelete(self.delete)
-- assert 0 == self.delete.get_feature_array_size()
--
-- def testAddOneFeature(self):
-- groundoverlay = self.factory.CreateGroundOverlay()
-- target_groundoverlay_id = 'target-groundoverlay'
-- groundoverlay.set_targetid(target_groundoverlay_id)
-- self.delete.add_feature(groundoverlay)
-- assert 1 == self.delete.get_feature_array_size()
-- groundoverlay = kmldom.AsGroundOverlay(self.delete.get_feature_array_at(0))
-- assert target_groundoverlay_id == groundoverlay.get_targetid()
--
-- def testAddNFeatures(self):
-- document = self.factory.CreateDocument()
-- document_id = 'document-id'
-- document.set_id(document_id)
-- self.delete.add_feature(document)
--
-- folder = self.factory.CreateFolder()
-- folder_id = 'folder-id'
-- folder.set_id(folder_id)
-- self.delete.add_feature(folder)
--
-- groundoverlay = self.factory.CreateGroundOverlay()
-- groundoverlay_id = 'groundoverlay-id'
-- groundoverlay.set_id(groundoverlay_id)
-- self.delete.add_feature(groundoverlay)
--
-- networklink = self.factory.CreateNetworkLink()
-- networklink_id = 'networklink-id'
-- networklink.set_id(networklink_id)
-- self.delete.add_feature(networklink)
--
-- placemark = self.factory.CreatePlacemark()
-- placemark_id = 'placemark-id'
-- placemark.set_id(placemark_id)
-- self.delete.add_feature(placemark)
--
-- photooverlay = self.factory.CreatePhotoOverlay()
-- photooverlay_id = 'photooverlay-id'
-- photooverlay.set_id(photooverlay_id)
-- self.delete.add_feature(photooverlay)
--
-- screenoverlay = self.factory.CreateScreenOverlay()
-- screenoverlay_id = 'screenoverlay-id'
-- screenoverlay.set_id(screenoverlay_id)
-- self.delete.add_feature(screenoverlay)
--
-- # Verify there are 7 items in the array in the proper order.
-- assert 7 == self.delete.get_feature_array_size()
-- assert document_id == self.delete.get_feature_array_at(0).get_id()
-- assert folder_id == self.delete.get_feature_array_at(1).get_id()
-- assert groundoverlay_id == self.delete.get_feature_array_at(2).get_id()
-- assert networklink_id == self.delete.get_feature_array_at(3).get_id()
-- assert placemark_id == self.delete.get_feature_array_at(4).get_id()
-- assert photooverlay_id == self.delete.get_feature_array_at(5).get_id()
-- assert screenoverlay_id == self.delete.get_feature_array_at(6).get_id()
--
--
--class SimpleDocumentTestCase(unittest.TestCase):
-- """ This tests the Document element."""
--
-- def setUp(self):
-- self.factory = kmldom.KmlFactory_GetFactory()
-- self.document = self.factory.CreateDocument()
--
-- def testDefault(self):
-- assert kmldom.AsObject(self.document)
-- assert kmldom.AsFeature(self.document)
-- assert kmldom.AsContainer(self.document)
-- assert kmldom.AsDocument(self.document)
-- assert not self.document.has_id() # Object-ness
-- assert not self.document.has_name() # Feature-ness
-- assert 0 == self.document.get_feature_array_size() # Container-ness
-- assert 0 == self.document.get_schema_array_size() # Document-ness
-- assert 0 == self.document.get_styleselector_array_size() # Document-ness
--
--
--class SimpleMultiGeometryTestCase(unittest.TestCase):
-- """ This tests the MultiGeometry element."""
--
-- def setUp(self):
-- self.factory = kmldom.KmlFactory_GetFactory()
-- self.multigeometry = self.factory.CreateMultiGeometry()
--
-- def testDefault(self):
-- assert kmldom.AsObject(self.multigeometry)
-- assert kmldom.AsGeometry(self.multigeometry)
-- assert kmldom.AsMultiGeometry(self.multigeometry)
-- assert not self.multigeometry.has_id() # Object-ness
-- # MultiGeometry-ness
-- assert 0 == self.multigeometry.get_geometry_array_size()
--
--
--class SimpleOuterBoundaryIsTestCase(unittest.TestCase):
-- """ TODO: This tests the OuterBoundaryIs element."""
--
--
--class SimpleInnerBoundaryIsTestCase(unittest.TestCase):
-- """ TODO: This tests the InnerBoundaryIs element."""
--
--
--class SimplePolygonTestCase(unittest.TestCase):
-- """ TODO: This tests the Polygon element."""
--
--class SimplePolyStyleTestCase(unittest.TestCase):
-- """ This tests the PolyStyle element."""
--
-- def setUp(self):
-- self.factory = kmldom.KmlFactory_GetFactory()
-- self.polystyle = self.factory.CreatePolyStyle()
--
-- def testDefault(self):
-- assert kmldom.AsObject(self.polystyle)
-- assert kmldom.AsSubStyle(self.polystyle)
-- assert kmldom.AsColorStyle(self.polystyle)
--
-- TestColorStyle(self.polystyle)
--
-- # PolyStyle fields
-- # Verify default state of <fill>
-- assert not self.polystyle.has_fill()
-- # Set <fill> and verify get_ and has_
-- fill = True
-- self.polystyle.set_fill(fill)
-- assert self.polystyle.has_fill()
-- assert fill == self.polystyle.get_fill()
-- # Clear <fill> and verify has_
-- self.polystyle.clear_fill()
-- assert not self.polystyle.has_fill()
--
-- # Verify default state of <outline>
-- assert not self.polystyle.has_outline()
-- # Set <outline> and verify get_ and has_
-- outline = True
-- self.polystyle.set_outline(outline)
-- assert self.polystyle.has_outline()
-- assert outline == self.polystyle.get_outline()
-- # Clear <outline> and verify has_
-- self.polystyle.clear_outline()
-- assert not self.polystyle.has_outline()
--
--class SimpleResourceMapTestCase(unittest.TestCase):
-- """ This tests the ResourceMap element."""
--
-- def setUp(self):
-- self.factory = kmldom.KmlFactory_GetFactory()
-- self.resourcemap = self.factory.CreateResourceMap()
--
-- def testDefault(self):
-- assert kmldom.AsObject(self.resourcemap)
-- assert kmldom.AsResourceMap(self.resourcemap)
-- assert not self.resourcemap.has_id()
-- assert 0 == self.resourcemap.get_alias_array_size()
--
--
--class SimpleSchemaTestCase(unittest.TestCase):
-- """ This tests the Schema element."""
--
-- def setUp(self):
-- self.factory = kmldom.KmlFactory_GetFactory()
-- self.schema = self.factory.CreateSchema()
--
-- def testDefault(self):
-- assert kmldom.AsSchema(self.schema)
-- assert not self.schema.has_name()
-- assert not self.schema.has_id()
-- assert 0 == self.schema.get_simplefield_array_size()
--
--
--class SimpleSchemaDataTestCase(unittest.TestCase):
-- """ This tests the SchemaData element."""
--
-- def setUp(self):
-- self.factory = kmldom.KmlFactory_GetFactory()
-- self.schemadata = self.factory.CreateSchemaData()
--
-- def testDefault(self):
-- assert kmldom.AsObject(self.schemadata)
-- assert kmldom.AsSchemaData(self.schemadata)
-- assert not self.schemadata.has_schemaurl()
-- assert "" == self.schemadata.get_schemaurl()
-- assert not self.schemadata.has_id()
-- assert 0 == self.schemadata.get_simpledata_array_size()
--
--
--class SimpleSimpleFieldTestCase(unittest.TestCase):
-- """ This tests the SimpleField element."""
--
-- def setUp(self):
-- self.factory = kmldom.KmlFactory_GetFactory()
-- self.simplefield = self.factory.CreateSimpleField()
--
-- def testDefault(self):
-- assert kmldom.AsSimpleField(self.simplefield)
-- assert not self.simplefield.has_type()
-- assert not self.simplefield.has_name()
-- assert not self.simplefield.has_displayname()
--
--
--class SimpleStyleMapTestCase(unittest.TestCase):
-- """ TODO: This tests the StyleMap element."""
--
--
--class SimpleUpdateTestCase(unittest.TestCase):
-- """ This tests the Update element."""
--
-- def setUp(self):
-- self.factory = kmldom.KmlFactory_GetFactory()
-- self.update = self.factory.CreateUpdate()
--
-- def testDefault(self):
-- assert kmldom.AsUpdate(self.update)
-- assert 0 == self.update.get_updateoperation_array_size()
--
-- def testTargetHref(self):
-- assert not self.update.has_targethref()
-- assert '' == self.update.get_targethref()
-- href = 'mycoolhref'
-- self.update.set_targethref(href)
-- assert self.update.has_targethref()
-- assert href == self.update.get_targethref()
--
--class SimpleStyleMapTestCase(unittest.TestCase):
-- """ TODO: This tests the StyleMap element."""
--
--class SimpleIconStyleIconTestCase(unittest.TestCase):
-- """ This tests the IconStyleIcon element."""
--
-- def setUp(self):
-- self.factory = kmldom.KmlFactory_GetFactory()
-- self.iconstyleicon= self.factory.CreateIconStyleIcon()
--
-- def testBasic(self):
-- assert not self.iconstyleicon.has_href() # default state
-- assert '' == self.iconstyleicon.get_href()
-- href = 'http://blah.blah'
-- self.iconstyleicon.set_href(href)
-- assert self.iconstyleicon.has_href()
-- assert href == self.iconstyleicon.get_href()
-- self.iconstyleicon.clear_href()
-- assert not self.iconstyleicon.has_href() # back in default state
-- assert '' == self.iconstyleicon.get_href()
--
--class GxExtensionsTestCase(unittest.TestCase):
-- """ This tests the gx: elements extended by Google Earth 5.0
-- These are basic subsets of the full suite of tests in the main
-- C++ code and verify the basic operation of the API """
--
-- def setUp(self):
-- self.factory = kmldom.KmlFactory_GetFactory()
--
-- # Feature's gx:balloonVisibility.
-- def testGxBalloonVisibility(self):
-- placemark = self.factory.CreatePlacemark()
-- assert not placemark.has_gx_balloonvisibility()
-- assert False == placemark.get_gx_balloonvisibility()
-- placemark.set_gx_balloonvisibility(True)
-- assert placemark.has_gx_balloonvisibility()
-- assert True == placemark.get_gx_balloonvisibility()
-- expected = (
-- '<Placemark>\n'
-- ' <gx:balloonVisibility>1</gx:balloonVisibility>\n'
-- '</Placemark>\n')
-- assert expected == kmldom.SerializePretty(placemark)
--
-- # <gx:TimeStamp> and <gx:TimeSpan> in AbstractView.
-- def testGxTimePrimitives(self):
-- lookat = self.factory.CreateLookAt()
-- assert not lookat.has_gx_timeprimitive()
-- assert None == lookat.get_gx_timeprimitive()
-- timespan = self.factory.CreateGxTimeSpan()
-- lookat.set_gx_timeprimitive(timespan)
-- assert lookat.has_gx_timeprimitive()
-- expected_lookat = (
-- '<LookAt>\n'
-- ' <gx:TimeSpan/>\n'
-- '</LookAt>\n')
-- assert expected_lookat == kmldom.SerializePretty(lookat)
--
-- camera = self.factory.CreateCamera()
-- assert not camera.has_gx_timeprimitive()
-- assert None == camera.get_gx_timeprimitive()
-- timestamp = self.factory.CreateGxTimeStamp()
-- camera.set_gx_timeprimitive(timestamp)
-- assert camera.has_gx_timeprimitive()
-- expected_camera = (
-- '<Camera>\n'
-- ' <gx:TimeStamp/>\n'
-- '</Camera>\n')
-- assert expected_camera == kmldom.SerializePretty(camera)
--
-- # <gx:altitudeMode>clampToSeaFloor|relativeToSeaFloor.
-- def testGxAltitudeModes(self):
-- llab = self.factory.CreateLatLonAltBox()
-- assert not llab.has_gx_altitudemode()
-- assert kmldom.GX_ALTITUDEMODE_CLAMPTOSEAFLOOR == llab.get_gx_altitudemode()
-- altmode_rel = kmldom.GX_ALTITUDEMODE_RELATIVETOSEAFLOOR
-- llab.set_gx_altitudemode(altmode_rel)
-- assert llab.has_gx_altitudemode()
-- assert altmode_rel == llab.get_gx_altitudemode()
-- expected = (
-- '<LatLonAltBox>\n'
-- ' <gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>\n'
-- '</LatLonAltBox>\n')
-- assert expected == kmldom.SerializePretty(llab)
-- # TODO: Camera, GroundOverlay, LineString, LineStyle, LinearRing, LookAt,
-- # Model, Point, Polygon.
--
-- # <gx:LatLonQuad>
-- def testGxLatLonQuad(self):
-- groundoverlay = self.factory.CreateGroundOverlay()
-- assert False == groundoverlay.has_gx_latlonquad()
-- assert None == groundoverlay.get_gx_latlonquad()
-- llq = self.factory.CreateGxLatLonQuad()
-- coords = self.factory.CreateCoordinates()
-- llq.set_coordinates(coords)
-- groundoverlay.set_gx_latlonquad(llq)
-- assert True == groundoverlay.has_gx_latlonquad()
-- expected = (
-- '<GroundOverlay>\n'
-- ' <gx:LatLonQuad>\n'
-- ' <coordinates/>\n'
-- ' </gx:LatLonQuad>\n'
-- '</GroundOverlay>\n')
-- assert expected == kmldom.SerializePretty(groundoverlay)
--
-- # <gx:Tour>
-- def testGxTour(self):
-- tour = self.factory.CreateGxTour()
-- assert not tour.has_gx_playlist()
-- assert None == tour.get_gx_playlist()
-- tour.set_gx_playlist(self.factory.CreateGxPlaylist())
-- assert tour.has_gx_playlist()
--
-- # <gx:Playlist>
-- def testGxPlaylist(self):
-- playlist = self.factory.CreateGxPlaylist()
-- assert 0 == playlist.get_gx_tourprimitive_array_size()
-- playlist.add_gx_tourprimitive(self.factory.CreateGxFlyTo())
-- assert 1 == playlist.get_gx_tourprimitive_array_size()
--
-- # <gx:AnimatedUpdate>
-- def testGxAnimatedUpdate(self):
-- animatedupdate = self.factory.CreateGxAnimatedUpdate()
-- assert False == animatedupdate.has_gx_duration()
-- assert 0.0 == animatedupdate.get_gx_duration()
-- animatedupdate.set_gx_duration(1.0)
-- assert animatedupdate.has_gx_duration()
-- assert 1.0 == animatedupdate.get_gx_duration()
--
-- assert False == animatedupdate.has_update()
-- assert None == animatedupdate.get_update()
-- animatedupdate.set_update(self.factory.CreateUpdate())
-- assert animatedupdate.has_update()
--
-- # <gx:FlyTo>
-- def testGxFlyTo(self):
-- flyto = self.factory.CreateGxFlyTo()
-- assert False == flyto.has_gx_duration()
-- assert 0.0 == flyto.get_gx_duration()
-- flyto.set_gx_duration(1.0)
-- assert flyto.has_gx_duration()
-- assert 1.0 == flyto.get_gx_duration()
--
-- assert False == flyto.has_gx_flytomode()
-- assert kmldom.GX_FLYTOMODE_BOUNCE == flyto.get_gx_flytomode()
-- flyto.set_gx_flytomode(kmldom.GX_FLYTOMODE_SMOOTH)
-- assert flyto.has_gx_flytomode()
-- assert kmldom.GX_FLYTOMODE_SMOOTH == flyto.get_gx_flytomode()
--
-- # <gx:Wait>
-- def testGxWait(self):
-- wait = self.factory.CreateGxWait()
-- assert False == wait.has_gx_duration()
-- assert 0.0 == wait.get_gx_duration()
-- wait.set_gx_duration(1.0)
-- assert wait.has_gx_duration()
-- assert 1.0 == wait.get_gx_duration()
--
-- # <gx:SoundCue>
-- def testGxSoundCue(self):
-- soundcue = self.factory.CreateGxSoundCue()
-- assert False == soundcue.has_href()
-- assert '' == soundcue.get_href()
-- href = 'some href'
-- soundcue.set_href(href)
-- assert soundcue.has_href()
-- assert href == soundcue.get_href()
--
-- # <gx:TourControl>
-- def testGxTourControl(self):
-- tourcontrol = self.factory.CreateGxTourControl()
-- assert False == tourcontrol.has_gx_playmode()
-- assert kmldom.GX_PLAYMODE_PAUSE == tourcontrol.get_gx_playmode()
-- tourcontrol.set_gx_playmode(kmldom.GX_PLAYMODE_PAUSE)
-- assert tourcontrol.has_gx_playmode()
-- assert kmldom.GX_PLAYMODE_PAUSE == tourcontrol.get_gx_playmode()
--
-- # Parse and serialization of gx:Tour and friends.
-- def testGxTourParseSerialize(self):
-- kml = (
-- '<gx:Tour>'
-- '<gx:Playlist>'
-- '<gx:SoundCue><href>x</href></gx:SoundCue>'
-- '<gx:FlyTo>'
-- '<gx:duration>1.0</gx:duration>'
-- '</gx:FlyTo>'
-- '<gx:AnimatedUpdate>'
-- '<gx:duration>2.0</gx:duration>'
-- '<Update/>'
-- '</gx:AnimatedUpdate>'
-- '<gx:TourControl><gx:playMode>pause</gx:playMode></gx:TourControl>'
-- '<gx:Wait><gx:duration>3.0</gx:duration></gx:Wait>'
-- '</gx:Playlist>'
-- '</gx:Tour>')
-- assert kmldom.ParseKml(kml)
-- assert kmldom.AsGxTour(kmldom.ParseKml(kml))
-- tour = kmldom.AsGxTour(kmldom.ParseKml(kml))
-- assert tour.has_gx_playlist()
-- playlist = tour.get_gx_playlist()
-- assert 5 == playlist.get_gx_tourprimitive_array_size()
-- soundcue = kmldom.AsGxSoundCue(playlist.get_gx_tourprimitive_array_at(0))
-- assert soundcue
-- assert soundcue.has_href()
-- assert 'x' == soundcue.get_href()
-- flyto = kmldom.AsGxFlyTo(playlist.get_gx_tourprimitive_array_at(1))
-- assert flyto
-- assert flyto.has_gx_duration()
-- assert 1.0 == flyto.get_gx_duration()
-- au = kmldom.AsGxAnimatedUpdate(playlist.get_gx_tourprimitive_array_at(2))
-- assert au
-- assert au.has_gx_duration()
-- assert 2.0 == au.get_gx_duration()
-- assert au.has_update()
-- assert kmldom.AsUpdate(au.get_update())
-- tc = kmldom.AsGxTourControl(playlist.get_gx_tourprimitive_array_at(3))
-- assert tc
-- assert tc.has_gx_playmode()
-- assert kmldom.GX_PLAYMODE_PAUSE == tc.get_gx_playmode()
-- wait = kmldom.AsGxWait(playlist.get_gx_tourprimitive_array_at(4))
-- assert wait
-- assert wait.has_gx_duration()
-- assert 3.0 == wait.get_gx_duration()
--
--class ItemIconTestCase(unittest.TestCase):
-- """ This verifies the behavior of ItemIcon and its children """
--
-- def setUp(self):
-- self.factory = kmldom.KmlFactory_GetFactory()
-- self.itemicon = self.factory.CreateItemIcon()
--
-- def testDefaults(self):
-- assert not self.itemicon.has_state()
-- assert 1 == self.itemicon.get_state_array_size()
-- assert kmldom.ITEMICONSTATE_OPEN == self.itemicon.get_state_array_at(0)
-- assert not self.itemicon.has_href()
-- assert "" == self.itemicon.get_href()
--
-- def testState(self):
-- state_open = kmldom.ITEMICONSTATE_OPEN
-- state_error = kmldom.ITEMICONSTATE_ERROR
-- state_fetching0 = kmldom.ITEMICONSTATE_FETCHING0
--
-- self.itemicon.clear_state()
-- assert 0 == self.itemicon.get_state_array_size()
-- self.itemicon.add_state(state_error)
-- assert 1 == self.itemicon.get_state_array_size()
-- assert state_error == self.itemicon.get_state_array_at(0)
-- self.itemicon.add_state(state_fetching0)
-- assert 2 == self.itemicon.get_state_array_size()
-- assert state_fetching0 == self.itemicon.get_state_array_at(1)
--
--
--def suite():
-- suite = unittest.TestSuite()
-- suite.addTest(VerySimpleParseTestCase())
-- suite.addTest(VerySimpleSerializeTestCase())
-- suite.addTest(SimpleFactoryTestCase())
-- suite.addTest(FactoryCreateElementByIdTestCase())
-- suite.addTest(VerySimpleCastTestCase())
-- suite.addTest(VerySimpleSimpleChildTestCase())
-- suite.addTest(VerySimpleComplexChildTestCase())
-- suite.addTest(SimpleAtomAuthorTestCase('testDefault'))
-- suite.addTest(SimpleAtomAuthorTestCase('testSetClear'))
-- suite.addTest(SimpleAtomLinkTestCase('testDefault'))
-- suite.addTest(SimpleAtomLinkTestCase('testSetClear'))
-- suite.addTest(SimpleCoordinatesTestCase())
-- suite.addTest(SimpleVec2TestCase())
-- suite.addTest(SimpleObjectTestCase())
-- suite.addTest(SimpleFeatureTestCase())
-- suite.addTest(SimpleFeatureTestCase('testParseAtom'))
-- suite.addTest(SimpleRegionTestCase())
-- suite.addTest(SimpleParseTestCase('testBasic'))
-- suite.addTest(SimpleSerializePrettyTestCase('testBasic'))
-- suite.addTest(SimpleSerializeRawTestCase('testBasic'))
-- suite.addTest(SimpleExtendedDataTestCase('testDefault'))
-- suite.addTest(DataTestCase('testDefault'))
-- suite.addTest(SimpleDataTestCase('testDefault'))
-- suite.addTest(SimpleIconStyleTestCase('testDefault'))
-- suite.addTest(SimpleKmlTestCase('testDefault'))
-- suite.addTest(SimpleKmlTestCase('testSetClear'))
-- suite.addTest(SimpleNetworkLinkControlTestCase('testDefault'))
-- suite.addTest(SimpleNetworkLinkControlTestCase('testSetClear'))
-- suite.addTest(SimpleLabelStyleTestCase('testDefault'))
-- suite.addTest(SimpleLineStyleTestCase('testDefault'))
-- suite.addTest(SimpleListStyleTestCase('testDefault'))
-- suite.addTest(SimplePhotoOverlayTestCase('testDefault'))
-- suite.addTest(SimplePlacemarkTestCase('testDefault'))
-- suite.addTest(SimplePlacemarkTestCase('testName'))
-- suite.addTest(SimplePolyStyleTestCase('testDefault'))
-- suite.addTest(SimpleLatLonBoxTestCase('testDefault'))
-- suite.addTest(SimpleLatLonBoxTestCase('testSetClear'))
-- suite.addTest(SimpleLinkTestCase('testDefault'))
-- suite.addTest(SimpleLinkTestCase('testSetClear'))
-- suite.addTest(SimpleChangeTestCase('testDefault'))
-- suite.addTest(SimpleChangeTestCase('testAddOneObject'))
-- suite.addTest(SimpleChangeTestCase('testAddNObjects'))
-- suite.addTest(SimpleCreateTestCase('testDefault'))
-- suite.addTest(SimpleCreateTestCase('testAddOneContainer'))
-- suite.addTest(SimpleCreateTestCase('testAddNContainers'))
-- suite.addTest(SimpleDeleteTestCase('testAddOneFeature'))
-- suite.addTest(SimpleDeleteTestCase('testAddNFeatures'))
-- suite.addTest(SimpleDocumentTestCase('testDefault'))
-- suite.addTest(SimpleResourceMapTestCase('testDefault'))
-- suite.addTest(SimpleMultiGeometryTestCase('testDefault'))
-- suite.addTest(SimpleSchemaTestCase('testDefault'))
-- suite.addTest(SimpleSchemaDataTestCase('testDefault'))
-- suite.addTest(SimpleSimpleFieldTestCase('testDefault'))
-- suite.addTest(SimpleUpdateTestCase('testDefault'))
-- suite.addTest(SimpleUpdateTestCase('testTargetHref'))
-- suite.addTest(SimpleIconStyleIconTestCase('testBasic'))
-- suite.addTest(GxExtensionsTestCase('testGxBalloonVisibility'))
-- suite.addTest(GxExtensionsTestCase('testGxTimePrimitives'))
-- suite.addTest(GxExtensionsTestCase('testGxAltitudeModes'))
-- suite.addTest(GxExtensionsTestCase('testGxLatLonQuad'))
-- suite.addTest(GxExtensionsTestCase('testGxTour'))
-- suite.addTest(GxExtensionsTestCase('testGxPlaylist'))
-- suite.addTest(GxExtensionsTestCase('testGxAnimatedUpdate'))
-- suite.addTest(GxExtensionsTestCase('testGxFlyTo'))
-- suite.addTest(GxExtensionsTestCase('testGxWait'))
-- suite.addTest(GxExtensionsTestCase('testGxSoundCue'))
-- suite.addTest(GxExtensionsTestCase('testGxTourControl'))
-- suite.addTest(GxExtensionsTestCase('testGxTourParseSerialize'))
-- suite.addTest(ItemIconTestCase('testDefaults'))
-- suite.addTest(ItemIconTestCase('testState'))
-- return suite
--
--
--runner = unittest.TextTestRunner()
--runner.run(suite())
---- a/src/swig/kmlengine_test.py
-+++ /dev/null
-@@ -1,283 +0,0 @@
--#!/usr/bin/env python
--
--# 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 contains unit tests for the KML Engine Python SWIG bindings.
--"""
--
--import unittest
--import kmldom
--import kmlengine
--
--# These VerySimple tests really only verify that the function/class exists.
--
--class VerySimpleKmlDomTestCase(unittest.TestCase):
-- """ Verify very simple KML DOM usage """
-- def runTest(self):
-- factory = kmldom.KmlFactory_GetFactory()
-- placemark = factory.CreatePlacemark()
-- name = 'hi'
-- placemark.set_name(name)
-- assert name == placemark.get_name()
--
--class VerySimpleBboxTestCase(unittest.TestCase):
-- """ Verify very simple usage of class Bbox """
-- def runTest(self):
-- bbox = kmlengine.Bbox(38, 36, -120, -122)
-- assert bbox.Contains(37, -121)
--
--class AllMethodsBboxTestCase(unittest.TestCase):
-- """ Verify basic usage of each method of kmlengine.Bbox """
-- def runTest(self):
-- bbox = kmlengine.Bbox()
-- assert -180.0 == bbox.get_north()
-- assert 180.0 == bbox.get_south()
-- assert -180.0 == bbox.get_east()
-- assert 180.0 == bbox.get_west()
--
-- bbox_a = kmlengine.Bbox(10.1, -11.2, 99.99, -88.88)
-- bbox.ExpandFromBbox(bbox_a)
-- assert 10.1 == bbox.get_north()
-- assert -11.2 == bbox.get_south()
-- assert 99.99 == bbox.get_east()
-- assert -88.88 == bbox.get_west()
--
-- bbox.ExpandLatitude(20.2)
-- assert 20.2 == bbox.get_north()
-- assert -11.2 == bbox.get_south()
-- bbox.ExpandLatitude(-20.2)
-- assert 20.2 == bbox.get_north()
-- assert -20.2 == bbox.get_south()
-- bbox.ExpandLongitude(101.101)
-- assert 101.101 == bbox.get_east()
-- assert -88.88 == bbox.get_west()
-- bbox.ExpandLongitude(-101.101)
-- assert 101.101 == bbox.get_east()
-- assert -101.101 == bbox.get_west()
--
-- bbox.ExpandLatLon(30.3, -111.222);
-- assert 30.3 == bbox.get_north()
-- assert -20.2 == bbox.get_south()
-- assert 101.101 == bbox.get_east()
-- assert -111.222 == bbox.get_west()
--
--class VerySimpleCloneTestCase(unittest.TestCase):
-- """ Verify very simple usage of Clone() """
-- def runTest(self):
-- factory = kmldom.KmlFactory_GetFactory()
-- placemark = factory.CreatePlacemark()
-- name = 'hi'
-- placemark.set_name(name)
-- clone_element = kmlengine.Clone(placemark)
-- assert clone_element
-- clone_placemark = kmldom.AsPlacemark(clone_element)
-- assert clone_placemark
-- assert name == clone_placemark.get_name()
-- # Change the name in the original
-- new_name = 'new name'
-- placemark.set_name(new_name)
-- # Verify that the clone still has the old name
-- assert name == clone_placemark.get_name()
--
--class VerySimpleGetFeatureLatLonTestCase(unittest.TestCase):
-- def runTest(self):
-- kml = '<Placemark>' \
-- '<Point><coordinates>1,2,3</coordinates></Point>' \
-- '</Placemark>'
-- element = kmldom.ParseKml(kml)
-- assert element
-- feature = kmldom.AsFeature(element)
-- assert feature
-- status,lat,lon = kmlengine.GetFeatureLatLon(feature)
-- assert True == status
-- assert 1 == lon
-- assert 2 == lat
--
--class VerySimpleGetFeatureBoundsTestCase(unittest.TestCase):
-- def runTest(self):
-- kml = '<Placemark>' \
-- '<LineString><coordinates>1,2 -1,-2</coordinates></LineString>' \
-- '</Placemark>'
-- element = kmldom.ParseKml(kml)
-- assert element
-- feature = kmldom.AsFeature(element)
-- assert feature
-- bbox = kmlengine.Bbox()
-- status = kmlengine.GetFeatureBounds(feature, bbox)
-- assert status
-- assert 2 == bbox.get_north()
-- assert -2 == bbox.get_south()
-- assert 1 == bbox.get_east()
-- assert -1 == bbox.get_west()
--
--class VerySimpleGetRootFeatureTestCase(unittest.TestCase):
-- """ Verify very simple usage of GetRootFeature() """
-- def runTest(self):
-- factory = kmldom.KmlFactory_GetFactory()
-- placemark = factory.CreatePlacemark()
-- feature = kmlengine.GetRootFeature(placemark)
-- assert feature
-- assert kmldom.AsPlacemark(feature)
--
--class VerySimpleKmzSplitTestCase(unittest.TestCase):
-- def runTest(self):
-- kml_url = 'http://foo.com/goo.kmz/bar.jpg'
-- status,kmz_url,kmz_path = kmlengine.KmzSplit(kml_url)
-- assert True == status
-- assert 'http://foo.com/goo.kmz' == kmz_url
-- assert 'bar.jpg' == kmz_path
--
--class VerySimpleSplitUriTestCase(unittest.TestCase):
-- def runTest(self):
-- status,scheme,host,port,path,query,fragment = \
-- kmlengine.SplitUri('http://host.com:82/a/b/c.kml?p=q#id')
-- assert True == status
-- assert 'http' == scheme
-- assert 'host.com' == host
-- assert 'a/b/c.kml' == path
-- assert 'p=q' == query
-- assert 'id' == fragment
--
--class BasicKmlFileCreateFromParseTestCase(unittest.TestCase):
-- """ Verify very simple usage of the KmlFile::CreateFromParse() method """
-- def runTest(self):
-- id = 'pm123'
-- kml = '<Placemark id="%s"><name>hello</name></Placemark>' % id
-- kmlfile,errors = kmlengine.KmlFile.CreateFromParse(kml)
-- assert kmlfile
-- object = kmlfile.GetObjectById(id)
-- assert object
-- placemark = kmldom.AsPlacemark(object)
-- assert placemark
-- assert placemark.has_id()
-- assert id == placemark.get_id()
--
--class KmlFileCreateFromParseOfBasicElementTestCase(unittest.TestCase):
-- def runTest(self):
-- kmlfile,errors = kmlengine.KmlFile.CreateFromParse('<kml/>')
-- assert kmlfile
-- root = kmlfile.get_root()
-- assert kmldom.Type_kml == root.Type()
--
--class BasicKmlFileCreateFromImportTestCase(unittest.TestCase):
-- def runTest(self):
-- factory = kmldom.KmlFactory_GetFactory()
-- placemark = factory.CreatePlacemark()
-- id = 'placemark123'
-- name = 'some name'
-- placemark.set_id(id)
-- placemark.set_name(name)
-- folder = factory.CreateFolder()
-- folder.add_feature(placemark)
-- kmlfile = kmlengine.KmlFile.CreateFromImport(folder)
-- assert kmlfile
-- object = kmlfile.GetObjectById(id)
-- assert object
-- placemark = kmldom.AsPlacemark(object)
-- assert placemark
-- assert placemark.has_id()
-- assert id == placemark.get_id()
-- assert placemark.has_name()
-- assert name == placemark.get_name()
--
--class KmlFileCreateFromImportOfBasicElementTestCase(unittest.TestCase):
-- def runTest(self):
-- factory = kmldom.KmlFactory_GetFactory()
-- # TODO: This crashes CreateFromImport as do all non-Object complex elements
-- # kml = factory.CreateKml()
-- # This returns an ElementPtr for the given element and works fine in
-- # CreateFromImport:
-- kml_as_element = factory.CreateElementById(kmldom.Type_kml)
-- kml = kmldom.AsKml(kml_as_element)
-- kml.set_feature(factory.CreatePlacemark())
-- kmlfile = kmlengine.KmlFile.CreateFromImport(kml_as_element)
-- assert kmlfile
-- root = kmlfile.get_root()
-- assert root
-- kml = kmldom.AsKml(root)
-- assert kml
-- assert kml.has_feature()
-- placemark = kmldom.AsPlacemark(kml.get_feature())
-- assert placemark
--
--class BasicKmlFileSerializeToStringTestCase(unittest.TestCase):
-- def runTest(self):
-- factory = kmldom.KmlFactory_GetFactory()
-- kml = factory.CreateElementById(kmldom.Type_kml)
-- assert kml
-- kmlfile = kmlengine.KmlFile.CreateFromImport(kml)
-- assert kmlfile
-- (ok, xml) = kmlfile.SerializeToString()
-- assert ok
-- kExpectedXml = '<?xml version="1.0" encoding="utf-8"?>\n' \
-- '<kml xmlns="http://www.opengis.net/kml/2.2"/>\n'
-- assert kExpectedXml == xml
--
--class BasicKmzFileTestCase(unittest.TestCase):
-- def runTest(self):
-- kmz_filepath = '../../testdata/kmz/model-macky.kmz'
-- kmzfile = kmlengine.KmzFile.OpenFromFile(kmz_filepath)
-- assert kmzfile
-- (ok, kml) = kmzfile.ReadKml()
-- assert ok
-- (kmlfile,errors) = kmlengine.KmlFile.CreateFromParse(kml)
-- assert kmlfile
-- root = kmldom.AsKml(kmlfile.get_root())
-- assert root
-- placemark = kmldom.AsPlacemark(root.get_feature())
-- assert placemark
-- assert 'SketchUp Model of Macky Auditorium' == placemark.get_name()
-- assert placemark.has_geometry()
-- model = kmldom.AsModel(placemark.get_geometry())
-- assert model
-- assert 'model_4' == model.get_id()
-- (ok, dae) = kmzfile.ReadFile('geometry/CU-Macky.dae')
-- assert ok
-- assert 268477 == len(dae)
--
--def suite():
-- suite = unittest.TestSuite()
-- suite.addTest(VerySimpleKmlDomTestCase())
-- suite.addTest(VerySimpleBboxTestCase())
-- suite.addTest(AllMethodsBboxTestCase())
-- suite.addTest(VerySimpleCloneTestCase())
-- suite.addTest(VerySimpleGetRootFeatureTestCase())
-- suite.addTest(VerySimpleGetFeatureLatLonTestCase())
-- suite.addTest(VerySimpleGetFeatureBoundsTestCase())
-- suite.addTest(VerySimpleKmzSplitTestCase())
-- suite.addTest(VerySimpleSplitUriTestCase())
-- suite.addTest(KmlFileCreateFromParseOfBasicElementTestCase())
-- suite.addTest(BasicKmlFileCreateFromParseTestCase())
-- suite.addTest(BasicKmlFileCreateFromImportTestCase())
-- suite.addTest(KmlFileCreateFromImportOfBasicElementTestCase())
-- suite.addTest(BasicKmlFileSerializeToStringTestCase())
-- suite.addTest(BasicKmzFileTestCase())
-- return suite
--
--
--runner = unittest.TextTestRunner()
--runner.run(suite())
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/libkml.git
More information about the Pkg-grass-devel
mailing list