]> Creatis software - cpPlugins.git/commitdiff
Cleaning...
authorLeonardo Florez-Valencia <florez-l@javeriana.edu.co>
Mon, 27 Jun 2016 04:12:08 +0000 (23:12 -0500)
committerLeonardo Florez-Valencia <florez-l@javeriana.edu.co>
Mon, 27 Jun 2016 04:12:08 +0000 (23:12 -0500)
332 files changed:
CMakeLists.txt [deleted file]
COMPILATION [deleted file]
README [deleted file]
appli/CMakeLists.txt [deleted file]
appli/PipelineEditor/CMakeLists.txt [deleted file]
appli/PipelineEditor/PipelineEditor.cxx [deleted file]
appli/PipelineEditor/PipelineEditor.h [deleted file]
appli/PipelineEditor/PipelineEditor.ui [deleted file]
appli/PipelineEditor/main.cxx [deleted file]
appli/bash/CMakeLists.txt [deleted file]
appli/bash/cpPlugins_CreateInstances.cxx [deleted file]
appli/bash/cpPlugins_ExecuteWorkspace.cxx [deleted file]
appli/bash/cpPlugins_HostCreator.cxx [deleted file]
appli/examples/CMakeLists.txt [deleted file]
appli/examples/extensions/CMakeLists.txt [deleted file]
appli/examples/extensions/example_ImageSlice.cxx [deleted file]
appli/examples/extensions/example_IterativeGaussianModelEstimator.cxx [deleted file]
appli/examples/extensions/example_KalmanVelocity.cxx [deleted file]
appli/examples/plugins/CMakeLists.txt [deleted file]
appli/examples/plugins/QT/CMakeLists.txt [deleted file]
appli/examples/plugins/QT/example_ActorProperties/CMakeLists.txt [deleted file]
appli/examples/plugins/QT/example_ActorProperties/example_ActorProperties.cxx [deleted file]
appli/examples/plugins/QT/example_ActorProperties/example_ActorProperties.h [deleted file]
appli/examples/plugins/QT/example_ActorProperties/example_ActorProperties.ui [deleted file]
appli/examples/plugins/QT/example_ActorProperties/main.cxx [deleted file]
appli/examples/plugins/QT/example_MPRViewer/CMakeLists.txt [deleted file]
appli/examples/plugins/QT/example_MPRViewer/example_MPRViewer.cxx [deleted file]
appli/examples/plugins/QT/example_MPRViewer/example_MPRViewer.h [deleted file]
appli/examples/plugins/QT/example_MPRViewer/example_MPRViewer.ui [deleted file]
appli/examples/plugins/QT/example_MPRViewer/main.cxx [deleted file]
appli/examples/plugins/example_GuessPlugins.cxx [deleted file]
appli/examples/plugins/example_LoadPlugins.cxx [deleted file]
appli/examples/plugins/example_LoadPluginsDirectory.cxx [deleted file]
appli/examples/plugins/example_LoadPluginsFile.cxx [deleted file]
appli/examples/plugins/example_ReadWriteImage.cxx [deleted file]
appli/examples/plugins/example_ReadWriteImageWithWorkspace.cxx [deleted file]
appli/examples/plugins/example_ShowImage.cxx [deleted file]
appli/examples/plugins/example_ShowSphere.cxx [deleted file]
cmake/CMakeLists.txt [deleted file]
cmake/cpPluginsConfig.cmake.in [deleted file]
cmake/cpPlugins_Functions.cmake [deleted file]
cmake/cpPlugins_KitwareTools.cmake [deleted file]
cmake/cpPlugins_Options.cmake [deleted file]
cmake/cpPlugins_Policies.cmake [deleted file]
cmake/cpPlugins_Qt4Tools.cmake [deleted file]
data/ReadWriteImage.wxml [deleted file]
data/circles.png [deleted file]
data/inertia.lyx [deleted file]
data/line_rad_25.png [deleted file]
data/mesh_00.vtk [deleted file]
data/mesh_01.obj [deleted file]
data/mesh_02.obj [deleted file]
data/mesh_03.vtk [deleted file]
data/mesh_04.vtk [deleted file]
data/mesh_05.obj [deleted file]
data/mesh_06.vtk [deleted file]
data/save_dicomseries_as_singlefile_image.wxml [deleted file]
data/test.png [deleted file]
data/test2.png [deleted file]
data/test3.png [deleted file]
data/workspace_00.xml [deleted file]
doc/uml/cpPlugins_classes.dia [deleted file]
lib/CMakeLists.txt [deleted file]
lib/ItkVtkGlue/CMakeLists.txt [deleted file]
lib/ItkVtkGlue/itkImageToVTKImageFilter.h [deleted file]
lib/ItkVtkGlue/itkImageToVTKImageFilter.hxx [deleted file]
lib/ItkVtkGlue/itkVTKImageToImageFilter.h [deleted file]
lib/ItkVtkGlue/itkVTKImageToImageFilter.hxx [deleted file]
lib/cpExtensions/Algorithms/BezierCurveFunction.h [deleted file]
lib/cpExtensions/Algorithms/BezierCurveFunction.hxx [deleted file]
lib/cpExtensions/Algorithms/FluxMedialness.h [deleted file]
lib/cpExtensions/Algorithms/FluxMedialness.hxx [deleted file]
lib/cpExtensions/Algorithms/GaussianDensityImageFilter.h [deleted file]
lib/cpExtensions/Algorithms/GradientImageFunctionBase.h [deleted file]
lib/cpExtensions/Algorithms/GradientImageFunctionBase.hxx [deleted file]
lib/cpExtensions/Algorithms/GulsunTekMedialness.h [deleted file]
lib/cpExtensions/Algorithms/GulsunTekMedialness.hxx [deleted file]
lib/cpExtensions/Algorithms/ImageFunctionFilter.h [deleted file]
lib/cpExtensions/Algorithms/ImageFunctionFilter.hxx [deleted file]
lib/cpExtensions/Algorithms/ImageFunctorFilter.h [deleted file]
lib/cpExtensions/Algorithms/InertiaMedialness.h [deleted file]
lib/cpExtensions/Algorithms/InertiaTensorFunction.h [deleted file]
lib/cpExtensions/Algorithms/IsoImageSlicer.h [deleted file]
lib/cpExtensions/Algorithms/IsoImageSlicer.hxx [deleted file]
lib/cpExtensions/Algorithms/IterativeGaussianModelEstimator.h [deleted file]
lib/cpExtensions/Algorithms/IterativeGaussianModelEstimator.hxx [deleted file]
lib/cpExtensions/Algorithms/KalmanConstantFilter.cxx [deleted file]
lib/cpExtensions/Algorithms/KalmanConstantFilter.h [deleted file]
lib/cpExtensions/Algorithms/KalmanFilter.cxx [deleted file]
lib/cpExtensions/Algorithms/KalmanFilter.h [deleted file]
lib/cpExtensions/Algorithms/KalmanFilter.hxx [deleted file]
lib/cpExtensions/Algorithms/KalmanVelocityFilter.cxx [deleted file]
lib/cpExtensions/Algorithms/KalmanVelocityFilter.h [deleted file]
lib/cpExtensions/Algorithms/LightCompensationFilter.h [deleted file]
lib/cpExtensions/Algorithms/LightCompensationFilter.hxx [deleted file]
lib/cpExtensions/Algorithms/MFluxMedialness.h [deleted file]
lib/cpExtensions/Algorithms/MFluxMedialness.hxx [deleted file]
lib/cpExtensions/Algorithms/MacheteImageFilter.h [deleted file]
lib/cpExtensions/Algorithms/MacheteImageFilter.hxx [deleted file]
lib/cpExtensions/Algorithms/MultiScaleGaussianImageFilter.h [deleted file]
lib/cpExtensions/Algorithms/MultiScaleGaussianImageFilter.hxx [deleted file]
lib/cpExtensions/Algorithms/ParallelImageMean.h [deleted file]
lib/cpExtensions/Algorithms/ParallelImageMean.hxx [deleted file]
lib/cpExtensions/Algorithms/RGBExtractFunction.h [deleted file]
lib/cpExtensions/Algorithms/RGBImageToOtherChannelsFilter.h [deleted file]
lib/cpExtensions/Algorithms/RGBImageToOtherChannelsFilter.hxx [deleted file]
lib/cpExtensions/Algorithms/RGBToHSVFunction.h [deleted file]
lib/cpExtensions/Algorithms/RGBToYPbPrFunction.h [deleted file]
lib/cpExtensions/Algorithms/RegionOfInterestImageCalculator.h [deleted file]
lib/cpExtensions/Algorithms/RegionOfInterestImageCalculator.hxx [deleted file]
lib/cpExtensions/Algorithms/SpatialObjectMaskImageFilter.h [deleted file]
lib/cpExtensions/Algorithms/SpatialObjectMaskImageFilter.hxx [deleted file]
lib/cpExtensions/Algorithms/UnaryThresholdImageFilter.h [deleted file]
lib/cpExtensions/Algorithms/UnaryThresholdImageFilter.hxx [deleted file]
lib/cpExtensions/CMakeLists.txt [deleted file]
lib/cpExtensions/Config.h.in [deleted file]
lib/cpExtensions/DataStructures/Graph.h [deleted file]
lib/cpExtensions/DataStructures/Graph.hxx [deleted file]
lib/cpExtensions/DataStructures/ITKAndVTKImage.h [deleted file]
lib/cpExtensions/DataStructures/ImageIndexesContainer.h [deleted file]
lib/cpExtensions/DataStructures/InfinitePlaneSpatialObject.h [deleted file]
lib/cpExtensions/DataStructures/InfinitePlaneSpatialObject.hxx [deleted file]
lib/cpExtensions/DataStructures/PolyLineParametricPath.h [deleted file]
lib/cpExtensions/DataStructures/QuadEdge.h [deleted file]
lib/cpExtensions/DataStructures/QuadEdge.hxx [deleted file]
lib/cpExtensions/DataStructures/QuadEdgeCell.h [deleted file]
lib/cpExtensions/DataStructures/QuadEdgeCell.hxx [deleted file]
lib/cpExtensions/DataStructures/QuadEdgeIterators.h [deleted file]
lib/cpExtensions/DataStructures/QuadEdgeIterators.hxx [deleted file]
lib/cpExtensions/DataStructures/QuadEdgeMesh.h [deleted file]
lib/cpExtensions/DataStructures/QuadEdgeMesh.hxx [deleted file]
lib/cpExtensions/DataStructures/VectorValuesContainer.h [deleted file]
lib/cpExtensions/IO/MementoState.cxx [deleted file]
lib/cpExtensions/IO/MementoState.h [deleted file]
lib/cpExtensions/IO/MeshReader.h [deleted file]
lib/cpExtensions/IO/MeshReader.hxx [deleted file]
lib/cpExtensions/IO/WaveFrontOBJReader.h [deleted file]
lib/cpExtensions/IO/WaveFrontOBJReader.hxx [deleted file]
lib/cpExtensions/Interaction/BaseInteractorStyle.cxx [deleted file]
lib/cpExtensions/Interaction/BaseInteractorStyle.h [deleted file]
lib/cpExtensions/Interaction/ImageInteractorStyle.cxx [deleted file]
lib/cpExtensions/Interaction/ImageInteractorStyle.h [deleted file]
lib/cpExtensions/Interaction/SeedWidget.cxx [deleted file]
lib/cpExtensions/Interaction/SeedWidget.h [deleted file]
lib/cpExtensions/Interaction/SphereWidget.cxx [deleted file]
lib/cpExtensions/Interaction/SphereWidget.h [deleted file]
lib/cpExtensions/QT/SimpleMPRWidget.cxx [deleted file]
lib/cpExtensions/QT/SimpleMPRWidget.h [deleted file]
lib/cpExtensions/QT/SimpleMPRWidget.ui [deleted file]
lib/cpExtensions/Visualization/ImageBlender.cxx [deleted file]
lib/cpExtensions/Visualization/ImageBlender.h [deleted file]
lib/cpExtensions/Visualization/ImageIndexesContainerToPolyData.h [deleted file]
lib/cpExtensions/Visualization/ImageIndexesContainerToPolyData.hxx [deleted file]
lib/cpExtensions/Visualization/ImageSliceActors.cxx [deleted file]
lib/cpExtensions/Visualization/ImageSliceActors.h [deleted file]
lib/cpExtensions/Visualization/MeshMapper.h [deleted file]
lib/cpExtensions/Visualization/MeshMapper.hxx [deleted file]
lib/cpExtensions/Visualization/OpenGLMeshMapper.h [deleted file]
lib/cpExtensions/Visualization/OpenGLMeshMapper.hxx [deleted file]
lib/cpExtensions/Visualization/PolyLineParametricPathToPolyData.h [deleted file]
lib/cpExtensions/Visualization/PolyLineParametricPathToPolyData.hxx [deleted file]
lib/cpExtensions/Visualization/SeedWidgetCorrector.cxx [deleted file]
lib/cpExtensions/Visualization/SeedWidgetCorrector.h [deleted file]
lib/cpPipelineEditor/BaseQtMainWindow.cxx [deleted file]
lib/cpPipelineEditor/BaseQtMainWindow.h [deleted file]
lib/cpPipelineEditor/Block.cxx [deleted file]
lib/cpPipelineEditor/Block.h [deleted file]
lib/cpPipelineEditor/CMakeLists.txt [deleted file]
lib/cpPipelineEditor/Canvas.cxx [deleted file]
lib/cpPipelineEditor/Canvas.h [deleted file]
lib/cpPipelineEditor/Connection.cxx [deleted file]
lib/cpPipelineEditor/Connection.h [deleted file]
lib/cpPipelineEditor/Editor.cxx [deleted file]
lib/cpPipelineEditor/Editor.h [deleted file]
lib/cpPipelineEditor/Port.cxx [deleted file]
lib/cpPipelineEditor/Port.h [deleted file]
lib/cpPlugins/ActorAxesProperties.cxx [deleted file]
lib/cpPlugins/ActorAxesProperties.h [deleted file]
lib/cpPlugins/ActorAxesProperties.ui [deleted file]
lib/cpPlugins/ActorImageProperties.cxx [deleted file]
lib/cpPlugins/ActorImageProperties.h [deleted file]
lib/cpPlugins/ActorImageProperties.ui [deleted file]
lib/cpPlugins/ActorPolyDataProperties.cxx [deleted file]
lib/cpPlugins/ActorPolyDataProperties.h [deleted file]
lib/cpPlugins/ActorPolyDataProperties.ui [deleted file]
lib/cpPlugins/ActorProperties.cxx [deleted file]
lib/cpPlugins/ActorProperties.h [deleted file]
lib/cpPlugins/ActorPropertiesQtDialog.cxx [deleted file]
lib/cpPlugins/ActorPropertiesQtDialog.h [deleted file]
lib/cpPlugins/BaseWidget.cxx [deleted file]
lib/cpPlugins/BaseWidget.h [deleted file]
lib/cpPlugins/BoundingBox.cxx [deleted file]
lib/cpPlugins/BoundingBox.h [deleted file]
lib/cpPlugins/BoundingBox.hxx [deleted file]
lib/cpPlugins/CMakeLists.txt [deleted file]
lib/cpPlugins/Config.h.in [deleted file]
lib/cpPlugins/DataObject.cxx [deleted file]
lib/cpPlugins/DataObject.h [deleted file]
lib/cpPlugins/Image.cxx [deleted file]
lib/cpPlugins/Image.h [deleted file]
lib/cpPlugins/Image.hxx [deleted file]
lib/cpPlugins/ImageIndexesContainer.cxx [deleted file]
lib/cpPlugins/ImageIndexesContainer.h [deleted file]
lib/cpPlugins/ImageIndexesContainer.hxx [deleted file]
lib/cpPlugins/Interface.cxx [deleted file]
lib/cpPlugins/Interface.h [deleted file]
lib/cpPlugins/Mesh.cxx [deleted file]
lib/cpPlugins/Mesh.h [deleted file]
lib/cpPlugins/Mesh.hxx [deleted file]
lib/cpPlugins/Object.cxx [deleted file]
lib/cpPlugins/Object.h [deleted file]
lib/cpPlugins/Object.hxx [deleted file]
lib/cpPlugins/OrthoNormalBase.cxx [deleted file]
lib/cpPlugins/OrthoNormalBase.h [deleted file]
lib/cpPlugins/OrthoNormalBase.hxx [deleted file]
lib/cpPlugins/Parameters.cxx [deleted file]
lib/cpPlugins/Parameters.h [deleted file]
lib/cpPlugins/ParametersQtDialog.cxx [deleted file]
lib/cpPlugins/ParametersQtDialog.h [deleted file]
lib/cpPlugins/Path.cxx [deleted file]
lib/cpPlugins/Path.h [deleted file]
lib/cpPlugins/Path.hxx [deleted file]
lib/cpPlugins/Port.cxx [deleted file]
lib/cpPlugins/Port.h [deleted file]
lib/cpPlugins/ProcessObject.cxx [deleted file]
lib/cpPlugins/ProcessObject.h [deleted file]
lib/cpPlugins/ProcessObject.hxx [deleted file]
lib/cpPlugins/Workspace.cxx [deleted file]
lib/cpPlugins/Workspace.h [deleted file]
lib/cpPlugins/WorkspaceIO.cxx [deleted file]
lib/cpPlugins_Config.h [deleted file]
lib/cpPlugins_Instances/BaseObjects.i [deleted file]
lib/cpPlugins_Instances/BaseObjects_extra.cxx [deleted file]
lib/cpPlugins_Instances/BitwiseImageFilters.i [deleted file]
lib/cpPlugins_Instances/CMakeLists.txt [deleted file]
lib/cpPlugins_Instances/ColorImages.i [deleted file]
lib/cpPlugins_Instances/ColorPixels.i [deleted file]
lib/cpPlugins_Instances/Decorators.i [deleted file]
lib/cpPlugins_Instances/DistanceMapFilters.i [deleted file]
lib/cpPlugins_Instances/ExtractImageFilters.i [deleted file]
lib/cpPlugins_Instances/GaussianImageFilters.i [deleted file]
lib/cpPlugins_Instances/ImageITK2VTK.i [deleted file]
lib/cpPlugins_Instances/ImageMeshFilters.i [deleted file]
lib/cpPlugins_Instances/ImagesIO.i [deleted file]
lib/cpPlugins_Instances/MedialnessFilters.i [deleted file]
lib/cpPlugins_Instances/Mesh.i [deleted file]
lib/cpPlugins_Instances/MorphologicalImageFilters.i [deleted file]
lib/cpPlugins_Instances/NeighborhoodIterators.i [deleted file]
lib/cpPlugins_Instances/Paths.i [deleted file]
lib/cpPlugins_Instances/ResamplingFilters.i [deleted file]
lib/cpPlugins_Instances/ScalarImages.i [deleted file]
lib/cpPlugins_Instances/ScalarImagesBaseFilters.i [deleted file]
lib/cpPlugins_Instances/ScalarVectorImagesBaseFilters.i [deleted file]
lib/cpPlugins_Instances/ThresholdFilters.i [deleted file]
lib/cpPlugins_Instances/Transforms.i [deleted file]
lib/cpPlugins_Instances/VectorImages.i [deleted file]
lib/cpPlugins_Instances/cpPlugins_DynLibs.h.in [deleted file]
lib/third_party/CMakeLists.txt [deleted file]
lib/third_party/dirent/CMakeLists.txt [deleted file]
lib/third_party/dirent/cpPlugins_dirent.h [deleted file]
lib/third_party/tinyxml/CMakeLists.txt [deleted file]
lib/third_party/tinyxml/readme.md [deleted file]
lib/third_party/tinyxml/tinyxml2.cpp [deleted file]
lib/third_party/tinyxml/tinyxml2.h [deleted file]
plugins/CMakeLists.txt [deleted file]
plugins/cpPluginsGenericFilters/CMakeLists.txt [deleted file]
plugins/cpPluginsGenericFilters/JoinBoundingBoxes.cxx [deleted file]
plugins/cpPluginsGenericFilters/JoinBoundingBoxes.h [deleted file]
plugins/cpPluginsIO/CMakeLists.txt [deleted file]
plugins/cpPluginsIO/DataReproducer.cxx [deleted file]
plugins/cpPluginsIO/DataReproducer.h [deleted file]
plugins/cpPluginsIO/DicomSeriesReader.cxx [deleted file]
plugins/cpPluginsIO/DicomSeriesReader.h [deleted file]
plugins/cpPluginsIO/ImageReader.cxx [deleted file]
plugins/cpPluginsIO/ImageReader.h [deleted file]
plugins/cpPluginsIO/ImageWriter.cxx [deleted file]
plugins/cpPluginsIO/ImageWriter.h [deleted file]
plugins/cpPluginsIO/MeshReader.cxx [deleted file]
plugins/cpPluginsIO/MeshReader.h [deleted file]
plugins/cpPluginsIO/MeshWriter.cxx [deleted file]
plugins/cpPluginsIO/MeshWriter.h [deleted file]
plugins/cpPluginsImageFilters/AndImageFilter.cxx [deleted file]
plugins/cpPluginsImageFilters/AndImageFilter.h [deleted file]
plugins/cpPluginsImageFilters/BinaryContourImageFilter.cxx [deleted file]
plugins/cpPluginsImageFilters/BinaryContourImageFilter.h [deleted file]
plugins/cpPluginsImageFilters/BinaryDilateParaImageFilter.cxx [deleted file]
plugins/cpPluginsImageFilters/BinaryDilateParaImageFilter.h [deleted file]
plugins/cpPluginsImageFilters/BinaryErodeParaImageFilter.cxx [deleted file]
plugins/cpPluginsImageFilters/BinaryErodeParaImageFilter.h [deleted file]
plugins/cpPluginsImageFilters/BinaryThresholdImageFilter.cxx [deleted file]
plugins/cpPluginsImageFilters/BinaryThresholdImageFilter.h [deleted file]
plugins/cpPluginsImageFilters/CMakeLists.txt [deleted file]
plugins/cpPluginsImageFilters/CastImageFilter.cxx [deleted file]
plugins/cpPluginsImageFilters/CastImageFilter.h [deleted file]
plugins/cpPluginsImageFilters/GaussianDensityImageFilter.cxx [deleted file]
plugins/cpPluginsImageFilters/GaussianDensityImageFilter.h [deleted file]
plugins/cpPluginsImageFilters/MultiScaleGaussianImageFilter.cxx [deleted file]
plugins/cpPluginsImageFilters/MultiScaleGaussianImageFilter.h [deleted file]
plugins/cpPluginsImageFilters/OrImageFilter.cxx [deleted file]
plugins/cpPluginsImageFilters/OrImageFilter.h [deleted file]
plugins/cpPluginsImageFilters/RegionOfInterestImageFilter.cxx [deleted file]
plugins/cpPluginsImageFilters/RegionOfInterestImageFilter.h [deleted file]
plugins/cpPluginsImageFilters/ResampleImageFilter.cxx [deleted file]
plugins/cpPluginsImageFilters/ResampleImageFilter.h [deleted file]
plugins/cpPluginsImageFilters/SignedMaurerDistanceMapImageFilter.cxx [deleted file]
plugins/cpPluginsImageFilters/SignedMaurerDistanceMapImageFilter.h [deleted file]
plugins/cpPluginsImageFilters/UnaryThresholdImageFilter.cxx [deleted file]
plugins/cpPluginsImageFilters/UnaryThresholdImageFilter.h [deleted file]
plugins/cpPluginsImageMeshFilters/CMakeLists.txt [deleted file]
plugins/cpPluginsImageMeshFilters/MarchingCubes.cxx [deleted file]
plugins/cpPluginsImageMeshFilters/MarchingCubes.h [deleted file]
plugins/cpPluginsImageMeshFilters/TriangleMeshToBinaryImageFilter.cxx [deleted file]
plugins/cpPluginsImageMeshFilters/TriangleMeshToBinaryImageFilter.h [deleted file]
plugins/cpPluginsMedialnessFilters/CMakeLists.txt [deleted file]
plugins/cpPluginsMedialnessFilters/GulsunTekMedialness.cxx [deleted file]
plugins/cpPluginsMedialnessFilters/GulsunTekMedialness.h [deleted file]
plugins/cpPluginsMeshFilters/AppendMeshesFilter.cxx [deleted file]
plugins/cpPluginsMeshFilters/AppendMeshesFilter.h [deleted file]
plugins/cpPluginsMeshFilters/CMakeLists.txt [deleted file]
plugins/cpPluginsMeshSources/CMakeLists.txt [deleted file]
plugins/cpPluginsMeshSources/CylinderSource.cxx [deleted file]
plugins/cpPluginsMeshSources/CylinderSource.h [deleted file]
plugins/cpPluginsMeshSources/SphereSource.cxx [deleted file]
plugins/cpPluginsMeshSources/SphereSource.h [deleted file]
plugins/cpPluginsWidgets/CMakeLists.txt [deleted file]
plugins/cpPluginsWidgets/SeedWidget.cxx [deleted file]
plugins/cpPluginsWidgets/SeedWidget.h [deleted file]
third_party_installers/cpPlugins_Install_CMAKE.sh [deleted file]
third_party_installers/cpPlugins_Install_ITK.sh [deleted file]
third_party_installers/cpPlugins_Install_QT4.sh [deleted file]
third_party_installers/cpPlugins_Install_VTK.sh [deleted file]
third_party_installers/qt-4.8.6.patch [deleted file]

diff --git a/CMakeLists.txt b/CMakeLists.txt
deleted file mode 100644 (file)
index 89eb42a..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
-INCLUDE(cmake/cpPlugins_Policies.cmake)
-INCLUDE(cmake/cpPlugins_Functions.cmake)
-
-## ==================
-## == Project name ==
-## ==================
-
-PROJECT(cpPlugins)
-SET(prj_MAJ_VER "0")
-SET(prj_MIN_VER "1")
-SET(prj_REL_VER "0")
-SET(prj_VER "${prj_MAJ_VER}.${prj_MIN_VER}.${prj_REL_VER}")
-SET(prj_sVER "${prj_MAJ_VER}")
-
-## =============
-## == Options ==
-## =============
-
-OPTION(BUILD_EXAMPLES "Build examples" OFF)
-
-## ==========================
-## == Packages and options ==
-## ==========================
-
-INCLUDE(cmake/cpPlugins_Options.cmake)
-INCLUDE(cmake/cpPlugins_KitwareTools.cmake)
-INCLUDE(cmake/cpPlugins_Qt4Tools.cmake)
-
-## =========================
-## == Include directories ==
-## =========================
-
-INCLUDE_DIRECTORIES(
-  ${PROJECT_SOURCE_DIR}
-  ${PROJECT_BINARY_DIR}
-  ${PROJECT_SOURCE_DIR}/lib
-  ${PROJECT_BINARY_DIR}/lib
-  ${PROJECT_SOURCE_DIR}/lib/cpPlugins_Instances
-  ${PROJECT_BINARY_DIR}/lib/cpPlugins_Instances
-  ${PROJECT_SOURCE_DIR}/plugins
-  ${PROJECT_BINARY_DIR}/plugins
-  ${PROJECT_SOURCE_DIR}/lib/third_party
-  ${PROJECT_BINARY_DIR}/lib/third_party
-  ${PROJECT_SOURCE_DIR}/lib/third_party/dirent
-  ${PROJECT_BINARY_DIR}/lib/third_party/dirent
-  ${PROJECT_SOURCE_DIR}/lib/ItkVtkGlue
-  ${PROJECT_BINARY_DIR}/lib/ItkVtkGlue
-  )
-
-## =============================
-## == Subdirs containing code ==
-## =============================
-
-SUBDIRS(
-  cmake
-  lib
-  plugins
-  appli
-  )
-
-## eof - $RCSfile$
diff --git a/COMPILATION b/COMPILATION
deleted file mode 100644 (file)
index f85b498..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-@description
-  The project uses CMake as compilation helper. It should compile on the three
-  major box flavors (linux, windows, mac). However, as of december 2014, it
-  has only been tested on linux Fedora 20 and Ubuntu 14.04.
-
-@prerequisites
-
-  0. A decent compiler for your system:
-    Linux: g++ with c++11 support
-    Mac: Xcode
-    Windows: any Visual Studio >= 2010
-
-  1. CMake (>=2.8.12.2)
-    Just use your favorite repository or get the installer from http://www.cmake.org.
-
-  2. [Optional] Qt (=4.8)
-    On linux just install the corresponding package. On Mac and Windows, download
-    the source code and compile it with your favorite compiler. Please be aware that:
-      - Both release and debug configs are needed.
-      - Compile Qt with only SHARED support.
-      - Compile Qt without Webkit support.
-
-  3. Visualization Toolkit -VTK- (>=6.1.0)
-    1. Download VTK source code from http://www.vtk.org, copy the downloaded
-       zip/tar.gz file to your work directory (say ~/sources), uncompress the
-       source file and create an empty folder (say ~/sources/vtk-build)
-    2. Execute cmake taking care to put two directories: the source dir (where
-       the VTK source code is after decompression) and the build dir (the new
-       empty folder you just created).
-    3. On linux/mac, it is easier to execute from a command line console:
-      $ cd ~/sources/vtk-build
-      *** WARNING: IF YOU INSTALLED QT ***
-      $ cmake -DCMAKE_CXX_FLAGS:STRING=-std=c++11 \
-              -DBUILD_DOCUMENTATION:BOOL=OFF \
-              -DBUILD_EXAMPLES:BOOL=OFF \
-              -DBUILD_SHARED_LIBS:BOOL=ON \
-              -DBUILD_TESTING:BOOL=OFF \
-              -DCMAKE_BUILD_TYPE:STRING=MinSizeRel \
-              -DModule_vtkGUISupportQt:BOOL=ON \
-              -DModule_vtkGUISupportQtOpenGL:BOOL=ON \
-              -DModule_vtkGUISupportQtSQL:BOOL=OFF \
-              -DModule_vtkGUISupportQtWebkit:BOOL=OFF \
-              -DCMAKE_INSTALL_PREFIX:PATH=~/local \
-              ~/source/the_folder_where_vtk_was_decompressed
-      *** WARNING: IF YOU DIDN'T INSTALLED QT ***
-      $ cmake -DCMAKE_CXX_FLAGS:STRING=-std=c++11 \
-              -DBUILD_DOCUMENTATION:BOOL=OFF \
-              -DBUILD_EXAMPLES:BOOL=OFF \
-              -DBUILD_SHARED_LIBS:BOOL=ON \
-              -DBUILD_TESTING:BOOL=OFF \
-              -DCMAKE_BUILD_TYPE:STRING=MinSizeRel \
-              -DModule_vtkGUISupportQt:BOOL=OFF \
-              -DModule_vtkGUISupportQtOpenGL:BOOL=OFF \
-              -DModule_vtkGUISupportQtSQL:BOOL=OFF \
-              -DModule_vtkGUISupportQtWebkit:BOOL=OFF \
-              -DCMAKE_INSTALL_PREFIX:PATH=~/local \
-              ~/source/the_folder_where_vtk_was_decompressed
-      $ make
-      ... WAIT A FEW MINUTES ...
-      $ make install
-    4. On windows, make sure that the following cmake variables are configured as:
-         BUILD_DOCUMENTATION:BOOL=OFF
-         BUILD_EXAMPLES:BOOL=OFF
-         BUILD_SHARED_LIBS:BOOL=ON
-         BUILD_TESTING:BOOL=OFF
-         CMAKE_BUILD_TYPE:STRING=MinSizeRel
-         Module_vtkGUISupportQt:BOOL=[OFF/ON] ** "ON", IF YOU INSTALLED Qt
-         Module_vtkGUISupportQtOpenGL:BOOL=[OFF/ON] ** "ON", IF YOU INSTALLED Qt
-         Module_vtkGUISupportQtSQL:BOOL=OFF \
-         Module_vtkGUISupportQtWebkit:BOOL=OFF \
-       NOTE: Normally, windows compilers already support c++11.
-
-  4. Insight Toolkit -ITK- (>=4.6.0)
-    1. Download ITK source code from http://www.itk.org, copy the downloaded
-       zip/tar.gz file to your work directory (say ~/sources), uncompress the
-       source file and create an empty folder (say ~/sources/itk-build)
-    2. Execute cmake taking care to put two directories: the source dir (where
-       the ITK source code is after decompression) and the build dir (the new
-       empty folder you just created).
-    3. On linux/mac, it is easier to execute from a command line console:
-      $ cd ~/sources/itk-build
-      $ cmake -DCMAKE_CXX_FLAGS:STRING=-std=c++11 \
-              -DBUILD_DOCUMENTATION:BOOL=OFF \
-              -DBUILD_EXAMPLES:BOOL=OFF \
-              -DBUILD_SHARED_LIBS:BOOL=ON \
-              -DBUILD_TESTING:BOOL=OFF \
-              -DCMAKE_BUILD_TYPE:STRING=MinSizeRel \
-              -DModule_ITKReview:BOOL=ON \
-              -DModule_ITKVtkGlue:BOOL=OFF \
-              -DCMAKE_INSTALL_PREFIX:PATH=~/local \
-              ~/source/the_folder_where_itk_was_decompressed
-      $ make
-      ... WAIT A FEW MINUTES ...
-      $ make install
-    4. On windows, make sure that the following cmake variables are configured as:
-         BUILD_DOCUMENTATION:BOOL=OFF
-         BUILD_EXAMPLES:BOOL=OFF
-         BUILD_SHARED_LIBS:BOOL=ON
-         BUILD_TESTING:BOOL=OFF
-         CMAKE_BUILD_TYPE:STRING=MinSizeRel
-         Module_ITKReview:BOOL=ON
-         Module_ITKVtkGlue:BOOL=OFF
-       NOTE: Normally, windows compilers already support c++11.
-
-  4. WARNING: Notes on compilation on MS-Windows
-     As the time being (circa dec 2014), I've been using MSVC-2013 (compiler
-     version 12). As expected, weird behavior is related to this config. Please
-     take into account the following in order to have a successful compilation:
-     4.1 If you want to build the Qt-based code, please be sure that
-         it was compiled with EXACTLY the same compiler you are using.
-     4.2 Since the dll load-unload procedure in MSWin is kind of magic,
-         VTK and ITK should be compiled as shared libraries. This allows a
-         correct execution of the SmartPointer's thus preventing anoying crashes.
-     4.3 If you found more problems in any MSWin config, please let us know at
-         florez-l@javeriana.edu.co
-
-@compilation
-  The project uses CMake as project manager. You can use the CMake GUI to configure
-  it on your box. Please take into account the following variables:
-    USE_QT4:BOOL           -> It allows you to compile the Qt support
-    BUILD_EXAMPLES:BOOL    -> Do you want to compile the examples?
-    BUILD_SHARED_LIBRARIES -> Put this allways "ON". "OFF" is still experimental
-    CMAKE_BUILD_TYPE       -> Compilation type. Possible values: Debug, Release,
-                              MinSizeRel, RelWithDebInfo, None
-    ITK_DIR                -> Where ITK was intalled. If you followed this list,
-                              it should be on: ~/local/lib/cmake/ITK-X.Y (X and Y are
-                              the version numbers)
-    VTK_DIR                -> Where VTK was intalled. If you followed this list,
-                              it should be on: ~/local/lib/cmake/vtk-X.Y (X and Y are
-                              the version numbers)
-
-## eof - $RCSfile$
diff --git a/README b/README
deleted file mode 100644 (file)
index 46efa01..0000000
--- a/README
+++ /dev/null
@@ -1,49 +0,0 @@
-
-@project
-  cpPlugins: Plugin system to encapsulate pipeline objects (data, filters,
-             sources and sinks)
-
-@version
-  0.0.1 (2014-12-31)
-
-@authors
-  Leonardo FLÓREZ-VALENCIA (florez-l@javeriana.edu.co)
-  Maciej ORKISZ (maciej.orkisz@creatis.insa-lyon.fr)
-  José Luis GUZMÁN-RODRÍGUEZ (cycopepe@gmail.com)
-  <Who else?>
-
-@description
-  <Write a fancy description and some historical notes>
-
-@third_party Pluma
-  Pluma - Plug-in Management Framework
-  1. About
-     Pluma stands for PLUg-in MAnagement framework, and also for PLUg-in
-     Minimal Architecture. It's small, cross-platform and simple to use.
-     Support and more information at http://pluma-framework.sourceforge.net
-  2. Licence
-     Source code is provided under the terms of the zlib/libpng License
-     (http://www.opensource.org/licenses/zlib-license.php):
-     Pluma - Plug-in Management Framework
-     Copyright (C) 2010-2012 Gil Costa (gsaurus@gmail.com)
-
-     This software is provided 'as-is', without any express or implied
-     warranty. In no event will the authors be held liable for any damages
-     arising from the use of this software.
-
-     Permission is granted to anyone to use this software for any purpose,
-     including commercial applications, and to alter it and redistribute it
-     freely, subject to the following restrictions:
-     1. The origin of this software must not be misrepresented;
-        you must not claim that you wrote the original software.
-        If you use this software in a product, an acknowledgment
-        in the product documentation would be appreciated but is not required.
-     2. Altered source versions must be plainly marked as such,
-        and must not be misrepresented as being the original software.
-     3. This notice may not be removed or altered from any source distribution.
-
-@license
-   <What do we put here?>
-
-
-## eof - $RCSfile$
diff --git a/appli/CMakeLists.txt b/appli/CMakeLists.txt
deleted file mode 100644 (file)
index a290efe..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-SUBDIRS(
-  bash
-  )
-IF(BUILD_EXAMPLES)
-  SUBDIRS(
-    examples
-    )
-ENDIF(BUILD_EXAMPLES)
-
-IF(USE_QT4)
-  SUBDIRS(
-    PipelineEditor
-    )
-ENDIF(USE_QT4)
-
-
-## eof - $RCSfile$
diff --git a/appli/PipelineEditor/CMakeLists.txt b/appli/PipelineEditor/CMakeLists.txt
deleted file mode 100644 (file)
index 33f7148..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-SET(App_NAME "PipelineEditor")
-SET(Dir_NAME "PipelineEditor")
-
-## ====================================================
-## = Source code, user interafaces and resources here =
-## ====================================================
-
-SET(App_SOURCE_DIR "${PROJECT_SOURCE_DIR}/appli/${Dir_NAME}")
-SET(App_BINARY_DIR "${PROJECT_BINARY_DIR}/appli/${Dir_NAME}")
-SET(App_QT_SOURCES PipelineEditor.cxx)
-SET(App_SOURCES    main.cxx)
-SET(App_QT_HEADERS PipelineEditor.h)
-FILE(GLOB App_QT_UI  "${App_SOURCE_DIR}/*.ui")
-FILE(GLOB App_QT_RES "${App_SOURCE_DIR}/*.qrc")
-
-## =====================
-## = Compilation rules =
-## =====================
-INCLUDE_DIRECTORIES(
-  ${App_SOURCE_DIR}
-  ${App_BINARY_DIR}
-  )
-
-QT4_WRAP_UI(App_QT_UI_Headers ${App_QT_UI})
-QT4_WRAP_CPP(App_QT_HEADERS_MOC_SOURCES ${App_QT_HEADERS})
-QT4_ADD_RESOURCES(App_QT_RES_SOURCES ${App_QT_RES})
-
-SET(GUI_TYPE "")
-IF(WIN32)
-  SET(GUI_TYPE WIN32)
-ENDIF(WIN32)
-IF(APPLE)
-  SET(GUI_TYPE MACOSX_BUNDLE)
-ENDIF(APPLE)
-
-ADD_EXECUTABLE(
-  ${App_NAME}
-  ${GUI_TYPE}
-  ${App_QT_UI_Headers}
-  ${App_SOURCES}
-  ${App_QT_SOURCES}
-  ${App_QT_HEADERS_MOC_SOURCES}
-  ${App_QT_RES_SOURCES}
-  )
-TARGET_LINK_LIBRARIES(
-  ${App_NAME}
-  cpExtensions
-  cpPipelineEditor
-  )
-
-## eof - $RCSfile$
diff --git a/appli/PipelineEditor/PipelineEditor.cxx b/appli/PipelineEditor/PipelineEditor.cxx
deleted file mode 100644 (file)
index e28aec0..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-#include "PipelineEditor.h"
-#include "ui_PipelineEditor.h"
-
-#include <cstdlib>
-
-#include <QFileInfo>
-#include <QMessageBox>
-
-#include <cpPlugins/Image.h>
-#include <cpPipelineEditor/Editor.h>
-
-#include <vtkImageData.h>
-#include <vtkPolyData.h>
-#include <vtkRenderWindowInteractor.h>
-
-// -------------------------------------------------------------------------
-PipelineEditor::
-PipelineEditor( int argc, char* argv[], QApplication* app, QWidget* parent )
-  : Superclass( argc, argv, app, parent ),
-    m_UI( new Ui::PipelineEditor )
-{
-  // Load environment configuration
-  char* p = std::getenv( cpPlugins_PATHS );
-  std::string sp = "";
-  if( p != NULL )
-    sp = std::string( p ) + std::string( cpPlugins_SEPARATOR );
-  QFileInfo info( argv[ 0 ] );
-  if( info.exists( ) )
-    sp += info.canonicalPath( ).toStdString( );
-  setenv( cpPlugins_PATHS, sp.c_str( ), 0 );
-
-  // Basic configuration
-  this->m_UI->setupUi( this );
-  this->_Configure(
-    this->m_UI->LoadedPlugins,
-    this->m_UI->Viewer,
-    this->m_UI->Canvas->editor( )
-    );
-
-  // Connect actions to slots
-  this->connect(
-    this->m_UI->ActionBackgroundMPR, SIGNAL( triggered( ) ),
-    this, SLOT( _ActionBackgroundMPR( ) )
-    );
-  this->connect(
-    this->m_UI->ActionBackground3D, SIGNAL( triggered( ) ),
-    this, SLOT( _ActionBackground3D( ) )
-    );
-  this->connect(
-    this->m_UI->ButtonLoadPluginsFile, SIGNAL( clicked( ) ),
-    this, SLOT( _InteractiveLoadPlugins( ) )
-    );
-  this->connect(
-    this->m_UI->ButtonLoadPluginsPath, SIGNAL( clicked( ) ),
-    this, SLOT( _InteractiveLoadPluginsFromPath( ) )
-    );
-  this->connect(
-    this->m_UI->ActionOpenWorkspace, SIGNAL( triggered( ) ),
-    this, SLOT( _InteractiveLoadWorkspace( ) )
-    );
-  this->connect(
-    this->m_UI->ActionSaveWorkspace, SIGNAL( triggered( ) ),
-    this, SLOT( _InteractiveSaveWorkspace( ) )
-    );
-  this->connect(
-    this->m_UI->Canvas->editor( ),
-    SIGNAL( execFilter( const std::string& ) ),
-    this,
-    SLOT( _ExecFilter( const std::string& ) )
-    );
-  this->connect(
-    this->m_UI->Canvas->editor( ),
-    SIGNAL( showFilterOutput( const std::string&, const std::string& ) ),
-    this,
-    SLOT( _ShowFilterOutput( const std::string&, const std::string& ) )
-    );
-  this->connect(
-    this->m_UI->Canvas->editor( ),
-    SIGNAL( hideFilterOutput( const std::string&, const std::string& ) ),
-    this,
-    SLOT( _HideFilterOutput( const std::string&, const std::string& ) )
-    );
-  this->connect(
-    this->m_UI->Canvas->editor( ),
-    SIGNAL( visualPropertiesFilterOutput( const std::string&, const std::string& ) ),
-    this,
-    SLOT( _PropertiesFilterOutput( const std::string&, const std::string& ) )
-    );
-}
-
-// -------------------------------------------------------------------------
-PipelineEditor::
-~PipelineEditor( )
-{
-  delete this->m_UI;
-}
-
-// -------------------------------------------------------------------------
-void PipelineEditor::
-_ActionBackgroundMPR( )
-{
-  this->_BackgroundProperties( 4 );
-}
-
-// -------------------------------------------------------------------------
-void PipelineEditor::
-_ActionBackground3D( )
-{
-  this->_BackgroundProperties( 3 );
-}
-
-// -------------------------------------------------------------------------
-void PipelineEditor::
-_ShowFilterOutput(
-  const std::string& filter_name, const std::string& output_name
-  )
-{
-  this->_ExecFilter( filter_name );
-  this->_ShowData( filter_name, output_name );
-}
-
-// -------------------------------------------------------------------------
-void PipelineEditor::
-_HideFilterOutput(
-  const std::string& filter_name, const std::string& output_name
-  )
-{
-  this->_HideData( filter_name, output_name );
-}
-
-// -------------------------------------------------------------------------
-void PipelineEditor::
-_PropertiesFilterOutput(
-  const std::string& filter_name, const std::string& output_name
-  )
-{
-  this->_DataProperties( filter_name, output_name );
-}
-
-// eof - $RCSfile$
diff --git a/appli/PipelineEditor/PipelineEditor.h b/appli/PipelineEditor/PipelineEditor.h
deleted file mode 100644 (file)
index 770c896..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-#ifndef __PIPELINEEDITOR__H__
-#define __PIPELINEEDITOR__H__
-
-#include <cpPipelineEditor/BaseQtMainWindow.h>
-
-// -------------------------------------------------------------------------
-namespace Ui
-{
-  class PipelineEditor;
-}
-
-/**
- */
-class PipelineEditor
-  : public cpPipelineEditor::BaseQtMainWindow
-{
-  Q_OBJECT;
-
-public:
-  typedef PipelineEditor                     Self;
-  typedef cpPipelineEditor::BaseQtMainWindow Superclass;
-
-public:
-  explicit PipelineEditor(
-    int argc, char* argv[],
-    QApplication* app,
-    QWidget* parent = NULL
-    );
-  virtual ~PipelineEditor( );
-
-protected slots:
-  void _ActionBackgroundMPR( );
-  void _ActionBackground3D( );
-  void _ShowFilterOutput(
-    const std::string& filter_name, const std::string& output_name
-    );
-  void _HideFilterOutput(
-    const std::string& filter_name, const std::string& output_name
-    );
-  void _PropertiesFilterOutput(
-    const std::string& filter_name, const std::string& output_name
-    );
-
-private:
-  Ui::PipelineEditor* m_UI;
-};
-
-#endif // __CPPIPELINEEDITOR__H__
-
-// eof - $RCSfile$
diff --git a/appli/PipelineEditor/PipelineEditor.ui b/appli/PipelineEditor/PipelineEditor.ui
deleted file mode 100644 (file)
index 3b92d74..0000000
+++ /dev/null
@@ -1,259 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>PipelineEditor</class>
- <widget class="QMainWindow" name="PipelineEditor">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>800</width>
-    <height>600</height>
-   </rect>
-  </property>
-  <property name="minimumSize">
-   <size>
-    <width>800</width>
-    <height>600</height>
-   </size>
-  </property>
-  <property name="windowTitle">
-   <string>MainWindow</string>
-  </property>
-  <widget class="QWidget" name="MainWidget">
-   <layout class="QGridLayout" name="gridLayout">
-    <item row="0" column="0">
-     <widget class="QSplitter" name="splitter_2">
-      <property name="orientation">
-       <enum>Qt::Vertical</enum>
-      </property>
-      <widget class="cpExtensions::QT::SimpleMPRWidget" name="Viewer" native="true">
-       <property name="minimumSize">
-        <size>
-         <width>0</width>
-         <height>200</height>
-        </size>
-       </property>
-      </widget>
-      <widget class="QSplitter" name="splitter">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <widget class="QFrame" name="frame">
-        <property name="minimumSize">
-         <size>
-          <width>251</width>
-          <height>331</height>
-         </size>
-        </property>
-        <property name="frameShape">
-         <enum>QFrame::StyledPanel</enum>
-        </property>
-        <property name="frameShadow">
-         <enum>QFrame::Raised</enum>
-        </property>
-        <layout class="QVBoxLayout" name="verticalLayout">
-         <item>
-          <widget class="QGroupBox" name="groupBox">
-           <property name="minimumSize">
-            <size>
-             <width>202</width>
-             <height>67</height>
-            </size>
-           </property>
-           <property name="maximumSize">
-            <size>
-             <width>202</width>
-             <height>67</height>
-            </size>
-           </property>
-           <property name="title">
-            <string>Plugins</string>
-           </property>
-           <layout class="QHBoxLayout" name="horizontalLayout">
-            <item>
-             <widget class="QPushButton" name="ButtonLoadPluginsFile">
-              <property name="minimumSize">
-               <size>
-                <width>85</width>
-                <height>31</height>
-               </size>
-              </property>
-              <property name="maximumSize">
-               <size>
-                <width>85</width>
-                <height>31</height>
-               </size>
-              </property>
-              <property name="text">
-               <string>File</string>
-              </property>
-             </widget>
-            </item>
-            <item>
-             <widget class="QPushButton" name="ButtonLoadPluginsPath">
-              <property name="minimumSize">
-               <size>
-                <width>85</width>
-                <height>31</height>
-               </size>
-              </property>
-              <property name="maximumSize">
-               <size>
-                <width>85</width>
-                <height>31</height>
-               </size>
-              </property>
-              <property name="text">
-               <string>Path</string>
-              </property>
-             </widget>
-            </item>
-           </layout>
-          </widget>
-         </item>
-         <item>
-          <widget class="QTreeWidget" name="LoadedPlugins">
-           <property name="minimumSize">
-            <size>
-             <width>229</width>
-             <height>0</height>
-            </size>
-           </property>
-           <property name="dragEnabled">
-            <bool>true</bool>
-           </property>
-           <property name="dragDropMode">
-            <enum>QAbstractItemView::DragOnly</enum>
-           </property>
-           <property name="alternatingRowColors">
-            <bool>true</bool>
-           </property>
-           <property name="uniformRowHeights">
-            <bool>true</bool>
-           </property>
-           <column>
-            <property name="text">
-             <string>Loaded plugins</string>
-            </property>
-           </column>
-          </widget>
-         </item>
-        </layout>
-       </widget>
-       <widget class="cpPipelineEditor::Canvas" name="Canvas" native="true">
-        <property name="minimumSize">
-         <size>
-          <width>500</width>
-          <height>0</height>
-         </size>
-        </property>
-        <property name="acceptDrops">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </widget>
-     </widget>
-    </item>
-   </layout>
-  </widget>
-  <widget class="QMenuBar" name="Menubar">
-   <property name="geometry">
-    <rect>
-     <x>0</x>
-     <y>0</y>
-     <width>800</width>
-     <height>22</height>
-    </rect>
-   </property>
-   <widget class="QMenu" name="MenuFile">
-    <property name="title">
-     <string>&amp;File</string>
-    </property>
-    <widget class="QMenu" name="MenuWorkspace">
-     <property name="title">
-      <string>Workspace</string>
-     </property>
-     <addaction name="ActionOpenWorkspace"/>
-     <addaction name="ActionSaveWorkspace"/>
-    </widget>
-    <addaction name="MenuWorkspace"/>
-    <addaction name="separator"/>
-    <addaction name="ActionExit"/>
-   </widget>
-   <widget class="QMenu" name="menu_View">
-    <property name="title">
-     <string>&amp;View</string>
-    </property>
-    <widget class="QMenu" name="menuBackgrounds">
-     <property name="title">
-      <string>Backgrounds</string>
-     </property>
-     <addaction name="ActionBackground3D"/>
-     <addaction name="ActionBackgroundMPR"/>
-    </widget>
-    <addaction name="menuBackgrounds"/>
-   </widget>
-   <addaction name="MenuFile"/>
-   <addaction name="menu_View"/>
-  </widget>
-  <widget class="QStatusBar" name="statusbar"/>
-  <action name="ActionOpenWorkspace">
-   <property name="text">
-    <string>Open</string>
-   </property>
-  </action>
-  <action name="ActionSaveWorkspace">
-   <property name="text">
-    <string>Save</string>
-   </property>
-  </action>
-  <action name="ActionExit">
-   <property name="text">
-    <string>E&amp;xit</string>
-   </property>
-  </action>
-  <action name="ActionBackgroundMPR">
-   <property name="text">
-    <string>MPR</string>
-   </property>
-  </action>
-  <action name="ActionBackground3D">
-   <property name="text">
-    <string>3D</string>
-   </property>
-  </action>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>cpPipelineEditor::Canvas</class>
-   <extends>QWidget</extends>
-   <header>cpPipelineEditor/Canvas.h</header>
-   <container>1</container>
-  </customwidget>
-  <customwidget>
-   <class>cpExtensions::QT::SimpleMPRWidget</class>
-   <extends>QWidget</extends>
-   <header location="global">cpExtensions/QT/SimpleMPRWidget.h</header>
-   <container>1</container>
-  </customwidget>
- </customwidgets>
- <resources/>
- <connections>
-  <connection>
-   <sender>ActionExit</sender>
-   <signal>triggered()</signal>
-   <receiver>PipelineEditor</receiver>
-   <slot>close()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>-1</x>
-     <y>-1</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>399</x>
-     <y>299</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
diff --git a/appli/PipelineEditor/main.cxx b/appli/PipelineEditor/main.cxx
deleted file mode 100644 (file)
index 0914ece..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-#include "PipelineEditor.h"
-#include <cstdlib>
-#include <QApplication>
-
-// -------------------------------------------------------------------------
-int main( int argc, char* argv[] )
-{
-  QApplication a( argc, argv );
-  PipelineEditor w( argc, argv, &a );
-  w.show( );
-  return( a.exec( ) );
-}
-
-// -------------------------------------------------------------------------
-#ifdef _WIN32
-
-#include <memory>
-#include <vector>
-#include <windows.h>
-#include <shellapi.h>
-
-/**
- */
-class Win32CommandLineConverter
-{
-private:
-  std::unique_ptr< char*[ ] > argv_;
-  std::vector< std::unique_ptr< char[ ] > > storage_;
-
-public:
-  Win32CommandLineConverter( )
-    {
-      LPWSTR cmd_line = GetCommandLineW( );
-      int argc;
-      LPWSTR* w_argv = CommandLineToArgvW( cmd_line, &argc );
-      argv_ = std::unique_ptr< char*[ ] >( new char*[ argc ] );
-      storage_.reserve( argc );
-      for( int i = 0; i < argc; ++i )
-      {
-        storage_.push_back( ConvertWArg( w_argv[ i ] ) );
-        argv_[ i ] = storage_.back( ).get( );
-
-      } // rof
-      LocalFree( w_argv );
-    }
-  int argc( ) const
-    {
-      return( static_cast< int >(storage_.size( ) ) );
-    }
-  char** argv( ) const
-    {
-      return( argv_.get( ) );
-    }
-  static std::unique_ptr< char[ ] > ConvertWArg( LPWSTR w_arg )
-    {
-      int size = WideCharToMultiByte(
-        CP_UTF8, 0, w_arg, -1, nullptr, 0, nullptr, nullptr
-        );
-      std::unique_ptr< char[ ] > ret( new char[ size ] );
-      WideCharToMultiByte(
-        CP_UTF8, 0, w_arg, -1, ret.get( ), size, nullptr, nullptr
-        );
-      return( ret );
-    }
-};
-
-int CALLBACK WinMain(
-  HINSTANCE hInstance,
-  HINSTANCE hPrevInstance,
-  LPSTR lpCmdLine,
-  int nCmdShow
-  )
-{
-  Win32CommandLineConverter cmd_line;
-  return( main( cmd_line.argc( ), cmd_line.argv( ) ) );
-}
-
-#endif
-
-// eof - $RCSfile$
diff --git a/appli/bash/CMakeLists.txt b/appli/bash/CMakeLists.txt
deleted file mode 100644 (file)
index 129a542..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-## ============================
-## == Configure source files ==
-## ============================
-
-FILE(
-  GLOB all_SOURCE_CXX_FILES RELATIVE
-  "${CMAKE_CURRENT_SOURCE_DIR}"
-  "${CMAKE_CURRENT_SOURCE_DIR}/*.cxx"
-  )
-
-## ==========================
-## == Compile source files ==
-## ==========================
-
-FOREACH(source ${all_SOURCE_CXX_FILES})
-  GET_FILENAME_COMPONENT(name ${source} NAME_WE)
-  ADD_EXECUTABLE(${name} ${source})
-  INSTALL(
-    TARGETS ${name}
-    RUNTIME DESTINATION bin
-    LIBRARY DESTINATION lib
-    ARCHIVE DESTINATION lib/static
-    )
-  SET(${name}_APP ${name} CACHE INTERNAL "bash program ${name}")
-ENDFOREACH(source)
-
-TARGET_LINK_LIBRARIES(cpPlugins_ExecuteWorkspace cpPlugins)
-
-## eof - $RCSfile$
diff --git a/appli/bash/cpPlugins_CreateInstances.cxx b/appli/bash/cpPlugins_CreateInstances.cxx
deleted file mode 100644 (file)
index a286d93..0000000
+++ /dev/null
@@ -1,277 +0,0 @@
-#include <cpPlugins_Config.h>
-#include <map>
-#include <vector>
-#include <sstream>
-
-// -------------------------------------------------------------------------
-typedef std::vector< std::string >      TLines;
-typedef std::map< char, TLines >        TParsedLines;
-typedef std::map< std::string, TLines > TVariables;
-
-// -------------------------------------------------------------------------
-bool ReadFile( TParsedLines& lines, const std::string& fname );
-void ExpandGroups( TLines& res, const TLines& lines );
-void ExpandDefinitions(
-  TLines& res, const TLines& lines, const TVariables& vars
-  );
-void PrintLines(
-  const std::string& prefix, const std::string& suffix,
-  const TLines& lines, std::ostream& out
-  );
-
-// -------------------------------------------------------------------------
-int main( int argc, char* argv[] )
-{
-  if( argc < 5 )
-  {
-    std::cerr
-      << "Usage: " << argv[ 0 ]
-      << " input_definitions library_name header_file source_file"
-      << std::endl;
-    return( 1 );
-
-  } // fi
-  std::string input_definitions_fname = argv[ 1 ];
-  std::string library_name = argv[ 2 ];
-  std::string header_file_fname = argv[ 3 ];
-  std::string source_file_fname = argv[ 4 ];
-
-  // Read file and simple parse it
-  TParsedLines lines;
-  if( !ReadFile( lines, input_definitions_fname ) )
-  {
-    std::cerr
-      << "Error opening file: \""
-      << input_definitions_fname << "\""
-      << std::endl;
-    return( 1 );
-
-  } // fi
-
-  // Expand definitions
-  TVariables vars;
-  for( auto dIt = lines[ 'd' ].begin( ); dIt != lines[ 'd' ].end( ); ++dIt )
-  {
-    TLines tokens;
-    cpPlugins::TokenizeString( tokens, *dIt, "=;" );
-    auto tIt = tokens.begin( );
-    auto vName = *tIt;
-    tIt++;
-    for( ; tIt != tokens.end( ); ++tIt )
-      vars[ vName ].push_back( *tIt );
-
-    TLines res;
-    ExpandDefinitions( res, vars[ vName ], vars );
-    vars[ vName ] = res;
-
-  } // rof
-
-  // Expand groups
-  TLines f_includes_groups, includes_groups, templates_groups, classes_groups;
-  ExpandGroups( f_includes_groups, lines[ 'f' ] );
-  ExpandGroups( includes_groups, lines[ 'i' ] );
-  ExpandGroups( templates_groups, lines[ 't' ] );
-  ExpandGroups( classes_groups, lines[ 'c' ] );
-
-  // Expand definitions
-  TLines f_includes_list, includes_list, templates_list, classes_list;
-  ExpandDefinitions( f_includes_list, f_includes_groups, vars );
-  ExpandDefinitions( includes_list, includes_groups, vars );
-  ExpandDefinitions( templates_list, templates_groups, vars );
-  ExpandDefinitions( classes_list, classes_groups, vars );
-
-  // Write header file
-  std::ofstream header_file( header_file_fname.c_str( ) );
-  if( !header_file )
-  {
-    std::cerr
-      << "Error opening \"" << header_file_fname
-      << "\" for writing." << std::endl;
-    return( 1 );
-
-  } // fi
-
-  // Print header
-  header_file
-    << "#ifndef __" << library_name << "__H__" << std::endl
-    << "#define __" << library_name << "__H__" << std::endl<< std::endl
-    << "#include <cpPlugins_Config.h>" << std::endl
-    << "#include <" << library_name << "_Export.h>" << std::endl << std::endl;
-  PrintLines( "", "", lines[ 'b' ], header_file );
-  header_file << std::endl;
-  PrintLines( "#include <", ">", f_includes_list, header_file );
-  header_file
-    << "#ifdef " << library_name << "_EXPORTS" << std::endl
-    << "#  define " << library_name << "_PREFIX template class "
-    << library_name << "_EXPORT" << std::endl
-    << "#else // " << library_name << "_EXPORTS" << std::endl
-    << "#  define " << library_name
-    << "_PREFIX extern template class" << std::endl
-    << "#endif // "
-    << library_name << "_EXPORTS" << std::endl << std::endl;
-  PrintLines( "#include <", ">", includes_list, header_file );
-  PrintLines( "#include <", ">", templates_list, header_file );
-  header_file
-    << std::endl << "#ifdef " << library_name << "_EXPORTS" << std::endl;
-  PrintLines( "#include <", "xx>", templates_list, header_file );
-  header_file
-    << "#endif // " << library_name << "_EXPORTS" << std::endl << std::endl;
-  PrintLines(
-    library_name + std::string( "_PREFIX " ), ";", classes_list, header_file
-    );
-  header_file
-    << std::endl << "#endif // __" << library_name << "__H__" << std::endl;
-  header_file.close( );
-
-  // Write source file
-  std::ofstream source_file( source_file_fname );
-  if( !source_file )
-  {
-    std::cerr
-      << "Error opening \"" << header_file_fname << "\" for writing." << std::endl;
-    return( 1 );
-
-  } // fi
-  source_file
-    << "#include \"" << header_file_fname << "\"" << std::endl;
-  source_file.close( );
-
-  return( 0 );
-}
-
-// -------------------------------------------------------------------------
-bool ReadFile( TParsedLines& lines, const std::string& fname )
-{
-  std::string buffer;
-  if( cpPlugins::ReadFileIntoString( buffer, fname ) )
-  {
-    std::istringstream input_stream( buffer );
-
-    // Read line by line
-    std::string line;
-    while( std::getline( input_stream, line ) )
-    {
-      auto cmd_pos = line.end( );
-      auto arg_pos = line.end( );
-      auto lIt = line.begin( );
-      while( lIt != line.end( ) )
-      {
-        if( !cpPlugins::IsBlank( *lIt ) )
-        {
-          if( cmd_pos == line.end( ) )
-          {
-            cmd_pos = lIt;
-            ++lIt;
-          }
-          else if( arg_pos == line.end( ) )
-          {
-            arg_pos = lIt;
-            lIt = line.end( );
-
-          } // fi
-        }
-        else
-          ++lIt;
-
-      } // elihw
-      char cmd = *cmd_pos;
-      std::string arg;
-      arg.resize( line.end( ) - arg_pos );
-      std::copy( arg_pos, line.end( ), arg.begin( ) );
-      lines[ cmd ].push_back( arg );
-
-    } // elihw
-    return( true );
-  }
-  else
-    return( false );
-}
-
-// -------------------------------------------------------------------------
-void ExpandGroups( TLines& res, const TLines& lines )
-{
-  for( auto lIt = lines.begin( ); lIt != lines.end( ); ++lIt )
-  {
-    auto b_pos = lIt->find( "@{" );
-    if( b_pos != std::string::npos )
-    {
-      unsigned int braces_count = 1;
-      auto e_pos = b_pos;
-      e_pos += 2;
-      while( braces_count != 0 && e_pos < lIt->size( ) )
-      {
-        auto v = ( *lIt )[ e_pos ];
-        braces_count += ( v == '{' )? 1: ( ( v == '}' )? -1: 0 );
-        e_pos++;
-
-      } // elihw
-      if( braces_count == 0 )
-      {
-        auto replace = lIt->substr( b_pos, e_pos - b_pos );
-        auto expansion = replace.substr( 2, replace.size( ) - 3 );
-        TLines tokens;
-        cpPlugins::TokenizeString( tokens, expansion, ";" );
-        for( auto tIt = tokens.begin( ); tIt != tokens.end( ); ++tIt )
-          *tIt = cpPlugins::ReplaceString( *lIt, replace, *tIt );
-        ExpandGroups( res, tokens );
-
-      } // fi
-    }
-    else
-      res.push_back( *lIt );
-
-  } // rof
-}
-
-// -------------------------------------------------------------------------
-void ExpandDefinitions(
-  TLines& res, const TLines& lines, const TVariables& vars
-  )
-{
-  std::string seps = " ,;:{}[]()\"$&<>*.";
-
-  for( auto lIt = lines.begin( ); lIt != lines.end( ); ++lIt )
-  {
-    auto b_pos = lIt->find( "#" );
-    if( b_pos != std::string::npos )
-    {
-      TLines tokens;
-      cpPlugins::TokenizeString( tokens, lIt->substr( b_pos ), seps );
-      std::string cmd = tokens[ 0 ];
-      auto vIt = vars.find( cmd );
-      if( vIt != vars.end( ) )
-      {
-        if( vIt->second.size( ) > 0 )
-        {
-          TLines new_res;
-          for(
-            auto wIt = vIt->second.begin( ); wIt != vIt->second.end( ); ++wIt
-            )
-            new_res.push_back( cpPlugins::ReplaceString( *lIt, cmd, *wIt ) );
-          ExpandDefinitions( res, new_res, vars );
-
-        } // fi
-
-      } // fi
-    }
-    else
-      res.push_back(
-        cpPlugins::ReplaceString(
-          cpPlugins::ReplaceString( *lIt, "{", "" ), "}", ""
-          )
-        );
-
-  } // rof
-}
-
-// -------------------------------------------------------------------------
-void PrintLines(
-  const std::string& prefix, const std::string& suffix,
-  const TLines& lines, std::ostream& out
-  )
-{
-  for( auto i = lines.begin( ); i != lines.end( ); ++i )
-    out << prefix << *i << suffix << std::endl;
-}
-
-// eof - $RCSfile$
diff --git a/appli/bash/cpPlugins_ExecuteWorkspace.cxx b/appli/bash/cpPlugins_ExecuteWorkspace.cxx
deleted file mode 100644 (file)
index e5ee4cb..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-#include <iostream>
-#include <set>
-#include <string>
-#include <vector>
-#include <cpPlugins/Interface.h>
-#include <cpPlugins/Workspace.h>
-
-int main( int argc, char* argv[] )
-{
-  if( argc == 1 )
-  {
-    std::cout << "Usage: " << argv[ 0 ] << " workspace args" << std::endl;
-    return( 1 );
-
-  } // fi
-  std::string ws_file = argv[ 1 ];
-
-  // Configure a plugin interface and load given workspace
-  cpPlugins::Interface interface;
-  cpPlugins::Workspace ws;
-  ws.SetInterface( &interface );
-  std::string err = ws.LoadWorkspace( ws_file );
-  if( err != "" )
-  {
-    std::cerr
-      << "Error loading workspace \"" << ws_file << "\": "
-      << err << std::endl;
-    return( 1 );
-
-  } // fi
-
-  // Read arguments
-  for( unsigned int i = 2; i < argc; i += 2 )
-  {
-    std::vector< std::string > tokens;
-    cpPlugins::TokenizeString( tokens, argv[ i ], "@" );
-    std::string filter_name = tokens[ 1 ];
-    std::string param_name  = tokens[ 0 ];
-    std::string param_value = argv[ i + 1 ];
-
-    auto filter = ws.GetFilter( filter_name );
-    if( filter != NULL )
-      filter->GetParameters( )->SetString( param_name, param_value );
-    else
-      std::cerr
-        << "Warning: filter \"" << filter_name
-        << "\" is not defined inside the loaded workspace." << std::endl;
-
-  } // rof
-
-  // Execute workspace
-  ws.PrintExecutionOn( );
-  try
-  {
-    ws.Execute( );
-  }
-  catch( itk::ExceptionObject& err1 )
-  {
-    std::cerr << "Error caught: " << err1 << std::endl;
-    return( 1 );
-  }
-  catch( std::exception& err2 )
-  {
-    std::cerr << "Error caught: " << err2.what( ) << std::endl;
-    return( 1 );
-  }
-  catch( ... )
-  {
-    std::cerr << "Unknown error caught." << std::endl;
-    return( 1 );
-
-  } // yrt
-  return( 0 );
-}
-
-// eof - $RCSfile$
diff --git a/appli/bash/cpPlugins_HostCreator.cxx b/appli/bash/cpPlugins_HostCreator.cxx
deleted file mode 100644 (file)
index 9ed9ec8..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-#include <algorithm>
-#include <iostream>
-#include <iterator>
-#include <fstream>
-#include <map>
-#include <sstream>
-#include <streambuf>
-#include <vector>
-
-// -------------------------------------------------------------------------
-typedef std::map< std::string, std::string > TPair;
-typedef std::map< std::string, TPair >        TInfo;
-
-// -------------------------------------------------------------------------
-bool is_valid_class( const std::string& str )
-{
-  return( str.find( "cpPlugins_Id_Macro" ) != std::string::npos );
-}
-
-// -------------------------------------------------------------------------
-void process_header( TInfo& info, const std::string& file_name )
-{
-  // Load file into a buffer
-  std::ifstream file_stream( file_name.c_str( ) );
-  if( !file_stream )
-    return;
-  std::string buf;
-  file_stream.seekg( 0, std::ios::end );
-  buf.reserve( ( unsigned int )( file_stream.tellg( ) ) );
-  file_stream.seekg( 0, std::ios::beg );
-  buf.assign(
-    ( std::istreambuf_iterator< char >( file_stream ) ),
-    std::istreambuf_iterator< char >( )
-    );
-  file_stream.close( );
-
-  // Replace separators with spaces
-  std::replace( buf.begin( ), buf.end( ), ',', ' ' );
-  std::replace( buf.begin( ), buf.end( ), ';', ' ' );
-  std::replace( buf.begin( ), buf.end( ), ':', ' ' );
-  std::replace( buf.begin( ), buf.end( ), '(', ' ' );
-  std::replace( buf.begin( ), buf.end( ), ')', ' ' );
-  std::replace( buf.begin( ), buf.end( ), '{', ' ' );
-  std::replace( buf.begin( ), buf.end( ), '}', ' ' );
-
-  // Tokenize buffer
-  std::istringstream tokenizer( buf );
-  std::vector< std::string > tokens;
-  std::copy(
-    std::istream_iterator< std::string >( tokenizer ),
-    std::istream_iterator< std::string >( ),
-    std::back_inserter( tokens )
-    );
-
-  // Find pivot
-  auto p = std::find_if( tokens.begin( ), tokens.end( ), is_valid_class );
-  if( p != tokens.end( ) )
-  {
-    // Find class name and category
-    auto cls_it = p; cls_it++;
-    auto cat_it = cls_it; cat_it++;
-
-    // Find namespace
-    typedef std::reverse_iterator< std::vector< std::string >::iterator > _RIt;
-    _RIt r_end( tokens.begin( ) );
-    _RIt r_begin( cls_it );
-    auto ns_it = std::find( r_begin, r_end, "namespace" ); ns_it--;
-
-    // Update info
-    info[ *cat_it ][ *cls_it ] = *ns_it;
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-int main( int argc, char* argv[] )
-{
-  if( argc < 4 )
-  {
-    std::cerr
-      << "Usage: " << argv[ 0 ]
-      << " plugins_name output_file header_file_0.h header_file_0.h ..."
-      << std::endl;
-    return( 1 );
-
-  } // fi
-  std::string plugins_name = argv[ 1 ];
-
-  // Parse all header files
-  TInfo info;
-  for( int i = 3; i < argc; ++i )
-    process_header( info, argv[ i ] );
-  if( info.size( ) == 0 )
-  {
-    std::cerr << "ERROR: No valid input headers." << std::endl;
-    return( 1 );
-
-  } // fi
-
-  // Write data
-  std::ofstream out_stream( argv[ 2 ] );
-
-  // Write include section
-  for( int i = 3; i < argc; ++i )
-    out_stream << "#include \"" << argv[ i ] << "\"" <<std::endl;
-
-  // Write init/finish section
-  /* TODO:
-     out_stream
-     << std::endl
-     << "void __attribute__ ((constructor)) _initialize( )" << std::endl
-     << "{" << std::endl << "}" << std::endl << std::endl
-     << "void __attribute__ ((destructor)) _finalize( )" << std::endl
-     << "{" << std::endl << "}" << std::endl;
-  */
-
-#if defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ )
-  std::string export_prefix = "__declspec(dllexport)";
-#else // defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ )
-  std::string export_prefix = "__attribute__((visibility(\"default\")))";
-#endif // defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ )
-
-  // Write plugins name function
-  out_stream
-    << std::endl
-    << "extern \"C\" " << export_prefix << " const char* "
-    << "cpPlugins_Name( )" << std::endl << "{" << std::endl
-    << "  return( \"" << plugins_name << "\" );" << std::endl
-    << "}" << std::endl << std::endl;
-
-  // Write access function
-  out_stream
-    << std::endl
-    << "extern \"C\" " << export_prefix << " const char* "
-    << "cpPlugins_LoadedFilters( )" << std::endl << "{" << std::endl
-    << "  static std::string classes;"
-    << std::endl
-    << "  classes = \"\";" << std::endl;
-  for( auto iIt = info.begin( ); iIt != info.end( ); ++iIt )
-    for( auto jIt = iIt->second.begin( ); jIt != iIt->second.end( ); ++jIt )
-      out_stream
-        << "  classes += std::string( \"" << iIt->first
-        << ":" << jIt->first << ";\" );" << std::endl;
-  out_stream
-    << "  return( classes.c_str( ) );" << std::endl
-    << "}" << std::endl << std::endl;
-
-  // Write creators
-  for( auto iIt = info.begin( ); iIt != info.end( ); ++iIt )
-  {
-    for( auto jIt = iIt->second.begin( ); jIt != iIt->second.end( ); ++jIt )
-    {
-      out_stream
-        << "extern \"C\" " << export_prefix << " void* "
-        << iIt->first << "_" << jIt->first
-        << "( )" << std::endl << "{" << std::endl
-        << "  static " << jIt->second << "::" << jIt->first << "::Pointer f;" << std::endl
-        << "  f = " << jIt->second << "::" << jIt->first << "::New( );" << std::endl
-        << "  return( &f );"
-        << std::endl;
-      out_stream
-        << "}" << std::endl << std::endl;
-
-    } // rof
-
-  } // rof
-  out_stream.close( );
-
-  return( 0 );
-}
-
-// eof - $RCSfile$
diff --git a/appli/examples/CMakeLists.txt b/appli/examples/CMakeLists.txt
deleted file mode 100644 (file)
index 723e38f..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-SUBDIRS(
-  extensions
-  plugins
-  )
-
-## eof - $RCSfile$
diff --git a/appli/examples/extensions/CMakeLists.txt b/appli/examples/extensions/CMakeLists.txt
deleted file mode 100644 (file)
index 26f7d50..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-SET(
-  examples_SOURCES
-  example_IterativeGaussianModelEstimator
-  example_KalmanVelocity
-  example_ImageSlice
-  )
-
-FOREACH(example ${examples_SOURCES})
-  ADD_EXECUTABLE(${example} ${example}.cxx)
-  TARGET_LINK_LIBRARIES(${example} cpExtensions)
-ENDFOREACH(example)
-
-## eof - $RCSfile$
diff --git a/appli/examples/extensions/example_ImageSlice.cxx b/appli/examples/extensions/example_ImageSlice.cxx
deleted file mode 100644 (file)
index b45588a..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-#include <vtkPNGReader.h>
-#include <vtkRenderer.h>
-#include <vtkRenderWindow.h>
-#include <vtkRenderWindowInteractor.h>
-#include <vtkSmartPointer.h>
-
-#include <cpExtensions/Visualization/ImageSliceActors.h>
-
-int main( int argc, char* argv[] )
-{
-  if( argc < 2 )
-  {
-    std::cerr << "Usage: " << argv[ 0 ] << " input_image.png" << std::endl;
-    return( 1 );
-
-  } // fi
-
-  // Read a test image
-  vtkSmartPointer< vtkPNGReader > reader =
-    vtkSmartPointer< vtkPNGReader >::New( );
-  reader->SetFileName( argv[ 1 ] );
-  reader->Update( );
-
-  // Prepate slice objects
-  vtkSmartPointer< cpExtensions::Visualization::ImageSliceActors > actors =
-    vtkSmartPointer< cpExtensions::Visualization::ImageSliceActors >::New( );
-  actors->SetInputConnection( reader->GetOutputPort( ), 2  );
-
-  // Prepare scene
-  vtkSmartPointer< vtkRenderer > ren =
-    vtkSmartPointer< vtkRenderer >::New( );
-  ren->SetBackground( 0, 0, 0 );
-  actors->PushInto( ren );
-
-  vtkSmartPointer< vtkRenderWindow > win =
-    vtkSmartPointer< vtkRenderWindow >::New( );
-  win->AddRenderer( ren );
-  win->SetSize( 300, 300 );
-
-  vtkSmartPointer< vtkRenderWindowInteractor > iren =
-    vtkSmartPointer< vtkRenderWindowInteractor >::New( );
-  iren->SetRenderWindow( win );
-  iren->SetInteractorStyle( actors->GetStyle( ) );
-
-  iren->Initialize( );
-  ren->ResetCamera( );
-  iren->Start( );
-
-  return( 0 );
-}
-
-// eof - $RCSfile$
diff --git a/appli/examples/extensions/example_IterativeGaussianModelEstimator.cxx b/appli/examples/extensions/example_IterativeGaussianModelEstimator.cxx
deleted file mode 100644 (file)
index b168dcb..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-#include <cmath>
-#include <iostream>
-#include <random>
-#include <vector>
-
-#include <cpExtensions/Algorithms/IterativeGaussianModelEstimator.h>
-
-// -------------------------------------------------------------------------
-const unsigned int Dim = 1;
-typedef double TScalar;
-typedef
-cpExtensions::Algorithms::
-IterativeGaussianModelEstimator< TScalar, Dim > TEstimator;
-
-// -------------------------------------------------------------------------
-int main( int argc, char* argv[] )
-{
-  if( argc < 4 )
-  {
-    std::cerr << "Usage: " << argv[ 0 ] << " mean std samples" << std::endl;
-    return( 1 );
-
-  } // fi
-  TScalar mean = std::atof( argv[ 1 ] );
-  TScalar var = std::atof( argv[ 2 ] );
-  unsigned int samples = std::atoi( argv[ 3 ] );
-  var *= var;
-
-  // Prepare estimator
-  TEstimator::Pointer estimator = TEstimator::New( );
-  // Generate numbers
-  std::random_device r;
-  std::seed_seq seed{ r( ), r( ), r( ), r( ), r( ), r( ), r( ), r( ) };
-  std::mt19937 e( seed );
-  std::normal_distribution< > dist( mean, std::sqrt( var ) );
-  double local_mean = double( 0 );
-  std::vector< double > data;
-  for( unsigned int s = 0; s < samples; ++s )
-  {
-    double v = dist( e );
-    estimator->AddSample( v );
-    local_mean += v;
-    data.push_back( v );
-
-  } // rof
-  local_mean /= double( samples );
-
-  double local_var = double( 0 );
-  for( auto d = data.begin( ); d != data.end( ); ++d )
-    local_var += ( *d - local_mean ) * ( *d - local_mean );
-  local_var /= double( samples - 1 );
-  
-  // Show results
-  std::cout
-    << "Mean: "
-    << mean << " <-> "
-    << estimator->GetMean( )[ 0 ] << " <-> "
-    << local_mean
-    << std::endl;
-  std::cout
-    << "Var: "
-    << var << " <-> "
-    << estimator->GetCovariance( )[ 0 ][ 0 ] << " <-> "
-    << estimator->GetUnbiasedCovariance( )[ 0 ][ 0 ] << " <-> "
-    << local_var
-    << std::endl;
-
-  std::cout << "--------------------------------------" << std::endl;
-  for( unsigned int s = 0; s < 15; ++s )
-  {
-    double v = dist( e );
-    double d = std::sqrt( estimator->SquaredMahalanobis( v ) );
-    std::cout << "Distante to " << v << " is " << d << std::endl;
-
-  } // rof
-
-  return( 0 );
-}
-
-// eof - $RCSfile$
diff --git a/appli/examples/extensions/example_KalmanVelocity.cxx b/appli/examples/extensions/example_KalmanVelocity.cxx
deleted file mode 100644 (file)
index 89dca8a..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-#include <iostream>
-
-#include <cpExtensions/Algorithms/KalmanVelocityFilter.h>
-
-// -------------------------------------------------------------------------
-const unsigned int Dim = 1;
-typedef double TScalar;
-
-// -------------------------------------------------------------------------
-int main( int argc, char* argv[] )
-{
-  // Kalman filters
-  typedef
-    cpExtensions::Algorithms::KalmanVelocityFilter< TScalar >
-    _TKalman;
-  _TKalman::Pointer kalman01 = _TKalman::New( );
-  kalman01->Configure( 1 );
-  kalman01->SetTimeOffset( TScalar( 1 ) );
-
-  _TKalman::TMatrix P0 = kalman01->GetP0( );
-  P0.set_identity( );
-  P0 *= TScalar( 10 );
-  kalman01->SetP0( P0 );
-
-  _TKalman::TMatrix sigma = kalman01->GetSigma( );
-  sigma.set_identity( );
-  sigma *= TScalar( 1e-5 );
-  kalman01->SetSigma( sigma );
-
-  _TKalman::TMatrix R = kalman01->GetR( );
-  R.set_identity( );
-  R *= TScalar( 0.09 );
-  kalman01->SetR( R );
-
-  TScalar read;
-  std::cin >> read;
-
-  _TKalman::TVector x0 = kalman01->Getx0( );
-  x0[ 0 ] = read;
-  kalman01->Setx0( x0 );
-  kalman01->Initialize( );
-
-  while( !std::cin.eof( ) )
-  {
-    std::cin >> read;
-
-    _TKalman::TVector m = kalman01->Getm( );
-    m[ 0 ] = read;
-    kalman01->Setm( m );
-    kalman01->OneStep( );
-
-    std::cout << m[ 0 ] << " " << kalman01->Getxp( )[ 0 ] << std::endl;
-
-  } // eliwh
-
-  return( 0 );
-}
-
-// eof - $RCSfile$
diff --git a/appli/examples/plugins/CMakeLists.txt b/appli/examples/plugins/CMakeLists.txt
deleted file mode 100644 (file)
index 12c8cd3..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-SET(
-  examples_SOURCES
-  example_GuessPlugins
-  example_LoadPlugins
-  example_LoadPluginsFile
-  example_LoadPluginsDirectory
-  example_ReadWriteImage
-  example_ReadWriteImageWithWorkspace
-  example_ShowImage
-  example_ShowSphere
-  )
-
-FOREACH(example ${examples_SOURCES})
-  ADD_EXECUTABLE(${example} ${example}.cxx)
-  TARGET_LINK_LIBRARIES(${example} cpPlugins)
-ENDFOREACH(example)
-
-IF(USE_QT4)
-  SUBDIRS(
-    QT
-    )
-ENDIF(USE_QT4)
-
-## eof - $RCSfile$
diff --git a/appli/examples/plugins/QT/CMakeLists.txt b/appli/examples/plugins/QT/CMakeLists.txt
deleted file mode 100644 (file)
index b87ebe8..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-SUBDIRS(
-  example_MPRViewer
-  )
-## eof - $RCSfile$
diff --git a/appli/examples/plugins/QT/example_ActorProperties/CMakeLists.txt b/appli/examples/plugins/QT/example_ActorProperties/CMakeLists.txt
deleted file mode 100644 (file)
index 63b05a0..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-SET(app_NAME "example_ActorProperties")
-
-INCLUDE_DIRECTORIES(
-  ${CMAKE_CURRENT_SOURCE_DIR}
-  ${CMAKE_CURRENT_BINARY_DIR}
-  )
-
-## ====================================================
-## = Source code, user interafaces and resources here =
-## ====================================================
-
-SET(
-  app_SOURCES
-  ${CMAKE_CURRENT_SOURCE_DIR}/example_ActorProperties.cxx
-  ${CMAKE_CURRENT_SOURCE_DIR}/main.cxx
-  )
-
-SET(
-  app_HEADERS
-  ${CMAKE_CURRENT_SOURCE_DIR}/example_ActorProperties.h
-  )
-
-SET(
-  app_UI
-  ${CMAKE_CURRENT_SOURCE_DIR}/example_ActorProperties.ui
-  )
-
-## =====================
-## = Compilation rules =
-## =====================
-
-QT4_WRAP_UI(app_UI_HEADERS ${app_UI})
-QT4_WRAP_CPP(app_MOC_SOURCES ${app_HEADERS})
-
-SET(GUI_TYPE "")
-IF(WIN32)
-  SET(GUI_TYPE WIN32)
-ENDIF(WIN32)
-IF(APPLE)
-  SET(GUI_TYPE MACOSX_BUNDLE)
-ENDIF(APPLE)
-
-ADD_EXECUTABLE(
-  ${app_NAME}
-  ${GUI_TYPE}
-  ${app_HEADERS}
-  ${app_UI_HEADERS}
-  ${app_SOURCES}
-  ${app_MOC_SOURCES}
-  )
-
-TARGET_LINK_LIBRARIES(
-  ${app_NAME}
-  cpExtensions
-  cpPlugins
-  )
-
-## eof - $RCSfile$
diff --git a/appli/examples/plugins/QT/example_ActorProperties/example_ActorProperties.cxx b/appli/examples/plugins/QT/example_ActorProperties/example_ActorProperties.cxx
deleted file mode 100644 (file)
index 159b506..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-#include "example_ActorProperties.h"
-#include "ui_example_ActorProperties.h"
-
-#include <vtkActor.h>
-#include <vtkSphereSource.h>
-#include <vtkPolyDataMapper.h>
-#include <vtkRenderWindow.h>
-#include <vtkGenericOpenGLRenderWindow.h>
-#include <QMessageBox>
-
-// -------------------------------------------------------------------------
-example_ActorProperties::
-example_ActorProperties( int argc, char* argv[], QWidget* parent )
-  : Superclass( parent ),
-    m_UI( new Ui::example_ActorProperties )
-{
-  this->m_UI->setupUi( this );
-  this->m_Interface.GuessAccesiblePlugins( );
-
-  this->m_Renderer = vtkSmartPointer< vtkRenderer >::New( );
-  this->m_UI->Viewer->GetRenderWindow( )->AddRenderer( this->m_Renderer );
-
-
-  vtkSmartPointer< vtkSphereSource > sphere =
-    vtkSmartPointer< vtkSphereSource >::New( );
-  vtkSmartPointer< vtkPolyDataMapper > mapper =
-    vtkSmartPointer< vtkPolyDataMapper >::New( );
-  mapper->SetInputConnection( sphere->GetOutputPort( ) );
-  vtkSmartPointer< vtkActor > actor =
-    vtkSmartPointer< vtkActor >::New( );
-  actor->SetMapper( mapper );
-
-  this->m_Renderer->AddActor( actor );
-
-  //this->m_Renderer->ResetCamera( );
-  //this->m_Renderer->Render( );
-  // this->m_UI->Viewer->GetRenderWindow( )->Render( );
-
-  // Create reader
-  /*
-    try
-    {
-  */
-  /* TODO
-     auto cylinder = this->m_Interface.Create( "MeshSources", "CylinderSource" );
-     cylinder->Update( );
-  */
-
-  /* TODO
-     this->m_Reader = this->m_Interface.Create( "IO", "ImageReader" );
-     if( this->m_Reader.IsNull( ) )
-     {
-     QMessageBox::critical(
-     this,
-     QMessageBox::tr( "Error" ),
-     QMessageBox::tr( "\"IO::ImageReader\" creation failed." )
-     );
-     std::exit( 1 );
-
-     } // fi
-
-       // Configure filters
-       auto reader_params = this->m_Reader->GetParameters( );
-       for( int i = 1; i < argc; ++i )
-       reader_params->AddToOpenFileNameList( "FileNames", argv[ i ] );
-       this->m_Reader->Update( );
-  */
-  /*
-    }
-    catch( itk::ExceptionObject& err1 )
-    {
-    QMessageBox::critical(
-    this,
-    QMessageBox::tr( "Error" ),
-    QMessageBox::tr( err1.GetDescription( ) )
-    );
-    std::exit( 1 );
-    }
-    catch( std::exception& err2 )
-    {
-    QMessageBox::critical(
-    this,
-    QMessageBox::tr( "Error" ),
-    QMessageBox::tr( err2.what( ) )
-    );
-    std::exit( 1 );
-
-    } // yrt
-  */
-  /* TODO
-     this->m_UI->Viewer->SetMainImage(
-     this->m_Reader->GetOutputData< vtkImageData >( "Output" ),
-     "MainImage"
-     );
-  */
-}
-
-// -------------------------------------------------------------------------
-example_ActorProperties::
-~example_ActorProperties( )
-{
-}
-
-// eof - $RCSfile$
diff --git a/appli/examples/plugins/QT/example_ActorProperties/example_ActorProperties.h b/appli/examples/plugins/QT/example_ActorProperties/example_ActorProperties.h
deleted file mode 100644 (file)
index 4f8b5b9..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef __EXAMPLE_ACTORPROPERTIES__H__
-#define __EXAMPLE_ACTORPROPERTIES__H__
-
-#include <QMainWindow>
-#include <cpPlugins/Interface.h>
-#include <vtkRenderer.h> 
-#include <vtkSmartPointer.h> 
-
-// -------------------------------------------------------------------------
-namespace Ui
-{
-  class example_ActorProperties;
-}
-
-// -------------------------------------------------------------------------
-/**
- */
-class example_ActorProperties
-  : public QMainWindow
-{
-  Q_OBJECT;
-
-public:
-  typedef example_ActorProperties Self;
-  typedef QMainWindow       Superclass;
-
-public:
-  explicit example_ActorProperties(
-    int argc, char* argv[],
-    QWidget* parent = NULL
-    );
-  virtual ~example_ActorProperties( );
-
-private:
-  Ui::example_ActorProperties* m_UI;
-  vtkSmartPointer< vtkRenderer > m_Renderer;
-  cpPlugins::Interface m_Interface;
-};
-
-#endif // __CPEXAMPLE_ACTORPROPERTIES__H__
-
-// eof - $RCSfile$
diff --git a/appli/examples/plugins/QT/example_ActorProperties/example_ActorProperties.ui b/appli/examples/plugins/QT/example_ActorProperties/example_ActorProperties.ui
deleted file mode 100644 (file)
index b5378d1..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>example_ActorProperties</class>
- <widget class="QMainWindow" name="example_ActorProperties">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>800</width>
-    <height>600</height>
-   </rect>
-  </property>
-  <property name="minimumSize">
-   <size>
-    <width>800</width>
-    <height>600</height>
-   </size>
-  </property>
-  <property name="windowTitle">
-   <string>MainWindow</string>
-  </property>
-  <widget class="QWidget" name="MainWidget">
-   <layout class="QGridLayout" name="gridLayout">
-    <item row="0" column="0">
-     <widget class="QVTKWidget" name="Viewer" native="true">
-      <property name="minimumSize">
-       <size>
-        <width>0</width>
-        <height>200</height>
-       </size>
-      </property>
-     </widget>
-    </item>
-   </layout>
-  </widget>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>QVTKWidget</class>
-   <extends>QWidget</extends>
-   <header>QVTKWidget.h</header>
-   <container>1</container>
-  </customwidget>
- </customwidgets>
- <resources/>
- <connections/>
-</ui>
diff --git a/appli/examples/plugins/QT/example_ActorProperties/main.cxx b/appli/examples/plugins/QT/example_ActorProperties/main.cxx
deleted file mode 100644 (file)
index 5850dd6..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-#include "example_ActorProperties.h"
-#include <cstdlib>
-#include <QApplication>
-
-// -------------------------------------------------------------------------
-int main( int argc, char* argv[] )
-{
-  QApplication a( argc, argv );
-  example_ActorProperties w( argc, argv );
-  w.show( );
-  return( a.exec( ) );
-}
-
-// -------------------------------------------------------------------------
-#ifdef _WIN32
-
-#include <memory>
-#include <vector>
-#include <windows.h>
-#include <shellapi.h>
-
-/**
- */
-class Win32CommandLineConverter
-{
-private:
-  std::unique_ptr< char*[ ] > argv_;
-  std::vector< std::unique_ptr< char[ ] > > storage_;
-
-public:
-  Win32CommandLineConverter( )
-    {
-      LPWSTR cmd_line = GetCommandLineW( );
-      int argc;
-      LPWSTR* w_argv = CommandLineToArgvW( cmd_line, &argc );
-      argv_ = std::unique_ptr< char*[ ] >( new char*[ argc ] );
-      storage_.reserve( argc );
-      for( int i = 0; i < argc; ++i )
-      {
-        storage_.push_back( ConvertWArg( w_argv[ i ] ) );
-        argv_[ i ] = storage_.back( ).get( );
-
-      } // rof
-      LocalFree( w_argv );
-    }
-  int argc( ) const
-    {
-      return( static_cast< int >(storage_.size( ) ) );
-    }
-  char** argv( ) const
-    {
-      return( argv_.get( ) );
-    }
-  static std::unique_ptr< char[ ] > ConvertWArg( LPWSTR w_arg )
-    {
-      int size = WideCharToMultiByte(
-        CP_UTF8, 0, w_arg, -1, nullptr, 0, nullptr, nullptr
-        );
-      std::unique_ptr< char[ ] > ret( new char[ size ] );
-      WideCharToMultiByte(
-        CP_UTF8, 0, w_arg, -1, ret.get( ), size, nullptr, nullptr
-        );
-      return( ret );
-    }
-};
-
-int CALLBACK WinMain(
-  HINSTANCE hInstance,
-  HINSTANCE hPrevInstance,
-  LPSTR lpCmdLine,
-  int nCmdShow
-  )
-{
-  Win32CommandLineConverter cmd_line;
-  return( main( cmd_line.argc( ), cmd_line.argv( ) ) );
-}
-
-#endif
-
-// eof - $RCSfile$
diff --git a/appli/examples/plugins/QT/example_MPRViewer/CMakeLists.txt b/appli/examples/plugins/QT/example_MPRViewer/CMakeLists.txt
deleted file mode 100644 (file)
index fb7f22e..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-SET(app_NAME "example_MPRViewer")
-
-INCLUDE_DIRECTORIES(
-  ${CMAKE_CURRENT_SOURCE_DIR}
-  ${CMAKE_CURRENT_BINARY_DIR}
-  )
-
-## ====================================================
-## = Source code, user interafaces and resources here =
-## ====================================================
-
-SET(
-  app_SOURCES
-  ${CMAKE_CURRENT_SOURCE_DIR}/example_MPRViewer.cxx
-  ${CMAKE_CURRENT_SOURCE_DIR}/main.cxx
-  )
-
-SET(
-  app_HEADERS
-  ${CMAKE_CURRENT_SOURCE_DIR}/example_MPRViewer.h
-  )
-
-SET(
-  app_UI
-  ${CMAKE_CURRENT_SOURCE_DIR}/example_MPRViewer.ui
-  )
-
-## =====================
-## = Compilation rules =
-## =====================
-
-QT4_WRAP_UI(app_UI_HEADERS ${app_UI})
-QT4_WRAP_CPP(app_MOC_SOURCES ${app_HEADERS})
-
-SET(GUI_TYPE "")
-IF(WIN32)
-  SET(GUI_TYPE WIN32)
-ENDIF(WIN32)
-IF(APPLE)
-  SET(GUI_TYPE MACOSX_BUNDLE)
-ENDIF(APPLE)
-
-ADD_EXECUTABLE(
-  ${app_NAME}
-  ${GUI_TYPE}
-  ${app_HEADERS}
-  ${app_UI_HEADERS}
-  ${app_SOURCES}
-  ${app_MOC_SOURCES}
-  )
-TARGET_LINK_LIBRARIES(
-  ${app_NAME}
-  cpExtensions
-  cpPlugins
-  )
-
-## eof - $RCSfile$
diff --git a/appli/examples/plugins/QT/example_MPRViewer/example_MPRViewer.cxx b/appli/examples/plugins/QT/example_MPRViewer/example_MPRViewer.cxx
deleted file mode 100644 (file)
index cfb33b4..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-#include "example_MPRViewer.h"
-#include "ui_example_MPRViewer.h"
-
-#include <QMessageBox>
-#include <vtkImageData.h>
-
-// -------------------------------------------------------------------------
-example_MPRViewer::
-example_MPRViewer( int argc, char* argv[], QWidget* parent )
-  : Superclass( parent ),
-    m_UI( new Ui::example_MPRViewer )
-{
-  this->m_UI->setupUi( this );
-
-  if( argc < 2 )
-  {
-    QMessageBox::critical(
-      this,
-      QMessageBox::tr( "Error" ),
-      QMessageBox::tr( "Give some input image(s)." )
-      );
-    std::exit( 1 );
-
-  } // fi
-
-  // Create reader
-  this->m_Interface.GuessAccesiblePlugins( );
-  try
-  {
-    this->m_Reader = this->m_Interface.Create( "IO", "ImageReader" );
-    if( this->m_Reader.IsNull( ) )
-    {
-      QMessageBox::critical(
-        this,
-        QMessageBox::tr( "Error" ),
-        QMessageBox::tr( "\"IO::ImageReader\" creation failed." )
-        );
-      std::exit( 1 );
-      
-    } // fi
-
-    // Configure filters
-    auto reader_params = this->m_Reader->GetParameters( );
-    for( int i = 1; i < argc; ++i )
-      reader_params->AddToOpenFileNameList( "FileNames", argv[ i ] );
-    this->m_Reader->Update( );
-  }
-  catch( itk::ExceptionObject& err1 )
-  {
-    QMessageBox::critical(
-      this,
-      QMessageBox::tr( "Error" ),
-      QMessageBox::tr( err1.GetDescription( ) )
-      );
-    std::exit( 1 );
-  }
-  catch( std::exception& err2 )
-  {
-    QMessageBox::critical(
-      this,
-      QMessageBox::tr( "Error" ),
-      QMessageBox::tr( err2.what( ) )
-      );
-    std::exit( 1 );
-
-  } // yrt
-
-  this->m_UI->Viewer->SetMainImage(
-    this->m_Reader->GetOutputData< vtkImageData >( "Output" ),
-    "MainImage"
-    );
-}
-
-// -------------------------------------------------------------------------
-example_MPRViewer::
-~example_MPRViewer( )
-{
-}
-
-// eof - $RCSfile$
diff --git a/appli/examples/plugins/QT/example_MPRViewer/example_MPRViewer.h b/appli/examples/plugins/QT/example_MPRViewer/example_MPRViewer.h
deleted file mode 100644 (file)
index dc26a5e..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef __EXAMPLE_MPRVIEWER__H__
-#define __EXAMPLE_MPRVIEWER__H__
-
-#include <QMainWindow>
-#include <cpPlugins/Interface.h>
-
-// -------------------------------------------------------------------------
-namespace Ui
-{
-  class example_MPRViewer;
-}
-
-// -------------------------------------------------------------------------
-/**
- */
-class example_MPRViewer
-  : public QMainWindow
-{
-  Q_OBJECT;
-
-public:
-  typedef example_MPRViewer Self;
-  typedef QMainWindow       Superclass;
-
-public:
-  explicit example_MPRViewer(
-    int argc, char* argv[],
-    QWidget* parent = NULL
-    );
-  virtual ~example_MPRViewer( );
-
-private:
-  Ui::example_MPRViewer* m_UI;
-  cpPlugins::Interface m_Interface;
-  cpPlugins::ProcessObject::Pointer m_Reader;
-};
-
-#endif // __CPEXAMPLE_MPRVIEWER__H__
-
-// eof - $RCSfile$
diff --git a/appli/examples/plugins/QT/example_MPRViewer/example_MPRViewer.ui b/appli/examples/plugins/QT/example_MPRViewer/example_MPRViewer.ui
deleted file mode 100644 (file)
index 7f4ef2f..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>example_MPRViewer</class>
- <widget class="QMainWindow" name="example_MPRViewer">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>800</width>
-    <height>600</height>
-   </rect>
-  </property>
-  <property name="minimumSize">
-   <size>
-    <width>800</width>
-    <height>600</height>
-   </size>
-  </property>
-  <property name="windowTitle">
-   <string>MainWindow</string>
-  </property>
-  <widget class="QWidget" name="MainWidget">
-   <layout class="QGridLayout" name="gridLayout">
-    <item row="0" column="0">
-     <widget class="cpExtensions::QT::SimpleMPRWidget" name="Viewer" native="true">
-      <property name="minimumSize">
-       <size>
-        <width>0</width>
-        <height>200</height>
-       </size>
-      </property>
-     </widget>
-    </item>
-   </layout>
-  </widget>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>cpExtensions::QT::SimpleMPRWidget</class>
-   <extends>QWidget</extends>
-   <header location="global">cpExtensions/QT/SimpleMPRWidget.h</header>
-   <container>1</container>
-  </customwidget>
- </customwidgets>
- <resources/>
- <connections/>
-</ui>
diff --git a/appli/examples/plugins/QT/example_MPRViewer/main.cxx b/appli/examples/plugins/QT/example_MPRViewer/main.cxx
deleted file mode 100644 (file)
index 90e64c2..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-#include "example_MPRViewer.h"
-#include <cstdlib>
-#include <QApplication>
-
-// -------------------------------------------------------------------------
-int main( int argc, char* argv[] )
-{
-  QApplication a( argc, argv );
-  example_MPRViewer w( argc, argv );
-  w.show( );
-  return( a.exec( ) );
-}
-
-// -------------------------------------------------------------------------
-#ifdef _WIN32
-
-#include <memory>
-#include <vector>
-#include <windows.h>
-#include <shellapi.h>
-
-/**
- */
-class Win32CommandLineConverter
-{
-private:
-  std::unique_ptr< char*[ ] > argv_;
-  std::vector< std::unique_ptr< char[ ] > > storage_;
-
-public:
-  Win32CommandLineConverter( )
-    {
-      LPWSTR cmd_line = GetCommandLineW( );
-      int argc;
-      LPWSTR* w_argv = CommandLineToArgvW( cmd_line, &argc );
-      argv_ = std::unique_ptr< char*[ ] >( new char*[ argc ] );
-      storage_.reserve( argc );
-      for( int i = 0; i < argc; ++i )
-      {
-        storage_.push_back( ConvertWArg( w_argv[ i ] ) );
-        argv_[ i ] = storage_.back( ).get( );
-
-      } // rof
-      LocalFree( w_argv );
-    }
-  int argc( ) const
-    {
-      return( static_cast< int >(storage_.size( ) ) );
-    }
-  char** argv( ) const
-    {
-      return( argv_.get( ) );
-    }
-  static std::unique_ptr< char[ ] > ConvertWArg( LPWSTR w_arg )
-    {
-      int size = WideCharToMultiByte(
-        CP_UTF8, 0, w_arg, -1, nullptr, 0, nullptr, nullptr
-        );
-      std::unique_ptr< char[ ] > ret( new char[ size ] );
-      WideCharToMultiByte(
-        CP_UTF8, 0, w_arg, -1, ret.get( ), size, nullptr, nullptr
-        );
-      return( ret );
-    }
-};
-
-int CALLBACK WinMain(
-  HINSTANCE hInstance,
-  HINSTANCE hPrevInstance,
-  LPSTR lpCmdLine,
-  int nCmdShow
-  )
-{
-  Win32CommandLineConverter cmd_line;
-  return( main( cmd_line.argc( ), cmd_line.argv( ) ) );
-}
-
-#endif
-
-// eof - $RCSfile$
diff --git a/appli/examples/plugins/example_GuessPlugins.cxx b/appli/examples/plugins/example_GuessPlugins.cxx
deleted file mode 100644 (file)
index 72b5f15..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-#include <iostream>
-#include <cpPlugins/Interface.h>
-
-int main( int argc, char* argv[] )
-{
-  // Load interface
-  cpPlugins::Interface* interface = NULL;
-  try
-  {
-    interface = new cpPlugins::Interface( );
-    interface->GuessAccesiblePlugins( );
-  }
-  catch( std::exception& err )
-  {
-    if( interface != NULL )
-      delete interface;
-    std::cerr
-      << "Error caught: "
-      << err.what( )
-      << std::endl;
-    return( 1 );
-
-  } // yrt
-
-  // Show loaded plugins
-  auto plugins = interface->GetPlugins( );
-  for( auto pIt = plugins.begin( ); pIt != plugins.end( ); ++pIt )
-    std::cout << "Plugin: " << *pIt << std::endl;
-  std::cout << std::endl;
-
-  // Show loaded filters
-  auto filters = interface->GetFilters( );
-  for( auto cIt = filters.begin( ); cIt != filters.end( ); ++cIt )
-  {
-    std::cout << "Category: " << cIt->first << std::endl;
-    for( auto nIt = cIt->second.begin( ); nIt != cIt->second.end( ); ++nIt )
-      std::cout
-        << "\tFilter: " << *nIt
-        << std::endl;
-
-  } // rof
-
-  // Free all and finish
-  delete interface;
-  return( 0 );
-}
-
-// eof - $RCSfile$
diff --git a/appli/examples/plugins/example_LoadPlugins.cxx b/appli/examples/plugins/example_LoadPlugins.cxx
deleted file mode 100644 (file)
index 3ed8fdb..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-#include <iostream>
-#include <cpPlugins/Interface.h>
-
-int main( int argc, char* argv[] )
-{
-  if( argc < 2 )
-  {
-    std::cerr << "Usage: " << argv[ 0 ] << " plugins" << std::endl;
-    return( 1 );
-
-  } // fi
-
-  // Load interface
-  cpPlugins::Interface* interface = NULL;
-  try
-  {
-    interface = new cpPlugins::Interface( );
-    interface->LoadPlugin( argv[ 1 ] );
-  }
-  catch( std::exception& err )
-  {
-    if( interface != NULL )
-      delete interface;
-    std::cerr
-      << "Error caught: "
-      << err.what( )
-      << std::endl;
-    return( 1 );
-
-  } // yrt
-
-  // Show loaded plugins
-  auto plugins = interface->GetPlugins( );
-  for( auto pIt = plugins.begin( ); pIt != plugins.end( ); ++pIt )
-    std::cout << "Plugin: " << *pIt << std::endl;
-  std::cout << std::endl;
-
-  // Show loaded filters
-  auto filters = interface->GetFilters( );
-  for( auto cIt = filters.begin( ); cIt != filters.end( ); ++cIt )
-  {
-    std::cout << "Category: " << cIt->first << std::endl;
-    for( auto nIt = cIt->second.begin( ); nIt != cIt->second.end( ); ++nIt )
-      std::cout
-        << "\tFilter: " << *nIt
-        << std::endl;
-
-  } // rof
-
-  // Free all and finish
-  delete interface;
-  return( 0 );
-}
-
-// eof - $RCSfile$
diff --git a/appli/examples/plugins/example_LoadPluginsDirectory.cxx b/appli/examples/plugins/example_LoadPluginsDirectory.cxx
deleted file mode 100644 (file)
index 99f4b62..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-#include <iostream>
-#include <cpPlugins/Interface.h>
-
-int main( int argc, char* argv[] )
-{
-  if( argc < 2 )
-  {
-    std::cerr
-      << "Usage: " << argv[ 0 ] << " plugins_libraries_dir" << std::endl;
-    return( 1 );
-
-  } // fi
-
-  // Load interface
-  cpPlugins::Interface* interface = NULL;
-  try
-  {
-    interface = new cpPlugins::Interface( );
-    interface->LoadPluginDir( argv[ 1 ] );
-  }
-  catch( std::exception& err )
-  {
-    if( interface != NULL )
-      delete interface;
-    std::cerr
-      << "Error caught: "
-      << err.what( )
-      << std::endl;
-    return( 1 );
-
-  } // yrt
-
-  // Show loaded plugins
-  auto plugins = interface->GetPlugins( );
-  for( auto pIt = plugins.begin( ); pIt != plugins.end( ); ++pIt )
-    std::cout << "Plugin: " << *pIt << std::endl;
-  std::cout << std::endl;
-
-  // Show loaded filters
-  auto filters = interface->GetFilters( );
-  for( auto cIt = filters.begin( ); cIt != filters.end( ); ++cIt )
-  {
-    std::cout << "Category: " << cIt->first << std::endl;
-    for( auto nIt = cIt->second.begin( ); nIt != cIt->second.end( ); ++nIt )
-      std::cout
-        << "\tFilter: " << *nIt
-        << std::endl;
-
-  } // rof
-
-  // Free all and finish
-  delete interface;
-  return( 0 );
-}
-
-// eof - $RCSfile$
diff --git a/appli/examples/plugins/example_LoadPluginsFile.cxx b/appli/examples/plugins/example_LoadPluginsFile.cxx
deleted file mode 100644 (file)
index 52af772..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-#include <iostream>
-#include <cpPlugins/Interface.h>
-
-int main( int argc, char* argv[] )
-{
-  if( argc < 2 )
-  {
-    std::cerr << "Usage: " << argv[ 0 ] << " plugins_library" << std::endl;
-    return( 1 );
-
-  } // fi
-
-  // Load interface
-  cpPlugins::Interface* interface = NULL;
-  try
-  {
-    interface = new cpPlugins::Interface( );
-    interface->LoadPluginFile( argv[ 1 ] );
-  }
-  catch( std::exception& err )
-  {
-    if( interface != NULL )
-      delete interface;
-    std::cerr
-      << "Error caught: "
-      << err.what( )
-      << std::endl;
-    return( 1 );
-
-  } // yrt
-
-  // Show loaded plugins
-  auto plugins = interface->GetPlugins( );
-  for( auto pIt = plugins.begin( ); pIt != plugins.end( ); ++pIt )
-    std::cout << "Plugin: " << *pIt << std::endl;
-  std::cout << std::endl;
-
-  // Show loaded filters
-  auto filters = interface->GetFilters( );
-  for( auto cIt = filters.begin( ); cIt != filters.end( ); ++cIt )
-  {
-    std::cout << "Category: " << cIt->first << std::endl;
-    for( auto nIt = cIt->second.begin( ); nIt != cIt->second.end( ); ++nIt )
-      std::cout
-        << "\tFilter: " << *nIt
-        << std::endl;
-
-  } // rof
-
-  // Free all and finish
-  delete interface;
-  return( 0 );
-}
-
-// eof - $RCSfile$
diff --git a/appli/examples/plugins/example_ReadWriteImage.cxx b/appli/examples/plugins/example_ReadWriteImage.cxx
deleted file mode 100644 (file)
index 7da797c..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-#include <iostream>
-#include <cpPlugins/Interface.h>
-
-int main( int argc, char* argv[] )
-{
-  if( argc < 3 )
-  {
-    std::cerr
-      << "Usage: " << argv[ 0 ]
-      << " input_image(s) output_image" << std::endl;
-    return( 1 );
-
-  } // fi
-
-  // Load interface
-  int ret = 0;
-  cpPlugins::Interface interface;
-  interface.GuessAccesiblePlugins( );
-
-  // Create filters
-  cpPlugins::ProcessObject::Pointer reader;
-  cpPlugins::ProcessObject::Pointer writer;
-  try
-  {
-    reader = interface.Create( "IO", "ImageReader" );
-    if( reader.IsNull( ) )
-    {
-      std::cerr
-        << "\"IO::ImageReader\" creation failed."
-        << std::endl;
-      ret = 1;
-
-    } // fi
-    writer = interface.Create( "IO", "ImageWriter" );
-    if( writer.IsNull( ) )
-    {
-      std::cerr
-        << "\"IO::ImageWriter\" creation failed."
-        << std::endl;
-      ret = 1;
-
-    } // fi
-  }
-  catch( std::exception& err )
-  {
-    std::cerr
-      << "Filter creation failed: "
-      << err.what( )
-      << std::endl;
-    ret = 1;
-
-  } // yrt
-
-  if( ret == 0 )
-  {
-    // Configure filters
-    auto reader_params = reader->GetParameters( );
-    for( int i = 1; i < argc - 1; ++i )
-      reader_params->AddToOpenFileNameList( "FileNames", argv[ i ] );
-    auto writer_params = writer->GetParameters( );
-    writer_params->SetSaveFileName( "FileName", argv[ argc - 1 ] );
-
-    // Connect filters
-    writer->SetInputPort( "Input", reader->GetOutputPort( "Output" ) );
-
-    // Execute filters
-    try
-    {
-      writer->Update( );
-    }
-    catch( itk::ExceptionObject& err )
-    {
-      std::cout << "Error caught: " << err << std::endl;
-      ret = 1;
-
-    } // fi
-
-  } // fi
-
-  // Ok finish
-  return( ret );
-}
-
-// eof - $RCSfile$
diff --git a/appli/examples/plugins/example_ReadWriteImageWithWorkspace.cxx b/appli/examples/plugins/example_ReadWriteImageWithWorkspace.cxx
deleted file mode 100644 (file)
index f4231f9..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-#include <iostream>
-#include <cpPlugins/Interface.h>
-#include <cpPlugins/Workspace.h>
-
-int main( int argc, char* argv[] )
-{
-  if( argc < 3 )
-  {
-    std::cerr
-      << "Usage: " << argv[ 0 ]
-      << " input_image(s) output_image [output_workspace]" << std::endl;
-    return( 1 );
-
-  } // fi
-
-  // Load interface
-  int ret = 0;
-  cpPlugins::Interface interface;
-  interface.GuessAccesiblePlugins( );
-
-  // Create filters
-  cpPlugins::Workspace workspace;
-  workspace.SetInterface( &interface );
-  auto reader = workspace.CreateFilter( "IO", "ImageReader", "reader" );
-  auto writer = workspace.CreateFilter( "IO", "ImageWriter", "writer" );
-  workspace.Connect( "reader", "writer", "Output", "Input" );
-
-  // Configure filters
-  auto reader_params = reader->GetParameters( );
-  for( int i = 1; i < argc - 1; ++i )
-    reader_params->AddToOpenFileNameList( "FileNames", argv[ i ] );
-  auto writer_params = writer->GetParameters( );
-  writer_params->SetSaveFileName( "FileName", argv[ argc - 1 ] );
-
-  // Execute
-  try
-  {
-    workspace.Execute( );
-  }
-  catch( itk::ExceptionObject& err )
-  {
-    std::cout << "Error caught: " << err << std::endl;
-    ret = 1;
-
-  } // fi
-
-  // Ok finish
-  return( ret );
-}
-
-// eof - $RCSfile$
diff --git a/appli/examples/plugins/example_ShowImage.cxx b/appli/examples/plugins/example_ShowImage.cxx
deleted file mode 100644 (file)
index 7a74ff1..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-#include <iostream>
-
-#include <cpExtensions/Visualization/ImageSliceActors.h>
-#include <cpPlugins/Interface.h>
-
-#include <vtkImageData.h>
-#include <vtkRenderer.h>
-#include <vtkRenderWindow.h>
-#include <vtkRenderWindowInteractor.h>
-#include <vtkSmartPointer.h>
-
-int main( int argc, char* argv[] )
-{
-  if( argc < 2 )
-  {
-    std::cerr
-      << "Usage: " << argv[ 0 ]
-      << " input_image(s)" << std::endl;
-    return( 1 );
-
-  } // fi
-
-  // Load interface
-  cpPlugins::Interface interface;
-  interface.GuessAccesiblePlugins( );
-
-  // Create filters
-  cpPlugins::ProcessObject::Pointer reader;
-  try
-  {
-    reader = interface.Create( "IO", "ImageReader" );
-    if( reader.IsNull( ) )
-    {
-      std::cerr
-        << "\"IO::ImageReader\" creation failed."
-        << std::endl;
-      return( 1 );
-      
-    } // fi
-
-    // Configure filters
-    auto reader_params = reader->GetParameters( );
-    for( int i = 1; i < argc; ++i )
-      reader_params->AddToOpenFileNameList( "FileNames", argv[ i ] );
-    reader->Update( );
-  }
-  catch( itk::ExceptionObject& err1 )
-  {
-    std::cerr << "Error: " << err1.GetDescription( ) << std::endl;
-    return( 1 );
-  }
-  catch( std::exception& err2 )
-  {
-    std::cerr << "Error: " << err2.what( ) << std::endl;
-    return( 1 );
-
-  } // yrt
-
-  // Prepate slice objects
-  vtkSmartPointer< cpExtensions::Visualization::ImageSliceActors > actors =
-    vtkSmartPointer< cpExtensions::Visualization::ImageSliceActors >::New( );
-  actors->SetInputData( reader->GetOutputData< vtkImageData >( "Output" ), 2 );
-
-  // Prepare scene
-  vtkSmartPointer< vtkRenderer > ren =
-    vtkSmartPointer< vtkRenderer >::New( );
-  ren->SetBackground( 0, 0, 0 );
-  actors->PushInto( ren );
-
-  vtkSmartPointer< vtkRenderWindow > win =
-    vtkSmartPointer< vtkRenderWindow >::New( );
-  win->AddRenderer( ren );
-  win->SetSize( 500, 500 );
-
-  vtkSmartPointer< vtkRenderWindowInteractor > iren =
-    vtkSmartPointer< vtkRenderWindowInteractor >::New( );
-  iren->SetRenderWindow( win );
-  iren->SetInteractorStyle( actors->GetStyle( ) );
-
-  iren->Initialize( );
-  ren->Render( );
-  ren->ResetCamera( );
-  iren->Start( );
-
-  // Ok finish
-  return( 0 );
-}
-
-// eof - $RCSfile$
diff --git a/appli/examples/plugins/example_ShowSphere.cxx b/appli/examples/plugins/example_ShowSphere.cxx
deleted file mode 100644 (file)
index 9c64f8d..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-#include <iostream>
-#include <cpPlugins/Interface.h>
-
-#include <vtkRenderer.h>
-#include <vtkRenderWindow.h>
-#include <vtkRenderWindowInteractor.h>
-#include <vtkSmartPointer.h>
-
-int main( int argc, char* argv[] )
-{
-  // Load interface
-  cpPlugins::Interface* interface = NULL;
-  try
-  {
-    interface = new cpPlugins::Interface( );
-    interface->GuessAccesiblePlugins( );
-  }
-  catch( std::exception& err )
-  {
-    if( interface != NULL )
-      delete interface;
-    std::cerr
-      << "Error caught: "
-      << err.what( )
-      << std::endl;
-    return( 1 );
-
-  } // yrt
-
-  // Create filters
-  cpPlugins::ProcessObject::Pointer sphere;
-  int ret = 0;
-  try
-  {
-    sphere = interface->Create( "MeshSources", "SphereSource" );
-    if( sphere.IsNull( ) )
-    {
-      std::cerr
-        << "\"MeshSources::SphereSource\" creation failed."
-        << std::endl;
-      ret = 1;
-
-    } // fi
-  }
-  catch( std::exception& err )
-  {
-    std::cerr
-      << "Filter creation failed: "
-      << err.what( )
-      << std::endl;
-    ret = 1;
-
-  } // yrt
-  sphere->GetParameters( )->SetReal( "Radius", 5 );
-  sphere->GetParameters( )->SetUint( "ThetaResolution", 100 );
-  sphere->GetParameters( )->SetUint( "PhiResolution", 100 );
-  sphere->Update( );
-
-  // Prepare scene
-  vtkSmartPointer< vtkRenderer > ren =
-    vtkSmartPointer< vtkRenderer >::New( );
-  ren->SetBackground( 0, 0, 0 );
-  ren->AddActor( sphere->GetOutput( "Output" )->GetVTKActor( ) );
-
-  vtkSmartPointer< vtkRenderWindow > win =
-    vtkSmartPointer< vtkRenderWindow >::New( );
-  win->AddRenderer( ren );
-  win->SetSize( 500, 500 );
-
-  vtkSmartPointer< vtkRenderWindowInteractor > iren =
-    vtkSmartPointer< vtkRenderWindowInteractor >::New( );
-  iren->SetRenderWindow( win );
-
-  iren->Initialize( );
-  ren->Render( );
-  ren->ResetCamera( );
-  iren->Start( );
-
-  // Ok finish
-  delete interface;
-  return( ret );
-}
-
-// eof - $RCSfile$
diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
deleted file mode 100644 (file)
index bd309ba..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-## ============================
-## == Configure source files ==
-## ============================
-
-FILE(GLOB all_CMAKE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*.cmake" )
-
-## =====================
-## == Configure files ==
-## =====================
-
-CONFIGURE_FILE(
-  cpPluginsConfig.cmake.in
-  ${PROJECT_BINARY_DIR}/cpPluginsConfig.cmake
-  @ONLY
-  )
-
-## ========================
-## == Installation rules ==
-## ========================
-
-INSTALL(FILES ${PROJECT_BINARY_DIR}/cpPluginsConfig.cmake DESTINATION share/cmake)
-INSTALL(FILES ${all_CMAKE_FILES} DESTINATION share/cmake)
-
-## eof - $RCSfile$
diff --git a/cmake/cpPluginsConfig.cmake.in b/cmake/cpPluginsConfig.cmake.in
deleted file mode 100644 (file)
index 9bfcc82..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-# ===================================
-# == Some configurations variables ==
-# ===================================
-
-SET(USE_QT4 "@QT4_FOUND@")
-SET(ITK_DIR @ITK_DIR@)
-SET(VTK_DIR @VTK_DIR@)
-IF(USE_QT4 EQUAL "1")
-  SET(QT_QMAKE_EXECUTABLE @QT_QMAKE_EXECUTABLE@)
-ENDIF(USE_QT4 EQUAL "1")
-
-# ===========================
-# == Include cmake scripts ==
-# ===========================
-
-FIND_FILE(
-  cpPlugins_FUNCTIONS
-  NAMES cpPlugins_Functions.cmake
-  HINTS /usr/share/cmake /usr/local/share/cmake
-  PATHS @CMAKE_INSTALL_PREFIX@/share/cmake @PROJECT_SOURCE_DIR@/cmake
-  DOC "Where is \"cpPlugins_Functions.cmake\"?"
-  )
-IF(NOT cpPlugins_FUNCTIONS)
-  MESSAGE(FATAL_ERROR "Where is \"cpPlugins_Functions.cmake\"?")
-ENDIF(NOT cpPlugins_FUNCTIONS)
-GET_FILENAME_COMPONENT(
-  cpPlugins_FUNCTIONS_ABSOLUTE ${cpPlugins_FUNCTIONS}
-  ABSOLUTE
-  )
-GET_FILENAME_COMPONENT(
-  cpPlugins_CMAKE_DIR ${cpPlugins_FUNCTIONS_ABSOLUTE}
-  DIRECTORY
-  )
-INCLUDE(${cpPlugins_FUNCTIONS})
-INCLUDE(${cpPlugins_CMAKE_DIR}/cpPlugins_Options.cmake)
-INCLUDE(${cpPlugins_CMAKE_DIR}/cpPlugins_KitwareTools.cmake)
-IF(USE_QT4 EQUAL "1")
-  INCLUDE(${cpPlugins_CMAKE_DIR}/cpPlugins_Qt4Tools.cmake)
-ENDIF(USE_QT4 EQUAL "1")
-
-# =========================
-# == Include directories ==
-# =========================
-
-INCLUDE_DIRECTORIES(
-  @CMAKE_INSTALL_PREFIX@/include
-  @CMAKE_INSTALL_PREFIX@/include/third_party
-  @CMAKE_INSTALL_PREFIX@/include/ItkVtkGlue
-  @PROJECT_SOURCE_DIR@
-  @PROJECT_BINARY_DIR@
-  @PROJECT_SOURCE_DIR@/lib
-  @PROJECT_BINARY_DIR@/lib
-  @PROJECT_SOURCE_DIR@/lib/cpPlugins_Instances
-  @PROJECT_BINARY_DIR@/lib/cpPlugins_Instances
-  @PROJECT_SOURCE_DIR@/plugins
-  @PROJECT_BINARY_DIR@/plugins
-  @PROJECT_SOURCE_DIR@/lib/third_party
-  @PROJECT_BINARY_DIR@/lib/third_party
-  @PROJECT_SOURCE_DIR@/lib/third_party/dirent
-  @PROJECT_BINARY_DIR@/lib/third_party/dirent
-  @PROJECT_SOURCE_DIR@/lib/ItkVtkGlue
-  @PROJECT_BINARY_DIR@/lib/ItkVtkGlue
-  )
-
-# =========================
-# == Library directories ==
-# =========================
-
-IF(MSVC)
-  LINK_DIRECTORIES(
-    @PROJECT_BINARY_DIR@/$(ConfigurationName)
-    @CMAKE_INSTALL_PREFIX@/bin
-    @CMAKE_INSTALL_PREFIX@/lib
-    )
-ELSE(MSVC)
-  LINK_DIRECTORIES(
-    @PROJECT_BINARY_DIR@
-    @CMAKE_INSTALL_PREFIX@/bin
-    @CMAKE_INSTALL_PREFIX@/lib
-    )
-ENDIF(MSVC)
-
-# ===================
-# == Library names ==
-# ===================
-
-SET(cpExtensions_LIBRARY cpExtensions)
-SET(cpPlugins_tinyxml2_LIBRARY cpPlugins_tinyxml2)
-SET(cpPipelineEditor_LIBRARY cpPipelineEditor)
-SET(cpPlugins_LIBRARIES "@cpPlugins_LIBRARIES@;cpPlugins")
-
-# ======================
-# == Executable names ==
-# ======================
-SET(
-  exec_PROGRAMS
-  cpPlugins_CreateInstances
-  cpPlugins_HostCreator
-  )
-FOREACH(prog ${exec_PROGRAMS})
-  IF(MSVC)
-    FIND_PROGRAM(
-      ${prog}_APP
-      NAMES ${prog}
-      HINTS /usr /usr/local
-      PATHS @CMAKE_INSTALL_PREFIX@/bin @PROJECT_BINARY_DIR@/Debug @PROJECT_BINARY_DIR@/Release @PROJECT_BINARY_DIR@/MinSizeRel @PROJECT_BINARY_DIR@/RelWithDebInfo
-      PATH_SUFFIXES bin sbin
-      DOC "Where is ${prog}?"
-      )
-  ELSE(MSVC)
-    FIND_PROGRAM(
-      ${prog}_APP
-      NAMES ${prog}
-      HINTS /usr /usr/local
-      PATHS @CMAKE_INSTALL_PREFIX@/bin @PROJECT_BINARY_DIR@
-      PATH_SUFFIXES bin sbin
-      DOC "Where is ${prog}?"
-      )
-  ENDIF(MSVC)
-ENDFOREACH(prog)
-
-## eof - $RCSfile$
diff --git a/cmake/cpPlugins_Functions.cmake b/cmake/cpPlugins_Functions.cmake
deleted file mode 100644 (file)
index d53d0f0..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-
-## -------------------------------------------------------------------------
-FUNCTION(cpPlugins_WrapInstances instances libprefix ver sver)
-GET_FILENAME_COMPONENT(name ${instances} NAME_WE)
-SET(i_FILE "${CMAKE_CURRENT_SOURCE_DIR}/${name}.i")
-SET(h_FILE "${CMAKE_CURRENT_BINARY_DIR}/${name}.h")
-SET(s_FILE "${CMAKE_CURRENT_BINARY_DIR}/${name}.cxx")
-SET(e_FILE "${CMAKE_CURRENT_SOURCE_DIR}/${name}_extra.cxx")
-SET(l_NAME "${libprefix}${name}")
-SET(x_FILE "${CMAKE_CURRENT_BINARY_DIR}/${l_NAME}_Export.h")
-ADD_CUSTOM_COMMAND(
-  OUTPUT ${h_FILE} ${s_FILE}
-  DEPENDS ${cpPlugins_CreateInstances_APP} ${i_FILE}
-  COMMAND ${cpPlugins_CreateInstances_APP} ${i_FILE} ${l_NAME} ${h_FILE} ${s_FILE}
-  )
-IF(EXISTS ${e_FILE})
-  ADD_LIBRARY(${l_NAME} SHARED ${s_FILE} ${e_FILE})
-ELSE(EXISTS ${e_FILE})
-  ADD_LIBRARY(${l_NAME} SHARED ${s_FILE})
-ENDIF(EXISTS ${e_FILE})
-SET_TARGET_PROPERTIES(
-  ${l_NAME} PROPERTIES
-  VERSION "${ver}"
-  SOVERSION "${sver}"
-  )
-GENERATE_EXPORT_HEADER(
-  ${l_NAME}
-  BASE_NAME ${l_NAME}
-  EXPORT_MACRO_NAME ${l_NAME}_EXPORT
-  EXPORT_FILE_NAME ${x_FILE}
-  STATIC_DEFINE ${l_NAME}_BUILT_AS_STATIC
-  )
-TARGET_LINK_LIBRARIES(${l_NAME} ${ARGN})
-ENDFUNCTION()
-
-## -------------------------------------------------------------------------
-FUNCTION(cpPlugins_WrapPlugins libname ver sver headers sources other_sources qtheaders)
-SET(host ${CMAKE_CURRENT_BINARY_DIR}/${libname}_Host.cxx)
-ADD_CUSTOM_COMMAND(
-  OUTPUT ${host}
-  DEPENDS ${cpPlugins_HostCreator_APP} ${headers}
-  COMMAND ${cpPlugins_HostCreator_APP} ${libname} ${host} ${headers}
-  )
-SET(qtsources)
-FOREACH(qth ${qtheaders})
-  QT4_WRAP_CPP(qth_moc ${qth})
-  SET(qtsources "${qtsources};${qth_moc}")
-ENDFOREACH(qth)
-
-ADD_LIBRARY(${libname} SHARED ${host} ${sources} ${other_sources} ${qtsources})
-SET_TARGET_PROPERTIES(
-  ${libname} PROPERTIES
-  VERSION "${ver}"
-  SOVERSION "${sver}"
-  )
-GENERATE_EXPORT_HEADER(
-  ${libname}
-  BASE_NAME ${libname}
-  EXPORT_MACRO_NAME ${libname}_EXPORT
-  EXPORT_FILE_NAME ${CMAKE_CURRENT_BINARY_DIR}/${libname}_Export.h
-  STATIC_DEFINE ${libname}_BUILT_AS_STATIC
-  )
-TARGET_LINK_LIBRARIES(${libname} ${ARGN})
-ENDFUNCTION()
-
-## eof - $RCSfile$
diff --git a/cmake/cpPlugins_KitwareTools.cmake b/cmake/cpPlugins_KitwareTools.cmake
deleted file mode 100644 (file)
index c920959..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-# ====================
-# = Find ITK and VTK =
-# ====================
-
-FIND_PACKAGE(ITK REQUIRED)
-FIND_PACKAGE(VTK REQUIRED)
-
-INCLUDE(${ITK_USE_FILE})
-INCLUDE(${VTK_USE_FILE})
-
-# =================================================
-# = Do not use itk-vtk glue --> problems ahead!!! =
-# =================================================
-
-IF(ITKVtkGlue_LOADED)
-  MESSAGE(FATAL_ERROR "ITKVtkGlue module is available. Please re-compile your ITK without it. It could lead to nasty compilation problems... Just waiting for Kitware to solve it.")
-ENDIF(ITKVtkGlue_LOADED)
-
-## eof - $RCSfile$
diff --git a/cmake/cpPlugins_Options.cmake b/cmake/cpPlugins_Options.cmake
deleted file mode 100644 (file)
index 44b4f8f..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-# ============================================================================
-# = Force c++11 language version                                             =
-# = NOTE: It seems that by default on Visual Studio Compiler supports c++11, =
-# = so it only need to be tested on other OS.                                =
-# ============================================================================
-
-IF(NOT MSVC)
-  INCLUDE(CheckCXXCompilerFlag)
-  CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
-  IF(COMPILER_SUPPORTS_CXX11)
-    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
-  ELSE(COMPILER_SUPPORTS_CXX11)
-    CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
-    IF(COMPILER_SUPPORTS_CXX0X)
-      SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
-    ELSE(COMPILER_SUPPORTS_CXX0X)
-      MESSAGE(
-        FATAL_ERROR
-        "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support."
-        )
-    ENDIF(COMPILER_SUPPORTS_CXX0X)
-  ENDIF(COMPILER_SUPPORTS_CXX11)
-ENDIF(NOT MSVC)
-
-# Prepare header to build shared libs (windows)
-INCLUDE(GenerateExportHeader)
-
-## ================================================
-## = Do not allow to build inside the source tree =
-## ================================================
-
-IF(PROJECT_BINARY_DIR STREQUAL ${PROJECT_SOURCE_DIR})
-  MESSAGE(FATAL_ERROR "Building in the source tree is not allowed.")
-ENDIF(PROJECT_BINARY_DIR STREQUAL ${PROJECT_SOURCE_DIR})
-
-## =====================================
-## = Where to put executables and libs =
-## =====================================
-
-SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR})
-SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR})
-MARK_AS_ADVANCED(
-  CMAKE_BACKWARDS_COMPATIBILITY
-  EXECUTABLE_OUTPUT_PATH
-  LIBRARY_OUTPUT_PATH
-  )
-
-## eof - $RCSfile$
diff --git a/cmake/cpPlugins_Policies.cmake b/cmake/cpPlugins_Policies.cmake
deleted file mode 100644 (file)
index a26f448..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-SET(
-  policies
-  CMP0015
-  CMP0020
-  CMP0042
-  )
-FOREACH(policy ${policies})
-  IF(POLICY ${policy})
-    CMAKE_POLICY(SET ${policy} NEW)
-  ENDIF(POLICY ${policy})
-ENDFOREACH(policy)
-
-## eof - $RCSfile$
diff --git a/cmake/cpPlugins_Qt4Tools.cmake b/cmake/cpPlugins_Qt4Tools.cmake
deleted file mode 100644 (file)
index d046e6b..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-OPTION(USE_QT4 "Build Qt4-based code" ON)
-
-SET(QT4_FOUND "0")
-IF(USE_QT4)
-  FIND_PACKAGE(Qt4 REQUIRED)
-  INCLUDE(${QT_USE_FILE})
-  SET(
-    vtk_required_modules
-    vtkGUISupportQt
-    vtkGUISupportQtOpenGL
-    )
-  FOREACH(vtk_module ${vtk_required_modules})
-    IF(NOT ${vtk_module}_LOADED)
-      MESSAGE(
-        FATAL_ERROR
-        "${vtk_module} module is required but not available."
-        )
-      SET(QT4_FOUND "0")
-    ENDIF(NOT ${vtk_module}_LOADED)
-  ENDFOREACH(vtk_module)
-  SET(QT4_FOUND "1")
-ENDIF(USE_QT4)
-
-## eof - $RCSfile$
diff --git a/data/ReadWriteImage.wxml b/data/ReadWriteImage.wxml
deleted file mode 100644 (file)
index 5d597c5..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<cpPlugins_Workspace>
-    <filter category="IO" class="ImageReader" name="reader" ViewX="-211" ViewY="-97">
-        <parameter name="FileNames" value="" type="OpenFileNameList"/>
-    </filter>
-    <filter category="IO" class="ImageWriter" name="writer" ViewX="-33" ViewY="-61">
-        <parameter name="FileName" value="" type="SaveFileName"/>
-    </filter>
-    <plugins>
-        <plugin name="cpPluginsIO"/>
-    </plugins>
-    <connection>
-        <origin filter="reader" name="Output"/>
-        <destination filter="writer" name="Input"/>
-    </connection>
-</cpPlugins_Workspace>
diff --git a/data/circles.png b/data/circles.png
deleted file mode 100644 (file)
index 8788dc6..0000000
Binary files a/data/circles.png and /dev/null differ
diff --git a/data/inertia.lyx b/data/inertia.lyx
deleted file mode 100644 (file)
index 51740ff..0000000
+++ /dev/null
@@ -1,454 +0,0 @@
-#LyX 2.1 created this file. For more info see http://www.lyx.org/
-\lyxformat 474
-\begin_document
-\begin_header
-\textclass article
-\use_default_options true
-\maintain_unincluded_children false
-\language english
-\language_package default
-\inputencoding auto
-\fontencoding global
-\font_roman default
-\font_sans default
-\font_typewriter default
-\font_math auto
-\font_default_family default
-\use_non_tex_fonts false
-\font_sc false
-\font_osf false
-\font_sf_scale 100
-\font_tt_scale 100
-\graphics default
-\default_output_format default
-\output_sync 0
-\bibtex_command default
-\index_command default
-\paperfontsize default
-\use_hyperref false
-\papersize default
-\use_geometry false
-\use_package amsmath 1
-\use_package amssymb 1
-\use_package cancel 1
-\use_package esint 1
-\use_package mathdots 1
-\use_package mathtools 1
-\use_package mhchem 1
-\use_package stackrel 1
-\use_package stmaryrd 1
-\use_package undertilde 1
-\cite_engine basic
-\cite_engine_type default
-\biblio_style plain
-\use_bibtopic false
-\use_indices false
-\paperorientation portrait
-\suppress_date false
-\justification true
-\use_refstyle 1
-\index Index
-\shortcut idx
-\color #008000
-\end_index
-\secnumdepth 3
-\tocdepth 3
-\paragraph_separation indent
-\paragraph_indentation default
-\quotes_language english
-\papercolumns 1
-\papersides 1
-\paperpagestyle default
-\tracking_changes false
-\output_changes false
-\html_math_output 0
-\html_css_as_file 0
-\html_be_strict false
-\end_header
-
-\begin_body
-
-\begin_layout Standard
-\begin_inset Formula 
-\[
-\boldsymbol{\iota}=\left[\begin{array}{ccc}
-\iota_{00} & \iota_{01} & \iota_{02}\\
-\iota_{10} & \iota_{11} & \iota_{12}\\
-\iota_{20} & \iota_{21} & \iota_{22}
-\end{array}\right]
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\boldsymbol{\iota}=\left[\begin{array}{ccc}
-{\displaystyle \sum_{i=1}^{n}m_{i}\left(x_{i1}^{2}+x_{i2}^{2}\right)} & -{\displaystyle \sum_{i=1}^{n}m_{i}x_{i0}x_{i1}} & -{\displaystyle \sum_{i=1}^{n}m_{i}x_{i0}x_{i2}}\\
--{\displaystyle \sum_{i=1}^{n}m_{i}x_{i0}x_{i1}} & {\displaystyle \sum_{i=1}^{n}m_{i}\left(x_{i0}^{2}+x_{i2}^{2}\right)} & -{\displaystyle \sum_{i=1}^{n}m_{i}x_{i1}x_{i2}}\\
--{\displaystyle \sum_{i=1}^{n}m_{i}x_{i0}x_{i2}} & -{\displaystyle \sum_{i=1}^{n}m_{i}x_{i1}x_{i2}} & {\displaystyle \sum_{i=1}^{n}}m_{i}\left(x_{i0}^{2}+x_{i1}^{2}\right)
-\end{array}\right]
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\boldsymbol{\iota}=\sum_{i=1}^{n}m_{i}\left[\begin{array}{ccc}
-\left(x_{i1}^{2}+x_{i2}^{2}\right) & -x_{i0}x_{i1} & -x_{i0}x_{i2}\\
--x_{i0}x_{i1} & \left(x_{i0}^{2}+x_{i2}^{2}\right) & -x_{i1}x_{i2}\\
--x_{i0}x_{i2} & -x_{i1}x_{i2} & \left(x_{i0}^{2}+x_{i1}^{2}\right)
-\end{array}\right]
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\boldsymbol{\iota}=\sum_{i=1}^{n}m_{i}\left[\begin{array}{ccc}
-\left|\mathbf{p}_{i}\right|^{2}-x_{i0}^{2} & -x_{i0}x_{i1} & -x_{i0}x_{i2}\\
--x_{i0}x_{i1} & \left|\mathbf{p}_{i}\right|^{2}-x_{i1}^{2} & -x_{i1}x_{i2}\\
--x_{i0}x_{i2} & -x_{i1}x_{i2} & \left|\mathbf{p}_{i}\right|^{2}-x_{i2}^{2}
-\end{array}\right]
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\boldsymbol{\iota}=\sum_{i=1}^{n}m_{i}\left(\left[\begin{array}{ccc}
-\left|\mathbf{p}_{i}\right|^{2} & 0 & 0\\
-0 & \left|\mathbf{p}_{i}\right|^{2} & 0\\
-0 & 0 & \left|\mathbf{p}_{i}\right|^{2}
-\end{array}\right]-\left[\begin{array}{ccc}
-x_{i0}^{2} & x_{i0}x_{i1} & x_{i0}x_{i2}\\
-x_{i0}x_{i1} & x_{i1}^{2} & x_{i1}x_{i2}\\
-x_{i0}x_{i2} & x_{i1}x_{i2} & x_{i2}^{2}
-\end{array}\right]\right)
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\boldsymbol{\iota}=\sum_{i=1}^{n}m_{i}\left(\left|\mathbf{p}_{i}\right|^{2}\mathbf{I}-\mathbf{p}_{i}\mathbf{p}_{i}^{\top}\right)
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\boldsymbol{\iota}=\sum_{i=1}^{n}m_{i}\left|\mathbf{p}_{i}\right|^{2}\mathbf{I}-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\boldsymbol{\iota}=\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\mathbf{p}_{i}\mathbf{I}-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\boldsymbol{\iota}=\sum_{i=1}^{n}m_{i}\left(\mathbf{p}_{i}-\boldsymbol{\mu}\right)^{\top}\left(\mathbf{p}_{i}-\boldsymbol{\mu}\right)\mathbf{I}-\sum_{i=1}^{n}m_{i}\left(\mathbf{p}_{i}-\boldsymbol{\mu}\right)\left(\mathbf{p}_{i}-\boldsymbol{\mu}\right)^{\top}
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\boldsymbol{\iota}=\sum_{i=1}^{n}m_{i}\left(\mathbf{p}_{i}^{\top}-\boldsymbol{\mu}^{\top}\right)\left(\mathbf{p}_{i}-\boldsymbol{\mu}\right)\mathbf{I}-\sum_{i=1}^{n}m_{i}\left(\mathbf{p}_{i}-\boldsymbol{\mu}\right)\left(\mathbf{p}_{i}^{\top}-\boldsymbol{\mu}^{\top}\right)
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\boldsymbol{\iota}=\sum_{i=1}^{n}m_{i}\left(\mathbf{p}_{i}^{\top}\left(\mathbf{p}_{i}-\boldsymbol{\mu}\right)-\boldsymbol{\mu}^{\top}\left(\mathbf{p}_{i}-\boldsymbol{\mu}\right)\right)\mathbf{I}-\sum_{i=1}^{n}m_{i}\left(\mathbf{p}_{i}\left(\mathbf{p}_{i}^{\top}-\boldsymbol{\mu}^{\top}\right)-\boldsymbol{\mu}\left(\mathbf{p}_{i}^{\top}-\boldsymbol{\mu}^{\top}\right)\right)
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\boldsymbol{\iota}=\sum_{i=1}^{n}m_{i}\left(\mathbf{p}_{i}^{\top}\mathbf{p}_{i}-\mathbf{p}_{i}^{\top}\boldsymbol{\mu}-\boldsymbol{\mu}^{\top}\mathbf{p}_{i}+\boldsymbol{\mu}^{\top}\boldsymbol{\mu}\right)\mathbf{I}-\sum_{i=1}^{n}m_{i}\left(\mathbf{p}_{i}\mathbf{p}_{i}^{\top}-\mathbf{p}_{i}\boldsymbol{\mu}^{\top}-\boldsymbol{\mu}\mathbf{p}_{i}^{\top}+\boldsymbol{\mu}\boldsymbol{\mu}^{\top}\right)
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\boldsymbol{\iota}=\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\mathbf{p}_{i}-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\boldsymbol{\mu}-\sum_{i=1}^{n}m_{i}\boldsymbol{\mu}^{\top}\mathbf{p}_{i}+\sum_{i=1}^{n}m_{i}\boldsymbol{\mu}^{\top}\boldsymbol{\mu}\right)\mathbf{I}-\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\boldsymbol{\mu}^{\top}-\sum_{i=1}^{n}m_{i}\boldsymbol{\mu}\mathbf{p}_{i}^{\top}+\sum_{i=1}^{n}m_{i}\boldsymbol{\mu}\boldsymbol{\mu}^{\top}\right)
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\boldsymbol{\iota}=\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\mathbf{p}_{i}-\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\right)\boldsymbol{\mu}-\sum_{i=1}^{n}m_{i}\boldsymbol{\mu}^{\top}\mathbf{p}_{i}+\left(\sum_{i=1}^{n}m_{i}\right)\boldsymbol{\mu}^{\top}\boldsymbol{\mu}\right)\mathbf{I}-\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}-\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)\boldsymbol{\mu}^{\top}-\sum_{i=1}^{n}m_{i}\boldsymbol{\mu}\mathbf{p}_{i}^{\top}+\left(\sum_{i=1}^{n}m_{i}\right)\boldsymbol{\mu}\boldsymbol{\mu}^{\top}\right)
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\boldsymbol{\iota}=\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\mathbf{p}_{i}-\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\right)\boldsymbol{\mu}-\sum_{i=1}^{n}m_{i}\boldsymbol{\mu}^{\top}\mathbf{p}_{i}+\left(\sum_{i=1}^{n}m_{i}\right)\boldsymbol{\mu}^{\top}\boldsymbol{\mu}\right)\mathbf{I}+\left(-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}+\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)\boldsymbol{\mu}^{\top}+\sum_{i=1}^{n}m_{i}\boldsymbol{\mu}\mathbf{p}_{i}^{\top}-\left(\sum_{i=1}^{n}m_{i}\right)\boldsymbol{\mu}\boldsymbol{\mu}^{\top}\right)
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\boldsymbol{\mu}=\frac{{\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}}{{\displaystyle \sum_{k=1}^{n}}m_{k}}=\frac{{\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}}{M}
-\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula 
-\[
-\boldsymbol{\iota}=\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\mathbf{p}_{i}-\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\right)\boldsymbol{\mu}-\sum_{i=1}^{n}m_{i}\boldsymbol{\mu}^{\top}\mathbf{p}_{i}+M\boldsymbol{\mu}^{\top}\boldsymbol{\mu}\right)\mathbf{I}+\left(-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}+\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)\boldsymbol{\mu}^{\top}+\sum_{i=1}^{n}m_{i}\boldsymbol{\mu}\mathbf{p}_{i}^{\top}-M\boldsymbol{\mu}\boldsymbol{\mu}^{\top}\right)
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\boldsymbol{\iota}=\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\mathbf{p}_{i}-\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\right)\frac{{\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}}{M}-\sum_{i=1}^{n}m_{i}\left(\frac{{\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}}{M}\right)^{\top}\mathbf{p}_{i}+M\left(\frac{{\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}}{M}\right)^{\top}\left(\frac{{\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}}{M}\right)\right)\mathbf{I}+\left(-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}+\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)\boldsymbol{\mu}^{\top}+\sum_{i=1}^{n}m_{i}\boldsymbol{\mu}\mathbf{p}_{i}^{\top}-M\boldsymbol{\mu}\boldsymbol{\mu}^{\top}\right)
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\boldsymbol{\iota}=\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\mathbf{p}_{i}-\frac{\left({\displaystyle \sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}}\right)\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right)}{M}-\sum_{i=1}^{n}m_{i}\left(\frac{{\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}}{M}\right)^{\top}\mathbf{p}_{i}+\frac{\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}^{\top}\right)\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right)}{M}\right)\mathbf{I}+\left(-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}+\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)\boldsymbol{\mu}^{\top}+\sum_{i=1}^{n}m_{i}\boldsymbol{\mu}\mathbf{p}_{i}^{\top}-M\boldsymbol{\mu}\boldsymbol{\mu}^{\top}\right)
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\boldsymbol{\iota}=\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\mathbf{p}_{i}-\frac{1}{M}\sum_{i=1}^{n}m_{i}\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}^{\top}\right)\mathbf{p}_{i}\right)\mathbf{I}+\left(-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}+\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)\boldsymbol{\mu}^{\top}+\sum_{i=1}^{n}m_{i}\boldsymbol{\mu}\mathbf{p}_{i}^{\top}-M\boldsymbol{\mu}\boldsymbol{\mu}^{\top}\right)
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\boldsymbol{\iota}=\mathbf{I}^{\top}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\mathbf{p}_{i}-\frac{1}{M}\sum_{i=1}^{n}m_{i}\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}^{\top}\right)\mathbf{p}_{i}\right)^{\top}+\left(-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}+\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)\boldsymbol{\mu}^{\top}+\sum_{i=1}^{n}m_{i}\boldsymbol{\mu}\mathbf{p}_{i}^{\top}-M\boldsymbol{\mu}\boldsymbol{\mu}^{\top}\right)
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\boldsymbol{\iota}=\mathbf{I}^{\top}\left(\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\mathbf{p}_{i}\right)^{\top}-\left(\frac{1}{M}\sum_{i=1}^{n}m_{i}\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}^{\top}\right)\mathbf{p}_{i}\right)^{\top}\right)+\left(-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}+\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)\boldsymbol{\mu}^{\top}+\sum_{i=1}^{n}m_{i}\boldsymbol{\mu}\mathbf{p}_{i}^{\top}-M\boldsymbol{\mu}\boldsymbol{\mu}^{\top}\right)
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\boldsymbol{\iota}=\mathbf{I}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\mathbf{p}_{i}-\frac{1}{M}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)^{\top}\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right)\right)+\left(\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)\boldsymbol{\mu}^{\top}+\sum_{i=1}^{n}m_{i}\boldsymbol{\mu}\mathbf{p}_{i}^{\top}-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}-M\boldsymbol{\mu}\boldsymbol{\mu}^{\top}\right)
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\boldsymbol{\iota}=\mathbf{I}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\mathbf{p}_{i}-\frac{1}{M}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)^{\top}\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right)\right)+\left(\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)\left(\frac{{\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}}{M}\right)^{\top}+\sum_{i=1}^{n}m_{i}\left(\frac{{\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}}{M}\right)\mathbf{p}_{i}^{\top}-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}-M\left(\frac{{\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}}{M}\right)\left(\frac{{\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}}{M}\right)^{\top}\right)
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\boldsymbol{\iota}=\mathbf{I}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\mathbf{p}_{i}-\frac{1}{M}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)^{\top}\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right)\right)+\left(\frac{1}{M}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right)^{\top}+\sum_{i=1}^{n}m_{i}\left(\frac{{\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}}{M}\right)\mathbf{p}_{i}^{\top}-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}-\frac{1}{M}\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right)\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right)^{\top}\right)
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\boldsymbol{\iota}=\mathbf{I}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\mathbf{p}_{i}-\frac{1}{M}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)^{\top}\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right)\right)+\left(\frac{1}{M}\sum_{i=1}^{n}m_{i}\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right)\mathbf{p}_{i}^{\top}-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}\right)
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\boldsymbol{\iota}^{\top}=\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\mathbf{p}_{i}-\frac{1}{M}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)^{\top}\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right)\right)\mathbf{I}+\left(\frac{1}{M}\sum_{i=1}^{n}m_{i}\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right)\mathbf{p}_{i}^{\top}-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}\right)^{\top}
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\boldsymbol{\iota}=\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\mathbf{p}_{i}-\frac{1}{M}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)^{\top}\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right)\right)\mathbf{I}+\left(\frac{1}{M}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right)^{\top}-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}\right)
-\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
---------------------------------------------------------------------------------
-----------------------------------------
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula 
-\[
-\boldsymbol{\iota}_{n}=\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}^{\top}\mathbf{p}_{i}-\frac{1}{M_{n}}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)^{\top}\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right)\right)\mathbf{I}+\left(\frac{1}{M_{n}}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right)^{\top}-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}\right)
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\boldsymbol{\iota}_{n}=\left(\sum_{i=1}^{n}m_{i}\left|\mathbf{p}_{i}\right|^{2}-\frac{1}{M_{n}}\left|{\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right|^{2}\right)\mathbf{I}+\left(\frac{1}{M_{n}}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)\left({\displaystyle \sum_{j=1}^{n}}m_{j}\mathbf{p}_{j}\right)^{\top}-\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\mathbf{p}_{i}^{\top}\right)
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\boldsymbol{\iota}_{n}=\left(\alpha_{n}-\frac{1}{M_{n}}\boldsymbol{\beta}_{n}^{\top}\boldsymbol{\beta}_{n}\right)\mathbf{I}+\left(\frac{1}{M_{n}}\boldsymbol{\beta}_{n}\boldsymbol{\beta}_{n}^{\top}-\boldsymbol{\gamma}_{n}\right)
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\boldsymbol{\iota}_{n+1}=\left(\alpha_{n+1}-\frac{1}{M_{n}+m_{n+1}}\boldsymbol{\beta}_{n+1}^{\top}\boldsymbol{\beta}_{n+1}\right)\mathbf{I}+\left(\frac{1}{M_{n}+m_{n+1}}\boldsymbol{\beta}_{n+1}\boldsymbol{\beta}_{n+1}^{\top}-\boldsymbol{\gamma}_{n+1}\right)
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\boldsymbol{\iota}_{n+1}-\boldsymbol{\iota}_{n}=\left(\alpha_{n+1}-\alpha_{n}\right)\mathbf{I}-\frac{1}{M_{n+1}}\left(\boldsymbol{\beta}_{n+1}^{\top}\boldsymbol{\beta}_{n+1}\mathbf{I}-\boldsymbol{\beta}_{n+1}\boldsymbol{\beta}_{n+1}^{\top}\right)+\frac{1}{M_{n}}\left(\boldsymbol{\beta}_{n}^{\top}\boldsymbol{\beta}_{n}\mathbf{I}-\boldsymbol{\beta}_{n}\boldsymbol{\beta}_{n}^{\top}\right)-\left(\boldsymbol{\gamma}_{n+1}-\boldsymbol{\gamma}_{n}\right)
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\boldsymbol{\iota}_{n+1}-\boldsymbol{\iota}_{n}=\left(\alpha_{n+1}-\alpha_{n}\right)\mathbf{I}-\frac{M_{n}}{M_{n+1}}\frac{1}{M_{n}}\left(\boldsymbol{\beta}_{n+1}^{\top}\boldsymbol{\beta}_{n+1}\mathbf{I}-\boldsymbol{\beta}_{n+1}\boldsymbol{\beta}_{n+1}^{\top}\right)+\frac{1}{M_{n}}\left(\boldsymbol{\beta}_{n}^{\top}\boldsymbol{\beta}_{n}\mathbf{I}-\boldsymbol{\beta}_{n}\boldsymbol{\beta}_{n}^{\top}\right)-\left(\boldsymbol{\gamma}_{n+1}-\boldsymbol{\gamma}_{n}\right)
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\boldsymbol{\iota}_{n+1}-\boldsymbol{\iota}_{n}=\left(\alpha_{n+1}-\alpha_{n}\right)\mathbf{I}-\frac{1}{M_{n}}\left[\left(\frac{M_{n}}{M_{n}+m_{n+1}}\boldsymbol{\beta}_{n+1}^{\top}\boldsymbol{\beta}_{n+1}+\boldsymbol{\beta}_{n}^{\top}\boldsymbol{\beta}_{n}\right)\mathbf{I}-\left(\frac{M_{n}}{M_{n}+m_{n+1}}\boldsymbol{\beta}_{n+1}\boldsymbol{\beta}_{n+1}^{\top}+\boldsymbol{\beta}_{n}\boldsymbol{\beta}_{n}^{\top}\right)\right]-\left(\boldsymbol{\gamma}_{n+1}-\boldsymbol{\gamma}_{n}\right)
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\alpha_{n+1}-\alpha_{n}=\sum_{i=1}^{n+1}m_{i}\left|\mathbf{p}_{i}\right|^{2}-\sum_{i=1}^{n}m_{i}\left|\mathbf{p}_{i}\right|^{2}
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\alpha_{n+1}-\alpha_{n}=m_{n+1}\left|\mathbf{p}_{n+1}\right|^{2}
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-\frac{M_{n}}{M_{n}+m_{n+1}}\boldsymbol{\beta}_{n+1}^{\top}\boldsymbol{\beta}_{n+1}+\boldsymbol{\beta}_{n}^{\top}\boldsymbol{\beta}_{n}=\frac{M_{n}}{M_{n}+m_{n+1}}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}+m_{n+1}\mathbf{p}_{n+1}\right)^{\top}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}+m_{n+1}\mathbf{p}_{n+1}\right)+\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)^{\top}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-=\frac{M_{n}}{M_{n}+m_{n+1}}\left(\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)^{\top}+m_{n+1}\mathbf{p}_{n+1}^{\top}\right)\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}+m_{n+1}\mathbf{p}_{n+1}\right)+\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)^{\top}\left(\sum_{i=1}^{n}m_{i}\mathbf{p}_{i}\right)
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-=\frac{M_{n}}{M_{n}+m_{n+1}}\left(\boldsymbol{\beta}_{n}^{\top}+m_{n+1}\mathbf{p}_{n+1}^{\top}\right)\left(\boldsymbol{\beta}_{n}+m_{n+1}\mathbf{p}_{n+1}\right)+\boldsymbol{\beta}_{n}^{\top}\boldsymbol{\beta}_{n}
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-=\frac{M_{n}}{M_{n}+m_{n+1}}\boldsymbol{\beta}_{n}^{\top}\boldsymbol{\beta}_{n}+2m_{n+1}\frac{M_{n}}{M_{n}+m_{n+1}}\boldsymbol{\beta}_{n}^{\top}\mathbf{p}_{n+1}+m_{n+1}^{2}\frac{M_{n}}{M_{n}+m_{n+1}}\mathbf{p}_{n+1}^{\top}\mathbf{p}_{n+1}+\boldsymbol{\beta}_{n}^{\top}\boldsymbol{\beta}_{n}
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-=\left(\frac{2M_{n}+m_{n+1}}{M_{n}+m_{n+1}}\right)\boldsymbol{\beta}_{n}^{\top}\boldsymbol{\beta}_{n}+\frac{2m_{n+1}M_{n}}{M_{n}+m_{n+1}}\boldsymbol{\beta}_{n}^{\top}\mathbf{p}_{n+1}+\frac{m_{n+1}^{2}M_{n}}{M_{n}+m_{n+1}}\mathbf{p}_{n+1}^{\top}\mathbf{p}_{n+1}
-\]
-
-\end_inset
-
-
-\begin_inset Formula 
-\[
-=\frac{1}{M_{n}+m_{n+1}}\left[\boldsymbol{\beta}_{n}^{\top}\left(\left(2M_{n}+m_{n+1}\right)\boldsymbol{\beta}_{n}+2m_{n+1}M_{n}\mathbf{p}_{n+1}\right)+m_{n+1}^{2}M_{n}\mathbf{p}_{n+1}^{\top}\mathbf{p}_{n+1}\right]
-\]
-
-\end_inset
-
-
-\end_layout
-
-\end_body
-\end_document
diff --git a/data/line_rad_25.png b/data/line_rad_25.png
deleted file mode 100644 (file)
index 8d4ca75..0000000
Binary files a/data/line_rad_25.png and /dev/null differ
diff --git a/data/mesh_00.vtk b/data/mesh_00.vtk
deleted file mode 100644 (file)
index 8056628..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-# vtk DataFile Version 3.0
-vtk output
-ASCII
-DATASET POLYDATA
-POINTS 49 float
-0 0 0 0 1 0 0 2 0 
-0 3 0 0 4 0 0 5 0 
-0 6 0 1 0 0 1 1 0 
-1 2 0 1 3 0 1 4 0 
-1 5 0 1 6 0 2 0 0 
-2 1 0 2 2 0 2 3 0 
-2 4 0 2 5 0 2 6 0 
-3 0 0 3 1 0 3 2 0 
-3 3 0 3 4 0 3 5 0 
-3 6 0 4 0 0 4 1 0 
-4 2 0 4 3 0 4 4 0 
-4 5 0 4 6 0 5 0 0 
-5 1 0 5 2 0 5 3 0 
-5 4 0 5 5 0 5 6 0 
-6 0 0 6 1 0 6 2 0 
-6 3 0 6 4 0 6 5 0 
-6 6 0 
-POLYGONS 72 288
-3 1 7 0 
-3 8 7 1 
-3 2 8 1 
-3 9 8 2 
-3 3 9 2 
-3 10 9 3 
-3 4 10 3 
-3 11 10 4 
-3 5 11 4 
-3 12 11 5 
-3 6 12 5 
-3 13 12 6 
-3 8 14 7 
-3 15 14 8 
-3 9 15 8 
-3 16 15 9 
-3 10 16 9 
-3 17 16 10 
-3 11 17 10 
-3 18 17 11 
-3 12 18 11 
-3 19 18 12 
-3 13 19 12 
-3 20 19 13 
-3 15 21 14 
-3 22 21 15 
-3 16 22 15 
-3 23 22 16 
-3 17 23 16 
-3 24 23 17 
-3 18 24 17 
-3 25 24 18 
-3 19 25 18 
-3 26 25 19 
-3 20 26 19 
-3 27 26 20 
-3 22 28 21 
-3 29 28 22 
-3 23 29 22 
-3 30 29 23 
-3 24 30 23 
-3 31 30 24 
-3 25 31 24 
-3 32 31 25 
-3 26 32 25 
-3 33 32 26 
-3 27 33 26 
-3 34 33 27 
-3 29 35 28 
-3 36 35 29 
-3 30 36 29 
-3 37 36 30 
-3 31 37 30 
-3 38 37 31 
-3 32 38 31 
-3 39 38 32 
-3 33 39 32 
-3 40 39 33 
-3 34 40 33 
-3 41 40 34 
-3 36 42 35 
-3 43 42 36 
-3 37 43 36 
-3 44 43 37 
-3 38 44 37 
-3 45 44 38 
-3 39 45 38 
-3 46 45 39 
-3 40 46 39 
-3 47 46 40 
-3 41 47 40 
-3 48 47 41 
-
diff --git a/data/mesh_01.obj b/data/mesh_01.obj
deleted file mode 100644 (file)
index e69cada..0000000
+++ /dev/null
@@ -1,12446 +0,0 @@
-#  Viewpoint Datalabs International, Inc.  Copyright 1996
-
-
-mtllib ./vp.mtl
-
-g
-v 2.712726 -2.398764 -2.492640
-v 2.712726 -1.954302 -2.665440
-v -5.975275 -1.954302 -2.665440
-v -5.975275 -2.398764 -2.492640
-v -6.113514 -1.885536 -2.803680
-v 2.712726 -1.885536 -2.803680
-v -5.975275 -1.372307 -2.803680
-v -5.975275 -1.816770 -2.700000
-v 2.712726 -1.816770 -2.700000
-v 2.712726 -1.372307 -2.803680
-v 4.766168 -2.256987 -2.354400
-v 4.766168 -1.372307 -2.665439
-v 4.766168 -1.769892 -2.561759
-v 4.766168 -1.827445 -2.665439
-v 4.766168 -1.884998 -2.527199
-v 6.335766 -1.688939 -2.354399
-v 6.335766 -1.732171 -2.458079
-v 6.335766 -1.775403 -2.319839
-v 6.335766 -2.054828 -2.147039
-v 6.335766 -1.372307 -2.458079
-v 8.078169 -1.372308 -2.043359
-v 7.641026 -1.604039 -1.939679
-v 7.711631 -1.639892 -2.043359
-v 7.505756 -1.675745 -1.905119
-v 7.068614 -1.907476 -1.732319
-v 7.068614 -1.907476 1.732319
-v 7.505756 -1.675745 1.905119
-v 7.711631 -1.639892 2.043359
-v 7.641026 -1.604039 1.939679
-v 8.078169 -1.372308 2.043359
-v 6.335766 -1.372307 2.458079
-v 6.335766 -2.054828 2.147039
-v 6.335766 -1.775403 2.319839
-v 6.335766 -1.732171 2.458079
-v 6.335766 -1.688939 2.354399
-v 4.766168 -1.884998 2.527199
-v 4.766168 -1.827445 2.665439
-v 4.766168 -1.769892 2.561759
-v 4.766168 -1.372307 2.665439
-v 4.766168 -2.256987 2.354400
-v 2.712726 -1.372307 2.803680
-v 2.712726 -1.816770 2.700000
-v -5.975275 -1.816770 2.700000
-v -5.975275 -1.372307 2.803680
-v 2.712726 -1.885536 2.803680
-v -6.113514 -1.885536 2.803680
-v -5.975275 -2.398764 2.492640
-v -5.975275 -1.954302 2.665440
-v 2.712726 -1.954302 2.665440
-v 2.712726 -2.398764 2.492640
-v 8.114170 -1.372308 -2.071796
-v 8.114170 -1.372308 2.071796
-v 6.342309 -1.372307 2.493528
-v 4.769739 -1.372307 2.701281
-v 2.713938 -1.372307 2.839680
-v -6.011275 -1.372307 2.839680
-v -6.011275 -1.372307 -2.839680
-v 2.713938 -1.372307 -2.839680
-v 4.769739 -1.372307 -2.701281
-v 6.342309 -1.372307 -2.493528
-v 2.713938 -1.323668 -2.839680
-v 4.769739 -1.323668 -2.701281
-v 6.342309 -1.323668 -2.493528
-v 8.114170 -1.323668 -2.071796
-v 8.114170 -1.323668 2.071796
-v 6.342309 -1.323668 2.493528
-v 4.769739 -1.323668 2.701281
-v 2.713938 -1.323668 2.839680
-v -6.011275 -1.323668 2.839680
-v -6.011275 -1.323668 -2.839680
-v 2.707886 -1.323668 2.659680
-v -5.831275 -1.323668 2.659680
-v -5.831275 -1.323668 -2.659680
-v 2.707886 -1.323668 -2.659680
-v 4.751889 -1.323668 -2.522075
-v 6.309598 -1.323668 -2.316286
-v 7.934168 -1.323668 -1.929610
-v 7.934168 -1.323668 1.929610
-v 6.309598 -1.323668 2.316286
-v 4.751889 -1.323668 2.522075
-v 4.751889 -1.436042 -2.522075
-v 6.309598 -1.436042 -2.316286
-v 6.309598 -1.436042 2.316286
-v 4.751889 -1.436042 2.522075
-v 2.707886 -1.436042 2.659680
-v -5.831275 -1.436042 2.659680
-v -5.831275 -1.436042 -2.659680
-v 2.707886 -1.436042 -2.659680
-v -5.831275 -2.313226 -2.411036
-v 2.707886 -2.313226 -2.411036
-v 2.707886 -2.313226 2.411036
-v -5.831275 -2.313226 2.411036
-v -5.831275 -2.313226 -2.395036
-v -5.815275 -2.313226 -2.395036
-v -5.815275 -2.313226 -2.411036
-v -5.815275 -2.297832 -2.415399
-v -5.831275 -2.297832 -2.415399
-v -5.831275 -2.297226 -2.398941
-v -5.831275 -2.313226 2.395036
-v -5.831275 -2.297226 2.398941
-v -5.831275 -2.297832 2.415399
-v -5.815275 -2.297832 2.415399
-v -5.815275 -2.313226 2.411036
-v -5.815275 -2.313226 2.395036
-v 2.691886 -2.313226 2.411036
-v 2.691886 -2.297832 2.415399
-v 2.707886 -2.297832 2.415399
-v 2.707886 -2.297226 2.398941
-v 2.707886 -2.313226 2.395036
-v 2.691886 -2.313226 2.395036
-v -5.831275 -1.433818 2.643680
-v -5.815120 -1.436042 2.659680
-v 2.707886 -2.313226 -2.395036
-v 2.707886 -2.297226 -2.398941
-v 2.707886 -2.297832 -2.415399
-v 2.691886 -2.297832 -2.415399
-v 2.691886 -2.313226 -2.411036
-v 2.691886 -2.313226 -2.395036
-v 2.707886 -1.451435 2.655316
-v 2.691886 -1.436042 2.659680
-v 2.707886 -1.420042 2.659680
-v 2.723850 -1.436042 2.658605
-v 2.723886 -1.436042 2.642566
-v 2.707886 -1.436042 2.643680
-v 2.707886 -1.452042 2.638514
-v 2.707886 -1.451435 -2.655316
-v 2.707886 -1.452042 -2.638514
-v 2.707886 -1.436042 -2.643680
-v 2.723886 -1.436042 -2.642566
-v 2.723850 -1.436042 -2.658605
-v 2.707886 -1.420042 -2.659680
-v 2.691886 -1.436042 -2.659680
-v -5.815120 -1.436042 -2.659680
-v -5.831275 -1.433818 -2.643680
-v 4.750303 -1.436042 -2.506146
-v 4.751889 -1.420034 -2.522075
-v -5.831275 -1.339668 -2.659680
-v -5.815275 -1.339668 -2.659680
-v -5.815275 -1.323668 -2.659680
-v -5.847274 -1.323668 -2.675679
-v -5.831275 -1.323668 -2.643680
-v -5.831275 -1.339668 -2.643680
-v -5.831275 -1.339668 2.659680
-v -5.831275 -1.339668 2.643680
-v -5.831275 -1.323668 2.643680
-v -5.847274 -1.323668 2.675679
-v -5.815275 -1.323668 2.659680
-v -5.815275 -1.339668 2.659680
-v 4.751889 -1.420034 2.522075
-v 4.750303 -1.436042 2.506146
-v 6.293735 -1.436042 2.318381
-v 6.293735 -1.420042 2.318381
-v 6.309598 -1.420042 2.316286
-v 6.309598 -1.420042 2.300286
-v 6.309598 -1.436042 2.300286
-v 6.293598 -1.436042 2.302260
-v 6.309598 -1.436042 -2.300286
-v 6.309598 -1.420042 -2.300286
-v 6.309598 -1.420042 -2.316286
-v 6.293735 -1.420042 -2.318381
-v 6.293735 -1.436042 -2.318381
-v 6.293598 -1.436042 -2.302260
-v 6.309598 -1.339668 2.316286
-v 6.293735 -1.339668 2.318381
-v 6.293735 -1.323668 2.318381
-v 6.312506 -1.323668 2.332040
-v 6.325599 -1.323668 2.312477
-v 6.309598 -1.323668 2.300286
-v 6.309598 -1.339668 2.300286
-v 6.309598 -1.339668 -2.316286
-v 6.309598 -1.339668 -2.300286
-v 6.309598 -1.323668 -2.300286
-v 6.325599 -1.323668 -2.312477
-v 6.312506 -1.323668 -2.332040
-v 6.293735 -1.323668 -2.318381
-v 6.293735 -1.339668 -2.318381
-v 2.707886 -1.339677 2.659680
-v 2.708424 -1.323668 2.675679
-v 4.753476 -1.323668 2.538004
-v 4.751889 -1.339676 2.522075
-v 4.753476 -1.323668 -2.538004
-v 4.751889 -1.339676 -2.522075
-v 2.708424 -1.323668 -2.675679
-v 2.707886 -1.339677 -2.659680
-v 2.713399 -1.323668 -2.823680
-v 2.713938 -1.339677 -2.839680
-v -5.995275 -1.323668 -2.839680
-v -5.995275 -1.339668 -2.839680
-v -6.011275 -1.339668 -2.839680
-v -6.011275 -1.339668 -2.823680
-v -6.011275 -1.323668 -2.823680
-v -5.995275 -1.323668 -2.823680
-v -6.011275 -1.323668 2.823680
-v -6.011275 -1.339668 2.823680
-v -6.011275 -1.339668 2.839680
-v -5.995275 -1.339668 2.839680
-v -5.995275 -1.323668 2.839680
-v -5.995275 -1.323668 2.823680
-v -6.011275 -1.356307 -2.839680
-v -5.995275 -1.356307 -2.839680
-v -5.995275 -1.372307 -2.839680
-v -5.999276 -1.372307 -2.827681
-v -6.011275 -1.372307 -2.823680
-v -6.011275 -1.356307 -2.823680
-v 2.713938 -1.339677 2.839680
-v 2.713399 -1.323668 2.823680
-v -6.011275 -1.356307 2.839680
-v -6.011275 -1.356307 2.823680
-v -6.011275 -1.372307 2.823680
-v -5.999276 -1.372307 2.827681
-v -5.995275 -1.372307 2.839680
-v -5.995275 -1.356307 2.839680
-v 4.769739 -1.339676 2.701281
-v 4.768152 -1.323668 2.685351
-v 6.342309 -1.339689 2.493528
-v 6.339403 -1.323668 2.477773
-v 8.098605 -1.323668 2.075501
-v 8.098605 -1.339668 2.075501
-v 8.114170 -1.339668 2.071796
-v 8.114170 -1.339668 2.055796
-v 8.114170 -1.323668 2.055796
-v 8.098170 -1.323668 2.059158
-v 8.114170 -1.323668 -2.055796
-v 8.114170 -1.339668 -2.055796
-v 8.114170 -1.339668 -2.071796
-v 8.098605 -1.339668 -2.075501
-v 8.098605 -1.323668 -2.075501
-v 8.098170 -1.323668 -2.059158
-v 8.114170 -1.356308 2.071796
-v 8.098605 -1.356308 2.075501
-v 8.098605 -1.372308 2.075501
-v 8.102171 -1.372308 2.062318
-v 8.114170 -1.372308 2.055796
-v 8.114170 -1.356308 2.055796
-v 6.342309 -1.339689 -2.493528
-v 6.339403 -1.323668 -2.477773
-v 8.114170 -1.356308 -2.071796
-v 8.114170 -1.356308 -2.055796
-v 8.114170 -1.372308 -2.055796
-v 8.102171 -1.372308 -2.062318
-v 8.098605 -1.372308 -2.075501
-v 8.098605 -1.356308 -2.075501
-v 4.769739 -1.339676 -2.701281
-v 4.768152 -1.323668 -2.685351
-v 6.340129 -1.372307 -2.481713
-v 6.342309 -1.356286 -2.493528
-v 4.768549 -1.372307 -2.689335
-v 4.769739 -1.356299 -2.701281
-v 2.713534 -1.372307 -2.827681
-v 2.713938 -1.356298 -2.839680
-v 2.713534 -1.372307 2.827681
-v 2.713938 -1.356298 2.839680
-v 4.768549 -1.372307 2.689335
-v 4.769739 -1.356299 2.701281
-v 6.340129 -1.372307 2.481713
-v 6.342309 -1.356286 2.493528
-v -6.113514 -1.885536 2.787680
-v -6.099189 -1.892662 2.767878
-v -6.102842 -1.890845 2.793007
-v -6.077713 -1.892662 2.789354
-v -6.097515 -1.885536 2.803680
-v -6.071818 -1.876692 2.790346
-v -6.101622 -1.879620 2.794760
-v -6.099189 -1.878410 2.773663
-v -6.113514 -1.885536 -2.787680
-v -6.099189 -1.878410 -2.773663
-v -6.101622 -1.879620 -2.794760
-v -6.071818 -1.876692 -2.790346
-v -6.097515 -1.885536 -2.803680
-v -6.077713 -1.892662 -2.789354
-v -6.102842 -1.890845 -2.793007
-v -6.099189 -1.892662 -2.767878
-v -5.959274 -1.954302 2.665440
-v -5.968124 -1.947175 2.679765
-v -5.985947 -1.948993 2.676113
-v -5.989600 -1.947175 2.658290
-v -5.975275 -1.954302 2.649440
-v -5.975275 -1.970302 2.642053
-v -5.975275 -1.969214 2.659642
-v -5.959274 -1.969214 2.659642
-v 2.712774 -1.969137 2.659416
-v 2.713096 -1.947401 2.679883
-v -5.975275 -2.383851 2.498439
-v -5.975275 -2.382764 2.481694
-v -5.975275 -2.398764 2.476640
-v -5.959274 -2.398764 2.476640
-v -5.959274 -2.398764 2.492640
-v -5.959274 -2.383851 2.498439
-v 2.712190 -2.398782 2.476630
-v 2.712418 -2.383929 2.498675
-v 2.712338 -1.892437 2.789238
-v 2.712151 -1.876947 2.790180
-v -5.987167 -1.822686 2.708920
-v -5.969135 -1.825614 2.713334
-v -5.959274 -1.816770 2.700000
-v -5.959274 -1.801188 2.703635
-v -5.975275 -1.801188 2.703635
-v -5.975275 -1.800770 2.687302
-v -5.975275 -1.816770 2.684000
-v -5.989600 -1.823896 2.691471
-v 2.712602 -1.387875 2.799951
-v 2.713130 -1.372307 2.815678
-v -5.959274 -1.372307 2.803680
-v -5.987273 -1.372307 2.815678
-v -5.975275 -1.372307 2.787680
-v -5.975275 -1.388307 2.783518
-v -5.975275 -1.387889 2.800045
-v -5.959274 -1.387889 2.800045
-v 2.713279 -1.825358 2.713500
-v 2.712674 -1.801202 2.703734
-v 4.764598 -2.257143 2.338463
-v 4.765438 -2.242578 2.361351
-v 4.765759 -1.387775 2.661335
-v 4.767358 -1.372307 2.677386
-v 4.767843 -1.777537 2.575726
-v 4.766009 -1.754433 2.565921
-v 4.764974 -1.833592 2.650705
-v 4.764438 -1.819802 2.651479
-v 4.766231 -1.899454 2.520317
-v 4.767318 -1.878853 2.541939
-v 6.339335 -1.695142 2.368779
-v 6.336325 -1.674196 2.360748
-v 6.332798 -1.736667 2.442959
-v 6.332273 -1.725967 2.443692
-v 6.319942 -1.776508 2.321930
-v 6.320152 -1.790749 2.314583
-v 6.335766 -1.789011 2.311424
-v 6.348468 -1.784460 2.301672
-v 6.350799 -1.774122 2.314511
-v 6.339044 -1.770878 2.334926
-v 6.320033 -2.056855 2.149118
-v 6.330730 -2.055658 2.131563
-v 6.349483 -2.052070 2.139278
-v 6.352201 -2.042067 2.152415
-v 6.335766 -2.041220 2.155455
-v 6.319822 -2.042605 2.156471
-v 6.334619 -1.387029 2.451863
-v 6.337947 -1.372307 2.469894
-v 8.062603 -1.372308 2.047064
-v 8.030944 -1.387588 2.047712
-v 8.064332 -1.379642 2.040078
-v 8.064032 -1.379802 2.023659
-v 8.078169 -1.372308 2.027359
-v 8.090168 -1.372308 2.052838
-v 7.625806 -1.605030 1.944515
-v 7.634216 -1.610275 1.957620
-v 7.649685 -1.608437 1.952394
-v 7.655291 -1.611283 1.934268
-v 7.641026 -1.604039 1.923679
-v 7.655164 -1.596546 1.926684
-v 7.654862 -1.596705 1.942961
-v 7.637601 -1.590346 1.949004
-v 7.696343 -1.640918 2.047967
-v 7.695954 -1.643408 2.031554
-v 7.711631 -1.639892 2.027359
-v 7.697366 -1.632648 1.996050
-v 7.702972 -1.635495 2.030643
-v 7.686785 -1.635728 2.035156
-v 7.467351 -1.692388 1.908106
-v 7.505756 -1.675745 1.888171
-v 7.522184 -1.672884 1.916150
-v 7.067178 -1.907989 1.714669
-v 7.066056 -1.896901 1.746302
-v 7.641026 -1.604039 -1.923679
-v 7.655291 -1.611283 -1.934268
-v 7.649685 -1.608437 -1.952394
-v 7.634216 -1.610275 -1.957620
-v 7.625806 -1.605030 -1.944515
-v 7.637601 -1.590346 -1.949004
-v 7.654862 -1.596705 -1.942961
-v 7.655164 -1.596546 -1.926684
-v 7.711631 -1.639892 -2.027359
-v 7.695954 -1.643408 -2.031554
-v 7.696343 -1.640918 -2.047967
-v 7.686785 -1.635728 -2.035156
-v 7.702972 -1.635495 -2.030643
-v 7.697366 -1.632648 -1.996050
-v -5.975275 -1.954302 -2.649440
-v -5.989600 -1.947175 -2.658290
-v -5.985947 -1.948993 -2.676113
-v -5.968124 -1.947175 -2.679765
-v -5.959274 -1.954302 -2.665440
-v -5.959274 -1.969214 -2.659642
-v -5.975275 -1.969214 -2.659642
-v -5.975275 -1.970302 -2.642053
-v -5.975275 -1.816770 -2.684000
-v -5.975275 -1.800770 -2.687302
-v -5.975275 -1.801188 -2.703635
-v -5.959274 -1.801188 -2.703635
-v -5.959274 -1.816770 -2.700000
-v -5.969135 -1.825614 -2.713334
-v -5.987167 -1.822686 -2.708920
-v -5.989600 -1.823896 -2.691471
-v 8.078169 -1.372308 -2.027359
-v 8.064032 -1.379802 -2.023659
-v 8.064332 -1.379642 -2.040078
-v 8.030944 -1.387588 -2.047712
-v 8.062603 -1.372308 -2.047064
-v 8.090168 -1.372308 -2.052838
-v 7.067178 -1.907989 -1.714669
-v 7.066056 -1.896901 -1.746302
-v 7.467351 -1.692388 -1.908106
-v 7.522184 -1.672884 -1.916150
-v 7.505756 -1.675745 -1.888171
-v 6.349483 -2.052070 -2.139278
-v 6.330730 -2.055658 -2.131563
-v 6.320033 -2.056855 -2.149118
-v 6.319822 -2.042605 -2.156471
-v 6.335766 -2.041220 -2.155455
-v 6.352201 -2.042067 -2.152415
-v 6.350799 -1.774122 -2.314511
-v 6.348468 -1.784460 -2.301672
-v 6.335766 -1.789011 -2.311424
-v 6.320152 -1.790749 -2.314583
-v 6.319942 -1.776508 -2.321930
-v 6.339044 -1.770878 -2.334926
-v 6.332798 -1.736667 -2.442959
-v 6.332273 -1.725967 -2.443692
-v 6.339335 -1.695142 -2.368779
-v 6.336325 -1.674196 -2.360748
-v 6.334619 -1.387029 -2.451863
-v 6.337947 -1.372307 -2.469894
-v 4.765759 -1.387775 -2.661335
-v 4.767358 -1.372307 -2.677386
-v 4.764598 -2.257143 -2.338463
-v 4.765438 -2.242578 -2.361351
-v 4.766231 -1.899454 -2.520317
-v 4.767318 -1.878853 -2.541939
-v 4.764974 -1.833592 -2.650705
-v 4.764438 -1.819802 -2.651479
-v 4.767843 -1.777537 -2.575726
-v 4.766009 -1.754433 -2.565921
-v 2.712774 -1.969137 -2.659416
-v 2.713096 -1.947401 -2.679883
-v 2.712338 -1.892437 -2.789238
-v 2.712151 -1.876947 -2.790180
-v 2.713279 -1.825358 -2.713500
-v 2.712674 -1.801202 -2.703734
-v 2.712602 -1.387875 -2.799951
-v 2.713130 -1.372307 -2.815678
-v 2.712190 -2.398782 -2.476630
-v 2.712418 -2.383929 -2.498675
-v -5.975275 -1.387889 -2.800045
-v -5.975275 -1.388307 -2.783518
-v -5.975275 -1.372307 -2.787680
-v -5.987273 -1.372307 -2.815678
-v -5.959274 -1.372307 -2.803680
-v -5.959274 -1.387889 -2.800045
-v -5.975275 -2.398764 -2.476640
-v -5.975275 -2.382764 -2.481694
-v -5.975275 -2.383851 -2.498439
-v -5.959274 -2.383851 -2.498439
-v -5.959274 -2.398764 -2.492640
-v -5.959274 -2.398764 -2.476640
-v -3.849405 1.152882 0.921437
-v -3.822861 1.126339 0.921437
-v -3.822861 1.126339 0.619901
-v -3.849405 1.152882 0.619901
-v -3.875949 1.126339 0.921437
-v -3.849405 1.099795 0.921437
-v -3.875949 1.126339 1.433200
-v -3.849405 1.099795 1.433200
-v -3.945206 1.057082 1.433200
-v -3.918662 1.030538 1.433200
-v -4.007861 0.997151 1.547444
-v -3.978593 0.967883 1.547444
-v -4.327192 1.152882 0.619901
-v -4.353735 1.126339 0.619901
-v -4.353735 1.126339 0.921437
-v -4.327192 1.152882 0.921437
-v -4.327192 1.099795 0.921437
-v -4.300648 1.126339 0.921437
-v -4.327192 1.099795 1.433200
-v -4.300648 1.126339 1.433200
-v -4.257935 1.030538 1.433200
-v -4.231390 1.057082 1.433200
-v -4.198004 0.967883 1.547444
-v -4.168737 0.997151 1.547444
-v -3.476986 0.997151 1.547444
-v -3.447718 0.967883 1.547444
-v -3.414332 1.057082 1.433200
-v -3.387789 1.030538 1.433200
-v -3.345074 1.126339 1.433200
-v -3.318531 1.099795 1.433200
-v -3.345074 1.126339 0.921437
-v -3.318531 1.099795 0.921437
-v -3.318531 1.152882 0.921437
-v -3.291987 1.126339 0.921437
-v -3.291987 1.126339 0.619901
-v -3.318531 1.152882 0.619901
-v -3.667130 0.967883 1.547444
-v -3.637862 0.997151 1.547444
-v -3.727060 1.030538 1.433200
-v -3.700517 1.057082 1.433200
-v -3.796318 1.099795 1.433200
-v -3.769773 1.126339 1.433200
-v -3.796318 1.099795 0.921437
-v -3.769773 1.126339 0.921437
-v -3.796318 1.152882 0.619901
-v -3.796318 1.152882 0.921437
-v -3.796318 0.437689 0.921437
-v -3.796318 0.437689 0.619901
-v -3.769773 0.464233 0.921437
-v -3.796318 0.490776 0.921437
-v -3.769773 0.464233 1.433200
-v -3.796318 0.490776 1.433200
-v -3.700517 0.533490 1.433200
-v -3.727060 0.560034 1.433200
-v -3.637862 0.593420 1.547444
-v -3.667130 0.622688 1.547444
-v -3.318531 0.437689 0.619901
-v -3.291987 0.464233 0.619901
-v -3.291987 0.464233 0.921437
-v -3.318531 0.437689 0.921437
-v -3.318531 0.490776 0.921437
-v -3.345074 0.464233 0.921437
-v -3.318531 0.490776 1.433200
-v -3.345074 0.464233 1.433200
-v -3.387789 0.560034 1.433200
-v -3.414332 0.533490 1.433200
-v -3.447718 0.622688 1.547444
-v -3.476986 0.593420 1.547444
-v -4.168737 0.593420 1.547444
-v -4.198004 0.622688 1.547444
-v -4.231390 0.533490 1.433200
-v -4.257935 0.560034 1.433200
-v -4.300648 0.464233 1.433200
-v -4.327192 0.490776 1.433200
-v -4.300648 0.464233 0.921437
-v -4.327192 0.490776 0.921437
-v -4.327192 0.437689 0.921437
-v -4.353735 0.464233 0.921437
-v -4.353735 0.464233 0.619901
-v -4.327192 0.437689 0.619901
-v -3.978593 0.622688 1.547444
-v -4.007861 0.593420 1.547444
-v -3.918662 0.560034 1.433200
-v -3.945206 0.533490 1.433200
-v -3.849405 0.490776 1.433200
-v -3.875949 0.464233 1.433200
-v -3.849405 0.490776 0.921437
-v -3.875949 0.464233 0.921437
-v -3.849405 0.437689 0.619901
-v -3.822861 0.464233 0.619901
-v -3.822861 0.464233 0.921437
-v -3.849405 0.437689 0.921437
-v -4.469892 0.317642 0.337475
-v -3.849405 0.317642 0.337475
-v -3.796318 0.317642 0.337475
-v -3.318531 0.317642 0.337475
-v -3.291987 0.353097 0.337475
-v -3.291987 1.237474 0.337475
-v -3.318531 1.272929 0.337475
-v -3.796318 1.272929 0.337475
-v -3.849405 1.272929 0.337475
-v -4.469892 1.272929 0.337475
-v -4.496435 1.237474 0.337475
-v -4.496435 0.353097 0.337475
-v -4.496435 0.353097 -0.329302
-v -4.496435 1.237474 -0.329302
-v -4.469892 1.272929 -0.329302
-v -3.849405 1.272929 -0.329302
-v -3.796318 1.272929 -0.329302
-v -3.318531 1.272929 -0.329302
-v -3.291987 1.237474 -0.329302
-v -3.291987 0.353097 -0.329302
-v -3.318531 0.317642 -0.329302
-v -3.796318 0.317642 -0.329302
-v -3.849405 0.317642 -0.329302
-v -4.469892 0.317642 -0.329302
-v -3.849405 0.437689 -0.913264
-v -3.822861 0.464233 -0.913264
-v -3.822861 0.464233 -0.611727
-v -3.849405 0.437689 -0.611727
-v -3.875949 0.464233 -0.913264
-v -3.849405 0.490776 -0.913264
-v -3.875949 0.464233 -1.425026
-v -3.849405 0.490776 -1.425026
-v -3.945206 0.533490 -1.425026
-v -3.918662 0.560034 -1.425026
-v -4.007861 0.593420 -1.539271
-v -3.978593 0.622688 -1.539271
-v -4.327192 0.437689 -0.611727
-v -4.353735 0.464233 -0.611727
-v -4.353735 0.464233 -0.913264
-v -4.327192 0.437689 -0.913264
-v -4.327192 0.490776 -0.913264
-v -4.300648 0.464233 -0.913264
-v -4.327192 0.490776 -1.425026
-v -4.300648 0.464233 -1.425026
-v -4.257935 0.560034 -1.425026
-v -4.231390 0.533490 -1.425026
-v -4.198004 0.622688 -1.539271
-v -4.168737 0.593420 -1.539271
-v -3.476986 0.593420 -1.539271
-v -3.447718 0.622688 -1.539271
-v -3.414332 0.533490 -1.425026
-v -3.387789 0.560034 -1.425026
-v -3.345074 0.464233 -1.425026
-v -3.318531 0.490776 -1.425026
-v -3.345074 0.464233 -0.913264
-v -3.318531 0.490776 -0.913264
-v -3.318531 0.437689 -0.913264
-v -3.291987 0.464233 -0.913264
-v -3.291987 0.464233 -0.611727
-v -3.318531 0.437689 -0.611727
-v -3.667130 0.622688 -1.539271
-v -3.637862 0.593420 -1.539271
-v -3.727060 0.560034 -1.425026
-v -3.700517 0.533490 -1.425026
-v -3.796318 0.490776 -1.425026
-v -3.769773 0.464233 -1.425026
-v -3.796318 0.490776 -0.913264
-v -3.769773 0.464233 -0.913264
-v -3.796318 0.437689 -0.611727
-v -3.796318 0.437689 -0.913264
-v -3.796318 1.152882 -0.913264
-v -3.796318 1.152882 -0.611727
-v -3.769773 1.126339 -0.913264
-v -3.796318 1.099795 -0.913264
-v -3.769773 1.126339 -1.425026
-v -3.796318 1.099795 -1.425026
-v -3.700517 1.057082 -1.425026
-v -3.727060 1.030538 -1.425026
-v -3.637862 0.997151 -1.539271
-v -3.667130 0.967883 -1.539271
-v -3.318531 1.152882 -0.611727
-v -3.291987 1.126339 -0.611727
-v -3.291987 1.126339 -0.913264
-v -3.318531 1.152882 -0.913264
-v -3.318531 1.099795 -0.913264
-v -3.345074 1.126339 -0.913264
-v -3.318531 1.099795 -1.425026
-v -3.345074 1.126339 -1.425026
-v -3.387789 1.030538 -1.425026
-v -3.414332 1.057082 -1.425026
-v -3.447718 0.967883 -1.539271
-v -3.476986 0.997151 -1.539271
-v -4.168737 0.997151 -1.539271
-v -4.198004 0.967883 -1.539271
-v -4.231390 1.057082 -1.425026
-v -4.257935 1.030538 -1.425026
-v -4.300648 1.126339 -1.425026
-v -4.327192 1.099795 -1.425026
-v -4.300648 1.126339 -0.913264
-v -4.327192 1.099795 -0.913264
-v -4.327192 1.152882 -0.913264
-v -4.353735 1.126339 -0.913264
-v -4.353735 1.126339 -0.611727
-v -4.327192 1.152882 -0.611727
-v -3.978593 0.967883 -1.539271
-v -4.007861 0.997151 -1.539271
-v -3.918662 1.030538 -1.425026
-v -3.945206 1.057082 -1.425026
-v -3.849405 1.099795 -1.425026
-v -3.875949 1.126339 -1.425026
-v -3.849405 1.099795 -0.913264
-v -3.875949 1.126339 -0.913264
-v -3.849405 1.152882 -0.611727
-v -3.822861 1.126339 -0.611727
-v -3.822861 1.126339 -0.913264
-v -3.849405 1.152882 -0.913264
-v -3.962898 1.272929 -0.208715
-v -3.962898 1.272929 0.216889
-v -4.356398 1.272929 0.216889
-v -4.356398 1.272929 -0.208715
-v -3.410157 1.272929 -0.208715
-v -3.410157 1.272929 0.216889
-v -3.704692 1.272929 0.216889
-v -3.704692 1.272929 -0.208715
-v -3.962898 1.336210 0.216889
-v -4.356398 1.336210 0.216889
-v -4.356398 1.336210 -0.208715
-v -3.962898 1.336210 -0.208715
-v -3.410157 1.336210 0.216889
-v -3.704692 1.336210 0.216889
-v -3.704692 1.336210 -0.208715
-v -3.410157 1.336210 -0.208715
-v -4.356398 1.577863 0.216889
-v -4.356398 1.577863 -0.208715
-v -3.962898 1.577863 -0.208715
-v -3.962898 1.577863 0.216889
-v -3.704692 1.577863 0.216889
-v -3.704692 1.577863 -0.208715
-v -3.410157 1.577863 -0.208715
-v -3.410157 1.577863 0.216889
-v -3.126779 0.496178 0.229599
-v -3.126779 0.571354 0.420638
-v -3.126779 1.019218 0.420638
-v -3.126779 1.094393 0.229599
-v -3.126779 1.094393 -0.221426
-v -3.126779 1.019218 -0.412465
-v -3.126779 0.571354 -0.412465
-v -3.126779 0.496178 -0.221426
-v -4.496435 1.022719 -0.159752
-v -4.496435 1.022719 0.167925
-v -4.496435 0.567853 0.167925
-v -4.496435 0.567853 -0.159752
-v -4.496435 0.531570 -0.090902
-v -4.496435 0.514984 0.004086
-v -4.496435 0.531570 0.099074
-v -4.496435 0.955111 -0.226184
-v -4.496435 0.795286 -0.276215
-v -4.496435 0.635460 -0.226184
-v -4.496435 1.059002 0.099074
-v -4.496435 1.075587 0.004086
-v -4.496435 1.059002 -0.090902
-v -4.496435 0.635460 0.234358
-v -4.496435 0.795286 0.284388
-v -4.496435 0.955111 0.234358
-v -4.580100 0.663946 0.193315
-v -4.580100 0.608389 0.138723
-v -4.580100 0.578573 0.082145
-v -4.580100 0.564943 0.004086
-v -4.580100 0.578573 -0.073971
-v -4.580100 0.608389 -0.130550
-v -4.580100 0.663946 -0.185142
-v -4.580100 0.795286 -0.226256
-v -4.580100 0.926625 -0.185142
-v -4.580100 0.982182 -0.130550
-v -4.580100 1.011998 -0.073971
-v -4.580100 1.025628 0.004086
-v -4.580100 1.011998 0.082145
-v -4.580100 0.982182 0.138723
-v -4.580100 0.926625 0.193315
-v -4.580100 0.795286 0.234429
-v -4.760598 0.982182 0.138723
-v -4.760598 0.926625 0.193315
-v -4.760598 0.795286 0.234429
-v -4.760598 0.663946 0.193315
-v -4.760598 0.608389 0.138723
-v -4.760598 0.578573 0.082145
-v -4.760598 0.564943 0.004086
-v -4.760598 0.578573 -0.073971
-v -4.760598 0.608389 -0.130550
-v -4.760598 0.663946 -0.185142
-v -4.760598 0.795286 -0.226256
-v -4.760598 0.926625 -0.185142
-v -4.760598 0.982182 -0.130550
-v -4.760598 1.011998 -0.073971
-v -4.760598 1.025628 0.004086
-v -4.760598 1.011998 0.082145
-v -4.760598 0.663946 -0.376852
-v -4.580100 0.663946 -0.376852
-v -4.580100 0.735274 -0.417966
-v -4.760598 0.735274 -0.417966
-v -4.760598 0.735274 0.426138
-v -4.580100 0.735274 0.426138
-v -4.580100 0.663946 0.385025
-v -4.760598 0.663946 0.385025
-v -4.760598 0.457967 -0.376852
-v -4.760598 0.457967 -0.305541
-v -4.580100 0.457967 -0.305541
-v -4.580100 0.457967 -0.376852
-v -4.580100 0.457967 0.385025
-v -4.580100 0.457967 0.313714
-v -4.760598 0.457967 0.313714
-v -4.760598 0.457967 0.385025
-v -4.760598 0.457967 0.650279
-v -4.760598 0.663946 0.560426
-v -4.580100 0.663946 0.560426
-v -4.580100 0.457967 0.650279
-v -4.580100 0.457967 -0.642106
-v -4.580100 0.663946 -0.552253
-v -4.760598 0.663946 -0.552253
-v -4.760598 0.457967 -0.642106
-v -5.593860 -2.308667 2.040359
-v -5.593860 -2.308667 1.775105
-v -5.774358 -2.308667 1.775105
-v -5.774358 -2.308667 2.040359
-v -5.774358 -2.308667 -2.032186
-v -5.774358 -2.308667 -1.766932
-v -5.593860 -2.308667 -1.766932
-v -5.593860 -2.308667 -2.032186
-v -3.291987 0.643829 -0.709272
-v -3.291987 0.946742 -0.709272
-v -3.291987 0.946742 -0.815720
-v -3.291987 0.643829 -0.815720
-v -3.291987 0.643829 0.823893
-v -3.291987 0.946742 0.823893
-v -3.291987 0.946742 0.717445
-v -3.291987 0.643829 0.717445
-v -3.121682 0.946742 -0.709272
-v -3.121682 0.946742 -0.815720
-v -3.121682 0.643829 -0.815720
-v -3.121682 0.643829 -0.709272
-v -3.121682 0.946742 0.823893
-v -3.121682 0.946742 0.717445
-v -3.121682 0.643829 0.717445
-v -3.121682 0.643829 0.823893
-v -2.961571 0.946742 0.717445
-v -2.961571 0.643829 0.717445
-v -2.961571 0.643829 0.823893
-v -2.961571 0.946742 0.823893
-v -2.961571 0.946742 -0.815720
-v -2.961571 0.643829 -0.815720
-v -2.961571 0.643829 -0.709272
-v -2.961571 0.946742 -0.709272
-v -2.961571 0.643829 0.963619
-v -3.121682 0.643829 0.963619
-v -3.121682 0.780140 0.963619
-v -2.961571 0.780140 0.963619
-v -2.961571 0.780140 -0.955446
-v -3.121682 0.780140 -0.955446
-v -3.121682 0.643829 -0.955446
-v -2.961571 0.643829 -0.955446
-v -2.961571 0.643829 -0.533871
-v -3.121682 0.643829 -0.533871
-v -3.121682 0.946742 -0.533871
-v -2.961571 0.946742 -0.533871
-v -2.961571 0.946742 0.542044
-v -3.121682 0.946742 0.542044
-v -3.121682 0.643829 0.542044
-v -2.961571 0.643829 0.542044
-v -3.121682 0.465368 -0.327892
-v -3.121682 1.125203 -0.327892
-v -2.961571 1.125203 -0.327892
-v -2.961571 0.465368 -0.327892
-v -3.121682 1.125203 0.336065
-v -3.121682 0.465368 0.336065
-v -2.961571 0.465368 0.336065
-v -2.961571 1.125203 0.336065
-v -3.121682 -2.308667 -2.345526
-v -3.121682 -2.308667 -2.205800
-v -2.961571 -2.308667 -2.205800
-v -2.961571 -2.308667 -2.345526
-v -2.961571 -2.308667 2.353699
-v -2.961571 -2.308667 2.213973
-v -3.121682 -2.308667 2.213973
-v -3.121682 -2.308667 2.353699
-v -2.977571 -2.308667 2.353699
-v -2.977571 -2.308667 2.337699
-v -2.961571 -2.308667 2.337699
-v -2.961571 -2.292667 2.337699
-v -2.961571 -2.292667 2.353699
-v -2.977571 -2.292667 2.353699
-v -3.105682 -2.308667 2.353699
-v -3.105682 -2.292667 2.353699
-v -3.121682 -2.292667 2.353699
-v -3.121682 -2.292667 2.337699
-v -3.121682 -2.308667 2.337699
-v -3.105682 -2.308667 2.337699
-v -3.121682 -2.308667 2.229973
-v -3.121682 -2.292667 2.229973
-v -3.121682 -2.292667 2.213973
-v -3.105682 -2.292667 2.213973
-v -3.105682 -2.308667 2.213973
-v -3.105682 -2.308667 2.229973
-v -3.105682 0.643829 0.963619
-v -3.121682 0.643829 0.947619
-v -2.977571 -2.308667 2.213973
-v -2.977571 -2.292667 2.213973
-v -2.961571 -2.292667 2.213973
-v -2.961571 -2.292667 2.229973
-v -2.961571 -2.308667 2.229973
-v -2.977571 -2.308667 2.229973
-v -3.121682 0.627829 0.823893
-v -3.121682 0.643829 0.839893
-v -3.121682 0.659829 0.823893
-v -3.137682 0.659829 0.823893
-v -3.137682 0.643829 0.823893
-v -3.121682 0.643829 0.807893
-v -3.105682 0.643829 0.823893
-v -3.105682 0.627829 0.823893
-v -2.961571 0.627829 0.823893
-v -2.977571 0.627829 0.823893
-v -2.977571 0.643829 0.823893
-v -2.977571 0.643829 0.807893
-v -2.961571 0.643829 0.807893
-v -2.961571 0.659829 0.823893
-v -2.961571 0.643829 0.839893
-v -2.961571 0.643829 0.947619
-v -2.977571 0.643829 0.963619
-v -3.105682 -2.308667 -2.345526
-v -3.105682 -2.308667 -2.329526
-v -3.121682 -2.308667 -2.329526
-v -3.121682 -2.292667 -2.329526
-v -3.121682 -2.292667 -2.345526
-v -3.105682 -2.292667 -2.345526
-v -2.977571 -2.308667 -2.345526
-v -2.977571 -2.292667 -2.345526
-v -2.961571 -2.292667 -2.345526
-v -2.961571 -2.292667 -2.329526
-v -2.961571 -2.308667 -2.329526
-v -2.977571 -2.308667 -2.329526
-v -2.961571 -2.308667 -2.221800
-v -2.961571 -2.292667 -2.221800
-v -2.961571 -2.292667 -2.205800
-v -2.977571 -2.292667 -2.205800
-v -2.977571 -2.308667 -2.205800
-v -2.977571 -2.308667 -2.221800
-v -2.977571 0.643829 -0.955446
-v -2.961571 0.643829 -0.939446
-v -3.105682 -2.308667 -2.205800
-v -3.105682 -2.292667 -2.205800
-v -3.121682 -2.292667 -2.205800
-v -3.121682 -2.292667 -2.221800
-v -3.121682 -2.308667 -2.221800
-v -3.105682 -2.308667 -2.221800
-v -2.961571 0.627829 -0.815720
-v -2.961571 0.643829 -0.831720
-v -2.961571 0.659829 -0.815720
-v -2.961571 0.643829 -0.799720
-v -2.977571 0.643829 -0.799720
-v -2.977571 0.643829 -0.815720
-v -2.977571 0.627829 -0.815720
-v -3.121682 0.627829 -0.815720
-v -3.105682 0.627829 -0.815720
-v -3.105682 0.643829 -0.815720
-v -3.121682 0.643829 -0.799720
-v -3.137682 0.643829 -0.815720
-v -3.137682 0.659829 -0.815720
-v -3.121682 0.659829 -0.815720
-v -3.121682 0.643829 -0.831720
-v -3.121682 0.643829 -0.939446
-v -3.105682 0.643829 -0.955446
-v -3.121682 0.465368 -0.311892
-v -3.121682 0.481368 -0.321925
-v -3.121682 0.475845 -0.339985
-v -3.105682 0.475845 -0.339985
-v -3.105682 0.465368 -0.327892
-v -3.105682 0.465368 -0.311892
-v -3.121682 0.465368 0.320065
-v -3.105682 0.465368 0.320065
-v -3.105682 0.465368 0.336065
-v -3.105682 0.475845 0.348158
-v -3.121682 0.475845 0.348158
-v -3.121682 0.481368 0.330098
-v -3.121682 1.125203 -0.311892
-v -3.105682 1.125203 -0.311892
-v -3.105682 1.125203 -0.327892
-v -3.105682 1.114726 -0.339985
-v -3.121682 1.114726 -0.339985
-v -3.121682 1.109203 -0.321925
-v -3.121682 1.125203 0.320065
-v -3.121682 1.109203 0.330098
-v -3.121682 1.114726 0.348158
-v -3.105682 1.114726 0.348158
-v -3.105682 1.125203 0.336065
-v -3.105682 1.125203 0.320065
-v -2.961571 1.125203 -0.311892
-v -2.961571 1.109203 -0.321925
-v -2.961571 1.114726 -0.339985
-v -2.977571 1.114726 -0.339985
-v -2.977571 1.125203 -0.327892
-v -2.977571 1.125203 -0.311892
-v -2.961571 1.125203 0.320065
-v -2.977571 1.125203 0.320065
-v -2.977571 1.125203 0.336065
-v -2.977571 1.114726 0.348158
-v -2.961571 1.114726 0.348158
-v -2.961571 1.109203 0.330098
-v -2.961571 0.465368 -0.311892
-v -2.977571 0.465368 -0.311892
-v -2.977571 0.465368 -0.327892
-v -2.977571 0.475845 -0.339985
-v -2.961571 0.475845 -0.339985
-v -2.961571 0.481368 -0.321925
-v -2.961571 0.465368 0.320065
-v -2.961571 0.481368 0.330098
-v -2.961571 0.475845 0.348158
-v -2.977571 0.475845 0.348158
-v -2.977571 0.465368 0.336065
-v -2.977571 0.465368 0.320065
-v -2.961571 0.957220 0.529951
-v -2.977571 0.957220 0.529951
-v -2.977571 0.946742 0.542044
-v -2.977571 0.946742 0.558044
-v -2.961571 0.946742 0.558044
-v -2.961571 0.930742 0.536077
-v -2.961571 0.633352 0.529951
-v -2.961571 0.659829 0.536077
-v -2.961571 0.643829 0.558044
-v -2.977571 0.643829 0.558044
-v -2.977571 0.643829 0.542044
-v -2.977571 0.633352 0.529951
-v -3.121682 0.633352 0.529951
-v -3.105682 0.633352 0.529951
-v -3.105682 0.643829 0.542044
-v -3.105682 0.643829 0.558044
-v -3.121682 0.643829 0.558044
-v -3.121682 0.659829 0.536077
-v -3.121682 0.957220 0.529951
-v -3.121682 0.930742 0.536077
-v -3.121682 0.946742 0.558044
-v -3.105682 0.946742 0.558044
-v -3.105682 0.946742 0.542044
-v -3.105682 0.957220 0.529951
-v -2.961571 0.633352 -0.521778
-v -2.977571 0.633352 -0.521778
-v -2.977571 0.643829 -0.533871
-v -2.977571 0.643829 -0.549871
-v -2.961571 0.643829 -0.549871
-v -2.961571 0.659829 -0.527904
-v -2.961571 0.957220 -0.521778
-v -2.961571 0.930742 -0.527904
-v -2.961571 0.946742 -0.549871
-v -2.977571 0.946742 -0.549871
-v -2.977571 0.946742 -0.533871
-v -2.977571 0.957220 -0.521778
-v -3.121682 0.957220 -0.521778
-v -3.105682 0.957220 -0.521778
-v -3.105682 0.946742 -0.533871
-v -3.105682 0.946742 -0.549871
-v -3.121682 0.946742 -0.549871
-v -3.121682 0.930742 -0.527904
-v -3.121682 0.633352 -0.521778
-v -3.121682 0.659829 -0.527904
-v -3.121682 0.643829 -0.549871
-v -3.105682 0.643829 -0.549871
-v -3.105682 0.643829 -0.533871
-v -3.105682 0.633352 -0.521778
-v -2.961571 0.659829 0.717445
-v -2.977571 0.643829 0.717445
-v -3.121682 0.643829 0.701445
-v -3.105682 0.643829 0.717445
-v -3.121682 0.643829 0.733445
-v -3.137682 0.643829 0.717445
-v -3.137682 0.659829 0.717445
-v -3.121682 0.659829 0.717445
-v -3.121682 0.659829 0.701445
-v -3.121682 0.946742 0.701445
-v -3.121682 0.930742 0.701445
-v -3.121682 0.930742 0.717445
-v -3.137682 0.930742 0.717445
-v -3.137682 0.946742 0.717445
-v -3.121682 0.946742 0.733445
-v -3.105682 0.946742 0.717445
-v -2.977571 0.946742 0.717445
-v -2.961571 0.930742 0.717445
-v -2.961571 0.930742 -0.709272
-v -2.977571 0.946742 -0.709272
-v -3.121682 0.946742 -0.693272
-v -3.105682 0.946742 -0.709272
-v -3.121682 0.946742 -0.725272
-v -3.137682 0.946742 -0.709272
-v -3.137682 0.930742 -0.709272
-v -3.121682 0.930742 -0.709272
-v -3.121682 0.930742 -0.693272
-v -3.121682 0.643829 -0.693272
-v -3.121682 0.659829 -0.693272
-v -3.121682 0.659829 -0.709272
-v -3.137682 0.659829 -0.709272
-v -3.137682 0.643829 -0.709272
-v -3.121682 0.643829 -0.725272
-v -3.105682 0.643829 -0.709272
-v -2.977571 0.643829 -0.709272
-v -2.961571 0.659829 -0.709272
-v -2.961571 0.764140 -0.955446
-v -2.977571 0.764140 -0.955446
-v -2.977571 0.780140 -0.955446
-v -2.977571 0.792399 -0.945164
-v -2.961571 0.792399 -0.945164
-v -2.961571 0.774319 -0.939446
-v -3.121682 0.764140 -0.955446
-v -3.121682 0.774319 -0.939446
-v -3.121682 0.792399 -0.945164
-v -3.105682 0.792399 -0.945164
-v -3.105682 0.780140 -0.955446
-v -3.105682 0.764140 -0.955446
-v -3.121682 0.934483 -0.826002
-v -3.121682 0.902766 -0.831720
-v -3.121682 0.930742 -0.815720
-v -3.137682 0.930742 -0.815720
-v -3.137682 0.946742 -0.815720
-v -3.121682 0.946742 -0.799720
-v -3.105682 0.946742 -0.815720
-v -3.105682 0.934483 -0.826002
-v -2.961571 0.934483 -0.826002
-v -2.977571 0.934483 -0.826002
-v -2.977571 0.946742 -0.815720
-v -2.977571 0.946742 -0.799720
-v -2.961571 0.946742 -0.799720
-v -2.961571 0.930742 -0.808256
-v -2.961571 0.764140 0.963619
-v -2.961571 0.774319 0.947619
-v -2.961571 0.792399 0.953338
-v -2.977571 0.792399 0.953338
-v -2.977571 0.780140 0.963619
-v -2.977571 0.764140 0.963619
-v -3.105682 0.780140 0.963619
-v -3.105682 0.792399 0.953338
-v -3.121682 0.792399 0.953338
-v -3.121682 0.774319 0.947619
-v -3.121682 0.764140 0.963619
-v -3.105682 0.764140 0.963619
-v -2.961571 0.934483 0.834174
-v -2.961571 0.930742 0.816430
-v -2.961571 0.946742 0.807893
-v -2.977571 0.946742 0.807893
-v -2.977571 0.946742 0.823893
-v -2.977571 0.934483 0.834174
-v -3.121682 0.934483 0.834174
-v -3.105682 0.934483 0.834174
-v -3.105682 0.946742 0.823893
-v -3.121682 0.946742 0.807893
-v -3.137682 0.946742 0.823893
-v -3.137682 0.930742 0.823893
-v -3.121682 0.930742 0.823893
-v -3.121682 0.902766 0.839893
-v -3.275987 0.643829 0.823893
-v -3.275987 0.659829 0.823893
-v -3.291987 0.659829 0.823893
-v -3.291987 0.627829 0.839893
-v -3.291987 0.643829 0.807893
-v -3.275987 0.643829 0.807893
-v -3.275987 0.643829 0.717445
-v -3.275987 0.643829 0.733445
-v -3.291987 0.643829 0.733445
-v -3.291987 0.627829 0.701445
-v -3.291987 0.659829 0.717445
-v -3.275987 0.659829 0.717445
-v -3.275987 0.946742 0.717445
-v -3.275987 0.930742 0.717445
-v -3.291987 0.930742 0.717445
-v -3.291987 0.962742 0.701445
-v -3.291987 0.946742 0.733445
-v -3.275987 0.946742 0.733445
-v -3.275987 0.946742 0.823893
-v -3.275987 0.946742 0.807893
-v -3.291987 0.946742 0.807893
-v -3.291987 0.962742 0.839893
-v -3.291987 0.930742 0.823893
-v -3.275987 0.930742 0.823893
-v -3.275987 0.643829 -0.709272
-v -3.275987 0.659829 -0.709272
-v -3.291987 0.659829 -0.709272
-v -3.291987 0.627829 -0.693272
-v -3.291987 0.643829 -0.725272
-v -3.275987 0.643829 -0.725272
-v -3.275987 0.643829 -0.815720
-v -3.275987 0.643829 -0.799720
-v -3.291987 0.643829 -0.799720
-v -3.291987 0.627829 -0.831720
-v -3.291987 0.659829 -0.815720
-v -3.275987 0.659829 -0.815720
-v -3.275987 0.946742 -0.815720
-v -3.275987 0.930742 -0.815720
-v -3.291987 0.930742 -0.815720
-v -3.291987 0.962742 -0.831720
-v -3.291987 0.946742 -0.799720
-v -3.275987 0.946742 -0.799720
-v -3.275987 0.946742 -0.709272
-v -3.275987 0.946742 -0.725272
-v -3.291987 0.946742 -0.725272
-v -3.291987 0.962742 -0.693272
-v -3.291987 0.930742 -0.709272
-v -3.275987 0.930742 -0.709272
-v -5.758358 -2.308667 -2.032186
-v -5.758358 -2.308667 -2.016186
-v -5.774358 -2.308667 -2.016186
-v -5.774358 -2.292667 -2.016186
-v -5.774358 -2.292667 -2.032186
-v -5.758358 -2.292667 -2.032186
-v -5.609860 -2.308667 -2.032186
-v -5.609860 -2.292667 -2.032186
-v -5.593860 -2.292667 -2.032186
-v -5.593860 -2.292667 -2.016186
-v -5.593860 -2.308667 -2.016186
-v -5.609860 -2.308667 -2.016186
-v -5.593860 -2.308667 -1.782932
-v -5.593860 -2.292667 -1.782932
-v -5.593860 -2.292667 -1.766932
-v -5.609860 -2.292667 -1.766932
-v -5.609860 -2.308667 -1.766932
-v -5.609860 -2.308667 -1.782932
-v -4.596445 0.457967 -0.642106
-v -4.580100 0.454630 -0.626106
-v -5.758358 -2.308667 -1.766932
-v -5.758358 -2.292667 -1.766932
-v -5.774358 -2.292667 -1.766932
-v -5.774358 -2.292667 -1.782932
-v -5.774358 -2.308667 -1.782932
-v -5.758358 -2.308667 -1.782932
-v -4.580100 0.441967 -0.376852
-v -4.580100 0.457967 -0.392852
-v -4.580100 0.473967 -0.376852
-v -4.580100 0.457967 -0.360852
-v -4.596100 0.457967 -0.360852
-v -4.596100 0.457967 -0.376852
-v -4.596100 0.441967 -0.376852
-v -4.760598 0.441967 -0.376852
-v -4.744598 0.441967 -0.376852
-v -4.744598 0.457967 -0.376852
-v -4.744598 0.457967 -0.360852
-v -4.760598 0.457967 -0.360852
-v -4.760598 0.473967 -0.376852
-v -4.760598 0.457967 -0.392852
-v -4.760598 0.454630 -0.626106
-v -4.744253 0.457967 -0.642106
-v -5.609860 -2.308667 2.040359
-v -5.609860 -2.308667 2.024359
-v -5.593860 -2.308667 2.024359
-v -5.593860 -2.292667 2.024359
-v -5.593860 -2.292667 2.040359
-v -5.609860 -2.292667 2.040359
-v -5.758358 -2.308667 2.040359
-v -5.758358 -2.292667 2.040359
-v -5.774358 -2.292667 2.040359
-v -5.774358 -2.292667 2.024359
-v -5.774358 -2.308667 2.024359
-v -5.758358 -2.308667 2.024359
-v -5.774358 -2.308667 1.791105
-v -5.774358 -2.292667 1.791105
-v -5.774358 -2.292667 1.775105
-v -5.758358 -2.292667 1.775105
-v -5.758358 -2.308667 1.775105
-v -5.758358 -2.308667 1.791105
-v -4.744253 0.457967 0.650279
-v -4.760598 0.454630 0.634279
-v -5.609860 -2.308667 1.775105
-v -5.609860 -2.292667 1.775105
-v -5.593860 -2.292667 1.775105
-v -5.593860 -2.292667 1.791105
-v -5.593860 -2.308667 1.791105
-v -5.609860 -2.308667 1.791105
-v -4.760598 0.441967 0.385025
-v -4.760598 0.457967 0.401025
-v -4.760598 0.473967 0.385025
-v -4.760598 0.457967 0.369025
-v -4.744598 0.457967 0.369025
-v -4.744598 0.457967 0.385025
-v -4.744598 0.441967 0.385025
-v -4.580100 0.441967 0.385025
-v -4.596100 0.441967 0.385025
-v -4.596100 0.457967 0.385025
-v -4.596100 0.457967 0.369025
-v -4.580100 0.457967 0.369025
-v -4.580100 0.473967 0.385025
-v -4.580100 0.457967 0.401025
-v -4.580100 0.454630 0.634279
-v -4.596445 0.457967 0.650279
-v -4.760598 0.649281 -0.558650
-v -4.760598 0.647946 -0.541776
-v -4.760598 0.663946 -0.536253
-v -4.744598 0.663946 -0.536253
-v -4.744598 0.663946 -0.552253
-v -4.744598 0.649281 -0.558650
-v -4.596100 0.663946 -0.552253
-v -4.596100 0.663946 -0.536253
-v -4.580100 0.663946 -0.536253
-v -4.580100 0.647946 -0.541776
-v -4.580100 0.649281 -0.558650
-v -4.596100 0.649281 -0.558650
-v -4.760598 0.663946 -0.392852
-v -4.760598 0.647946 -0.376852
-v -4.760598 0.663946 -0.358384
-v -4.760598 0.677809 -0.384842
-v -4.744598 0.677809 -0.384842
-v -4.744598 0.663946 -0.376852
-v -4.744598 0.663946 -0.392852
-v -4.580100 0.663946 -0.392852
-v -4.596100 0.663946 -0.392852
-v -4.596100 0.663946 -0.376852
-v -4.596100 0.677809 -0.384842
-v -4.580100 0.677809 -0.384842
-v -4.580100 0.663946 -0.358384
-v -4.580100 0.647946 -0.376852
-v -4.580100 0.649281 0.566823
-v -4.580100 0.647946 0.549950
-v -4.580100 0.663946 0.544426
-v -4.596100 0.663946 0.544426
-v -4.596100 0.663946 0.560426
-v -4.596100 0.649281 0.566823
-v -4.744598 0.663946 0.560426
-v -4.744598 0.663946 0.544426
-v -4.760598 0.663946 0.544426
-v -4.760598 0.647946 0.549950
-v -4.760598 0.649281 0.566823
-v -4.744598 0.649281 0.566823
-v -4.580100 0.663946 0.401025
-v -4.580100 0.647946 0.385025
-v -4.580100 0.663946 0.366558
-v -4.580100 0.677809 0.393015
-v -4.596100 0.677809 0.393015
-v -4.596100 0.663946 0.385025
-v -4.596100 0.663946 0.401025
-v -4.760598 0.663946 0.401025
-v -4.744598 0.663946 0.401025
-v -4.744598 0.663946 0.385025
-v -4.744598 0.677809 0.393015
-v -4.760598 0.677809 0.393015
-v -4.760598 0.663946 0.366558
-v -4.760598 0.647946 0.385025
-v -4.760598 0.457967 0.329714
-v -4.760598 0.473967 0.322894
-v -4.760598 0.471781 0.305639
-v -4.744598 0.471781 0.305639
-v -4.744598 0.457967 0.313714
-v -4.744598 0.457967 0.329714
-v -4.596100 0.457967 0.313714
-v -4.596100 0.471781 0.305639
-v -4.580100 0.471781 0.305639
-v -4.580100 0.473967 0.322894
-v -4.580100 0.457967 0.329714
-v -4.596100 0.457967 0.329714
-v -4.760598 0.650133 0.201390
-v -4.760598 0.663946 0.211848
-v -4.760598 0.697447 0.203802
-v -4.760598 0.652534 0.182102
-v -4.744598 0.652534 0.182102
-v -4.744598 0.663946 0.193315
-v -4.744598 0.650133 0.201390
-v -4.580100 0.650133 0.201390
-v -4.596100 0.650133 0.201390
-v -4.596100 0.663946 0.193315
-v -4.596100 0.652534 0.182102
-v -4.580100 0.652534 0.182102
-v -4.565961 0.659615 0.200541
-v -4.580100 0.665915 0.210698
-v -4.580100 0.457967 -0.321541
-v -4.580100 0.473967 -0.314722
-v -4.580100 0.471781 -0.297466
-v -4.596100 0.471781 -0.297466
-v -4.596100 0.457967 -0.305541
-v -4.596100 0.457967 -0.321541
-v -4.744598 0.457967 -0.305541
-v -4.744598 0.471781 -0.297466
-v -4.760598 0.471781 -0.297466
-v -4.760598 0.473967 -0.314722
-v -4.760598 0.457967 -0.321541
-v -4.744598 0.457967 -0.321541
-v -4.580100 0.650133 -0.193217
-v -4.580100 0.665915 -0.202524
-v -4.565961 0.659615 -0.192367
-v -4.580100 0.652534 -0.173928
-v -4.596100 0.652534 -0.173928
-v -4.596100 0.663946 -0.185142
-v -4.596100 0.650133 -0.193217
-v -4.760598 0.650133 -0.193217
-v -4.744598 0.650133 -0.193217
-v -4.744598 0.663946 -0.185142
-v -4.744598 0.652534 -0.173928
-v -4.760598 0.652534 -0.173928
-v -4.760598 0.697447 -0.195630
-v -4.760598 0.663946 -0.203675
-v -4.760598 0.721413 0.418148
-v -4.744598 0.721413 0.418148
-v -4.744598 0.735274 0.426138
-v -4.744598 0.740054 0.410869
-v -4.760598 0.740054 0.410869
-v -4.760598 0.725969 0.402307
-v -4.580100 0.721413 0.418148
-v -4.580100 0.725969 0.402307
-v -4.580100 0.740054 0.410869
-v -4.596100 0.740054 0.410869
-v -4.596100 0.735274 0.426138
-v -4.596100 0.721413 0.418148
-v -4.580100 0.790506 0.249698
-v -4.580100 0.775237 0.244918
-v -4.580100 0.780016 0.229649
-v -4.566199 0.779834 0.237893
-v -4.566363 0.795286 0.242631
-v -4.578826 0.811176 0.229808
-v -4.596100 0.795286 0.234429
-v -4.596100 0.790506 0.249698
-v -4.760598 0.790506 0.249698
-v -4.744598 0.790506 0.249698
-v -4.744598 0.795286 0.234429
-v -4.744598 0.810555 0.229649
-v -4.760598 0.810555 0.229649
-v -4.760598 0.782517 0.221660
-v -4.760598 0.721412 -0.409975
-v -4.760598 0.725969 -0.394134
-v -4.760598 0.740054 -0.402696
-v -4.744598 0.740054 -0.402696
-v -4.744598 0.735274 -0.417966
-v -4.744598 0.721412 -0.409975
-v -4.596100 0.735274 -0.417966
-v -4.596100 0.740054 -0.402696
-v -4.580100 0.740054 -0.402696
-v -4.580100 0.725969 -0.394134
-v -4.580100 0.721412 -0.409975
-v -4.596100 0.721412 -0.409975
-v -4.760598 0.790506 -0.241526
-v -4.760598 0.782517 -0.213487
-v -4.760598 0.810555 -0.221476
-v -4.744598 0.810555 -0.221476
-v -4.744598 0.795286 -0.226256
-v -4.744598 0.790506 -0.241526
-v -4.580100 0.790506 -0.241526
-v -4.596100 0.790506 -0.241526
-v -4.596100 0.795286 -0.226256
-v -4.578826 0.811176 -0.221635
-v -4.566363 0.795286 -0.234458
-v -4.566199 0.779834 -0.229720
-v -4.580100 0.780016 -0.221476
-v -4.580100 0.775237 -0.236746
-v -4.760598 0.969190 0.129058
-v -4.744404 0.982182 0.138723
-v -4.744401 1.011998 0.082145
-v -4.760598 0.996670 0.076912
-v -4.744355 1.025628 0.004086
-v -4.760598 1.009386 0.004086
-v -4.744401 1.011998 -0.073971
-v -4.760598 0.996670 -0.068739
-v -4.744404 0.982182 -0.130550
-v -4.760598 0.969190 -0.120886
-v -4.744139 0.926625 -0.185142
-v -4.760598 0.918163 -0.171026
-v -4.744404 0.608389 -0.130550
-v -4.760598 0.621382 -0.120886
-v -4.744401 0.578573 -0.073971
-v -4.760598 0.593902 -0.068739
-v -4.744355 0.564943 0.004086
-v -4.760598 0.581186 0.004086
-v -4.744401 0.578573 0.082145
-v -4.760598 0.593902 0.076912
-v -4.744404 0.608389 0.138723
-v -4.760598 0.621382 0.129058
-v -4.744139 0.926625 0.193315
-v -4.760598 0.918163 0.179198
-v -4.510172 0.795286 0.276185
-v -4.510336 0.779834 0.271250
-v -4.496435 0.780016 0.279608
-v -4.496435 0.795286 0.301154
-v -4.496435 0.810555 0.279608
-v -4.510336 0.810738 0.271250
-v -4.596100 0.926625 0.193315
-v -4.580100 0.911356 0.198095
-v -4.566311 0.931320 0.200079
-v -4.566197 0.988843 0.143678
-v -4.596294 0.982182 0.138723
-v -4.566194 1.019857 0.084826
-v -4.596297 1.011998 0.082145
-v -4.566155 1.033955 0.004086
-v -4.596343 1.025628 0.004086
-v -4.566194 1.019857 -0.076654
-v -4.596297 1.011998 -0.073971
-v -4.566197 0.988843 -0.135505
-v -4.596294 0.982182 -0.130550
-v -4.566311 0.931320 -0.191906
-v -4.580100 0.911356 -0.189922
-v -4.596100 0.926625 -0.185142
-v -4.510172 0.795286 -0.268012
-v -4.510336 0.810738 -0.263078
-v -4.496435 0.810555 -0.271435
-v -4.496435 0.795286 -0.292981
-v -4.496435 0.780016 -0.271435
-v -4.510336 0.779834 -0.263078
-v -4.566197 0.601729 -0.135505
-v -4.596294 0.608389 -0.130550
-v -4.566194 0.570715 -0.076654
-v -4.596297 0.578573 -0.073971
-v -4.566155 0.556617 0.004086
-v -4.596343 0.564943 0.004086
-v -4.566194 0.570715 0.084826
-v -4.596297 0.578573 0.082145
-v -4.566197 0.601729 0.143678
-v -4.596294 0.608389 0.138723
-v -4.496435 0.963574 0.248474
-v -4.510574 0.950780 0.227132
-v -4.510574 0.639791 0.227132
-v -4.496435 0.626998 0.248474
-v -4.510337 0.574513 0.162970
-v -4.496435 0.554860 0.177590
-v -4.510379 1.067260 0.004086
-v -4.496435 1.091830 0.004086
-v -4.496435 1.074330 -0.096134
-v -4.510342 1.051144 -0.088219
-v -4.510342 1.051144 0.096393
-v -4.496435 1.074330 0.104306
-v -4.510337 1.016058 0.162970
-v -4.496435 1.035711 0.177590
-v -4.496435 0.626998 -0.240301
-v -4.510574 0.639791 -0.218959
-v -4.510574 0.950780 -0.218959
-v -4.496435 0.963574 -0.240301
-v -4.510337 1.016058 -0.154798
-v -4.496435 1.035711 -0.169417
-v -4.510379 0.523311 0.004086
-v -4.496435 0.498742 0.004086
-v -4.496435 0.516242 0.104306
-v -4.510342 0.539427 0.096393
-v -4.510342 0.539427 -0.088219
-v -4.496435 0.516242 -0.096134
-v -4.510337 0.574513 -0.154798
-v -4.496435 0.554860 -0.169417
-v -3.126779 0.512178 0.226564
-v -3.138478 0.485047 0.231710
-v -3.138478 0.485047 -0.223537
-v -3.126779 0.512178 -0.218391
-v -3.126779 0.565494 -0.397576
-v -3.137842 0.557313 -0.408353
-v -3.136215 0.565235 -0.423846
-v -3.136991 0.582048 -0.424782
-v -3.126779 0.587354 -0.412465
-v -3.126779 0.582251 -0.396465
-v -3.126779 1.003218 -0.412465
-v -3.136991 1.008523 -0.424782
-v -3.136215 1.025336 -0.423846
-v -3.137842 1.033259 -0.408353
-v -3.126779 1.025077 -0.397576
-v -3.126779 1.008320 -0.396465
-v -3.282551 0.470351 -0.600346
-v -3.291987 0.457364 -0.594273
-v -3.300834 0.455386 -0.611727
-v -3.291987 0.480233 -0.627727
-v -3.291987 0.480233 -0.611727
-v -3.281775 0.488170 -0.599410
-v -3.138478 1.105524 -0.223537
-v -3.126779 1.078393 -0.218391
-v -3.282551 1.120221 -0.600346
-v -3.281775 1.102402 -0.599410
-v -3.291987 1.110339 -0.611727
-v -3.291987 1.110339 -0.627727
-v -3.300834 1.135186 -0.611727
-v -3.291987 1.133207 -0.594273
-v -3.138478 1.105524 0.231710
-v -3.126779 1.078393 0.226564
-v -3.126779 1.025077 0.405750
-v -3.137842 1.033259 0.416526
-v -3.136215 1.025336 0.432019
-v -3.136991 1.008523 0.432955
-v -3.126779 1.003218 0.420638
-v -3.126779 1.008320 0.404638
-v -3.126779 0.587354 0.420638
-v -3.136991 0.582048 0.432955
-v -3.136215 0.565235 0.432019
-v -3.137842 0.557313 0.416526
-v -3.126779 0.565494 0.405750
-v -3.126779 0.582251 0.404638
-v -3.282551 1.120221 0.608519
-v -3.291987 1.133207 0.602446
-v -3.300834 1.135186 0.619901
-v -3.291987 1.110339 0.635901
-v -3.291987 1.110339 0.619901
-v -3.281775 1.102402 0.607583
-v -3.282551 0.470351 0.608519
-v -3.281775 0.488170 0.607583
-v -3.291987 0.480233 0.619901
-v -3.291987 0.480233 0.635901
-v -3.300834 0.455386 0.619901
-v -3.291987 0.457364 0.602446
-v -3.704692 1.577863 -0.192715
-v -3.704692 1.561863 -0.208715
-v -3.962898 1.561863 -0.208715
-v -3.962898 1.577863 -0.192715
-v -3.704692 1.561863 0.216889
-v -3.704692 1.577863 0.200889
-v -3.962898 1.577863 0.200889
-v -3.962898 1.561863 0.216889
-v -3.720692 1.336210 0.216889
-v -3.720692 1.336210 0.200889
-v -3.704692 1.336210 0.200889
-v -3.704692 1.320210 0.200889
-v -3.704692 1.320210 0.216889
-v -3.688692 1.336210 0.216889
-v -3.704692 1.352210 0.216889
-v -3.946898 1.336210 0.216889
-v -3.962898 1.352210 0.216889
-v -3.978898 1.336210 0.216889
-v -3.962898 1.320210 0.216889
-v -3.962898 1.320210 0.200889
-v -3.962898 1.336210 0.200889
-v -3.946898 1.336210 0.200889
-v -3.720692 1.336210 -0.208715
-v -3.704692 1.352210 -0.208715
-v -3.688692 1.336210 -0.208715
-v -3.704692 1.320210 -0.208715
-v -3.704692 1.320210 -0.192715
-v -3.704692 1.336210 -0.192715
-v -3.720692 1.336210 -0.192715
-v -3.946898 1.336210 -0.208715
-v -3.946898 1.336210 -0.192715
-v -3.962898 1.336210 -0.192715
-v -3.962898 1.320210 -0.192715
-v -3.962898 1.320210 -0.208715
-v -3.978898 1.336210 -0.208715
-v -3.962898 1.352210 -0.208715
-v -3.426157 1.577863 0.216889
-v -3.426157 1.561863 0.216889
-v -3.410157 1.561863 0.216889
-v -3.410157 1.561863 0.200889
-v -3.410157 1.577863 0.200889
-v -3.426157 1.577863 0.200889
-v -3.410157 1.577863 -0.192715
-v -3.410157 1.561863 -0.192715
-v -3.410157 1.561863 -0.208715
-v -3.426157 1.561863 -0.208715
-v -3.426157 1.577863 -0.208715
-v -3.426157 1.577863 -0.192715
-v -3.426157 1.336210 0.216889
-v -3.410157 1.336210 0.200889
-v -3.410157 1.336210 -0.192715
-v -3.426157 1.336210 -0.208715
-v -4.340398 1.577863 0.216889
-v -4.340398 1.577863 0.200889
-v -4.356398 1.577863 0.200889
-v -4.356398 1.561863 0.200889
-v -4.356398 1.561863 0.216889
-v -4.340398 1.561863 0.216889
-v -4.340398 1.577863 -0.208715
-v -4.340398 1.561863 -0.208715
-v -4.356398 1.561863 -0.208715
-v -4.356398 1.561863 -0.192715
-v -4.356398 1.577863 -0.192715
-v -4.340398 1.577863 -0.192715
-v -4.340398 1.336210 -0.208715
-v -4.356398 1.336210 -0.192715
-v -4.356398 1.336210 0.200889
-v -4.340398 1.336210 0.216889
-v -3.410157 1.288929 -0.208715
-v -3.410157 1.288929 -0.192715
-v -3.410157 1.272929 -0.192715
-v -3.394157 1.272929 -0.224715
-v -3.426157 1.272929 -0.208715
-v -3.426157 1.288929 -0.208715
-v -3.704692 1.288929 -0.208715
-v -3.688692 1.288929 -0.208715
-v -3.688692 1.272929 -0.208715
-v -3.720692 1.272929 -0.224715
-v -3.704692 1.272929 -0.192715
-v -3.704692 1.288929 -0.192715
-v -3.704692 1.288929 0.216889
-v -3.704692 1.288929 0.200889
-v -3.704692 1.272929 0.200889
-v -3.720692 1.272929 0.232889
-v -3.688692 1.272929 0.216889
-v -3.688692 1.288929 0.216889
-v -3.410157 1.288929 0.216889
-v -3.426157 1.288929 0.216889
-v -3.426157 1.272929 0.216889
-v -3.394157 1.272929 0.232889
-v -3.410157 1.272929 0.200889
-v -3.410157 1.288929 0.200889
-v -3.962898 1.288929 -0.208715
-v -3.962898 1.288929 -0.192715
-v -3.962898 1.272929 -0.192715
-v -3.946898 1.272929 -0.224715
-v -3.978898 1.272929 -0.208715
-v -3.978898 1.288929 -0.208715
-v -4.356398 1.288929 -0.208715
-v -4.340398 1.288929 -0.208715
-v -4.340398 1.272929 -0.208715
-v -4.372398 1.272929 -0.224715
-v -4.356398 1.272929 -0.192715
-v -4.356398 1.288929 -0.192715
-v -4.356398 1.288929 0.216889
-v -4.356398 1.288929 0.200889
-v -4.356398 1.272929 0.200889
-v -4.372398 1.272929 0.232889
-v -4.340398 1.272929 0.216889
-v -4.340398 1.288929 0.216889
-v -3.962898 1.288929 0.216889
-v -3.978898 1.288929 0.216889
-v -3.978898 1.272929 0.216889
-v -3.946898 1.272929 0.232889
-v -3.962898 1.272929 0.200889
-v -3.962898 1.288929 0.200889
-v -4.311192 1.152882 -0.913264
-v -4.322404 1.141323 -0.913264
-v -4.336040 1.144035 -0.913264
-v -4.336040 1.144035 -0.900752
-v -4.327192 1.152882 -0.897264
-v -4.311192 1.152882 -0.897264
-v -3.865405 1.152882 -0.913264
-v -3.865405 1.152882 -0.897264
-v -3.849405 1.152882 -0.897264
-v -3.840558 1.144035 -0.900752
-v -3.840558 1.144035 -0.913264
-v -3.854193 1.141323 -0.913264
-v -4.353735 0.480233 -0.913264
-v -4.342176 0.469021 -0.913264
-v -4.344889 0.455386 -0.913264
-v -4.344889 0.455386 -0.900753
-v -4.353735 0.464233 -0.897264
-v -4.353735 0.480233 -0.897264
-v -4.353735 1.110339 -0.913264
-v -4.353735 1.110339 -0.897264
-v -4.353735 1.126339 -0.897264
-v -4.344889 1.135186 -0.900752
-v -4.344889 1.135186 -0.913264
-v -4.342176 1.121551 -0.913264
-v -3.891949 1.126339 -0.913264
-v -3.871161 1.137898 -0.913264
-v -3.867102 1.117492 -0.913264
-v -3.867102 1.117492 -0.925775
-v -3.875949 1.126339 -0.929264
-v -3.891949 1.126339 -0.929264
-v -4.284648 1.126339 -0.913264
-v -4.284648 1.126339 -0.929264
-v -4.300648 1.126339 -0.929264
-v -4.309495 1.117492 -0.925775
-v -4.309495 1.117492 -0.913264
-v -4.305436 1.137898 -0.913264
-v -3.849405 0.506776 -0.913264
-v -3.837846 0.485988 -0.913264
-v -3.858252 0.481930 -0.913264
-v -3.858252 0.481930 -0.925775
-v -3.849405 0.490776 -0.929264
-v -3.849405 0.506776 -0.929264
-v -3.849405 1.083795 -0.913264
-v -3.849405 1.083795 -0.929264
-v -3.849405 1.099795 -0.929264
-v -3.858252 1.108642 -0.925775
-v -3.858252 1.108642 -0.913264
-v -3.837846 1.104583 -0.913264
-v -3.891949 1.126339 -1.425026
-v -3.891949 1.126339 -1.409027
-v -3.875949 1.126339 -1.409027
-v -3.867102 1.117492 -1.412515
-v -3.867102 1.117492 -1.425026
-v -3.882576 1.110339 -1.425026
-v -4.284648 1.126339 -1.425026
-v -4.294021 1.110339 -1.425026
-v -4.309495 1.117492 -1.425026
-v -4.309495 1.117492 -1.412515
-v -4.300648 1.126339 -1.409027
-v -4.284648 1.126339 -1.409027
-v -3.849405 0.506776 -1.425026
-v -3.849405 0.506776 -1.409027
-v -3.849405 0.490776 -1.409027
-v -3.858252 0.481930 -1.412515
-v -3.858252 0.481930 -1.425026
-v -3.865405 0.497404 -1.425026
-v -3.849405 1.083795 -1.425026
-v -3.865405 1.093168 -1.425026
-v -3.858252 1.108642 -1.425026
-v -3.858252 1.108642 -1.412515
-v -3.849405 1.099795 -1.409027
-v -3.849405 1.083795 -1.409027
-v -3.918662 0.576034 -1.425026
-v -3.902662 0.553406 -1.425026
-v -3.927510 0.551186 -1.425026
-v -3.932930 0.556606 -1.435129
-v -3.925348 0.567023 -1.437772
-v -3.926095 0.585591 -1.439195
-v -3.918662 1.014538 -1.425026
-v -3.926095 1.004980 -1.439195
-v -3.925348 1.023548 -1.437772
-v -3.932930 1.033965 -1.435129
-v -3.927510 1.039385 -1.425026
-v -3.902662 1.037165 -1.425026
-v -3.961206 1.057082 -1.425026
-v -3.938579 1.073082 -1.425026
-v -3.936359 1.048234 -1.425026
-v -3.941779 1.042814 -1.435129
-v -3.952196 1.050395 -1.437772
-v -3.970764 1.049649 -1.439195
-v -4.215391 1.057082 -1.425026
-v -4.205833 1.049649 -1.439195
-v -4.224401 1.050395 -1.437772
-v -4.234818 1.042814 -1.435129
-v -4.240238 1.048234 -1.425026
-v -4.238019 1.073082 -1.425026
-v -4.023860 0.997151 -1.539271
-v -4.017877 1.004584 -1.525102
-v -4.000871 1.003838 -1.526526
-v -3.992491 0.993266 -1.528569
-v -3.998106 0.987397 -1.539271
-v -4.014488 0.981151 -1.539271
-v -4.152737 0.997151 -1.539271
-v -4.162109 0.981151 -1.539271
-v -4.178491 0.987397 -1.539271
-v -4.184106 0.993266 -1.528569
-v -4.175726 1.003838 -1.526526
-v -4.158720 1.004584 -1.525102
-v -3.978593 0.638688 -1.539271
-v -3.971160 0.632705 -1.525102
-v -3.971906 0.615698 -1.526526
-v -3.982478 0.607319 -1.528569
-v -3.988347 0.612933 -1.539271
-v -3.994593 0.629315 -1.539271
-v -3.978593 0.951883 -1.539271
-v -3.994593 0.961256 -1.539271
-v -3.988347 0.977638 -1.539271
-v -3.982478 0.983253 -1.528569
-v -3.971906 0.974874 -1.526526
-v -3.971160 0.957867 -1.525102
-v -3.831708 1.135186 -0.913264
-v -3.831708 1.135186 -0.900752
-v -3.822861 1.126339 -0.897264
-v -3.814014 1.135186 -0.900753
-v -3.814014 1.135186 -0.913264
-v -3.814014 1.117492 -0.913264
-v -3.831708 1.117492 -0.913264
-v -3.840558 1.144035 -0.611727
-v -3.840558 1.144035 -0.624239
-v -3.849405 1.152882 -0.627727
-v -3.865405 1.152882 -0.611727
-v -3.849405 1.159142 -0.597002
-v -3.833405 1.152882 -0.611727
-v -3.836894 1.147700 -0.611727
-v -3.831708 1.135186 -0.611727
-v -3.822861 1.135186 -0.611727
-v -3.814014 1.135186 -0.611727
-v -3.814014 1.135186 -0.624239
-v -3.822861 1.126339 -0.627727
-v -3.831708 1.135186 -0.624239
-v -4.344889 1.135186 -0.611727
-v -4.344889 1.135186 -0.624239
-v -4.353735 1.126339 -0.627727
-v -4.354403 1.109918 -0.608927
-v -4.360543 1.131641 -0.598254
-v -4.350720 1.140009 -0.601572
-v -4.336040 1.144035 -0.611727
-v -4.340906 1.147896 -0.600691
-v -4.333938 1.158558 -0.598375
-v -4.310895 1.153617 -0.608124
-v -4.327192 1.152882 -0.627727
-v -4.336040 1.144035 -0.624239
-v -4.318345 1.108642 -0.913264
-v -4.318345 1.108642 -0.925775
-v -4.327192 1.099795 -0.929264
-v -4.327192 1.083795 -0.929264
-v -4.327192 1.083795 -0.913264
-v -4.338751 1.104583 -0.913264
-v -4.318345 1.108642 -1.425026
-v -4.311192 1.093168 -1.425026
-v -4.327192 1.083795 -1.425026
-v -4.327192 1.083795 -1.409027
-v -4.327192 1.099795 -1.409027
-v -4.318345 1.108642 -1.412515
-v -4.249087 1.039385 -1.425026
-v -4.243668 1.033965 -1.435129
-v -4.251249 1.023548 -1.437772
-v -4.250502 1.004980 -1.439195
-v -4.257935 1.014538 -1.425026
-v -4.273935 1.037165 -1.425026
-v -4.188250 0.977638 -1.539271
-v -4.182004 0.961256 -1.539271
-v -4.198004 0.951883 -1.539271
-v -4.205437 0.957867 -1.525102
-v -4.204690 0.974874 -1.526526
-v -4.194118 0.983253 -1.528569
-v -3.469997 1.003838 -1.526526
-v -3.461618 0.993266 -1.528569
-v -3.467232 0.987397 -1.539271
-v -3.483614 0.981151 -1.539271
-v -3.492986 0.997151 -1.539271
-v -3.487003 1.004584 -1.525102
-v -3.421322 1.050395 -1.437772
-v -3.439890 1.049649 -1.439195
-v -3.430332 1.057082 -1.425026
-v -3.407705 1.073082 -1.425026
-v -3.405485 1.048234 -1.425026
-v -3.410905 1.042814 -1.435129
-v -3.394475 1.023548 -1.437772
-v -3.402056 1.033965 -1.435129
-v -3.396635 1.039385 -1.425026
-v -3.371789 1.037165 -1.425026
-v -3.387789 1.014538 -1.425026
-v -3.395221 1.004980 -1.439195
-v -3.441033 0.974874 -1.526526
-v -3.440285 0.957867 -1.525102
-v -3.447718 0.951883 -1.539271
-v -3.463718 0.961256 -1.539271
-v -3.457474 0.977638 -1.539271
-v -3.451604 0.983253 -1.528569
-v -3.345074 1.126339 -1.409027
-v -3.336228 1.117492 -1.412515
-v -3.336228 1.117492 -1.425026
-v -3.351702 1.110339 -1.425026
-v -3.361074 1.126339 -1.425026
-v -3.361074 1.126339 -1.409027
-v -3.345074 1.126339 -0.929264
-v -3.361074 1.126339 -0.929264
-v -3.361074 1.126339 -0.913264
-v -3.340286 1.137898 -0.913264
-v -3.336228 1.117492 -0.913264
-v -3.336228 1.117492 -0.925776
-v -3.318531 1.099795 -0.929264
-v -3.327378 1.108642 -0.925776
-v -3.327378 1.108642 -0.913264
-v -3.306972 1.104583 -0.913264
-v -3.318531 1.083795 -0.913264
-v -3.318531 1.083795 -0.929264
-v -3.318531 1.099795 -1.409027
-v -3.318531 1.083795 -1.409027
-v -3.318531 1.083795 -1.425026
-v -3.334531 1.093168 -1.425026
-v -3.327378 1.108642 -1.425026
-v -3.327378 1.108642 -1.412515
-v -3.318531 1.152882 -0.897264
-v -3.309684 1.144035 -0.900753
-v -3.309684 1.144035 -0.913264
-v -3.323319 1.141323 -0.913264
-v -3.334531 1.152882 -0.913264
-v -3.334531 1.152882 -0.897264
-v -3.334859 1.152882 -0.611727
-v -3.309943 1.143966 -0.609911
-v -3.291987 1.126339 -0.897264
-v -3.291987 1.110339 -0.897264
-v -3.303547 1.121551 -0.913264
-v -3.300834 1.135186 -0.913264
-v -3.300834 1.135186 -0.900753
-v -3.673816 0.974874 -1.526526
-v -3.663245 0.983253 -1.528569
-v -3.657375 0.977638 -1.539271
-v -3.651130 0.961256 -1.539271
-v -3.667130 0.951883 -1.539271
-v -3.674563 0.957867 -1.525102
-v -3.720374 1.023548 -1.437772
-v -3.719628 1.004980 -1.439195
-v -3.727060 1.014538 -1.425026
-v -3.743060 1.037165 -1.425026
-v -3.718214 1.039385 -1.425026
-v -3.712794 1.033965 -1.435129
-v -3.693527 1.050395 -1.437772
-v -3.703944 1.042814 -1.435129
-v -3.709363 1.048234 -1.425026
-v -3.707144 1.073082 -1.425026
-v -3.684517 1.057082 -1.425026
-v -3.674959 1.049649 -1.439195
-v -3.644852 1.003838 -1.526526
-v -3.627846 1.004584 -1.525102
-v -3.621862 0.997151 -1.539271
-v -3.631235 0.981151 -1.539271
-v -3.647618 0.987397 -1.539271
-v -3.653231 0.993266 -1.528569
-v -3.796318 1.099795 -1.409027
-v -3.787470 1.108642 -1.412515
-v -3.787470 1.108642 -1.425026
-v -3.780318 1.093168 -1.425026
-v -3.796318 1.083795 -1.425026
-v -3.796318 1.083795 -1.409027
-v -3.796318 1.099795 -0.929264
-v -3.796318 1.083795 -0.929264
-v -3.796318 1.083795 -0.913264
-v -3.807877 1.104583 -0.913264
-v -3.787470 1.108642 -0.913264
-v -3.787470 1.108642 -0.925776
-v -3.769773 1.126339 -0.929264
-v -3.778621 1.117492 -0.925776
-v -3.778621 1.117492 -0.913264
-v -3.774562 1.137898 -0.913264
-v -3.753773 1.126339 -0.913264
-v -3.753773 1.126339 -0.929264
-v -3.769773 1.126339 -1.409027
-v -3.753773 1.126339 -1.409027
-v -3.753773 1.126339 -1.425026
-v -3.763146 1.110339 -1.425026
-v -3.778621 1.117492 -1.425026
-v -3.778621 1.117492 -1.412515
-v -3.796318 1.152882 -0.627727
-v -3.805165 1.144035 -0.624239
-v -3.805165 1.144035 -0.611727
-v -3.808830 1.147700 -0.611727
-v -3.812318 1.152882 -0.611727
-v -3.796318 1.159142 -0.597002
-v -3.780318 1.152882 -0.611727
-v -3.796318 1.152882 -0.897264
-v -3.780318 1.152882 -0.897264
-v -3.780318 1.152882 -0.913264
-v -3.791529 1.141323 -0.913264
-v -3.805165 1.144035 -0.913264
-v -3.805165 1.144035 -0.900753
-v -3.667130 0.638688 -1.539271
-v -3.651130 0.629315 -1.539271
-v -3.657375 0.612933 -1.539271
-v -3.663245 0.607319 -1.528569
-v -3.673816 0.615698 -1.526526
-v -3.674563 0.632705 -1.525102
-v -3.447718 0.638688 -1.539271
-v -3.440285 0.632705 -1.525102
-v -3.441033 0.615698 -1.526526
-v -3.451604 0.607319 -1.528569
-v -3.457474 0.612933 -1.539271
-v -3.463718 0.629315 -1.539271
-v -3.727060 0.576034 -1.425026
-v -3.719628 0.585591 -1.439195
-v -3.720374 0.567023 -1.437772
-v -3.712794 0.556606 -1.435129
-v -3.718214 0.551186 -1.425026
-v -3.743060 0.553406 -1.425026
-v -3.796318 0.506776 -1.425026
-v -3.780318 0.497404 -1.425026
-v -3.787470 0.481930 -1.425026
-v -3.787470 0.481930 -1.412515
-v -3.796318 0.490776 -1.409027
-v -3.796318 0.506776 -1.409027
-v -3.796318 0.506776 -0.913264
-v -3.796318 0.506776 -0.929264
-v -3.796318 0.490776 -0.929264
-v -3.787470 0.481930 -0.925776
-v -3.787470 0.481930 -0.913264
-v -3.807877 0.485988 -0.913264
-v -3.334531 0.437689 -0.913264
-v -3.323319 0.449248 -0.913264
-v -3.309684 0.446536 -0.913264
-v -3.309684 0.446536 -0.900753
-v -3.318531 0.437689 -0.897264
-v -3.334531 0.437689 -0.897264
-v -3.780318 0.437689 -0.913264
-v -3.780318 0.437689 -0.897264
-v -3.796318 0.437689 -0.897264
-v -3.805165 0.446536 -0.900753
-v -3.805165 0.446536 -0.913264
-v -3.791529 0.449248 -0.913264
-v -3.291987 0.480233 -0.897264
-v -3.291987 0.464233 -0.897264
-v -3.300834 0.455386 -0.900753
-v -3.300834 0.455386 -0.913264
-v -3.303547 0.469021 -0.913264
-v -3.318531 0.506776 -0.913264
-v -3.306972 0.485988 -0.913264
-v -3.327378 0.481930 -0.913264
-v -3.327378 0.481930 -0.925776
-v -3.318531 0.490776 -0.929264
-v -3.318531 0.506776 -0.929264
-v -3.753773 0.464233 -0.913264
-v -3.774562 0.452674 -0.913264
-v -3.778621 0.473080 -0.913264
-v -3.778621 0.473080 -0.925776
-v -3.769773 0.464233 -0.929264
-v -3.753773 0.464233 -0.929264
-v -3.361074 0.464233 -0.913264
-v -3.361074 0.464233 -0.929264
-v -3.345074 0.464233 -0.929264
-v -3.336228 0.473080 -0.925776
-v -3.336228 0.473080 -0.913264
-v -3.340286 0.452674 -0.913264
-v -3.753773 0.464233 -1.425026
-v -3.753773 0.464233 -1.409027
-v -3.769773 0.464233 -1.409027
-v -3.778621 0.473080 -1.412515
-v -3.778621 0.473080 -1.425026
-v -3.763146 0.480233 -1.425026
-v -3.361074 0.464233 -1.425026
-v -3.351702 0.480233 -1.425026
-v -3.336228 0.473080 -1.425026
-v -3.336228 0.473080 -1.412515
-v -3.345074 0.464233 -1.409027
-v -3.361074 0.464233 -1.409027
-v -3.318531 0.506776 -1.425026
-v -3.318531 0.506776 -1.409027
-v -3.318531 0.490776 -1.409027
-v -3.327378 0.481930 -1.412515
-v -3.327378 0.481930 -1.425026
-v -3.334531 0.497404 -1.425026
-v -3.387789 0.576034 -1.425026
-v -3.371789 0.553406 -1.425026
-v -3.396635 0.551186 -1.425026
-v -3.402056 0.556606 -1.435129
-v -3.394475 0.567023 -1.437772
-v -3.395221 0.585591 -1.439195
-v -3.684517 0.533490 -1.425026
-v -3.707144 0.517490 -1.425026
-v -3.709363 0.542337 -1.425026
-v -3.703944 0.547757 -1.435129
-v -3.693527 0.540176 -1.437772
-v -3.674959 0.540922 -1.439195
-v -3.430332 0.533490 -1.425026
-v -3.439890 0.540922 -1.439195
-v -3.421322 0.540176 -1.437772
-v -3.410905 0.547757 -1.435129
-v -3.405485 0.542337 -1.425026
-v -3.407705 0.517490 -1.425026
-v -3.621862 0.593420 -1.539271
-v -3.627846 0.585987 -1.525102
-v -3.644852 0.586734 -1.526526
-v -3.653231 0.597306 -1.528569
-v -3.647618 0.603175 -1.539271
-v -3.631235 0.609420 -1.539271
-v -3.492986 0.593420 -1.539271
-v -3.483614 0.609420 -1.539271
-v -3.467232 0.603175 -1.539271
-v -3.461618 0.597306 -1.528569
-v -3.469997 0.586734 -1.526526
-v -3.487003 0.585987 -1.525102
-v -3.814014 0.455386 -0.913264
-v -3.814014 0.455386 -0.900753
-v -3.822861 0.464233 -0.897264
-v -3.831708 0.455386 -0.900753
-v -3.831708 0.455386 -0.913264
-v -3.831708 0.473080 -0.913264
-v -3.814014 0.473080 -0.913264
-v -3.805165 0.446536 -0.611727
-v -3.805165 0.446536 -0.624239
-v -3.796318 0.437689 -0.627727
-v -3.780318 0.437689 -0.611727
-v -3.796318 0.431430 -0.597002
-v -3.812318 0.437689 -0.611727
-v -3.808830 0.442871 -0.611727
-v -3.814014 0.455386 -0.611727
-v -3.822861 0.455386 -0.611727
-v -3.831708 0.455386 -0.611727
-v -3.831708 0.455386 -0.624239
-v -3.822861 0.464233 -0.627727
-v -3.814014 0.455386 -0.624239
-v -3.309943 0.446605 -0.609911
-v -3.334859 0.437689 -0.611727
-v -4.175726 0.586734 -1.526526
-v -4.184106 0.597306 -1.528569
-v -4.178491 0.603175 -1.539271
-v -4.162109 0.609420 -1.539271
-v -4.152737 0.593420 -1.539271
-v -4.158720 0.585987 -1.525102
-v -4.224401 0.540176 -1.437772
-v -4.205833 0.540922 -1.439195
-v -4.215391 0.533490 -1.425026
-v -4.238019 0.517490 -1.425026
-v -4.240238 0.542337 -1.425026
-v -4.234818 0.547757 -1.435129
-v -4.251249 0.567023 -1.437772
-v -4.243668 0.556606 -1.435129
-v -4.249087 0.551186 -1.425026
-v -4.273935 0.553406 -1.425026
-v -4.257935 0.576034 -1.425026
-v -4.250502 0.585591 -1.439195
-v -4.204690 0.615698 -1.526526
-v -4.205437 0.632705 -1.525102
-v -4.198004 0.638688 -1.539271
-v -4.182004 0.629315 -1.539271
-v -4.188250 0.612933 -1.539271
-v -4.194118 0.607319 -1.528569
-v -4.300648 0.464233 -1.409027
-v -4.309495 0.473080 -1.412515
-v -4.309495 0.473080 -1.425026
-v -4.294021 0.480233 -1.425026
-v -4.284648 0.464233 -1.425026
-v -4.284648 0.464233 -1.409027
-v -4.300648 0.464233 -0.929264
-v -4.284648 0.464233 -0.929264
-v -4.284648 0.464233 -0.913264
-v -4.305436 0.452674 -0.913264
-v -4.309495 0.473080 -0.913264
-v -4.309495 0.473080 -0.925775
-v -4.327192 0.490776 -0.929264
-v -4.318345 0.481930 -0.925775
-v -4.318345 0.481930 -0.913264
-v -4.338751 0.485988 -0.913264
-v -4.327192 0.506776 -0.913264
-v -4.327192 0.506776 -0.929264
-v -4.327192 0.490776 -1.409027
-v -4.327192 0.506776 -1.409027
-v -4.327192 0.506776 -1.425026
-v -4.311192 0.497404 -1.425026
-v -4.318345 0.481930 -1.425026
-v -4.318345 0.481930 -1.412515
-v -4.327192 0.437689 -0.897264
-v -4.336040 0.446536 -0.900753
-v -4.336040 0.446536 -0.913264
-v -4.322404 0.449248 -0.913264
-v -4.311192 0.437689 -0.913264
-v -4.311192 0.437689 -0.897264
-v -4.327192 0.437689 -0.627727
-v -4.310895 0.436955 -0.608124
-v -4.333938 0.432014 -0.598375
-v -4.340906 0.442676 -0.600691
-v -4.336040 0.446536 -0.611727
-v -4.336040 0.446536 -0.624239
-v -4.353735 0.464233 -0.627727
-v -4.344889 0.455386 -0.624239
-v -4.344889 0.455386 -0.611727
-v -4.350720 0.450562 -0.601572
-v -4.360543 0.458930 -0.598254
-v -4.354403 0.480654 -0.608927
-v -3.952196 0.540176 -1.437772
-v -3.941779 0.547757 -1.435129
-v -3.936359 0.542337 -1.425026
-v -3.938579 0.517490 -1.425026
-v -3.961206 0.533490 -1.425026
-v -3.970764 0.540922 -1.439195
-v -4.000871 0.586734 -1.526526
-v -4.017877 0.585987 -1.525102
-v -4.023860 0.593420 -1.539271
-v -4.014488 0.609420 -1.539271
-v -3.998106 0.603175 -1.539271
-v -3.992491 0.597306 -1.528569
-v -3.875949 0.464233 -0.929264
-v -3.867102 0.473080 -0.925775
-v -3.867102 0.473080 -0.913264
-v -3.871161 0.452674 -0.913264
-v -3.891949 0.464233 -0.913264
-v -3.891949 0.464233 -0.929264
-v -3.875949 0.464233 -1.409027
-v -3.891949 0.464233 -1.409027
-v -3.891949 0.464233 -1.425026
-v -3.882576 0.480233 -1.425026
-v -3.867102 0.473080 -1.425026
-v -3.867102 0.473080 -1.412515
-v -3.849405 0.437689 -0.627727
-v -3.840558 0.446536 -0.624239
-v -3.840558 0.446536 -0.611727
-v -3.836894 0.442871 -0.611727
-v -3.833405 0.437689 -0.611727
-v -3.849405 0.431430 -0.597002
-v -3.865405 0.437689 -0.611727
-v -3.849405 0.437689 -0.897264
-v -3.865405 0.437689 -0.897264
-v -3.865405 0.437689 -0.913264
-v -3.854193 0.449248 -0.913264
-v -3.840558 0.446536 -0.913264
-v -3.840558 0.446536 -0.900753
-v -4.463145 0.323318 -0.342654
-v -4.453595 0.316908 -0.325698
-v -4.469892 0.317642 -0.313302
-v -4.478738 0.329459 -0.314541
-v -4.478738 0.329459 -0.329302
-v -4.473057 0.333877 -0.341848
-v -3.309188 0.328842 -0.327021
-v -3.334859 0.317642 -0.329302
-v -3.334531 1.272929 -0.329302
-v -3.334531 1.272929 -0.308245
-v -3.309188 1.261730 -0.327021
-v -4.463145 1.267254 -0.342654
-v -4.473057 1.256694 -0.341848
-v -4.478738 1.261112 -0.329302
-v -4.478738 1.261112 -0.314541
-v -4.469892 1.272929 -0.313302
-v -4.453891 1.272929 -0.312302
-v -4.452246 1.272929 -0.329302
-v -4.489626 1.232173 -0.342776
-v -4.496435 1.220517 -0.329302
-v -4.496435 1.221474 -0.316670
-v -4.496435 1.237474 -0.313302
-v -4.487587 1.249291 -0.314541
-v -4.487587 1.249291 -0.329302
-v -4.481030 1.243796 -0.340979
-v -4.489626 0.358399 -0.342776
-v -4.481030 0.346775 -0.340979
-v -4.487587 0.341280 -0.329302
-v -4.487587 0.341280 -0.314541
-v -4.496435 0.353097 -0.313302
-v -4.496435 0.369097 -0.316670
-v -4.496435 0.370055 -0.329302
-v -3.334531 1.272929 0.316418
-v -3.334531 1.272929 0.337475
-v -3.309188 1.261730 0.335194
-v -3.309188 0.328842 0.335194
-v -3.334859 0.317642 0.337475
-v -4.469892 0.317642 0.321475
-v -4.453595 0.316908 0.333872
-v -4.463145 0.323318 0.350827
-v -4.473057 0.333877 0.350021
-v -4.478738 0.329459 0.337475
-v -4.478738 0.329459 0.322714
-v -4.496435 0.353097 0.321475
-v -4.487587 0.341280 0.322714
-v -4.487587 0.341280 0.337475
-v -4.481030 0.346775 0.349152
-v -4.489626 0.358399 0.350950
-v -4.496435 0.370055 0.337475
-v -4.496435 0.369097 0.324843
-v -4.496435 1.237474 0.321475
-v -4.496435 1.221474 0.324843
-v -4.496435 1.220517 0.337475
-v -4.489626 1.232173 0.350950
-v -4.481030 1.243796 0.349152
-v -4.487587 1.249291 0.337475
-v -4.487587 1.249291 0.322714
-v -4.469892 1.272929 0.321475
-v -4.478738 1.261112 0.322714
-v -4.478738 1.261112 0.337475
-v -4.473057 1.256694 0.350022
-v -4.463145 1.267254 0.350827
-v -4.452246 1.272929 0.337475
-v -4.453891 1.272929 0.320475
-v -4.360543 0.458930 0.606426
-v -4.350720 0.450562 0.609746
-v -4.344889 0.455386 0.619901
-v -4.344889 0.455386 0.632412
-v -4.353735 0.464233 0.635901
-v -4.354403 0.480654 0.617101
-v -4.360543 1.131641 0.606426
-v -4.354403 1.109918 0.617101
-v -4.353735 1.126339 0.635901
-v -4.344889 1.135186 0.632412
-v -4.344889 1.135186 0.619901
-v -4.350720 1.140009 0.609746
-v -4.333938 1.158558 0.606549
-v -4.340906 1.147896 0.608864
-v -4.336040 1.144035 0.619901
-v -4.336040 1.144035 0.632412
-v -4.327192 1.152882 0.635901
-v -4.310895 1.153617 0.616297
-v -3.334859 1.152882 0.619901
-v -3.309943 1.143966 0.618084
-v -3.309943 0.446605 0.618084
-v -3.334859 0.437689 0.619901
-v -4.333938 0.432014 0.606549
-v -4.310895 0.436955 0.616297
-v -4.327192 0.437689 0.635901
-v -4.336040 0.446536 0.632412
-v -4.336040 0.446536 0.619901
-v -4.340906 0.442676 0.608864
-v -3.812318 0.437689 0.619901
-v -3.796318 0.431430 0.605175
-v -3.780318 0.437689 0.619901
-v -3.796318 0.437689 0.635901
-v -3.805165 0.446536 0.632412
-v -3.805165 0.446536 0.619901
-v -3.808830 0.442871 0.619901
-v -3.833405 0.437689 0.619901
-v -3.836894 0.442871 0.619901
-v -3.840558 0.446536 0.619901
-v -3.840558 0.446536 0.632412
-v -3.849405 0.437689 0.635901
-v -3.865405 0.437689 0.619901
-v -3.849405 0.431430 0.605175
-v -3.812318 1.152882 0.619901
-v -3.808830 1.147700 0.619901
-v -3.805165 1.144035 0.619901
-v -3.805165 1.144035 0.632412
-v -3.796318 1.152882 0.635901
-v -3.780318 1.152882 0.619901
-v -3.796318 1.159142 0.605175
-v -3.833405 1.152882 0.619901
-v -3.849405 1.159142 0.605175
-v -3.865405 1.152882 0.619901
-v -3.849405 1.152882 0.635901
-v -3.840558 1.144035 0.632412
-v -3.840558 1.144035 0.619901
-v -3.836894 1.147700 0.619901
-v -4.311192 0.437689 0.921437
-v -4.322404 0.449248 0.921437
-v -4.336040 0.446536 0.921437
-v -4.336040 0.446536 0.908926
-v -4.327192 0.437689 0.905437
-v -4.311192 0.437689 0.905437
-v -3.865405 0.437689 0.921437
-v -3.865405 0.437689 0.905437
-v -3.849405 0.437689 0.905437
-v -3.840558 0.446536 0.908926
-v -3.840558 0.446536 0.921437
-v -3.854193 0.449248 0.921437
-v -4.327192 0.506776 0.921437
-v -4.338751 0.485988 0.921437
-v -4.318345 0.481930 0.921437
-v -4.318345 0.481930 0.933949
-v -4.327192 0.490776 0.937437
-v -4.327192 0.506776 0.937437
-v -4.327192 1.083795 0.921437
-v -4.327192 1.083795 0.937437
-v -4.327192 1.099795 0.937437
-v -4.318345 1.108642 0.933949
-v -4.318345 1.108642 0.921437
-v -4.338751 1.104583 0.921437
-v -3.891949 0.464233 0.921437
-v -3.871161 0.452674 0.921437
-v -3.867102 0.473080 0.921437
-v -3.867102 0.473080 0.933949
-v -3.875949 0.464233 0.937437
-v -3.891949 0.464233 0.937437
-v -4.284648 0.464233 0.921437
-v -4.284648 0.464233 0.937437
-v -4.300648 0.464233 0.937437
-v -4.309495 0.473080 0.933949
-v -4.309495 0.473080 0.921437
-v -4.305436 0.452674 0.921437
-v -3.891949 0.464233 1.433200
-v -3.891949 0.464233 1.417200
-v -3.875949 0.464233 1.417200
-v -3.867102 0.473080 1.420688
-v -3.867102 0.473080 1.433200
-v -3.882576 0.480233 1.433200
-v -4.284648 0.464233 1.433200
-v -4.294021 0.480233 1.433200
-v -4.309495 0.473080 1.433200
-v -4.309495 0.473080 1.420688
-v -4.300648 0.464233 1.417200
-v -4.284648 0.464233 1.417200
-v -4.327192 0.506776 1.433200
-v -4.327192 0.506776 1.417200
-v -4.327192 0.490776 1.417200
-v -4.318345 0.481930 1.420688
-v -4.318345 0.481930 1.433200
-v -4.311192 0.497404 1.433200
-v -4.327192 1.083795 1.433200
-v -4.311192 1.093168 1.433200
-v -4.318345 1.108642 1.433200
-v -4.318345 1.108642 1.420688
-v -4.327192 1.099795 1.417200
-v -4.327192 1.083795 1.417200
-v -4.257935 0.576034 1.433200
-v -4.273935 0.553406 1.433200
-v -4.249087 0.551186 1.433200
-v -4.243668 0.556606 1.443302
-v -4.251249 0.567023 1.445945
-v -4.250502 0.585591 1.447369
-v -4.257935 1.014538 1.433200
-v -4.250502 1.004980 1.447369
-v -4.251249 1.023548 1.445945
-v -4.243668 1.033965 1.443302
-v -4.249087 1.039385 1.433200
-v -4.273935 1.037165 1.433200
-v -3.961206 0.533490 1.433200
-v -3.938579 0.517490 1.433200
-v -3.936359 0.542337 1.433200
-v -3.941779 0.547757 1.443302
-v -3.952196 0.540176 1.445945
-v -3.970764 0.540922 1.447369
-v -4.215391 0.533490 1.433200
-v -4.205833 0.540922 1.447369
-v -4.224401 0.540176 1.445945
-v -4.234818 0.547757 1.443302
-v -4.240238 0.542337 1.433200
-v -4.238019 0.517490 1.433200
-v -4.198004 0.638688 1.547444
-v -4.205437 0.632705 1.533275
-v -4.204690 0.615698 1.534698
-v -4.194118 0.607319 1.536742
-v -4.188250 0.612933 1.547444
-v -4.182004 0.629315 1.547444
-v -4.198004 0.951883 1.547444
-v -4.182004 0.961256 1.547444
-v -4.188250 0.977638 1.547444
-v -4.194118 0.983253 1.536742
-v -4.204690 0.974874 1.534698
-v -4.205437 0.957867 1.533275
-v -4.023860 0.593420 1.547444
-v -4.017877 0.585987 1.533275
-v -4.000871 0.586734 1.534698
-v -3.992491 0.597306 1.536742
-v -3.998106 0.603175 1.547444
-v -4.014488 0.609420 1.547444
-v -4.152737 0.593420 1.547444
-v -4.162109 0.609420 1.547444
-v -4.178491 0.603175 1.547444
-v -4.184106 0.597306 1.536742
-v -4.175726 0.586734 1.534698
-v -4.158720 0.585987 1.533275
-v -3.831708 0.455386 0.921437
-v -3.831708 0.455386 0.908926
-v -3.822861 0.464233 0.905437
-v -3.814014 0.455386 0.908926
-v -3.814014 0.455386 0.921437
-v -3.814014 0.473080 0.921437
-v -3.831708 0.473080 0.921437
-v -3.831708 0.455386 0.619901
-v -3.822861 0.455386 0.619901
-v -3.814014 0.455386 0.619901
-v -3.814014 0.455386 0.632412
-v -3.822861 0.464233 0.635901
-v -3.831708 0.455386 0.632412
-v -3.858252 0.481930 0.921437
-v -3.837846 0.485988 0.921437
-v -3.849405 0.506776 0.921437
-v -3.849405 0.506776 0.937437
-v -3.849405 0.490776 0.937437
-v -3.858252 0.481930 0.933949
-v -3.858252 0.481930 1.433200
-v -3.858252 0.481930 1.420688
-v -3.849405 0.490776 1.417200
-v -3.849405 0.506776 1.417200
-v -3.849405 0.506776 1.433200
-v -3.865405 0.497404 1.433200
-v -3.927510 0.551186 1.433200
-v -3.902662 0.553406 1.433200
-v -3.918662 0.576034 1.433200
-v -3.926095 0.585591 1.447369
-v -3.925348 0.567023 1.445945
-v -3.932930 0.556606 1.443302
-v -3.988347 0.612933 1.547444
-v -3.982478 0.607319 1.536742
-v -3.971906 0.615698 1.534698
-v -3.971160 0.632705 1.533275
-v -3.978593 0.638688 1.547444
-v -3.994593 0.629315 1.547444
-v -4.344889 0.455386 0.921437
-v -4.342176 0.469021 0.921437
-v -4.353735 0.480233 0.921437
-v -4.353735 0.480233 0.905437
-v -4.353735 0.464233 0.905437
-v -4.344889 0.455386 0.908926
-v -3.469997 0.586734 1.534698
-v -3.461618 0.597306 1.536742
-v -3.467232 0.603175 1.547444
-v -3.483614 0.609420 1.547444
-v -3.492986 0.593420 1.547444
-v -3.487003 0.585987 1.533275
-v -3.421322 0.540176 1.445945
-v -3.439890 0.540922 1.447369
-v -3.430332 0.533490 1.433200
-v -3.407705 0.517490 1.433200
-v -3.405485 0.542337 1.433200
-v -3.410905 0.547757 1.443302
-v -3.394475 0.567023 1.445945
-v -3.402056 0.556606 1.443302
-v -3.396635 0.551186 1.433200
-v -3.371789 0.553406 1.433200
-v -3.387789 0.576034 1.433200
-v -3.395221 0.585591 1.447369
-v -3.441033 0.615698 1.534698
-v -3.440285 0.632705 1.533275
-v -3.447718 0.638688 1.547444
-v -3.463718 0.629315 1.547444
-v -3.457474 0.612933 1.547444
-v -3.451604 0.607319 1.536742
-v -3.345074 0.464233 1.417200
-v -3.336228 0.473080 1.420688
-v -3.336228 0.473080 1.433200
-v -3.351702 0.480233 1.433200
-v -3.361074 0.464233 1.433200
-v -3.361074 0.464233 1.417200
-v -3.345074 0.464233 0.937437
-v -3.361074 0.464233 0.937437
-v -3.361074 0.464233 0.921437
-v -3.340286 0.452674 0.921437
-v -3.336228 0.473080 0.921437
-v -3.336228 0.473080 0.933949
-v -3.318531 0.490776 0.937437
-v -3.327378 0.481930 0.933949
-v -3.327378 0.481930 0.921437
-v -3.306972 0.485988 0.921437
-v -3.318531 0.506776 0.921437
-v -3.318531 0.506776 0.937437
-v -3.318531 0.490776 1.417200
-v -3.318531 0.506776 1.417200
-v -3.318531 0.506776 1.433200
-v -3.334531 0.497404 1.433200
-v -3.327378 0.481930 1.433200
-v -3.327378 0.481930 1.420688
-v -3.318531 0.437689 0.905437
-v -3.309684 0.446536 0.908926
-v -3.309684 0.446536 0.921437
-v -3.323319 0.449248 0.921437
-v -3.334531 0.437689 0.921437
-v -3.334531 0.437689 0.905437
-v -3.291987 0.464233 0.905437
-v -3.291987 0.480233 0.905437
-v -3.303547 0.469021 0.921437
-v -3.300834 0.455386 0.921437
-v -3.300834 0.455386 0.908926
-v -3.673816 0.615698 1.534698
-v -3.663245 0.607319 1.536742
-v -3.657375 0.612933 1.547444
-v -3.651130 0.629315 1.547444
-v -3.667130 0.638688 1.547444
-v -3.674563 0.632705 1.533275
-v -3.720374 0.567023 1.445945
-v -3.719628 0.585591 1.447369
-v -3.727060 0.576034 1.433200
-v -3.743060 0.553406 1.433200
-v -3.718214 0.551186 1.433200
-v -3.712794 0.556606 1.443302
-v -3.693527 0.540176 1.445945
-v -3.703944 0.547757 1.443302
-v -3.709363 0.542337 1.433200
-v -3.707144 0.517490 1.433200
-v -3.684517 0.533490 1.433200
-v -3.674959 0.540922 1.447369
-v -3.644852 0.586734 1.534698
-v -3.627846 0.585987 1.533275
-v -3.621862 0.593420 1.547444
-v -3.631235 0.609420 1.547444
-v -3.647618 0.603175 1.547444
-v -3.653231 0.597306 1.536742
-v -3.796318 0.490776 1.417200
-v -3.787470 0.481930 1.420688
-v -3.787470 0.481930 1.433200
-v -3.780318 0.497404 1.433200
-v -3.796318 0.506776 1.433200
-v -3.796318 0.506776 1.417200
-v -3.796318 0.490776 0.937437
-v -3.796318 0.506776 0.937437
-v -3.796318 0.506776 0.921437
-v -3.807877 0.485988 0.921437
-v -3.787470 0.481930 0.921437
-v -3.787470 0.481930 0.933949
-v -3.769773 0.464233 0.937437
-v -3.778621 0.473080 0.933949
-v -3.778621 0.473080 0.921437
-v -3.774562 0.452674 0.921437
-v -3.753773 0.464233 0.921437
-v -3.753773 0.464233 0.937437
-v -3.769773 0.464233 1.417200
-v -3.753773 0.464233 1.417200
-v -3.753773 0.464233 1.433200
-v -3.763146 0.480233 1.433200
-v -3.778621 0.473080 1.433200
-v -3.778621 0.473080 1.420688
-v -3.796318 0.437689 0.905437
-v -3.780318 0.437689 0.905437
-v -3.780318 0.437689 0.921437
-v -3.791529 0.449248 0.921437
-v -3.805165 0.446536 0.921437
-v -3.805165 0.446536 0.908926
-v -3.387789 1.014538 1.433200
-v -3.371789 1.037165 1.433200
-v -3.396635 1.039385 1.433200
-v -3.402056 1.033965 1.443302
-v -3.394475 1.023548 1.445945
-v -3.395221 1.004980 1.447369
-v -3.318531 1.083795 1.433200
-v -3.318531 1.083795 1.417200
-v -3.318531 1.099795 1.417200
-v -3.327378 1.108642 1.420688
-v -3.327378 1.108642 1.433200
-v -3.334531 1.093168 1.433200
-v -3.318531 1.083795 0.921437
-v -3.306972 1.104583 0.921437
-v -3.327378 1.108642 0.921437
-v -3.327378 1.108642 0.933949
-v -3.318531 1.099795 0.937437
-v -3.318531 1.083795 0.937437
-v -3.291987 1.110339 0.905437
-v -3.291987 1.126339 0.905437
-v -3.300834 1.135186 0.908926
-v -3.300834 1.135186 0.921437
-v -3.303547 1.121551 0.921437
-v -3.334531 1.152882 0.921437
-v -3.323319 1.141323 0.921437
-v -3.309684 1.144035 0.921437
-v -3.309684 1.144035 0.908926
-v -3.318531 1.152882 0.905437
-v -3.334531 1.152882 0.905437
-v -3.780318 1.152882 0.921437
-v -3.780318 1.152882 0.905437
-v -3.796318 1.152882 0.905437
-v -3.805165 1.144035 0.908926
-v -3.805165 1.144035 0.921437
-v -3.791529 1.141323 0.921437
-v -3.753773 1.126339 0.921437
-v -3.774562 1.137898 0.921437
-v -3.778621 1.117492 0.921437
-v -3.778621 1.117492 0.933949
-v -3.769773 1.126339 0.937437
-v -3.753773 1.126339 0.937437
-v -3.361074 1.126339 0.921437
-v -3.361074 1.126339 0.937437
-v -3.345074 1.126339 0.937437
-v -3.336228 1.117492 0.933949
-v -3.336228 1.117492 0.921437
-v -3.340286 1.137898 0.921437
-v -3.796318 1.083795 0.921437
-v -3.796318 1.083795 0.937437
-v -3.796318 1.099795 0.937437
-v -3.787470 1.108642 0.933949
-v -3.787470 1.108642 0.921437
-v -3.807877 1.104583 0.921437
-v -3.753773 1.126339 1.433200
-v -3.753773 1.126339 1.417200
-v -3.769773 1.126339 1.417200
-v -3.778621 1.117492 1.420688
-v -3.778621 1.117492 1.433200
-v -3.763146 1.110339 1.433200
-v -3.361074 1.126339 1.433200
-v -3.351702 1.110339 1.433200
-v -3.336228 1.117492 1.433200
-v -3.336228 1.117492 1.420688
-v -3.345074 1.126339 1.417200
-v -3.361074 1.126339 1.417200
-v -3.796318 1.083795 1.433200
-v -3.780318 1.093168 1.433200
-v -3.787470 1.108642 1.433200
-v -3.787470 1.108642 1.420688
-v -3.796318 1.099795 1.417200
-v -3.796318 1.083795 1.417200
-v -3.727060 1.014538 1.433200
-v -3.719628 1.004980 1.447369
-v -3.720374 1.023548 1.445945
-v -3.712794 1.033965 1.443302
-v -3.718214 1.039385 1.433200
-v -3.743060 1.037165 1.433200
-v -3.684517 1.057082 1.433200
-v -3.707144 1.073082 1.433200
-v -3.709363 1.048234 1.433200
-v -3.703944 1.042814 1.443302
-v -3.693527 1.050395 1.445945
-v -3.674959 1.049649 1.447369
-v -3.430332 1.057082 1.433200
-v -3.439890 1.049649 1.447369
-v -3.421322 1.050395 1.445945
-v -3.410905 1.042814 1.443302
-v -3.405485 1.048234 1.433200
-v -3.407705 1.073082 1.433200
-v -3.447718 0.951883 1.547444
-v -3.440285 0.957867 1.533275
-v -3.441033 0.974874 1.534698
-v -3.451604 0.983253 1.536742
-v -3.457474 0.977638 1.547444
-v -3.463718 0.961256 1.547444
-v -3.621862 0.997151 1.547444
-v -3.627846 1.004584 1.533275
-v -3.644852 1.003838 1.534698
-v -3.653231 0.993266 1.536742
-v -3.647618 0.987397 1.547444
-v -3.631235 0.981151 1.547444
-v -3.492986 0.997151 1.547444
-v -3.483614 0.981151 1.547444
-v -3.467232 0.987397 1.547444
-v -3.461618 0.993266 1.536742
-v -3.469997 1.003838 1.534698
-v -3.487003 1.004584 1.533275
-v -3.667130 0.951883 1.547444
-v -3.651130 0.961256 1.547444
-v -3.657375 0.977638 1.547444
-v -3.663245 0.983252 1.536742
-v -3.673816 0.974874 1.534698
-v -3.674563 0.957867 1.533275
-v -3.814014 1.135186 0.921437
-v -3.814014 1.135186 0.908926
-v -3.822861 1.126339 0.905437
-v -3.831708 1.135186 0.908926
-v -3.831708 1.135186 0.921437
-v -3.831708 1.117492 0.921437
-v -3.814014 1.117492 0.921437
-v -3.814014 1.135186 0.619901
-v -3.822861 1.135186 0.619901
-v -3.831708 1.135186 0.619901
-v -3.831708 1.135186 0.632412
-v -3.822861 1.126339 0.635901
-v -3.814014 1.135186 0.632412
-v -4.175726 1.003838 1.534698
-v -4.184106 0.993266 1.536742
-v -4.178491 0.987397 1.547444
-v -4.162109 0.981151 1.547444
-v -4.152737 0.997151 1.547444
-v -4.158720 1.004584 1.533275
-v -4.224401 1.050395 1.445945
-v -4.205833 1.049649 1.447369
-v -4.215391 1.057082 1.433200
-v -4.238019 1.073082 1.433200
-v -4.240238 1.048234 1.433200
-v -4.234818 1.042814 1.443302
-v -4.300648 1.126339 1.417200
-v -4.309495 1.117492 1.420688
-v -4.309495 1.117492 1.433200
-v -4.294021 1.110339 1.433200
-v -4.284648 1.126339 1.433200
-v -4.284648 1.126339 1.417200
-v -4.300648 1.126339 0.937437
-v -4.284648 1.126339 0.937437
-v -4.284648 1.126339 0.921437
-v -4.305436 1.137898 0.921437
-v -4.309495 1.117492 0.921437
-v -4.309495 1.117492 0.933949
-v -4.327192 1.152882 0.905437
-v -4.336040 1.144035 0.908926
-v -4.336040 1.144035 0.921437
-v -4.322404 1.141323 0.921437
-v -4.311192 1.152882 0.921437
-v -4.311192 1.152882 0.905437
-v -4.353735 1.126339 0.905437
-v -4.353735 1.110339 0.905437
-v -4.353735 1.110339 0.921437
-v -4.342176 1.121551 0.921437
-v -4.344889 1.135186 0.921437
-v -4.344889 1.135186 0.908926
-v -3.971906 0.974874 1.534698
-v -3.982478 0.983253 1.536742
-v -3.988347 0.977638 1.547444
-v -3.994593 0.961256 1.547444
-v -3.978593 0.951883 1.547444
-v -3.971160 0.957867 1.533275
-v -3.925348 1.023548 1.445945
-v -3.926095 1.004980 1.447369
-v -3.918662 1.014538 1.433200
-v -3.902662 1.037165 1.433200
-v -3.927510 1.039385 1.433200
-v -3.932930 1.033965 1.443302
-v -3.952196 1.050395 1.445945
-v -3.941779 1.042814 1.443302
-v -3.936359 1.048234 1.433200
-v -3.938579 1.073082 1.433200
-v -3.961206 1.057082 1.433200
-v -3.970764 1.049649 1.447369
-v -4.000871 1.003838 1.534698
-v -4.017877 1.004584 1.533275
-v -4.023860 0.997151 1.547444
-v -4.014488 0.981151 1.547444
-v -3.998106 0.987397 1.547444
-v -3.992491 0.993266 1.536742
-v -3.849405 1.099795 1.417200
-v -3.858252 1.108642 1.420688
-v -3.858252 1.108642 1.433200
-v -3.865405 1.093168 1.433200
-v -3.849405 1.083795 1.433200
-v -3.849405 1.083795 1.417200
-v -3.849405 1.099795 0.937437
-v -3.849405 1.083795 0.937437
-v -3.849405 1.083795 0.921437
-v -3.837846 1.104583 0.921437
-v -3.858252 1.108642 0.921437
-v -3.858252 1.108642 0.933949
-v -3.875949 1.126339 0.937437
-v -3.867102 1.117492 0.933949
-v -3.867102 1.117492 0.921437
-v -3.871161 1.137898 0.921437
-v -3.891949 1.126339 0.921437
-v -3.891949 1.126339 0.937437
-v -3.875949 1.126339 1.417200
-v -3.891949 1.126339 1.417200
-v -3.891949 1.126339 1.433200
-v -3.882576 1.110339 1.433200
-v -3.867102 1.117492 1.433200
-v -3.867102 1.117492 1.420688
-v -3.849405 1.152882 0.905437
-v -3.865405 1.152882 0.905437
-v -3.865405 1.152882 0.921437
-v -3.854193 1.141323 0.921437
-v -3.840558 1.144035 0.921437
-v -3.840558 1.144035 0.908926
-v -4.214062 1.128550 1.281173
-v -4.183198 1.133186 1.355686
-v -4.108684 1.135106 1.386551
-v -4.034171 1.133186 1.355686
-v -4.003307 1.128550 1.281173
-v -4.108684 1.183624 1.168099
-v -4.183198 1.191482 1.198222
-v -4.214062 1.210450 1.270945
-v -4.183198 1.229419 1.343668
-v -4.108684 1.237277 1.373791
-v -4.034171 1.229419 1.343668
-v -4.003307 1.210450 1.270945
-v -4.034171 1.191482 1.198222
-v -4.108684 1.234379 1.147470
-v -4.183198 1.249766 1.174532
-v -4.214062 1.286911 1.239866
-v -4.183198 1.324058 1.305202
-v -4.108684 1.339444 1.332264
-v -4.034171 1.324058 1.305202
-v -4.003307 1.286911 1.239866
-v -4.034171 1.249766 1.174532
-v -4.108684 1.278064 1.114405
-v -4.183198 1.299931 1.136562
-v -4.214062 1.352722 1.190056
-v -4.183198 1.405514 1.243549
-v -4.108684 1.427382 1.265706
-v -4.034171 1.405514 1.243549
-v -4.003307 1.352722 1.190056
-v -4.034171 1.299931 1.136562
-v -4.108684 1.311702 1.071160
-v -4.183198 1.338559 1.086902
-v -4.214062 1.403398 1.124909
-v -4.183198 1.468237 1.162914
-v -4.108684 1.495094 1.178656
-v -4.034171 1.468237 1.162914
-v -4.003307 1.403398 1.124909
-v -4.034171 1.338559 1.086902
-v -4.108684 1.333002 1.020678
-v -4.183198 1.363018 1.028934
-v -4.214062 1.435483 1.048864
-v -4.183198 1.507948 1.068794
-v -4.108684 1.537964 1.077050
-v -4.034171 1.507948 1.068794
-v -4.003307 1.435483 1.048864
-v -4.034171 1.363018 1.028934
-v -4.108684 1.341432 0.959773
-v -4.183198 1.372291 0.961937
-v -4.214062 1.446791 0.967162
-v -4.183198 1.521292 0.972387
-v -4.108684 1.552151 0.974551
-v -4.034171 1.521292 0.972387
-v -4.003307 1.446791 0.967162
-v -4.034171 1.372291 0.961937
-v -4.034171 1.126339 1.206358
-v -4.183198 1.126339 1.206358
-v -4.108684 1.126339 1.175254
-v -4.003307 1.126339 1.281173
-v -4.034171 1.126339 1.355686
-v -4.108684 1.126339 1.386551
-v -4.183198 1.126339 1.355686
-v -4.214062 1.126339 1.281173
-v -4.018036 1.126339 1.245612
-v -4.199332 1.126339 1.245612
-v -4.034171 1.374158 0.364684
-v -4.003307 1.448672 0.364684
-v -4.034171 1.523186 0.364684
-v -4.108684 1.554050 0.364684
-v -4.183198 1.523186 0.364684
-v -4.214062 1.448672 0.364684
-v -4.183198 1.374158 0.364684
-v -4.108684 1.343294 0.364684
-v -4.034171 1.374158 0.216889
-v -4.003307 1.448672 0.216889
-v -4.034171 1.523186 0.216889
-v -4.108684 1.554050 0.216889
-v -4.183198 1.523186 0.216889
-v -4.214062 1.448672 0.216889
-v -4.183198 1.374158 0.216889
-v -4.108684 1.343294 0.216889
-v -4.002153 1.600482 0.216889
-v -4.002153 1.600482 0.364684
-v -4.076666 1.631347 0.364684
-v -4.076666 1.631347 0.216889
-v -3.515969 1.631347 0.216889
-v -3.515969 1.631347 0.364684
-v -3.590482 1.600482 0.364684
-v -3.590482 1.600482 0.216889
-v -3.483951 1.343294 0.216889
-v -3.409438 1.374158 0.216889
-v -3.378574 1.448672 0.216889
-v -3.409438 1.523186 0.216889
-v -3.483951 1.554050 0.216889
-v -3.558465 1.523186 0.216889
-v -3.589329 1.448672 0.216889
-v -3.558465 1.374158 0.216889
-v -3.483951 1.343294 0.364684
-v -3.409438 1.374158 0.364684
-v -3.378574 1.448672 0.364684
-v -3.409438 1.523186 0.364684
-v -3.483951 1.554050 0.364684
-v -3.558465 1.523186 0.364684
-v -3.589329 1.448672 0.364684
-v -3.558465 1.374158 0.364684
-v -3.393303 1.126339 1.245612
-v -3.574599 1.126339 1.245612
-v -3.378574 1.126339 1.281173
-v -3.409438 1.126339 1.355686
-v -3.483951 1.126339 1.386551
-v -3.558465 1.126339 1.355686
-v -3.589329 1.126339 1.281173
-v -3.483951 1.126339 1.175254
-v -3.409438 1.126339 1.206358
-v -3.558465 1.126339 1.206358
-v -3.558465 1.372291 0.961937
-v -3.589329 1.446791 0.967162
-v -3.558465 1.521292 0.972387
-v -3.483951 1.552151 0.974551
-v -3.409438 1.521292 0.972387
-v -3.378574 1.446791 0.967162
-v -3.409438 1.372291 0.961937
-v -3.483951 1.341432 0.959773
-v -3.558465 1.363018 1.028934
-v -3.589329 1.435483 1.048864
-v -3.558465 1.507948 1.068794
-v -3.483951 1.537964 1.077050
-v -3.409438 1.507948 1.068794
-v -3.378574 1.435483 1.048864
-v -3.409438 1.363018 1.028934
-v -3.483951 1.333002 1.020678
-v -3.558465 1.338559 1.086902
-v -3.589329 1.403398 1.124909
-v -3.558465 1.468237 1.162914
-v -3.483951 1.495094 1.178656
-v -3.409438 1.468237 1.162914
-v -3.378574 1.403398 1.124909
-v -3.409438 1.338559 1.086902
-v -3.483951 1.311702 1.071160
-v -3.558465 1.299931 1.136562
-v -3.589329 1.352722 1.190056
-v -3.558465 1.405514 1.243549
-v -3.483951 1.427382 1.265706
-v -3.409438 1.405514 1.243549
-v -3.378574 1.352722 1.190056
-v -3.409438 1.299931 1.136562
-v -3.483951 1.278064 1.114405
-v -3.558465 1.249766 1.174532
-v -3.589329 1.286911 1.239866
-v -3.558465 1.324058 1.305202
-v -3.483951 1.339444 1.332264
-v -3.409438 1.324058 1.305202
-v -3.378574 1.286911 1.239866
-v -3.409438 1.249766 1.174532
-v -3.483951 1.234379 1.147470
-v -3.558465 1.191482 1.198222
-v -3.589329 1.210450 1.270945
-v -3.558465 1.229419 1.343668
-v -3.483951 1.237277 1.373791
-v -3.409438 1.229419 1.343668
-v -3.378574 1.210450 1.270945
-v -3.409438 1.191482 1.198222
-v -3.483951 1.183624 1.168099
-v -3.589329 1.128550 1.281173
-v -3.558465 1.133186 1.355686
-v -3.483951 1.135106 1.386551
-v -3.409438 1.133186 1.355686
-v -3.378574 1.128550 1.281173
-v -3.515969 1.776170 0.278045
-v -4.076666 1.776170 0.278045
-v -4.076666 1.776170 0.216889
-v -3.515969 1.776170 0.216889
-v -3.515969 1.776170 -0.194902
-v -4.076666 1.776170 -0.194902
-v -4.076666 1.776170 -0.256059
-v -3.515969 1.776170 -0.256059
-v -3.378574 1.128550 -1.259187
-v -3.409438 1.133186 -1.333701
-v -3.483951 1.135106 -1.364566
-v -3.558465 1.133186 -1.333701
-v -3.589329 1.128550 -1.259187
-v -3.483951 1.183624 -1.146114
-v -3.409438 1.191482 -1.176236
-v -3.378574 1.210450 -1.248959
-v -3.409438 1.229419 -1.321682
-v -3.483951 1.237277 -1.351806
-v -3.558465 1.229419 -1.321682
-v -3.589329 1.210450 -1.248959
-v -3.558465 1.191482 -1.176236
-v -3.483951 1.234379 -1.125483
-v -3.409438 1.249766 -1.152546
-v -3.378574 1.286911 -1.217881
-v -3.409438 1.324058 -1.283216
-v -3.483951 1.339444 -1.310278
-v -3.558465 1.324058 -1.283216
-v -3.589329 1.286911 -1.217881
-v -3.558465 1.249766 -1.152546
-v -3.483951 1.278064 -1.092419
-v -3.409438 1.299931 -1.114577
-v -3.378574 1.352722 -1.168070
-v -3.409438 1.405514 -1.221563
-v -3.483951 1.427382 -1.243721
-v -3.558465 1.405514 -1.221563
-v -3.589329 1.352722 -1.168070
-v -3.558465 1.299931 -1.114577
-v -3.483951 1.311702 -1.049174
-v -3.409438 1.338559 -1.064917
-v -3.378574 1.403398 -1.102922
-v -3.409438 1.468237 -1.140928
-v -3.483951 1.495094 -1.156670
-v -3.558465 1.468237 -1.140928
-v -3.589329 1.403398 -1.102922
-v -3.558465 1.338559 -1.064917
-v -3.483951 1.333002 -0.998692
-v -3.409438 1.363018 -1.006948
-v -3.378574 1.435483 -1.026878
-v -3.409438 1.507948 -1.046809
-v -3.483951 1.537964 -1.055064
-v -3.558465 1.507948 -1.046809
-v -3.589329 1.435483 -1.026878
-v -3.558465 1.363018 -1.006948
-v -3.483951 1.341432 -0.937787
-v -3.409438 1.372291 -0.939951
-v -3.378574 1.446791 -0.945176
-v -3.409438 1.521292 -0.950402
-v -3.483951 1.552151 -0.952566
-v -3.558465 1.521292 -0.950402
-v -3.589329 1.446791 -0.945176
-v -3.558465 1.372291 -0.939951
-v -3.558465 1.126339 -1.184372
-v -3.409438 1.126339 -1.184372
-v -3.483951 1.126339 -1.153268
-v -3.589329 1.126339 -1.259187
-v -3.558465 1.126339 -1.333701
-v -3.483951 1.126339 -1.364566
-v -3.409438 1.126339 -1.333701
-v -3.378574 1.126339 -1.259187
-v -3.574599 1.126339 -1.223626
-v -3.393303 1.126339 -1.223626
-v -3.558465 1.374158 -0.342698
-v -3.589329 1.448672 -0.342698
-v -3.558465 1.523186 -0.342698
-v -3.483951 1.554050 -0.342698
-v -3.409438 1.523186 -0.342698
-v -3.378574 1.448672 -0.342698
-v -3.409438 1.374158 -0.342698
-v -3.483951 1.343294 -0.342698
-v -3.558465 1.374158 -0.194902
-v -3.589329 1.448672 -0.194902
-v -3.558465 1.523186 -0.194902
-v -3.483951 1.554050 -0.194902
-v -3.409438 1.523186 -0.194902
-v -3.378574 1.448672 -0.194902
-v -3.409438 1.374158 -0.194902
-v -3.483951 1.343294 -0.194902
-v -3.590482 1.600482 -0.194902
-v -3.590482 1.600482 -0.342698
-v -3.515969 1.631347 -0.342698
-v -3.515969 1.631347 -0.194902
-v -4.076666 1.631347 -0.194902
-v -4.076666 1.631347 -0.342698
-v -4.002153 1.600482 -0.342698
-v -4.002153 1.600482 -0.194902
-v -4.108684 1.343294 -0.194902
-v -4.183198 1.374158 -0.194902
-v -4.214062 1.448672 -0.194902
-v -4.183198 1.523186 -0.194902
-v -4.108684 1.554050 -0.194902
-v -4.034171 1.523186 -0.194902
-v -4.003307 1.448672 -0.194902
-v -4.034171 1.374158 -0.194902
-v -4.108684 1.343294 -0.342698
-v -4.183198 1.374158 -0.342698
-v -4.214062 1.448672 -0.342698
-v -4.183198 1.523186 -0.342698
-v -4.108684 1.554050 -0.342698
-v -4.034171 1.523186 -0.342698
-v -4.003307 1.448672 -0.342698
-v -4.034171 1.374158 -0.342698
-v -4.199332 1.126339 -1.223626
-v -4.018036 1.126339 -1.223626
-v -4.214062 1.126339 -1.259187
-v -4.183198 1.126339 -1.333701
-v -4.108684 1.126339 -1.364566
-v -4.034171 1.126339 -1.333701
-v -4.003307 1.126339 -1.259187
-v -4.108684 1.126339 -1.153268
-v -4.183198 1.126339 -1.184372
-v -4.034171 1.126339 -1.184372
-v -4.034171 1.372291 -0.939951
-v -4.003307 1.446791 -0.945176
-v -4.034171 1.521292 -0.950402
-v -4.108684 1.552151 -0.952566
-v -4.183198 1.521292 -0.950402
-v -4.214062 1.446791 -0.945176
-v -4.183198 1.372291 -0.939951
-v -4.108684 1.341432 -0.937787
-v -4.034171 1.363018 -1.006948
-v -4.003307 1.435483 -1.026878
-v -4.034171 1.507948 -1.046809
-v -4.108684 1.537964 -1.055064
-v -4.183198 1.507948 -1.046809
-v -4.214062 1.435483 -1.026878
-v -4.183198 1.363018 -1.006948
-v -4.108684 1.333002 -0.998692
-v -4.034171 1.338559 -1.064917
-v -4.003307 1.403398 -1.102922
-v -4.034171 1.468237 -1.140928
-v -4.108684 1.495094 -1.156670
-v -4.183198 1.468237 -1.140928
-v -4.214062 1.403398 -1.102922
-v -4.183198 1.338559 -1.064917
-v -4.108684 1.311702 -1.049174
-v -4.034171 1.299931 -1.114577
-v -4.003307 1.352722 -1.168070
-v -4.034171 1.405514 -1.221563
-v -4.108684 1.427382 -1.243721
-v -4.183198 1.405514 -1.221563
-v -4.214062 1.352722 -1.168070
-v -4.183198 1.299931 -1.114577
-v -4.108684 1.278064 -1.092419
-v -4.034171 1.249766 -1.152546
-v -4.003307 1.286911 -1.217881
-v -4.034171 1.324058 -1.283216
-v -4.108684 1.339444 -1.310278
-v -4.183198 1.324058 -1.283216
-v -4.214062 1.286911 -1.217881
-v -4.183198 1.249766 -1.152546
-v -4.108684 1.234379 -1.125483
-v -4.034171 1.191482 -1.176236
-v -4.003307 1.210450 -1.248959
-v -4.034171 1.229419 -1.321682
-v -4.108684 1.237277 -1.351806
-v -4.183198 1.229419 -1.321682
-v -4.214062 1.210450 -1.248959
-v -4.183198 1.191482 -1.176236
-v -4.108684 1.183624 -1.146114
-v -4.003307 1.128550 -1.259187
-v -4.034171 1.133186 -1.333701
-v -4.108684 1.135106 -1.364566
-v -4.183198 1.133186 -1.333701
-v -4.214062 1.128550 -1.259187
-v -3.668748 0.462021 1.281173
-v -3.637883 0.457386 1.355686
-v -3.563370 0.455466 1.386551
-v -3.488857 0.457386 1.355686
-v -3.457992 0.462021 1.281173
-v -3.563370 0.406947 1.168099
-v -3.637883 0.399090 1.198222
-v -3.668748 0.380121 1.270945
-v -3.637883 0.361152 1.343668
-v -3.563370 0.353294 1.373791
-v -3.488857 0.361152 1.343668
-v -3.457992 0.380121 1.270945
-v -3.488857 0.399090 1.198222
-v -3.563370 0.356193 1.147470
-v -3.637883 0.340806 1.174532
-v -3.668748 0.303660 1.239866
-v -3.637883 0.266514 1.305202
-v -3.563370 0.251127 1.332264
-v -3.488857 0.266514 1.305202
-v -3.457992 0.303660 1.239866
-v -3.488857 0.340806 1.174532
-v -3.563370 0.312507 1.114405
-v -3.637883 0.290641 1.136562
-v -3.668748 0.237849 1.190056
-v -3.637883 0.185057 1.243549
-v -3.563370 0.163190 1.265706
-v -3.488857 0.185057 1.243549
-v -3.457992 0.237849 1.190056
-v -3.488857 0.290641 1.136562
-v -3.563370 0.278870 1.071160
-v -3.637883 0.252013 1.086902
-v -3.668748 0.187174 1.124909
-v -3.637883 0.122335 1.162914
-v -3.563370 0.095478 1.178656
-v -3.488857 0.122335 1.162914
-v -3.457992 0.187174 1.124909
-v -3.488857 0.252013 1.086902
-v -3.563370 0.257570 1.020678
-v -3.637883 0.227554 1.028934
-v -3.668748 0.155088 1.048864
-v -3.637883 0.082623 1.068794
-v -3.563370 0.052607 1.077050
-v -3.488857 0.082623 1.068794
-v -3.457992 0.155088 1.048864
-v -3.488857 0.227554 1.028934
-v -3.563370 0.249140 0.959773
-v -3.637883 0.218281 0.961937
-v -3.668748 0.143780 0.967162
-v -3.637883 0.069279 0.972387
-v -3.563370 0.038421 0.974551
-v -3.488857 0.069280 0.972387
-v -3.457992 0.143780 0.967162
-v -3.488857 0.218281 0.961937
-v -3.488857 0.464233 1.206358
-v -3.637883 0.464233 1.206358
-v -3.563370 0.464233 1.175254
-v -3.457992 0.464233 1.281173
-v -3.488857 0.464233 1.355686
-v -3.563370 0.464233 1.386551
-v -3.637883 0.464233 1.355686
-v -3.668748 0.464233 1.281173
-v -3.472722 0.464233 1.245612
-v -3.654018 0.464233 1.245612
-v -3.488857 0.216414 0.599118
-v -3.457992 0.141899 0.599118
-v -3.488857 0.067386 0.599118
-v -3.563370 0.036522 0.599118
-v -3.637883 0.067386 0.599118
-v -3.668748 0.141899 0.599118
-v -3.637883 0.216414 0.599118
-v -3.563370 0.247278 0.599118
-v -3.488857 0.216414 0.542302
-v -3.637883 0.216414 0.542302
-v -3.637883 0.067386 0.542302
-v -3.488857 0.067386 0.542302
-v -3.822861 0.324671 0.542302
-v -3.380599 0.324671 0.542302
-v -4.402727 0.324671 0.542302
-v -4.156867 0.067386 0.542302
-v -4.007839 0.067386 0.542302
-v -4.007839 0.216414 0.542302
-v -4.156867 0.216414 0.542302
-v -4.082353 0.247278 0.599118
-v -4.007839 0.216414 0.599118
-v -3.976975 0.141899 0.599118
-v -4.007839 0.067386 0.599118
-v -4.082353 0.036522 0.599118
-v -4.156867 0.067386 0.599118
-v -4.187730 0.141899 0.599118
-v -4.156867 0.216414 0.599118
-v -3.991705 0.464233 1.245612
-v -4.173001 0.464233 1.245612
-v -3.976975 0.464233 1.281173
-v -4.007839 0.464233 1.355686
-v -4.082353 0.464233 1.386551
-v -4.156867 0.464233 1.355686
-v -4.187730 0.464233 1.281173
-v -4.082353 0.464233 1.175254
-v -4.007839 0.464233 1.206358
-v -4.156867 0.464233 1.206358
-v -4.156867 0.218281 0.961937
-v -4.187730 0.143780 0.967162
-v -4.156867 0.069280 0.972387
-v -4.082353 0.038421 0.974551
-v -4.007839 0.069279 0.972387
-v -3.976975 0.143780 0.967162
-v -4.007839 0.218281 0.961937
-v -4.082353 0.249140 0.959773
-v -4.156867 0.227554 1.028934
-v -4.187730 0.155088 1.048864
-v -4.156867 0.082623 1.068794
-v -4.082353 0.052607 1.077050
-v -4.007839 0.082623 1.068794
-v -3.976975 0.155088 1.048864
-v -4.007839 0.227554 1.028934
-v -4.082353 0.257570 1.020678
-v -4.156867 0.252013 1.086902
-v -4.187730 0.187174 1.124909
-v -4.156867 0.122335 1.162914
-v -4.082353 0.095478 1.178656
-v -4.007839 0.122335 1.162914
-v -3.976975 0.187174 1.124909
-v -4.007839 0.252013 1.086902
-v -4.082353 0.278870 1.071160
-v -4.156867 0.290641 1.136562
-v -4.187730 0.237849 1.190056
-v -4.156867 0.185057 1.243549
-v -4.082353 0.163190 1.265706
-v -4.007839 0.185057 1.243549
-v -3.976975 0.237849 1.190056
-v -4.007839 0.290641 1.136562
-v -4.082353 0.312507 1.114405
-v -4.156867 0.340806 1.174532
-v -4.187730 0.303660 1.239866
-v -4.156867 0.266514 1.305202
-v -4.082353 0.251127 1.332264
-v -4.007839 0.266514 1.305202
-v -3.976975 0.303660 1.239866
-v -4.007839 0.340806 1.174532
-v -4.082353 0.356193 1.147470
-v -4.156867 0.399090 1.198222
-v -4.187730 0.380121 1.270945
-v -4.156867 0.361152 1.343668
-v -4.082353 0.353294 1.373791
-v -4.007839 0.361152 1.343668
-v -3.976975 0.380121 1.270945
-v -4.007839 0.399090 1.198222
-v -4.082353 0.406947 1.168099
-v -4.187730 0.462021 1.281173
-v -4.156867 0.457386 1.355686
-v -4.082353 0.455466 1.386551
-v -4.007839 0.457386 1.355686
-v -3.976975 0.462021 1.281173
-v -3.380599 -0.040871 0.489215
-v -3.380599 0.012216 0.542302
-v -4.402727 0.012216 0.542302
-v -4.402727 -0.040871 0.489215
-v -4.402727 -0.040871 -0.460100
-v -4.402727 0.012216 -0.513187
-v -3.380599 0.012216 -0.513187
-v -3.380599 -0.040871 -0.460100
-v -3.976975 0.462021 -1.252058
-v -4.007839 0.457386 -1.326571
-v -4.082353 0.455466 -1.357436
-v -4.156867 0.457386 -1.326571
-v -4.187730 0.462021 -1.252058
-v -4.082353 0.406947 -1.138983
-v -4.007839 0.399090 -1.169106
-v -3.976975 0.380121 -1.241830
-v -4.007839 0.361152 -1.314553
-v -4.082353 0.353294 -1.344676
-v -4.156867 0.361152 -1.314553
-v -4.187730 0.380121 -1.241830
-v -4.156867 0.399090 -1.169106
-v -4.082353 0.356193 -1.118354
-v -4.007839 0.340806 -1.145417
-v -3.976975 0.303660 -1.210751
-v -4.007839 0.266514 -1.276086
-v -4.082353 0.251127 -1.303149
-v -4.156867 0.266514 -1.276086
-v -4.187730 0.303660 -1.210751
-v -4.156867 0.340806 -1.145417
-v -4.082353 0.312507 -1.085290
-v -4.007839 0.290641 -1.107447
-v -3.976975 0.237849 -1.160941
-v -4.007839 0.185057 -1.214434
-v -4.082353 0.163190 -1.236591
-v -4.156867 0.185057 -1.214434
-v -4.187730 0.237849 -1.160941
-v -4.156867 0.290641 -1.107447
-v -4.082353 0.278870 -1.042045
-v -4.007839 0.252013 -1.057787
-v -3.976975 0.187174 -1.095793
-v -4.007839 0.122335 -1.133798
-v -4.082353 0.095478 -1.149541
-v -4.156867 0.122335 -1.133798
-v -4.187730 0.187174 -1.095793
-v -4.156867 0.252013 -1.057787
-v -4.082353 0.257570 -0.991562
-v -4.007839 0.227554 -0.999818
-v -3.976975 0.155088 -1.019749
-v -4.007839 0.082623 -1.039679
-v -4.082353 0.052607 -1.047934
-v -4.156867 0.082623 -1.039679
-v -4.187730 0.155088 -1.019749
-v -4.156867 0.227554 -0.999818
-v -4.082353 0.249140 -0.930658
-v -4.007839 0.218281 -0.932822
-v -3.976975 0.143780 -0.938046
-v -4.007839 0.069279 -0.943271
-v -4.082353 0.038421 -0.945435
-v -4.156867 0.069280 -0.943271
-v -4.187730 0.143780 -0.938046
-v -4.156867 0.218281 -0.932822
-v -4.156867 0.464233 -1.177242
-v -4.007839 0.464233 -1.177242
-v -4.082353 0.464233 -1.146138
-v -4.187730 0.464233 -1.252058
-v -4.156867 0.464233 -1.326571
-v -4.082353 0.464233 -1.357436
-v -4.007839 0.464233 -1.326571
-v -3.976975 0.464233 -1.252058
-v -4.173001 0.464233 -1.216497
-v -3.991705 0.464233 -1.216497
-v -4.156867 0.216414 -0.570002
-v -4.187730 0.141899 -0.570002
-v -4.156867 0.067386 -0.570002
-v -4.082353 0.036522 -0.570002
-v -4.007839 0.067386 -0.570002
-v -3.976975 0.141899 -0.570002
-v -4.007839 0.216414 -0.570002
-v -4.082353 0.247278 -0.570002
-v -4.156867 0.216414 -0.513187
-v -4.007839 0.216414 -0.513187
-v -4.007839 0.067386 -0.513187
-v -4.156867 0.067386 -0.513187
-v -4.402727 0.324671 -0.513187
-v -3.380599 0.324671 -0.513187
-v -3.822861 0.324671 -0.513187
-v -3.488857 0.067386 -0.513187
-v -3.637883 0.067386 -0.513187
-v -3.637883 0.216414 -0.513187
-v -3.488857 0.216414 -0.513187
-v -3.563370 0.247278 -0.570002
-v -3.637883 0.216414 -0.570002
-v -3.668748 0.141899 -0.570002
-v -3.637883 0.067386 -0.570002
-v -3.563370 0.036522 -0.570002
-v -3.488857 0.067386 -0.570002
-v -3.457992 0.141899 -0.570002
-v -3.488857 0.216414 -0.570002
-v -3.654018 0.464233 -1.216497
-v -3.472722 0.464233 -1.216497
-v -3.668748 0.464233 -1.252058
-v -3.637883 0.464233 -1.326571
-v -3.563370 0.464233 -1.357436
-v -3.488857 0.464233 -1.326571
-v -3.457992 0.464233 -1.252058
-v -3.563370 0.464233 -1.146138
-v -3.637883 0.464233 -1.177242
-v -3.488857 0.464233 -1.177242
-v -3.488857 0.218281 -0.932822
-v -3.457992 0.143780 -0.938046
-v -3.488857 0.069280 -0.943271
-v -3.563370 0.038421 -0.945435
-v -3.637883 0.069279 -0.943271
-v -3.668748 0.143780 -0.938046
-v -3.637883 0.218281 -0.932822
-v -3.563370 0.249140 -0.930658
-v -3.488857 0.227554 -0.999818
-v -3.457992 0.155088 -1.019749
-v -3.488857 0.082623 -1.039679
-v -3.563370 0.052607 -1.047934
-v -3.637883 0.082623 -1.039679
-v -3.668748 0.155088 -1.019749
-v -3.637883 0.227554 -0.999818
-v -3.563370 0.257570 -0.991562
-v -3.488857 0.252013 -1.057787
-v -3.457992 0.187174 -1.095793
-v -3.488857 0.122335 -1.133798
-v -3.563370 0.095478 -1.149541
-v -3.637883 0.122335 -1.133798
-v -3.668748 0.187174 -1.095793
-v -3.637883 0.252013 -1.057787
-v -3.563370 0.278870 -1.042045
-v -3.488857 0.290641 -1.107447
-v -3.457992 0.237849 -1.160941
-v -3.488857 0.185057 -1.214434
-v -3.563370 0.163190 -1.236591
-v -3.637883 0.185057 -1.214434
-v -3.668748 0.237849 -1.160941
-v -3.637883 0.290641 -1.107447
-v -3.563370 0.312507 -1.085290
-v -3.488857 0.340806 -1.145417
-v -3.457992 0.303660 -1.210751
-v -3.488857 0.266514 -1.276086
-v -3.563370 0.251127 -1.303149
-v -3.637883 0.266514 -1.276086
-v -3.668748 0.303660 -1.210751
-v -3.637883 0.340806 -1.145417
-v -3.563370 0.356193 -1.118354
-v -3.488857 0.399090 -1.169106
-v -3.457992 0.380121 -1.241830
-v -3.488857 0.361152 -1.314553
-v -3.563370 0.353294 -1.344676
-v -3.637883 0.361152 -1.314553
-v -3.668748 0.380121 -1.241830
-v -3.637883 0.399090 -1.169106
-v -3.563370 0.406947 -1.138983
-v -3.457992 0.462021 -1.252058
-v -3.488857 0.457386 -1.326571
-v -3.563370 0.455466 -1.357436
-v -3.637883 0.457386 -1.326571
-v -3.668748 0.462021 -1.252058
-v -6.434846 0.802506 0.000000
-v -4.361941 0.641280 0.000000
-v -4.990722 0.634370 0.000000
-v -4.993025 0.611338 0.000000
-v -5.071334 0.581396 0.000000
-v -5.587258 0.583699 0.000000
-v -5.672477 0.622854 0.000000
-v -5.672477 0.666615 0.000000
-v -5.631019 0.666615 0.000000
-v -5.631019 0.689647 0.000000
-v -5.914316 0.687344 0.000000
-v -5.912013 0.638977 0.000000
-v -5.971897 0.602125 0.000000
-v -6.119303 0.604428 0.000000
-v -6.204523 0.652796 0.000000
-v -6.204523 0.703467 0.000000
-v -6.333503 0.701164 0.000000
-v -6.374961 0.714983 0.000000
-v -6.407207 0.733409 0.000000
-v -6.432542 0.765654 0.000000
-v -4.361941 0.662880 -0.080613
-v -4.990722 0.656896 -0.084068
-v -4.993025 0.636950 -0.095584
-v -5.071334 0.611019 -0.110555
-v -5.587258 0.613014 -0.109403
-v -5.672477 0.646922 -0.089826
-v -5.672477 0.684821 -0.067946
-v -5.631019 0.684821 -0.067946
-v -5.631019 0.704767 -0.056429
-v -5.914316 0.702773 -0.057581
-v -5.912013 0.660886 -0.081765
-v -5.971897 0.628971 -0.100190
-v -6.119303 0.630966 -0.099038
-v -6.204523 0.672853 -0.074855
-v -6.204523 0.716735 -0.049519
-v -6.333503 0.714741 -0.050671
-v -6.374961 0.726709 -0.043762
-v -6.407207 0.742666 -0.034549
-v -6.432542 0.770591 -0.018426
-v -4.361941 0.721893 -0.139626
-v -4.990722 0.718438 -0.145610
-v -4.993025 0.706922 -0.165556
-v -5.071334 0.691950 -0.191486
-v -5.587258 0.693102 -0.189492
-v -5.672477 0.712680 -0.155583
-v -5.672477 0.734560 -0.117685
-v -5.631019 0.734560 -0.117685
-v -5.631019 0.746077 -0.097738
-v -5.914316 0.744925 -0.099733
-v -5.912013 0.720741 -0.141620
-v -5.971897 0.702315 -0.173534
-v -6.119303 0.703467 -0.171540
-v -6.204523 0.727650 -0.129653
-v -6.204523 0.752986 -0.085770
-v -6.333503 0.751834 -0.087765
-v -6.374961 0.758744 -0.075797
-v -6.407207 0.767957 -0.059840
-v -6.432542 0.784080 -0.031914
-v -4.361941 0.802506 -0.161226
-v -4.990722 0.802506 -0.168135
-v -4.993025 0.802506 -0.191168
-v -5.071334 0.802506 -0.221110
-v -5.587258 0.802506 -0.218806
-v -5.672477 0.802506 -0.179652
-v -5.672477 0.802506 -0.135890
-v -5.631019 0.802506 -0.135890
-v -5.631019 0.802506 -0.112858
-v -5.914316 0.802506 -0.115162
-v -5.912013 0.802506 -0.163529
-v -5.971897 0.802506 -0.200381
-v -6.119303 0.802506 -0.198078
-v -6.204523 0.802506 -0.149710
-v -6.204523 0.802506 -0.099038
-v -6.333503 0.802506 -0.101342
-v -6.374961 0.802506 -0.087522
-v -6.407207 0.802506 -0.069097
-v -6.432542 0.802506 -0.036852
-v -4.361941 0.883118 -0.139626
-v -4.990722 0.886574 -0.145610
-v -4.993025 0.898090 -0.165556
-v -5.071334 0.913061 -0.191486
-v -5.587258 0.911909 -0.189492
-v -5.672477 0.892331 -0.155583
-v -5.672477 0.870451 -0.117685
-v -5.631019 0.870451 -0.117685
-v -5.631019 0.858934 -0.097738
-v -5.914316 0.860086 -0.099733
-v -5.912013 0.884270 -0.141620
-v -5.971897 0.902696 -0.173534
-v -6.119303 0.901544 -0.171540
-v -6.204523 0.877361 -0.129653
-v -6.204523 0.852025 -0.085770
-v -6.333503 0.853177 -0.087765
-v -6.374961 0.846267 -0.075797
-v -6.407207 0.837054 -0.059840
-v -6.432542 0.820931 -0.031914
-v -4.361941 0.942131 -0.080613
-v -4.990722 0.948115 -0.084068
-v -4.993025 0.968062 -0.095584
-v -5.071334 0.993992 -0.110555
-v -5.587258 0.991998 -0.109403
-v -5.672477 0.958089 -0.089826
-v -5.672477 0.920190 -0.067946
-v -5.631019 0.920190 -0.067946
-v -5.631019 0.900244 -0.056429
-v -5.914316 0.902238 -0.057581
-v -5.912013 0.944126 -0.081765
-v -5.971897 0.976040 -0.100190
-v -6.119303 0.974046 -0.099038
-v -6.204523 0.932158 -0.074855
-v -6.204523 0.888276 -0.049519
-v -6.333503 0.890270 -0.050671
-v -6.374961 0.878302 -0.043762
-v -6.407207 0.862346 -0.034549
-v -6.432542 0.834420 -0.018426
-v -4.361941 0.963731 0.000000
-v -4.990722 0.970641 0.000000
-v -4.993025 0.993674 0.000000
-v -5.071334 1.023615 0.000000
-v -5.587258 1.021312 0.000000
-v -5.672477 0.982158 0.000000
-v -5.672477 0.938396 0.000000
-v -5.631019 0.938396 0.000000
-v -5.631019 0.915364 0.000000
-v -5.914316 0.917667 0.000000
-v -5.912013 0.966034 0.000000
-v -5.971897 1.002886 0.000000
-v -6.119303 1.000583 0.000000
-v -6.204523 0.952215 0.000000
-v -6.204523 0.901544 0.000000
-v -6.333503 0.903847 0.000000
-v -6.374961 0.890028 0.000000
-v -6.407207 0.871602 0.000000
-v -6.432542 0.839358 0.000000
-v -4.361941 0.942131 0.080613
-v -4.990722 0.948115 0.084068
-v -4.993025 0.968062 0.095584
-v -5.071334 0.993992 0.110555
-v -5.587258 0.991998 0.109403
-v -5.672477 0.958089 0.089826
-v -5.672477 0.920190 0.067946
-v -5.631019 0.920190 0.067946
-v -5.631019 0.900244 0.056429
-v -5.914316 0.902238 0.057581
-v -5.912013 0.944126 0.081765
-v -5.971897 0.976040 0.100190
-v -6.119303 0.974046 0.099038
-v -6.204523 0.932158 0.074855
-v -6.204523 0.888276 0.049519
-v -6.333503 0.890270 0.050671
-v -6.374961 0.878302 0.043762
-v -6.407207 0.862346 0.034549
-v -6.432542 0.834420 0.018426
-v -4.361941 0.883118 0.139626
-v -4.990722 0.886574 0.145610
-v -4.993025 0.898090 0.165556
-v -5.071334 0.913061 0.191486
-v -5.587258 0.911909 0.189492
-v -5.672477 0.892331 0.155583
-v -5.672477 0.870451 0.117685
-v -5.631019 0.870451 0.117685
-v -5.631019 0.858934 0.097738
-v -5.914316 0.860086 0.099733
-v -5.912013 0.884270 0.141620
-v -5.971897 0.902696 0.173534
-v -6.119303 0.901544 0.171540
-v -6.204523 0.877361 0.129653
-v -6.204523 0.852025 0.085770
-v -6.333503 0.853177 0.087765
-v -6.374961 0.846267 0.075797
-v -6.407207 0.837054 0.059840
-v -6.432542 0.820931 0.031914
-v -4.361941 0.802506 0.161226
-v -4.990722 0.802506 0.168135
-v -4.993025 0.802506 0.191168
-v -5.071334 0.802506 0.221110
-v -5.587258 0.802506 0.218806
-v -5.672477 0.802506 0.179652
-v -5.672477 0.802506 0.135890
-v -5.631019 0.802506 0.135890
-v -5.631019 0.802506 0.112858
-v -5.914316 0.802506 0.115162
-v -5.912013 0.802506 0.163529
-v -5.971897 0.802506 0.200381
-v -6.119303 0.802506 0.198078
-v -6.204523 0.802506 0.149710
-v -6.204523 0.802506 0.099038
-v -6.333503 0.802506 0.101342
-v -6.374961 0.802506 0.087522
-v -6.407207 0.802506 0.069097
-v -6.432542 0.802506 0.036852
-v -4.361941 0.721893 0.139626
-v -4.990722 0.718438 0.145610
-v -4.993025 0.706922 0.165556
-v -5.071334 0.691950 0.191486
-v -5.587258 0.693102 0.189492
-v -5.672477 0.712680 0.155583
-v -5.672477 0.734560 0.117685
-v -5.631019 0.734560 0.117685
-v -5.631019 0.746077 0.097738
-v -5.914316 0.744925 0.099733
-v -5.912013 0.720741 0.141620
-v -5.971897 0.702315 0.173534
-v -6.119303 0.703467 0.171540
-v -6.204523 0.727650 0.129653
-v -6.204523 0.752986 0.085770
-v -6.333503 0.751834 0.087765
-v -6.374961 0.758744 0.075797
-v -6.407207 0.767957 0.059840
-v -6.432542 0.784080 0.031914
-v -4.361941 0.662880 0.080613
-v -4.990722 0.656896 0.084068
-v -4.993025 0.636950 0.095584
-v -5.071334 0.611019 0.110555
-v -5.587258 0.613014 0.109403
-v -5.672477 0.646922 0.089826
-v -5.672477 0.684821 0.067946
-v -5.631019 0.684821 0.067946
-v -5.631019 0.704767 0.056429
-v -5.914316 0.702773 0.057581
-v -5.912013 0.660886 0.081765
-v -5.971897 0.628971 0.100190
-v -6.119303 0.630966 0.099038
-v -6.204523 0.672853 0.074855
-v -6.204523 0.716735 0.049519
-v -6.333503 0.714741 0.050671
-v -6.374961 0.726709 0.043762
-v -6.407207 0.742666 0.034549
-v -6.432542 0.770591 0.018426
-v -5.910784 0.869627 0.116239
-v -5.910784 0.918408 0.200717
-v -5.944704 0.917402 0.198975
-v -5.941133 0.941038 0.239907
-v -5.903642 0.940535 0.239036
-v -5.907214 0.954114 0.262550
-v -5.866152 0.953108 0.260809
-v -5.866152 0.975738 0.299999
-v -5.917925 0.974230 0.297386
-v -5.958986 1.036086 0.404507
-v -5.937038 0.799654 0.156645
-v -5.937038 0.848435 0.241122
-v -5.964480 0.864695 0.229410
-v -5.961591 0.886514 0.271392
-v -5.931260 0.866928 0.281541
-v -5.934149 0.882324 0.304005
-v -5.900930 0.860416 0.314333
-v -5.900930 0.883046 0.353523
-v -5.942815 0.907892 0.335693
-v -5.976035 0.990649 0.430744
-v -6.005771 0.756409 0.181617
-v -6.005771 0.805190 0.266094
-v -6.016253 0.832121 0.248220
-v -6.015150 0.852816 0.290850
-v -6.003564 0.821435 0.307810
-v -6.004667 0.837954 0.329626
-v -5.991979 0.803130 0.347412
-v -5.991979 0.825761 0.386603
-v -6.007978 0.866893 0.359368
-v -6.020667 0.962567 0.446960
-v -6.090730 0.756409 0.181617
-v -6.090730 0.805190 0.266094
-v -6.080248 0.832121 0.248220
-v -6.081351 0.852816 0.290850
-v -6.092937 0.821435 0.307810
-v -6.091834 0.837954 0.329626
-v -6.104522 0.803130 0.347412
-v -6.104522 0.825761 0.386603
-v -6.088523 0.866893 0.359368
-v -6.075834 0.962567 0.446960
-v -6.159463 0.799654 0.156645
-v -6.159463 0.848435 0.241122
-v -6.132021 0.864695 0.229410
-v -6.134910 0.886514 0.271392
-v -6.165241 0.866928 0.281541
-v -6.162352 0.882324 0.304005
-v -6.195571 0.860416 0.314333
-v -6.195571 0.883046 0.353523
-v -6.153686 0.907892 0.335693
-v -6.120466 0.990649 0.430744
-v -6.185717 0.869627 0.116239
-v -6.185717 0.918408 0.200717
-v -6.151797 0.917402 0.198975
-v -6.155367 0.941038 0.239907
-v -6.192859 0.940535 0.239036
-v -6.189287 0.954114 0.262550
-v -6.230349 0.953108 0.260809
-v -6.230349 0.975738 0.299999
-v -6.178576 0.974230 0.297386
-v -6.137515 1.036086 0.404507
-v -6.159463 0.939600 0.075834
-v -6.159463 0.988381 0.160311
-v -6.132021 0.970110 0.168539
-v -6.134910 0.995562 0.208422
-v -6.165241 1.014143 0.196532
-v -6.162352 1.025903 0.221096
-v -6.195571 1.045799 0.207285
-v -6.195571 1.068430 0.246475
-v -6.153686 1.040567 0.259081
-v -6.120466 1.081522 0.378270
-v -6.090730 0.982846 0.050862
-v -6.090730 1.031626 0.135339
-v -6.080248 1.002684 0.149730
-v -6.081351 1.029261 0.188964
-v -6.092937 1.059635 0.170262
-v -6.091834 1.070273 0.195475
-v -6.104522 1.103086 0.174205
-v -6.104522 1.125716 0.213395
-v -6.088523 1.081566 0.235406
-v -6.075834 1.109604 0.362054
-v -6.005771 0.982846 0.050862
-v -6.005771 1.031626 0.135339
-v -6.016253 1.002684 0.149730
-v -6.015150 1.029261 0.188964
-v -6.003564 1.059635 0.170262
-v -6.004667 1.070273 0.195475
-v -5.991979 1.103086 0.174205
-v -5.991979 1.125716 0.213395
-v -6.007978 1.081566 0.235406
-v -6.020667 1.109604 0.362054
-v -5.937038 0.939600 0.075834
-v -5.937038 0.988381 0.160311
-v -5.964480 0.970110 0.168539
-v -5.961591 0.995562 0.208422
-v -5.931260 1.014143 0.196532
-v -5.934149 1.025903 0.221096
-v -5.900930 1.045799 0.207285
-v -5.900930 1.068430 0.246475
-v -5.942815 1.040567 0.259081
-v -5.976035 1.081522 0.378270
-v -6.057447 1.197186 0.500912
-v -6.075834 1.155618 0.524914
-v -6.074689 1.208842 0.581516
-v -6.055402 1.250102 0.557690
-v -6.057447 1.159340 0.448186
-v -6.075834 1.145818 0.424770
-v -6.087416 1.139148 0.430044
-v -6.090249 1.130536 0.437978
-v -6.075834 1.117707 0.472226
-v -6.067914 1.276189 0.654324
-v -6.044979 1.316025 0.631321
-v -6.051891 1.346961 0.754793
-v -6.021833 1.383071 0.733942
-v -6.031030 1.417630 0.880209
-v -5.992507 1.447098 0.863192
-v -6.020324 1.482188 1.015875
-v -5.976293 1.505155 1.002613
-v -6.029022 1.532889 1.137414
-v -5.983540 1.553628 1.125439
-v -6.040538 1.577507 1.240926
-v -5.994937 1.598365 1.228882
-v -6.075834 1.080618 0.568223
-v -6.057447 1.039050 0.592226
-v -6.059490 1.062074 0.666266
-v -6.076971 1.103934 0.642094
-v -6.075834 1.053936 0.509050
-v -6.090249 1.017862 0.503042
-v -6.087416 1.006684 0.506534
-v -6.075834 0.998782 0.509675
-v -6.057447 1.012303 0.533091
-v -6.069829 1.094130 0.759453
-v -6.083498 1.137041 0.734674
-v -6.092449 1.152032 0.867353
-v -6.097942 1.196290 0.841796
-v -6.120296 1.235269 0.985511
-v -6.114368 1.279485 0.959979
-v -6.134706 1.329426 1.104087
-v -6.119663 1.371990 1.079508
-v -6.126785 1.412280 1.207060
-v -6.108944 1.454025 1.182954
-v -6.115387 1.479509 1.297515
-v -6.097427 1.521373 1.273342
-v -6.020667 1.155618 0.524914
-v -6.039054 1.197186 0.500912
-v -6.037012 1.249802 0.557863
-v -6.019531 1.207943 0.582035
-v -6.020667 1.117707 0.472226
-v -6.006252 1.130536 0.437978
-v -6.009085 1.139148 0.430044
-v -6.020667 1.145818 0.424770
-v -6.039054 1.159340 0.448186
-v -6.026671 1.314487 0.632209
-v -6.013003 1.271577 0.656987
-v -6.004052 1.378995 0.736295
-v -5.998559 1.334737 0.761851
-v -5.976205 1.439723 0.867450
-v -5.982133 1.395507 0.892983
-v -5.961794 1.495354 1.008273
-v -5.976838 1.452790 1.032852
-v -5.969716 1.543122 1.131506
-v -5.987557 1.501376 1.155612
-v -5.981113 1.587858 1.234950
-v -5.999074 1.545994 1.259124
-v -6.039054 1.039050 0.592226
-v -6.020667 1.080618 0.568223
-v -6.021812 1.103034 0.642614
-v -6.041099 1.061774 0.666439
-v -6.039054 1.012303 0.533091
-v -6.020667 0.998782 0.509675
-v -6.009085 1.006684 0.506534
-v -6.006252 1.017862 0.503042
-v -6.020667 1.053936 0.509050
-v -6.028587 1.132429 0.737338
-v -6.051523 1.092593 0.760341
-v -6.044611 1.184066 0.848855
-v -6.074668 1.147957 0.869706
-v -6.065471 1.257363 0.972754
-v -6.103994 1.227894 0.989770
-v -6.076178 1.342592 1.096485
-v -6.120208 1.319625 1.109747
-v -6.067480 1.422512 1.201151
-v -6.112961 1.401774 1.213127
-v -6.055963 1.489859 1.291538
-v -6.101563 1.469002 1.303582
-v -5.910784 0.668278 0.000000
-v -5.910784 0.570729 0.000000
-v -5.944704 0.572740 0.000000
-v -5.941133 0.525474 0.000000
-v -5.903642 0.526479 0.000000
-v -5.907214 0.499326 0.000000
-v -5.866152 0.501338 0.000000
-v -5.866152 0.456082 0.000000
-v -5.917925 0.459099 0.000000
-v -5.958986 0.335402 0.000000
-v -5.937038 0.668278 -0.080801
-v -5.937038 0.570729 -0.080801
-v -5.964480 0.572740 -0.060863
-v -5.961591 0.525474 -0.062962
-v -5.931260 0.526479 -0.084998
-v -5.934149 0.499326 -0.082899
-v -5.900930 0.501338 -0.107035
-v -5.900930 0.456082 -0.107035
-v -5.942815 0.459099 -0.076603
-v -5.976035 0.335402 -0.052468
-v -6.005771 0.668278 -0.130738
-v -6.005771 0.570729 -0.130738
-v -6.016253 0.572740 -0.098478
-v -6.015150 0.525474 -0.101874
-v -6.003564 0.526479 -0.137530
-v -6.004667 0.499326 -0.134134
-v -5.991979 0.501338 -0.173186
-v -5.991979 0.456082 -0.173186
-v -6.007978 0.459099 -0.123947
-v -6.020667 0.335402 -0.084895
-v -6.090730 0.668278 -0.130738
-v -6.090730 0.570729 -0.130738
-v -6.080248 0.572740 -0.098478
-v -6.081351 0.525474 -0.101874
-v -6.092937 0.526479 -0.137530
-v -6.091834 0.499326 -0.134134
-v -6.104522 0.501338 -0.173186
-v -6.104522 0.456082 -0.173186
-v -6.088523 0.459099 -0.123947
-v -6.075834 0.335402 -0.084895
-v -6.159463 0.668278 -0.080801
-v -6.159463 0.570729 -0.080801
-v -6.132021 0.572740 -0.060863
-v -6.134910 0.525474 -0.062962
-v -6.165241 0.526479 -0.084998
-v -6.162352 0.499326 -0.082899
-v -6.195571 0.501338 -0.107035
-v -6.195571 0.456082 -0.107035
-v -6.153686 0.459099 -0.076603
-v -6.120466 0.335402 -0.052468
-v -6.185717 0.668278 0.000000
-v -6.185717 0.570729 0.000000
-v -6.151797 0.572740 0.000000
-v -6.155367 0.525474 0.000000
-v -6.192859 0.526479 0.000000
-v -6.189287 0.499326 0.000000
-v -6.230349 0.501338 0.000000
-v -6.230349 0.456082 0.000000
-v -6.178576 0.459099 0.000000
-v -6.137515 0.335402 0.000000
-v -6.159463 0.668278 0.080801
-v -6.159463 0.570729 0.080801
-v -6.132021 0.572740 0.060863
-v -6.134910 0.525474 0.062962
-v -6.165241 0.526479 0.084998
-v -6.162352 0.499326 0.082899
-v -6.195571 0.501338 0.107035
-v -6.195571 0.456082 0.107035
-v -6.153686 0.459099 0.076603
-v -6.120466 0.335402 0.052468
-v -6.090730 0.668278 0.130738
-v -6.090730 0.570729 0.130738
-v -6.080248 0.572740 0.098478
-v -6.081351 0.525474 0.101874
-v -6.092937 0.526479 0.137530
-v -6.091834 0.499326 0.134134
-v -6.104522 0.501338 0.173186
-v -6.104522 0.456082 0.173186
-v -6.088523 0.459099 0.123947
-v -6.075834 0.335402 0.084895
-v -6.005771 0.668278 0.130738
-v -6.005771 0.570729 0.130738
-v -6.016253 0.572740 0.098478
-v -6.015150 0.525474 0.101874
-v -6.003564 0.526479 0.137530
-v -6.004667 0.499326 0.134134
-v -5.991979 0.501338 0.173186
-v -5.991979 0.456082 0.173186
-v -6.007978 0.459099 0.123947
-v -6.020667 0.335402 0.084895
-v -5.937038 0.668278 0.080801
-v -5.937038 0.570729 0.080801
-v -5.964480 0.572740 0.060863
-v -5.961591 0.525474 0.062962
-v -5.931260 0.526479 0.084998
-v -5.934149 0.499326 0.082899
-v -5.900930 0.501338 0.107035
-v -5.900930 0.456082 0.107035
-v -5.942815 0.459099 0.076603
-v -5.976035 0.335402 0.052468
-v -6.057447 0.171357 0.091303
-v -6.075834 0.171357 0.043303
-v -6.074689 0.095726 0.061090
-v -6.055402 0.095726 0.108736
-v -6.057447 0.235942 0.084895
-v -6.075834 0.262982 0.084895
-v -6.087416 0.261750 0.076481
-v -6.090249 0.259186 0.065055
-v -6.075834 0.235942 0.036820
-v -6.067914 -0.001003 0.083003
-v -6.044979 -0.001003 0.129004
-v -6.051891 -0.123398 0.094051
-v -6.021833 -0.123398 0.135749
-v -6.031030 -0.267346 0.092534
-v -5.992507 -0.267346 0.126563
-v -6.020324 -0.417115 0.080599
-v -5.976293 -0.417115 0.107121
-v -6.029022 -0.547721 0.063729
-v -5.983540 -0.547721 0.087677
-v -6.040538 -0.659673 0.050606
-v -5.994937 -0.659673 0.074690
-v -6.075834 0.171357 -0.043303
-v -6.057447 0.171357 -0.091303
-v -6.059490 0.095726 -0.108390
-v -6.076971 0.095726 -0.060052
-v -6.075834 0.235942 -0.036820
-v -6.090249 0.259186 -0.065055
-v -6.087416 0.261750 -0.076481
-v -6.075834 0.262982 -0.084895
-v -6.057447 0.235942 -0.084895
-v -6.069829 -0.001003 -0.127228
-v -6.083498 -0.001003 -0.077678
-v -6.092449 -0.123398 -0.131042
-v -6.097942 -0.123398 -0.079935
-v -6.120296 -0.267346 -0.118046
-v -6.114368 -0.267346 -0.066988
-v -6.134706 -0.417115 -0.095802
-v -6.119663 -0.417115 -0.046651
-v -6.126785 -0.547721 -0.075545
-v -6.108944 -0.547721 -0.027339
-v -6.115387 -0.659673 -0.062558
-v -6.097427 -0.659673 -0.014216
-v -6.020667 0.171357 0.043303
-v -6.039054 0.171357 0.091303
-v -6.037012 0.095726 0.108390
-v -6.019531 0.095726 0.060052
-v -6.020667 0.235942 0.036820
-v -6.006252 0.259186 0.065055
-v -6.009085 0.261750 0.076481
-v -6.020667 0.262982 0.084895
-v -6.039054 0.235942 0.084895
-v -6.026671 -0.001003 0.127228
-v -6.013003 -0.001003 0.077678
-v -6.004052 -0.123398 0.131042
-v -5.998559 -0.123398 0.079935
-v -5.976205 -0.267346 0.118046
-v -5.982133 -0.267346 0.066988
-v -5.961794 -0.417115 0.095802
-v -5.976838 -0.417115 0.046651
-v -5.969716 -0.547721 0.075545
-v -5.987557 -0.547721 0.027339
-v -5.981113 -0.659673 0.062558
-v -5.999074 -0.659673 0.014216
-v -6.039054 0.171357 -0.091303
-v -6.020667 0.171357 -0.043303
-v -6.021812 0.095726 -0.061090
-v -6.041099 0.095726 -0.108736
-v -6.039054 0.235942 -0.084895
-v -6.020667 0.262982 -0.084895
-v -6.009085 0.261750 -0.076481
-v -6.006252 0.259186 -0.065055
-v -6.020667 0.235942 -0.036820
-v -6.028587 -0.001003 -0.083003
-v -6.051523 -0.001003 -0.129004
-v -6.044611 -0.123398 -0.094051
-v -6.074668 -0.123398 -0.135749
-v -6.065471 -0.267346 -0.092534
-v -6.103994 -0.267346 -0.126563
-v -6.076178 -0.417115 -0.080599
-v -6.120208 -0.417115 -0.107121
-v -6.067480 -0.547721 -0.063729
-v -6.112961 -0.547721 -0.087677
-v -6.055963 -0.659673 -0.050606
-v -6.101563 -0.659673 -0.074690
-v -5.910784 0.869615 -0.116246
-v -5.910784 0.918387 -0.200729
-v -5.944704 0.917382 -0.198987
-v -5.941133 0.941014 -0.239922
-v -5.903642 0.940510 -0.239050
-v -5.907214 0.954086 -0.262566
-v -5.866152 0.953081 -0.260824
-v -5.866152 0.975706 -0.300018
-v -5.917925 0.974198 -0.297405
-v -5.958986 1.036043 -0.404531
-v -5.937038 0.939592 -0.075849
-v -5.937038 0.988364 -0.160330
-v -5.964480 0.970091 -0.168557
-v -5.961591 0.995541 -0.208442
-v -5.931260 1.014122 -0.196554
-v -5.934149 1.025880 -0.221119
-v -5.900930 1.045778 -0.207310
-v -5.900930 1.068404 -0.246503
-v -5.942815 1.040540 -0.259106
-v -5.976035 1.081482 -0.378299
-v -6.005771 0.982840 -0.050882
-v -6.005771 1.031612 -0.135363
-v -6.016253 1.002668 -0.149750
-v -6.015150 1.029241 -0.188987
-v -6.003564 1.059618 -0.170290
-v -6.004667 1.070252 -0.195503
-v -5.991979 1.103067 -0.174237
-v -5.991979 1.125694 -0.213430
-v -6.007978 1.081542 -0.235435
-v -6.020667 1.109566 -0.362086
-v -6.090730 0.982840 -0.050882
-v -6.090730 1.031612 -0.135363
-v -6.080248 1.002668 -0.149750
-v -6.081351 1.029241 -0.188987
-v -6.092937 1.059618 -0.170290
-v -6.091834 1.070252 -0.195503
-v -6.104522 1.103067 -0.174237
-v -6.104522 1.125694 -0.213430
-v -6.088523 1.081542 -0.235435
-v -6.075834 1.109566 -0.362086
-v -6.159463 0.939592 -0.075849
-v -6.159463 0.988364 -0.160330
-v -6.132021 0.970091 -0.168557
-v -6.134910 0.995541 -0.208442
-v -6.165241 1.014122 -0.196554
-v -6.162352 1.025880 -0.221119
-v -6.195571 1.045778 -0.207310
-v -6.195571 1.068404 -0.246503
-v -6.153686 1.040540 -0.259106
-v -6.120466 1.081482 -0.378299
-v -6.185717 0.869615 -0.116246
-v -6.185717 0.918387 -0.200729
-v -6.151797 0.917382 -0.198987
-v -6.155367 0.941014 -0.239922
-v -6.192859 0.940510 -0.239050
-v -6.189287 0.954086 -0.262566
-v -6.230349 0.953081 -0.260824
-v -6.230349 0.975706 -0.300018
-v -6.178576 0.974198 -0.297405
-v -6.137515 1.036043 -0.404531
-v -6.159463 0.799638 -0.156645
-v -6.159463 0.848410 -0.241126
-v -6.132021 0.864671 -0.229417
-v -6.134910 0.886486 -0.271401
-v -6.165241 0.866898 -0.281547
-v -6.162352 0.882292 -0.304014
-v -6.195571 0.860383 -0.314338
-v -6.195571 0.883010 -0.353532
-v -6.153686 0.907857 -0.335704
-v -6.120466 0.990603 -0.430764
-v -6.090730 0.756390 -0.181612
-v -6.090730 0.805162 -0.266094
-v -6.080248 0.832095 -0.248223
-v -6.081351 0.852786 -0.290856
-v -6.092937 0.821403 -0.307812
-v -6.091834 0.837920 -0.329630
-v -6.104522 0.803094 -0.347412
-v -6.104522 0.825720 -0.386606
-v -6.088523 0.866854 -0.359374
-v -6.075834 0.962520 -0.446977
-v -6.005771 0.756390 -0.181612
-v -6.005771 0.805162 -0.266094
-v -6.016253 0.832095 -0.248223
-v -6.015150 0.852786 -0.290856
-v -6.003564 0.821403 -0.307812
-v -6.004667 0.837920 -0.329630
-v -5.991979 0.803094 -0.347412
-v -5.991979 0.825720 -0.386606
-v -6.007978 0.866854 -0.359374
-v -6.020667 0.962520 -0.446977
-v -5.937038 0.799638 -0.156645
-v -5.937038 0.848410 -0.241126
-v -5.964480 0.864671 -0.229417
-v -5.961591 0.886486 -0.271401
-v -5.931260 0.866898 -0.281547
-v -5.934149 0.882292 -0.304014
-v -5.900930 0.860383 -0.314338
-v -5.900930 0.883010 -0.353532
-v -5.942815 0.907857 -0.335704
-v -5.976035 0.990603 -0.430764
-v -6.057447 1.038989 -0.592250
-v -6.075834 1.080558 -0.568252
-v -6.074689 1.102967 -0.642645
-v -6.055402 1.061704 -0.666466
-v -6.057447 1.012247 -0.533113
-v -6.075834 0.998728 -0.509696
-v -6.087416 1.006631 -0.506555
-v -6.090249 1.017809 -0.503064
-v -6.075834 1.053882 -0.509077
-v -6.067914 1.132351 -0.737372
-v -6.044979 1.092513 -0.760371
-v -6.051891 1.183977 -0.848895
-v -6.021833 1.147866 -0.869743
-v -6.031030 1.257261 -0.972801
-v -5.992507 1.227790 -0.989814
-v -6.020324 1.342477 -1.096541
-v -5.976293 1.319508 -1.109801
-v -6.029022 1.422386 -1.201217
-v -5.983540 1.401646 -1.213190
-v -6.040538 1.489724 -1.291610
-v -5.994937 1.468866 -1.303652
-v -6.075834 1.155563 -0.524952
-v -6.057447 1.197134 -0.500953
-v -6.059490 1.249744 -0.557910
-v -6.076971 1.207882 -0.582078
-v -6.075834 1.117658 -0.472259
-v -6.090249 1.130490 -0.438013
-v -6.087416 1.139102 -0.430079
-v -6.075834 1.145774 -0.424806
-v -6.057447 1.159293 -0.448223
-v -6.069829 1.314421 -0.632263
-v -6.083498 1.271508 -0.657037
-v -6.092449 1.378918 -0.736355
-v -6.097942 1.334657 -0.761907
-v -6.120296 1.439632 -0.867518
-v -6.114368 1.395414 -0.893045
-v -6.134706 1.495248 -1.008346
-v -6.119663 1.452681 -1.032920
-v -6.126785 1.543003 -1.131584
-v -6.108944 1.501255 -1.155686
-v -6.115387 1.587728 -1.235032
-v -6.097427 1.545862 -1.259202
-v -6.020667 1.080558 -0.568252
-v -6.039054 1.038989 -0.592250
-v -6.037012 1.062004 -0.666294
-v -6.019531 1.103866 -0.642126
-v -6.020667 1.053882 -0.509077
-v -6.006252 1.017809 -0.503064
-v -6.009085 1.006631 -0.506555
-v -6.020667 0.998728 -0.509696
-v -6.039054 1.012247 -0.533113
-v -6.026671 1.094050 -0.759483
-v -6.013003 1.136963 -0.734710
-v -6.004052 1.151941 -0.867390
-v -5.998559 1.196202 -0.841838
-v -5.976205 1.235166 -0.985557
-v -5.982133 1.279384 -0.960029
-v -5.961794 1.329310 -1.104142
-v -5.976838 1.371877 -1.079568
-v -5.969716 1.412153 -1.207124
-v -5.987557 1.453901 -1.183022
-v -5.981113 1.479373 -1.297586
-v -5.999074 1.521239 -1.273417
-v -6.039054 1.197134 -0.500953
-v -6.020667 1.155563 -0.524952
-v -6.021812 1.208781 -0.581558
-v -6.041099 1.250044 -0.557737
-v -6.039054 1.159293 -0.448223
-v -6.020667 1.145774 -0.424806
-v -6.009085 1.139102 -0.430079
-v -6.006252 1.130490 -0.438013
-v -6.020667 1.117658 -0.472259
-v -6.028587 1.276120 -0.654374
-v -6.051523 1.315958 -0.631375
-v -6.044611 1.346882 -0.754850
-v -6.074668 1.382994 -0.734002
-v -6.065471 1.417537 -0.880273
-v -6.103994 1.447008 -0.863259
-v -6.076178 1.482082 -1.015947
-v -6.120208 1.505050 -1.002687
-v -6.067480 1.532770 -1.137491
-v -6.112961 1.553510 -1.125518
-v -6.055963 1.577377 -1.241008
-v -6.101563 1.598236 -1.228966
-v -6.652150 -0.632658 -0.924800
-v -6.597370 -0.668394 -0.946771
-v -6.671355 -0.648315 -0.924800
-v -6.654971 -0.715357 -0.946771
-v -6.683727 2.161171 -0.924800
-v -6.603771 2.180655 -0.946771
-v -6.701970 2.215354 -0.924800
-v -6.648571 2.313719 -0.946771
-v -7.420620 2.208322 -0.924800
-v -7.448570 2.305891 -0.946771
-v -7.470881 2.160026 -0.924800
-v -7.538171 2.219793 -0.946771
-v -8.039143 0.316510 -0.924800
-v -8.101371 0.341298 -0.946771
-v -8.043410 0.298243 -0.924800
-v -8.114171 0.286508 -0.946771
-v -7.595953 -0.564330 -0.924800
-v -7.653371 -0.637086 -0.946771
-v -7.529748 -0.609874 -0.924800
-v -7.550971 -0.707530 -0.946771
-v -7.420620 2.208322 -0.990720
-v -7.448570 2.305891 -0.968749
-v -6.701970 2.215354 -0.990720
-v -6.648571 2.313719 -0.968749
-v -6.683727 2.161171 -0.990720
-v -6.603771 2.180655 -0.968749
-v -6.652150 -0.632658 -0.990720
-v -6.597370 -0.668394 -0.968749
-v -6.671355 -0.648315 -0.990720
-v -6.654971 -0.715357 -0.968749
-v -7.529748 -0.609874 -0.990720
-v -7.550971 -0.707530 -0.968749
-v -7.595953 -0.564330 -0.990720
-v -7.653371 -0.637086 -0.968749
-v -8.043410 0.298243 -0.990720
-v -8.114171 0.286508 -0.968749
-v -8.039143 0.316510 -0.990720
-v -8.101371 0.341298 -0.968749
-v -7.470881 2.160026 -0.990720
-v -7.538171 2.219793 -0.968749
-v -7.280895 0.690445 -0.990720
-v -7.280895 0.690445 -0.924800
-v -7.280895 0.690445 1.027360
-v -6.671355 -0.648315 1.027360
-v -6.652150 -0.632658 1.027360
-v -7.280895 0.690445 0.961440
-v -7.420620 2.208322 0.961440
-v -6.701970 2.215354 0.961440
-v -6.648571 2.313719 1.005389
-v -6.603771 2.180655 1.005389
-v -6.603771 2.180655 0.983411
-v -6.648571 2.313719 0.983411
-v -7.448570 2.305891 1.005389
-v -7.448570 2.305891 0.983411
-v -7.538171 2.219793 1.005389
-v -7.538171 2.219793 0.983411
-v -8.101371 0.341298 1.005389
-v -8.101371 0.341298 0.983411
-v -8.114171 0.286508 1.005389
-v -8.114171 0.286508 0.983411
-v -7.653371 -0.637086 1.005389
-v -7.653371 -0.637086 0.983411
-v -7.550971 -0.707530 1.005389
-v -7.550971 -0.707530 0.983411
-v -6.654971 -0.715357 1.005389
-v -6.654971 -0.715357 0.983411
-v -6.597370 -0.668394 1.005389
-v -6.597370 -0.668394 0.983411
-v -6.683727 2.161171 1.027360
-v -6.701970 2.215354 1.027360
-v -7.420620 2.208322 1.027360
-v -7.470881 2.160026 1.027360
-v -8.039143 0.316510 1.027360
-v -8.043410 0.298243 1.027360
-v -7.595953 -0.564330 1.027360
-v -7.529748 -0.609874 1.027360
-v -6.683727 2.161171 0.961440
-v -6.652150 -0.632658 0.961440
-v -6.671355 -0.648315 0.961440
-v -7.529748 -0.609874 0.961440
-v -7.595953 -0.564330 0.961440
-v -8.043410 0.298243 0.961440
-v -8.039143 0.316510 0.961440
-v -7.470881 2.160026 0.961440
-v 3.383207 0.052740 0.473951
-v 2.350494 0.081034 0.473951
-v 2.293906 0.328602 0.473951
-v 2.046339 1.177408 0.473951
-v 2.039265 1.587665 0.473951
-v 2.166587 1.969627 0.473951
-v 2.322200 1.792793 0.473951
-v 2.322200 1.714986 0.473951
-v 2.209026 1.502784 0.473951
-v 2.293906 1.156188 0.473951
-v 2.548547 0.887399 0.473951
-v 2.682943 0.484216 0.473951
-v 2.661722 0.385189 0.473951
-v 3.142713 0.484216 0.473951
-v 3.581263 0.448850 0.473951
-v 3.694437 0.328602 0.473951
-v 3.694437 0.328602 -0.857951
-v 3.581263 0.448850 -0.857951
-v 3.142713 0.484216 -0.857951
-v 2.661722 0.385189 -0.857951
-v 2.682943 0.484216 -0.857951
-v 2.548547 0.887399 -0.857951
-v 2.293906 1.156188 -0.857951
-v 2.209026 1.502784 -0.857951
-v 2.322200 1.714986 -0.857951
-v 2.322200 1.792793 -0.857951
-v 2.166587 1.969627 -0.857951
-v 2.039265 1.587665 -0.857951
-v 2.046339 1.177408 -0.857951
-v 2.293906 0.328602 -0.857951
-v 2.350494 0.081034 -0.857951
-v 3.383207 0.052740 -0.857951
-v 2.254411 1.188472 -0.576774
-v 2.256044 1.195785 -0.743724
-v 2.175899 1.584710 -0.747397
-v 2.158854 1.578599 -0.577256
-v 2.541006 0.885958 -0.576554
-v 2.542918 0.886322 -0.742794
-v 2.692262 0.432182 -0.576790
-v 2.690981 0.425843 -0.743366
-v 2.668380 0.320721 -0.576910
-v 2.666691 0.337087 -0.742794
-v 3.209750 0.432161 -0.577166
-v 3.216468 0.446320 -0.741566
-v 3.703475 0.392298 -0.578078
-v 3.717558 0.385014 -0.746655
-v 3.830939 0.256904 -0.578539
-v 3.796103 0.275202 -0.742794
-v 3.480457 -0.033833 -0.577357
-v 3.476881 0.009429 -0.745967
-v 2.318102 -0.033833 -0.576640
-v 2.326319 0.004452 -0.742794
-v 2.254397 0.257016 -0.577122
-v 2.269904 0.253758 -0.742532
-v 1.975754 1.212367 -0.577082
-v 1.991553 1.220194 -0.743842
-v 1.967751 1.674170 -0.577620
-v 1.991374 1.679478 -0.745422
-v 2.111019 2.104211 -0.578330
-v 2.125191 2.069886 -0.742794
-v 2.286216 1.905074 -0.577729
-v 2.279950 1.917578 -0.746173
-v 2.286222 1.817474 -0.577553
-v 2.297850 1.825632 -0.728495
-v 2.256044 1.195785 0.359724
-v 2.254411 1.188472 0.192774
-v 2.158854 1.578599 0.193256
-v 2.175899 1.584710 0.363397
-v 2.542918 0.886322 0.358794
-v 2.541006 0.885958 0.192554
-v 2.690981 0.425843 0.359366
-v 2.692262 0.432182 0.192790
-v 2.666691 0.337087 0.358794
-v 2.668380 0.320721 0.192910
-v 3.216468 0.446320 0.357566
-v 3.209750 0.432161 0.193166
-v 3.717558 0.385014 0.362655
-v 3.703475 0.392298 0.194078
-v 3.796103 0.275202 0.358794
-v 3.830939 0.256904 0.194539
-v 3.476881 0.009429 0.361967
-v 3.480457 -0.033833 0.193357
-v 2.326319 0.004452 0.358794
-v 2.318102 -0.033833 0.192640
-v 2.269904 0.253758 0.358532
-v 2.254397 0.257016 0.193122
-v 1.991553 1.220194 0.359842
-v 1.975754 1.212367 0.193082
-v 1.991374 1.679478 0.361422
-v 1.967751 1.674170 0.193620
-v 2.125191 2.069886 0.358794
-v 2.111019 2.104211 0.194330
-v 2.279950 1.917578 0.362173
-v 2.286216 1.905074 0.193729
-v 2.297850 1.825632 0.344495
-v 2.286222 1.817474 0.193553
-v 2.174150 1.555486 -0.299967
-v 2.174150 1.555486 -0.084033
-v 2.266416 1.178659 -0.083550
-v 2.266416 1.178659 -0.300450
-v 2.297210 1.786172 -0.299670
-v 2.297210 1.786172 -0.084330
-v 2.297218 1.870745 -0.299494
-v 2.297218 1.870745 -0.084506
-v 2.128071 2.062912 -0.298894
-v 2.128071 2.062912 -0.085106
-v 1.989601 1.647739 -0.299603
-v 1.989601 1.647739 -0.084397
-v 1.997250 1.201721 -0.300142
-v 1.997250 1.201721 -0.083858
-v 2.266431 0.278822 -0.300101
-v 2.266431 0.278822 -0.083899
-v 2.327940 -0.033833 -0.300583
-v 2.327940 -0.033833 -0.083417
-v 3.450790 -0.033833 -0.299866
-v 3.450790 -0.033833 -0.084134
-v 3.788999 0.278934 -0.298684
-v 3.788999 0.278934 -0.085316
-v 3.666031 0.409625 -0.299145
-v 3.666031 0.409625 -0.084855
-v 3.189325 0.448022 -0.300057
-v 3.189325 0.448022 -0.083943
-v 2.666354 0.340333 -0.300313
-v 2.666354 0.340333 -0.083687
-v 2.689428 0.448001 -0.300433
-v 2.689428 0.448001 -0.083567
-v 2.543294 0.886394 -0.300669
-v 2.543294 0.886394 -0.083331
-v 2.326785 0.055070 0.431320
-v 3.566148 0.055070 0.431320
-v 3.566148 0.055070 -0.808045
-v 2.326785 0.055070 -0.808045
-v 2.326785 -0.033509 0.431320
-v 2.326785 -0.033509 -0.808045
-v 3.566148 -0.033509 0.431320
-v 3.566148 -0.033509 -0.808045
-v 3.566148 -0.033509 0.368364
-v 3.566148 -0.033509 -0.745089
-v 2.407060 -0.033509 0.431320
-v 3.485872 -0.033509 0.431320
-v 2.326785 -0.033509 -0.745089
-v 2.326785 -0.033509 0.368364
-v 3.485872 -0.033509 -0.808045
-v 2.407060 -0.033509 -0.808045
-v 3.485872 -0.033509 -0.745089
-v 2.407060 -0.033509 -0.745089
-v 2.407060 -0.033509 0.368364
-v 3.485872 -0.033509 0.368364
-v 3.566148 -0.145547 0.368364
-v 3.485872 -0.145547 0.368364
-v 3.485872 -0.145547 0.431320
-v 3.566148 -0.145547 0.431320
-v 3.566148 -0.145547 -0.808045
-v 3.485872 -0.145547 -0.808045
-v 3.485872 -0.145547 -0.745089
-v 3.566148 -0.145547 -0.745089
-v 2.326785 -0.145547 -0.745089
-v 2.407060 -0.145547 -0.745089
-v 2.407060 -0.145547 -0.808045
-v 2.326785 -0.145547 -0.808045
-v 2.326785 -0.145547 0.431320
-v 2.407060 -0.145547 0.431320
-v 2.407060 -0.145547 0.368364
-v 2.326785 -0.145547 0.368364
-v 3.485872 -1.314502 0.368364
-v 3.485872 -1.314502 0.431320
-v 3.566148 -1.314502 0.431320
-v 3.566148 -1.314502 0.368364
-v 3.485872 -1.314502 -0.808045
-v 3.485872 -1.314502 -0.745089
-v 3.566148 -1.314502 -0.745089
-v 3.566148 -1.314502 -0.808045
-v 2.002534 -2.174662 -0.745089
-v 2.002534 -2.174662 -0.808045
-v 1.922257 -2.174662 -0.808045
-v 1.922257 -2.174662 -0.745089
-v 2.002534 -2.174662 0.431320
-v 2.002534 -2.174662 0.368364
-v 1.922257 -2.174662 0.368364
-v 1.922257 -2.174662 0.431320
-v 3.485872 -1.414643 0.431320
-v 3.566148 -1.414643 0.431320
-v 3.566148 -1.414643 0.368364
-v 3.485872 -1.414643 0.368364
-v 3.485872 -1.414643 -0.745089
-v 3.566148 -1.414643 -0.745089
-v 3.566148 -1.414643 -0.808045
-v 3.485872 -1.414643 -0.808045
-v 2.002534 -2.274802 -0.808045
-v 1.922257 -2.274802 -0.808045
-v 1.922257 -2.274802 -0.745089
-v 2.002534 -2.274802 -0.745089
-v 2.002534 -2.274802 0.368364
-v 1.922257 -2.274802 0.368364
-v 1.922257 -2.274802 0.431320
-v 2.002534 -2.274802 0.431320
-v 2.326785 -0.145547 0.579052
-v 2.326785 -0.033509 0.579052
-v 2.407060 -0.033509 0.579052
-v 2.407060 -0.145547 0.579052
-v 2.326785 -0.033509 0.726784
-v 2.407060 -0.033509 0.726784
-v 2.407060 -0.145547 0.726784
-v 2.326785 -0.145547 0.726784
-v 2.638078 -0.033509 0.726784
-v 2.638078 -0.033509 0.579052
-v 2.638078 -0.145547 0.579052
-v 2.638078 -0.145547 0.726784
-v 2.762014 -0.033509 0.579052
-v 2.762014 -0.145547 0.579052
-v 2.762014 -0.145547 0.726784
-v 2.762014 -0.033509 0.726784
-v 3.076319 -0.145547 0.579052
-v 3.076319 -0.145547 0.726784
-v 3.076319 -0.033509 0.726784
-v 3.076319 -0.033509 0.579052
-v 3.200254 -0.145547 0.726784
-v 3.200254 -0.033509 0.726784
-v 3.200254 -0.033509 0.579052
-v 3.200254 -0.145547 0.579052
-v 3.485872 -0.033509 0.726784
-v 3.485872 -0.033509 0.579052
-v 3.485872 -0.145547 0.579052
-v 3.485872 -0.145547 0.726784
-v 3.566148 -0.033509 0.579052
-v 3.566148 -0.145547 0.579052
-v 3.566148 -0.145547 0.726784
-v 3.566148 -0.033509 0.726784
-v 3.558830 -0.157445 -0.643584
-v 3.493189 -0.157445 -0.643584
-v 3.493189 -0.157445 0.266859
-v 3.558830 -0.157445 0.266859
-v 3.766842 -0.745399 -0.643584
-v 3.766842 -0.745399 0.266859
-v 3.832481 -0.745399 0.266859
-v 3.832481 -0.745399 -0.643584
-v 3.766842 -0.774153 0.266859
-v 3.832481 -0.774153 0.266859
-v 3.832481 -0.774153 -0.643584
-v 3.766842 -0.774153 -0.643584
-v 4.408539 -0.714663 0.266859
-v 4.408539 -0.685910 0.266859
-v 4.408539 -0.685910 -0.643584
-v 4.408539 -0.714663 -0.643584
-v 3.247484 0.697744 0.614204
-v 3.247387 0.736975 0.610298
-v 3.271619 0.731770 0.585511
-v 3.265822 0.693804 0.595447
-v 3.247387 0.736975 0.695538
-v 3.247484 0.697744 0.691632
-v 3.265822 0.693804 0.710389
-v 3.271619 0.731770 0.720325
-v 3.322226 0.967328 0.585511
-v 3.297993 0.972534 0.610298
-v 3.327432 0.991562 0.610298
-v 3.327432 0.991562 0.695538
-v 3.297993 0.972534 0.695538
-v 3.322226 0.967328 0.720325
-v 3.384335 0.953985 0.585511
-v 3.389541 0.978219 0.610298
-v 3.408569 0.948778 0.610298
-v 3.408569 0.948778 0.695538
-v 3.389541 0.978219 0.695538
-v 3.384335 0.953985 0.720325
-v 3.323423 0.681430 0.595448
-v 3.333729 0.718426 0.585511
-v 3.357962 0.713220 0.610298
-v 3.341760 0.677490 0.614204
-v 3.333729 0.718426 0.720325
-v 3.323423 0.681430 0.710389
-v 3.341760 0.677490 0.691632
-v 3.357962 0.713220 0.695538
-v 2.661806 0.737458 0.614204
-v 2.663875 0.776634 0.610298
-v 2.687787 0.770097 0.585511
-v 2.679898 0.732510 0.595447
-v 2.663875 0.776634 0.695538
-v 2.661806 0.737458 0.691632
-v 2.679898 0.732510 0.710389
-v 2.687787 0.770097 0.720325
-v 2.751331 1.002499 0.585511
-v 2.727422 1.009037 0.610298
-v 2.757869 1.026409 0.610298
-v 2.757869 1.026409 0.695538
-v 2.727422 1.009037 0.695538
-v 2.751331 1.002499 0.720325
-v 2.812608 0.985744 0.585511
-v 2.819146 1.009654 0.610298
-v 2.836517 0.979206 0.610298
-v 2.836517 0.979206 0.695538
-v 2.819146 1.009654 0.695538
-v 2.812608 0.985744 0.720325
-v 2.736727 0.716972 0.595447
-v 2.749061 0.753342 0.585511
-v 2.772970 0.746805 0.610298
-v 2.754818 0.712025 0.614204
-v 2.749061 0.753342 0.720325
-v 2.736727 0.716972 0.710389
-v 2.754818 0.712025 0.691632
-v 2.772970 0.746805 0.695538
-v 3.273266 0.643076 0.690512
-v 3.271127 0.678802 0.700449
-v 3.252790 0.682742 0.681692
-v 3.251810 0.643767 0.665725
-v 3.312423 0.669930 0.700449
-v 3.293898 0.638646 0.690512
-v 3.313398 0.630539 0.665725
-v 3.330761 0.665990 0.681692
-v 3.251810 0.643767 0.640111
-v 3.252790 0.682742 0.624144
-v 3.271127 0.678802 0.605387
-v 3.273266 0.643076 0.615324
-v 3.330761 0.665990 0.624144
-v 3.313398 0.630539 0.640111
-v 3.293898 0.638646 0.615324
-v 3.312423 0.669930 0.605387
-v 2.690973 0.680312 0.690512
-v 2.684366 0.717238 0.700449
-v 2.666275 0.722185 0.681692
-v 2.670652 0.682130 0.665725
-v 2.725109 0.706098 0.700449
-v 2.711257 0.674765 0.690512
-v 2.731586 0.665494 0.665725
-v 2.743200 0.701151 0.681692
-v 2.670652 0.682130 0.640111
-v 2.666275 0.722185 0.624144
-v 2.684366 0.717238 0.605387
-v 2.690973 0.680312 0.615324
-v 2.743200 0.701151 0.624144
-v 2.731586 0.665494 0.640111
-v 2.711257 0.674765 0.615324
-v 2.725109 0.706098 0.605387
-v 2.710638 0.111376 0.615324
-v 2.731586 0.115215 0.640111
-v 2.737270 0.067273 0.608547
-v 2.689531 0.111375 0.615324
-v 2.662822 0.067273 0.608547
-v 2.668598 0.115215 0.640111
-v 2.731586 0.115215 0.665725
-v 2.710638 0.111376 0.690512
-v 2.737270 0.067273 0.697289
-v 2.668598 0.115215 0.665725
-v 2.662822 0.067273 0.697289
-v 2.689531 0.111376 0.690512
-v 3.154166 0.110791 0.615324
-v 3.176193 0.114383 0.640111
-v 3.175510 0.067273 0.608547
-v 3.133137 0.110791 0.615324
-v 3.101063 0.067273 0.608547
-v 3.113034 0.114405 0.640111
-v 3.176193 0.114383 0.665725
-v 3.154166 0.110791 0.690512
-v 3.175510 0.067273 0.697289
-v 3.113034 0.114405 0.665725
-v 3.101063 0.067273 0.697289
-v 3.133137 0.110791 0.690512
-v -6.550838 2.211582 -0.966499
-v -6.515888 2.211582 -0.956135
-v -6.515888 2.218142 -0.969966
-v -6.456883 2.211582 -0.961987
-v -6.421932 2.211582 -0.979284
-v -6.456883 2.218142 -0.975818
-v -6.421932 2.211582 -1.002631
-v -6.456883 2.211582 -1.012994
-v -6.456883 2.218142 -0.999165
-v -6.515888 2.211582 -1.007143
-v -6.550838 2.211582 -0.989846
-v -6.515888 2.218142 -0.993313
-v -6.550838 2.211582 0.989846
-v -6.515888 2.211582 1.007143
-v -6.515888 2.218142 0.993313
-v -6.456884 2.211582 1.012994
-v -6.421932 2.211582 1.002631
-v -6.456883 2.218142 0.999165
-v -6.421932 2.211582 0.979284
-v -6.456884 2.211582 0.961987
-v -6.456883 2.218142 0.975818
-v -6.515888 2.211582 0.956135
-v -6.550838 2.211582 0.966499
-v -6.515888 2.218142 0.969966
-v -6.550838 -0.606571 -0.989846
-v -6.515888 -0.606571 -1.007143
-v -6.515888 -0.613131 -0.993313
-v -6.456884 -0.606571 -1.012994
-v -6.421932 -0.606571 -1.002631
-v -6.456883 -0.613131 -0.999165
-v -6.421932 -0.606571 -0.979284
-v -6.456884 -0.606571 -0.961987
-v -6.456883 -0.613131 -0.975818
-v -6.515888 -0.606571 -0.956135
-v -6.550838 -0.606571 -0.966499
-v -6.515888 -0.613131 -0.969966
-v -6.550838 -0.606571 0.966499
-v -6.515888 -0.606571 0.956135
-v -6.515888 -0.613131 0.969966
-v -6.456883 -0.606571 0.961987
-v -6.421932 -0.606571 0.979284
-v -6.456883 -0.613131 0.975818
-v -6.421932 -0.606571 1.002631
-v -6.456883 -0.606571 1.012994
-v -6.456883 -0.613131 0.999165
-v -6.515888 -0.606571 1.007143
-v -6.550838 -0.606571 0.989846
-v -6.515888 -0.613131 0.993313
-v -6.442657 -0.556564 -1.008954
-v -6.402256 -0.565129 -0.996974
-v -6.411033 -0.593451 -1.008025
-v -6.445984 -0.593451 -1.018389
-v -6.402256 -0.565129 -0.965000
-v -6.442657 -0.568179 -0.945007
-v -6.445984 -0.593451 -0.958755
-v -6.411033 -0.593451 -0.976052
-v -6.523459 -0.568179 -0.936994
-v -6.563859 -0.559614 -0.948973
-v -6.561738 -0.593451 -0.961106
-v -6.526786 -0.593451 -0.950742
-v -6.563859 -0.559614 -0.980946
-v -6.523459 -0.556564 -1.000939
-v -6.526786 -0.593451 -1.010375
-v -6.561738 -0.593451 -0.993078
-v -6.442657 -0.568179 0.945007
-v -6.402256 -0.565129 0.965000
-v -6.411033 -0.593451 0.976052
-v -6.445984 -0.593451 0.958755
-v -6.402256 -0.565129 0.996974
-v -6.442657 -0.556564 1.008954
-v -6.445984 -0.593451 1.018389
-v -6.411033 -0.593451 1.008025
-v -6.523459 -0.556564 1.000939
-v -6.563859 -0.559614 0.980946
-v -6.561738 -0.593451 0.993078
-v -6.526786 -0.593451 1.010375
-v -6.563859 -0.559614 0.948973
-v -6.523459 -0.568179 0.936994
-v -6.526786 -0.593451 0.950742
-v -6.561738 -0.593451 0.961106
-v -6.442657 2.173190 -0.945007
-v -6.402256 2.170140 -0.965000
-v -6.411033 2.198462 -0.976052
-v -6.445984 2.198462 -0.958755
-v -6.402256 2.170140 -0.996974
-v -6.442657 2.161575 -1.008954
-v -6.445984 2.198462 -1.018389
-v -6.411033 2.198462 -1.008025
-v -6.523459 2.161575 -1.000939
-v -6.563859 2.164626 -0.980946
-v -6.561738 2.198462 -0.993078
-v -6.526786 2.198462 -1.010375
-v -6.563859 2.164626 -0.948973
-v -6.523459 2.173190 -0.936994
-v -6.526786 2.198462 -0.950742
-v -6.561738 2.198462 -0.961106
-v -6.442657 2.161575 1.008954
-v -6.402256 2.170140 0.996974
-v -6.411033 2.198462 1.008025
-v -6.445984 2.198462 1.018389
-v -6.402256 2.170140 0.965000
-v -6.442657 2.173190 0.945007
-v -6.445984 2.198462 0.958755
-v -6.411033 2.198462 0.976052
-v -6.523459 2.173190 0.936994
-v -6.563859 2.164626 0.948973
-v -6.561738 2.198462 0.961106
-v -6.526786 2.198462 0.950742
-v -6.563859 2.164626 0.980946
-v -6.523459 2.161575 1.000939
-v -6.526786 2.198462 1.010375
-v -6.561738 2.198462 0.993078
-v -6.553877 -0.465786 -0.945893
-v -6.553877 -0.391027 -1.016794
-v -6.513477 -0.378515 -1.047717
-v -6.516804 -0.490395 -0.977756
-v -6.557206 -0.493445 -0.957762
-v -6.553877 -0.476256 -0.929074
-v -6.553877 -0.520584 -0.836066
-v -6.553877 -0.401497 -0.999974
-v -6.553877 -0.533344 -0.820911
-v -6.553877 -0.489016 -0.913920
-v -6.557206 -0.516675 -0.925790
-v -6.516804 -0.525240 -0.913810
-v -6.513477 -0.558888 -0.799455
-v -6.385606 -0.512302 -0.930838
-v -6.291310 -0.561714 -0.838398
-v -6.432674 -0.569918 -0.807469
-v -6.436002 -0.536270 -0.921823
-v -6.395600 -0.533220 -0.941817
-v -6.365606 -0.503218 -0.948664
-v -6.271310 -0.430573 -1.024224
-v -6.271310 -0.552631 -0.856225
-v -6.291310 -0.416426 -1.038371
-v -6.385606 -0.489071 -0.962811
-v -6.395600 -0.509990 -0.973790
-v -6.436002 -0.501425 -0.985770
-v -6.432674 -0.389545 -1.055730
-v -6.553877 -0.489016 0.913920
-v -6.553877 -0.533344 0.820911
-v -6.513477 -0.558888 0.799455
-v -6.516804 -0.525240 0.913810
-v -6.557206 -0.516675 0.925790
-v -6.553877 -0.476256 0.929074
-v -6.553877 -0.401497 0.999974
-v -6.553877 -0.520584 0.836066
-v -6.553877 -0.391027 1.016794
-v -6.553877 -0.465786 0.945893
-v -6.557206 -0.493445 0.957762
-v -6.516804 -0.490395 0.977756
-v -6.513477 -0.378515 1.047717
-v -6.385606 -0.489071 0.962811
-v -6.291310 -0.416426 1.038371
-v -6.432674 -0.389545 1.055730
-v -6.436002 -0.501425 0.985770
-v -6.395600 -0.509990 0.973790
-v -6.365606 -0.503218 0.948664
-v -6.271310 -0.552632 0.856225
-v -6.271310 -0.430573 1.024224
-v -6.291310 -0.561714 0.838398
-v -6.385606 -0.512302 0.930838
-v -6.395600 -0.533220 0.941817
-v -6.436002 -0.536270 0.921823
-v -6.432674 -0.569918 0.807469
-v -6.553877 2.094027 -0.913920
-v -6.553877 2.138355 -0.820911
-v -6.513477 2.163900 -0.799455
-v -6.516804 2.130251 -0.913810
-v -6.557206 2.121686 -0.925790
-v -6.553877 2.081267 -0.929074
-v -6.553877 2.006508 -0.999974
-v -6.553877 2.125595 -0.836066
-v -6.553877 1.996038 -1.016794
-v -6.553877 2.070798 -0.945893
-v -6.557206 2.098456 -0.957762
-v -6.516804 2.095406 -0.977756
-v -6.513477 1.983526 -1.047717
-v -6.385606 2.094083 -0.962811
-v -6.291310 2.021437 -1.038371
-v -6.432674 1.994556 -1.055730
-v -6.436002 2.106436 -0.985770
-v -6.395600 2.115001 -0.973790
-v -6.365606 2.108230 -0.948664
-v -6.271310 2.157643 -0.856225
-v -6.271310 2.035584 -1.024224
-v -6.291310 2.166726 -0.838398
-v -6.385606 2.117313 -0.930838
-v -6.395600 2.138231 -0.941817
-v -6.436002 2.141281 -0.921823
-v -6.432674 2.174929 -0.807469
-v -6.553877 2.070798 0.945893
-v -6.553877 1.996038 1.016794
-v -6.513477 1.983526 1.047717
-v -6.516804 2.095406 0.977756
-v -6.557206 2.098456 0.957762
-v -6.553877 2.081267 0.929074
-v -6.553877 2.125595 0.836066
-v -6.553877 2.006508 0.999974
-v -6.553877 2.138355 0.820911
-v -6.553877 2.094027 0.913920
-v -6.557206 2.121686 0.925790
-v -6.516804 2.130251 0.913810
-v -6.513477 2.163900 0.799455
-v -6.385606 2.117313 0.930838
-v -6.291310 2.166726 0.838398
-v -6.432674 2.174929 0.807469
-v -6.436002 2.141281 0.921823
-v -6.395600 2.138231 0.941817
-v -6.365606 2.108230 0.948664
-v -6.271310 2.035584 1.024224
-v -6.271310 2.157642 0.856225
-v -6.291310 2.021437 1.038371
-v -6.385606 2.094083 0.962811
-v -6.395600 2.115001 0.973790
-v -6.436002 2.106436 0.985770
-v -6.432674 1.994556 1.055730
-v -5.662365 0.319327 0.014327
-v -5.654130 0.637622 0.004776
-v -5.678872 0.319913 0.004776
-v -5.567191 0.636911 0.014326
-v -5.621512 0.318617 0.023877
-v -5.549762 0.316772 0.028652
-v -5.745218 -0.322582 0.023877
-v -5.818439 -0.655778 0.033999
-v -5.793291 -0.666414 0.041447
-v -5.673468 -0.324427 0.028652
-v -5.857554 -0.660152 0.004776
-v -5.843617 -0.654147 0.024450
-v -5.770397 -0.320952 0.014327
-v -5.786904 -0.320366 0.004776
-v -5.621512 1.286394 0.023877
-v -5.567191 0.968100 0.014326
-v -5.549762 1.288239 0.028652
-v -5.654130 0.967390 0.004776
-v -5.662365 1.285684 0.014327
-v -5.678872 1.285098 0.004776
-v -5.770397 1.925963 0.014327
-v -5.843617 2.259158 0.024450
-v -5.857554 2.265163 0.004776
-v -5.786904 1.925378 0.004776
-v -5.793291 2.271426 0.041447
-v -5.818439 2.260789 0.033999
-v -5.745218 1.927594 0.023877
-v -5.673468 1.929438 0.028652
-v -5.662373 0.816833 0.483178
-v -5.654153 0.807282 0.164883
-v -5.678880 0.807282 0.482593
-v -5.567214 0.816831 0.165594
-v -5.621520 0.826382 0.483889
-v -5.549770 0.831158 0.485734
-v -5.745222 0.826382 1.125088
-v -5.818439 0.836505 1.458283
-v -5.793291 0.843953 1.468920
-v -5.673470 0.831158 1.126933
-v -5.857554 0.807282 1.462658
-v -5.843617 0.826955 1.456653
-v -5.770399 0.816833 1.123458
-v -5.786907 0.807282 1.122872
-v -5.621520 0.826382 -0.483889
-v -5.567214 0.816831 -0.165594
-v -5.549770 0.831158 -0.485734
-v -5.654153 0.807282 -0.164883
-v -5.662373 0.816833 -0.483178
-v -5.678880 0.807282 -0.482593
-v -5.770399 0.816833 -1.123458
-v -5.843617 0.826955 -1.456653
-v -5.857554 0.807282 -1.462658
-v -5.786907 0.807282 -1.122872
-v -5.793291 0.843953 -1.468920
-v -5.818439 0.836505 -1.458283
-v -5.745222 0.826382 -1.125088
-v -5.673470 0.831158 -1.126933
-v -5.236672 0.310729 -0.014327
-v -5.055585 0.632729 -0.004776
-v -5.219225 0.310126 -0.004776
-v -5.150524 0.633505 -0.014326
-v -5.281282 0.311505 -0.023877
-v -5.353973 0.313366 -0.028652
-v -5.575592 -0.327919 -0.023877
-v -5.732744 -0.664128 -0.033999
-v -5.768106 -0.668046 -0.041447
-v -5.648283 -0.326058 -0.028652
-v -5.703842 -0.674308 -0.004776
-v -5.707567 -0.665758 -0.024450
-v -5.550415 -0.329550 -0.014327
-v -5.532968 -0.330152 -0.004776
-v -5.281282 0.311505 0.023877
-v -5.150524 0.633505 0.014326
-v -5.353973 0.313366 0.028652
-v -5.055585 0.632729 0.004776
-v -5.236672 0.310729 0.014327
-v -5.219225 0.310126 0.004776
-v -5.550415 -0.329550 0.014327
-v -5.707567 -0.665758 0.024450
-v -5.703842 -0.674308 0.004776
-v -5.532968 -0.330152 0.004776
-v -5.768106 -0.668046 0.041447
-v -5.732744 -0.664128 0.033999
-v -5.575592 -0.327919 0.023877
-v -5.648283 -0.326058 0.028652
-v -5.621512 0.318617 -0.023877
-v -5.567191 0.636911 -0.014326
-v -5.549762 0.316772 -0.028652
-v -5.654130 0.637622 -0.004776
-v -5.662365 0.319327 -0.014327
-v -5.678872 0.319913 -0.004776
-v -5.770397 -0.320952 -0.014327
-v -5.843617 -0.654147 -0.024450
-v -5.857554 -0.660152 -0.004776
-v -5.786904 -0.320366 -0.004776
-v -5.793291 -0.666414 -0.041447
-v -5.818439 -0.655778 -0.033999
-v -5.745218 -0.322582 -0.023877
-v -5.673468 -0.324427 -0.028652
-v -5.236681 0.816833 -0.491777
-v -5.055609 0.807282 -0.169776
-v -5.219234 0.807282 -0.492378
-v -5.150547 0.816831 -0.169000
-v -5.281291 0.826382 -0.491001
-v -5.353982 0.831158 -0.489140
-v -5.575594 0.826382 -1.130425
-v -5.732744 0.836505 -1.466634
-v -5.768106 0.843953 -1.470551
-v -5.648285 0.831158 -1.128564
-v -5.703842 0.807282 -1.476814
-v -5.707567 0.826955 -1.468264
-v -5.550417 0.816833 -1.132056
-v -5.532970 0.807282 -1.132658
-v -5.281291 0.778629 -0.491001
-v -5.150547 0.788180 -0.169000
-v -5.353982 0.773854 -0.489140
-v -5.055609 0.797730 -0.169776
-v -5.236681 0.788178 -0.491777
-v -5.219234 0.797730 -0.492378
-v -5.550417 0.788178 -1.132056
-v -5.707567 0.778056 -1.468264
-v -5.703842 0.797730 -1.476814
-v -5.532970 0.797730 -1.132658
-v -5.768106 0.761058 -1.470551
-v -5.732744 0.768506 -1.466634
-v -5.575594 0.778629 -1.130425
-v -5.648285 0.773854 -1.128564
-v -5.662373 0.788178 -0.483178
-v -5.654153 0.797730 -0.164883
-v -5.678880 0.797730 -0.482593
-v -5.567214 0.788180 -0.165594
-v -5.621520 0.778629 -0.483889
-v -5.549770 0.773854 -0.485734
-v -5.745222 0.778629 -1.125088
-v -5.818439 0.768506 -1.458283
-v -5.793291 0.761058 -1.468920
-v -5.673470 0.773854 -1.126933
-v -5.857554 0.797730 -1.462658
-v -5.843617 0.778056 -1.456653
-v -5.770399 0.788178 -1.123457
-v -5.786907 0.797730 -1.122872
-v -5.236681 0.788178 0.491777
-v -5.055609 0.797730 0.169776
-v -5.219234 0.797730 0.492378
-v -5.150547 0.788180 0.169000
-v -5.281291 0.778629 0.491001
-v -5.353982 0.773854 0.489140
-v -5.575594 0.778629 1.130425
-v -5.732744 0.768506 1.466634
-v -5.768106 0.761058 1.470551
-v -5.648285 0.773854 1.128564
-v -5.703842 0.797730 1.476814
-v -5.707567 0.778056 1.468264
-v -5.550417 0.788178 1.132056
-v -5.532970 0.797730 1.132658
-v -5.621520 0.778629 0.483889
-v -5.567214 0.788180 0.165594
-v -5.549770 0.773854 0.485734
-v -5.654153 0.797730 0.164883
-v -5.662373 0.788178 0.483178
-v -5.678880 0.797730 0.482593
-v -5.770399 0.788178 1.123458
-v -5.843617 0.778056 1.456653
-v -5.857554 0.797730 1.462658
-v -5.786907 0.797730 1.122872
-v -5.793291 0.761058 1.468920
-v -5.818439 0.768506 1.458283
-v -5.745222 0.778629 1.125088
-v -5.673470 0.773854 1.126933
-v -5.281291 0.826382 0.491001
-v -5.150547 0.816831 0.169000
-v -5.353982 0.831158 0.489140
-v -5.055609 0.807282 0.169776
-v -5.236681 0.816833 0.491777
-v -5.219234 0.807282 0.492378
-v -5.550417 0.816833 1.132056
-v -5.707567 0.826955 1.468264
-v -5.703842 0.807282 1.476814
-v -5.532970 0.807282 1.132658
-v -5.768106 0.843953 1.470551
-v -5.732744 0.836505 1.466634
-v -5.575594 0.826382 1.130425
-v -5.648285 0.831158 1.128564
-v -5.236672 1.294282 0.014327
-v -5.055585 0.972282 0.004776
-v -5.219225 1.294885 0.004776
-v -5.150524 0.971506 0.014326
-v -5.281282 1.293507 0.023877
-v -5.353973 1.291646 0.028652
-v -5.575592 1.932930 0.023877
-v -5.732744 2.269139 0.033999
-v -5.768106 2.273057 0.041447
-v -5.648283 1.931070 0.028652
-v -5.703842 2.279319 0.004776
-v -5.707567 2.270770 0.024450
-v -5.550415 1.934562 0.014327
-v -5.532968 1.935163 0.004776
-v -5.281282 1.293507 -0.023877
-v -5.150524 0.971506 -0.014326
-v -5.353973 1.291646 -0.028652
-v -5.055585 0.972282 -0.004776
-v -5.236672 1.294282 -0.014327
-v -5.219225 1.294885 -0.004776
-v -5.550415 1.934562 -0.014327
-v -5.707567 2.270770 -0.024450
-v -5.703842 2.279319 -0.004776
-v -5.532968 1.935163 -0.004776
-v -5.768106 2.273057 -0.041447
-v -5.732744 2.269139 -0.033999
-v -5.575592 1.932930 -0.023877
-v -5.648283 1.931070 -0.028652
-v -5.662365 1.285684 -0.014327
-v -5.654130 0.967390 -0.004776
-v -5.678872 1.285098 -0.004776
-v -5.567191 0.968100 -0.014326
-v -5.621512 1.286394 -0.023877
-v -5.549762 1.288239 -0.028652
-v -5.745218 1.927594 -0.023877
-v -5.818439 2.260789 -0.033999
-v -5.793291 2.271426 -0.041447
-v -5.673468 1.929438 -0.028652
-v -5.857554 2.265163 -0.004776
-v -5.843617 2.259158 -0.024450
-v -5.770397 1.925963 -0.014327
-v -5.786904 1.925378 -0.004776
-v -5.920925 2.326209 -0.039918
-v -6.012501 2.314141 -0.142722
-v -5.867057 2.315140 -0.179456
-v -5.851737 2.309087 -0.067039
-v -5.876886 2.298450 -0.059590
-v -5.890823 2.304455 -0.039918
-v -5.961326 2.332531 0.000000
-v -6.052902 2.320463 0.102805
-v -6.052902 2.320463 -0.102805
-v -6.012501 2.314141 0.142722
-v -5.920925 2.326209 0.039918
-v -5.890823 2.304455 0.039918
-v -5.876886 2.298450 0.059590
-v -5.851737 2.309087 0.067039
-v -5.867057 2.315140 0.179456
-v -5.745853 2.354991 0.039918
-v -5.745853 2.347372 0.145250
-v -5.786254 2.328774 0.179456
-v -5.770935 2.322721 0.067039
-v -5.735574 2.318803 0.059590
-v -5.731849 2.327352 0.039918
-v -5.745853 2.365859 0.000000
-v -5.745853 2.358239 -0.105333
-v -5.745853 2.358240 0.105333
-v -5.745853 2.347372 -0.145250
-v -5.745853 2.354991 -0.039918
-v -5.731849 2.327352 -0.039918
-v -5.735574 2.318803 -0.059590
-v -5.770935 2.322721 -0.067039
-v -5.786254 2.328774 -0.179456
-v -5.920925 0.842423 1.523703
-v -6.012501 0.945228 1.511635
-v -5.867057 0.981962 1.512634
-v -5.851737 0.869545 1.506582
-v -5.876886 0.862096 1.495945
-v -5.890823 0.842423 1.501950
-v -5.961326 0.802506 1.530026
-v -6.052902 0.699701 1.517958
-v -6.052902 0.905310 1.517958
-v -6.012501 0.659783 1.511635
-v -5.920925 0.762588 1.523703
-v -5.890823 0.762588 1.501950
-v -5.876886 0.742915 1.495945
-v -5.851737 0.735466 1.506582
-v -5.867057 0.623050 1.512634
-v -5.745853 0.762588 1.552486
-v -5.745853 0.657255 1.544866
-v -5.786254 0.623050 1.526268
-v -5.770935 0.735466 1.520215
-v -5.735574 0.742915 1.516298
-v -5.731849 0.762588 1.524846
-v -5.745853 0.802506 1.563353
-v -5.745853 0.907838 1.555734
-v -5.745853 0.697173 1.555735
-v -5.745853 0.947756 1.544866
-v -5.745853 0.842423 1.552486
-v -5.731849 0.842423 1.524846
-v -5.735574 0.862096 1.516298
-v -5.770935 0.869545 1.520215
-v -5.786254 0.981962 1.526268
-v -5.920925 -0.721198 0.039918
-v -6.012501 -0.709130 0.142722
-v -5.867057 -0.710129 0.179456
-v -5.851737 -0.704076 0.067039
-v -5.876886 -0.693439 0.059590
-v -5.890823 -0.699444 0.039918
-v -5.961326 -0.727520 0.000000
-v -6.052902 -0.715452 -0.102805
-v -6.052902 -0.715452 0.102805
-v -6.012501 -0.709130 -0.142722
-v -5.920925 -0.721198 -0.039918
-v -5.890823 -0.699444 -0.039918
-v -5.876886 -0.693439 -0.059590
-v -5.851737 -0.704076 -0.067039
-v -5.867057 -0.710129 -0.179456
-v -5.745853 -0.749980 -0.039918
-v -5.745853 -0.742361 -0.145250
-v -5.786254 -0.723762 -0.179456
-v -5.770935 -0.717710 -0.067039
-v -5.735574 -0.713792 -0.059590
-v -5.731849 -0.722341 -0.039918
-v -5.745853 -0.760847 0.000000
-v -5.745853 -0.753228 0.105333
-v -5.745853 -0.753229 -0.105333
-v -5.745853 -0.742361 0.145250
-v -5.745853 -0.749980 0.039918
-v -5.731849 -0.722341 0.039918
-v -5.735574 -0.713792 0.059590
-v -5.770935 -0.717710 0.067039
-v -5.786254 -0.723762 0.179456
-v -5.920925 0.762588 -1.523703
-v -6.012501 0.659783 -1.511635
-v -5.867057 0.623050 -1.512634
-v -5.851737 0.735466 -1.506582
-v -5.876886 0.742915 -1.495945
-v -5.890823 0.762588 -1.501950
-v -5.961326 0.802506 -1.530026
-v -6.052902 0.905310 -1.517958
-v -6.052902 0.699701 -1.517958
-v -6.012501 0.945228 -1.511635
-v -5.920925 0.842423 -1.523703
-v -5.890823 0.842423 -1.501950
-v -5.876886 0.862096 -1.495945
-v -5.851737 0.869545 -1.506582
-v -5.867057 0.981962 -1.512634
-v -5.745853 0.842423 -1.552486
-v -5.745853 0.947756 -1.544866
-v -5.786254 0.981962 -1.526268
-v -5.770935 0.869545 -1.520215
-v -5.735574 0.862096 -1.516298
-v -5.731849 0.842423 -1.524846
-v -5.745853 0.802506 -1.563353
-v -5.745853 0.697173 -1.555734
-v -5.745853 0.907838 -1.555735
-v -5.745853 0.657255 -1.544866
-v -5.745853 0.762588 -1.552486
-v -5.731849 0.762588 -1.524846
-v -5.735574 0.742915 -1.516298
-v -5.770935 0.735466 -1.520215
-v -5.786254 0.623050 -1.526268
-v -5.786254 1.608455 1.312736
-v -5.786254 1.801940 1.172162
-v -5.745853 1.811463 1.181685
-v -5.745853 1.614570 1.324736
-v -5.867057 1.793926 1.161132
-v -5.867057 1.600442 1.301706
-v -6.028662 1.597385 1.295707
-v -6.028662 1.789166 1.156371
-v -5.786254 1.183310 1.494377
-v -5.786254 1.390806 1.423634
-v -5.745853 1.396920 1.435634
-v -5.745853 1.149105 1.512976
-v -5.867057 1.386593 1.410668
-v -5.867057 1.179098 1.481410
-v -6.012501 1.142363 1.480412
-v -6.028662 1.383536 1.404669
-v -5.786254 0.214205 1.423634
-v -5.786254 0.421701 1.494377
-v -5.745853 0.455906 1.512976
-v -5.745853 0.208091 1.435634
-v -5.867057 0.425914 1.481410
-v -5.867057 0.218418 1.410668
-v -6.028662 0.221475 1.404669
-v -6.012501 0.462648 1.480412
-v -5.786254 -0.196929 1.172162
-v -5.786254 -0.003444 1.312736
-v -5.745853 -0.009558 1.324736
-v -5.745853 -0.206452 1.181685
-v -5.867057 0.004570 1.301706
-v -5.867057 -0.188915 1.161132
-v -6.028662 -0.184154 1.156371
-v -6.028662 0.007626 1.295707
-v -5.786254 -0.510230 0.805950
-v -5.786254 -0.369656 0.999434
-v -5.745853 -0.379179 1.008958
-v -5.745853 -0.522230 0.812064
-v -5.867057 -0.358626 0.991421
-v -5.867057 -0.499201 0.797936
-v -6.028662 -0.493202 0.794879
-v -6.028662 -0.353866 0.986660
-v -5.786254 -0.691871 0.380805
-v -5.786254 -0.621128 0.588301
-v -5.745853 -0.633128 0.594414
-v -5.745853 -0.710470 0.346599
-v -5.867057 -0.608162 0.584087
-v -5.867057 -0.678905 0.376592
-v -6.012501 -0.677906 0.339858
-v -6.028662 -0.602163 0.581030
-v -5.786254 -0.621128 -0.588301
-v -5.786254 -0.691871 -0.380805
-v -5.745853 -0.710470 -0.346599
-v -5.745853 -0.633128 -0.594414
-v -5.867057 -0.678905 -0.376592
-v -5.867057 -0.608162 -0.584087
-v -6.028662 -0.602163 -0.581030
-v -6.012501 -0.677906 -0.339858
-v -5.786254 -0.369656 -0.999434
-v -5.786254 -0.510230 -0.805950
-v -5.745853 -0.522230 -0.812064
-v -5.745853 -0.379179 -1.008958
-v -5.867057 -0.499201 -0.797936
-v -5.867057 -0.358626 -0.991421
-v -6.028662 -0.353866 -0.986660
-v -6.028662 -0.493202 -0.794879
-v -5.786254 -0.003444 -1.312736
-v -5.786254 -0.196929 -1.172162
-v -5.745853 -0.206452 -1.181685
-v -5.745853 -0.009558 -1.324736
-v -5.867057 -0.188915 -1.161132
-v -5.867057 0.004570 -1.301706
-v -6.028662 0.007626 -1.295707
-v -6.028662 -0.184154 -1.156371
-v -5.786254 0.421701 -1.494377
-v -5.786254 0.214205 -1.423634
-v -5.745853 0.208091 -1.435634
-v -5.745853 0.455906 -1.512976
-v -5.867057 0.218418 -1.410668
-v -5.867057 0.425914 -1.481410
-v -6.012501 0.462648 -1.480412
-v -6.028662 0.221475 -1.404669
-v -5.786254 1.390806 -1.423634
-v -5.786254 1.183310 -1.494377
-v -5.745853 1.149105 -1.512976
-v -5.745853 1.396920 -1.435634
-v -5.867057 1.179098 -1.481410
-v -5.867057 1.386593 -1.410668
-v -6.028662 1.383536 -1.404669
-v -6.012501 1.142363 -1.480412
-v -5.786254 1.801940 -1.172162
-v -5.786254 1.608455 -1.312736
-v -5.745853 1.614570 -1.324736
-v -5.745853 1.811463 -1.181685
-v -5.867057 1.600442 -1.301706
-v -5.867057 1.793926 -1.161132
-v -6.028662 1.789166 -1.156371
-v -6.028662 1.597385 -1.295707
-v -5.786254 2.115242 -0.805950
-v -5.786254 1.974667 -0.999434
-v -5.745853 1.984190 -1.008958
-v -5.745853 2.127242 -0.812064
-v -5.867057 1.963638 -0.991421
-v -5.867057 2.104212 -0.797936
-v -6.028662 2.098213 -0.794879
-v -6.028662 1.958877 -0.986660
-v -5.786254 2.296882 -0.380805
-v -5.786254 2.226139 -0.588301
-v -5.745853 2.238139 -0.594414
-v -5.745853 2.315482 -0.346599
-v -5.867057 2.213174 -0.584087
-v -5.867057 2.283916 -0.376592
-v -6.012501 2.282918 -0.339858
-v -6.028662 2.207175 -0.581030
-v -5.867057 2.104212 0.797936
-v -5.867057 1.963638 0.991421
-v -6.028662 1.958877 0.986660
-v -6.028662 2.098213 0.794879
-v -5.786254 1.974667 0.999434
-v -5.786254 2.115242 0.805950
-v -5.745853 2.127242 0.812064
-v -5.745853 1.984190 1.008958
-v -5.786254 2.226139 0.588301
-v -5.786254 2.296882 0.380805
-v -5.745853 2.315482 0.346599
-v -5.745853 2.238139 0.594414
-v -5.867057 2.283916 0.376592
-v -5.867057 2.213174 0.584087
-v -6.028662 2.207175 0.581030
-v -6.012501 2.282918 0.339858
-v -6.513477 1.974667 -0.999434
-v -6.513477 2.115242 -0.805950
-v -6.553877 2.118239 -0.830721
-v -6.553877 1.999152 -0.994630
-v -6.432674 2.104212 -0.797936
-v -6.432674 1.963638 -0.991421
-v -6.271069 1.958877 -0.986660
-v -6.271069 2.098213 -0.794879
-v -6.513477 1.608455 -1.312736
-v -6.513477 1.801940 -1.172162
-v -6.553877 1.826425 -1.167358
-v -6.553877 1.614570 -1.324736
-v -6.432674 1.793926 -1.161132
-v -6.432674 1.600442 -1.301706
-v -6.271069 1.597385 -1.295707
-v -6.271069 1.789166 -1.156371
-v -6.513477 1.163352 -1.497538
-v -6.513477 1.390806 -1.423634
-v -6.553877 1.396920 -1.435634
-v -6.553877 1.165458 -1.510840
-v -6.432674 1.386593 -1.410668
-v -6.432674 1.159138 -1.484572
-v -6.254909 1.142363 -1.480412
-v -6.271069 1.383536 -1.404669
-v -6.513477 0.682926 -1.535751
-v -6.513477 0.922086 -1.535751
-v -6.553877 0.924192 -1.549053
-v -6.553877 0.680819 -1.549053
-v -6.432674 0.922086 -1.522118
-v -6.432674 0.682926 -1.522118
-v -6.254909 0.699701 -1.517958
-v -6.254909 0.905310 -1.517958
-v -6.513477 0.214205 -1.423634
-v -6.513477 0.441659 -1.497538
-v -6.553877 0.439553 -1.510840
-v -6.553877 0.208091 -1.435634
-v -6.432674 0.445873 -1.484572
-v -6.432674 0.218418 -1.410668
-v -6.271069 0.221475 -1.404669
-v -6.254909 0.462648 -1.480412
-v -6.513477 -0.196929 -1.172162
-v -6.513477 -0.003444 -1.312736
-v -6.553877 -0.009558 -1.324736
-v -6.553877 -0.221414 -1.167358
-v -6.432674 0.004570 -1.301706
-v -6.432674 -0.188915 -1.161132
-v -6.271069 -0.184154 -1.156371
-v -6.271069 0.007626 -1.295707
-v -6.513477 -0.510230 -0.805950
-v -6.513477 -0.369656 -0.999434
-v -6.553877 -0.394141 -0.994630
-v -6.553877 -0.513228 -0.830721
-v -6.432674 -0.358626 -0.991421
-v -6.432674 -0.499201 -0.797936
-v -6.271069 -0.493202 -0.794879
-v -6.271069 -0.353866 -0.986660
-v -6.513477 -0.695033 -0.360846
-v -6.513477 -0.621128 -0.588301
-v -6.553877 -0.624126 -0.613072
-v -6.553877 -0.708334 -0.362953
-v -6.432674 -0.608162 -0.584087
-v -6.432674 -0.682066 -0.356633
-v -6.254909 -0.677906 -0.339858
-v -6.271069 -0.602163 -0.581030
-v -6.513477 -0.733246 0.119580
-v -6.513477 -0.733246 -0.119580
-v -6.553877 -0.746547 -0.121686
-v -6.553877 -0.746547 0.121686
-v -6.432674 -0.719612 -0.119580
-v -6.432674 -0.719612 0.119580
-v -6.254909 -0.715452 0.102805
-v -6.254909 -0.715452 -0.102805
-v -6.513477 -0.621128 0.588301
-v -6.513477 -0.695033 0.360846
-v -6.553877 -0.708334 0.362953
-v -6.553877 -0.624126 0.613072
-v -6.432674 -0.682066 0.356633
-v -6.432674 -0.608162 0.584087
-v -6.271069 -0.602163 0.581030
-v -6.254909 -0.677906 0.339858
-v -6.513477 -0.369656 0.999434
-v -6.513477 -0.510230 0.805950
-v -6.553877 -0.513228 0.830721
-v -6.553877 -0.394141 0.994630
-v -6.432674 -0.499201 0.797936
-v -6.432674 -0.358626 0.991421
-v -6.271069 -0.353866 0.986660
-v -6.271069 -0.493202 0.794879
-v -6.513477 -0.003444 1.312736
-v -6.513477 -0.196929 1.172162
-v -6.553877 -0.221414 1.167358
-v -6.553877 -0.009558 1.324736
-v -6.432674 -0.188915 1.161132
-v -6.432674 0.004570 1.301706
-v -6.271069 0.007626 1.295707
-v -6.271069 -0.184154 1.156371
-v -6.513477 0.441659 1.497538
-v -6.513477 0.214205 1.423634
-v -6.553877 0.208091 1.435634
-v -6.553877 0.439553 1.510840
-v -6.432674 0.218418 1.410668
-v -6.432674 0.445873 1.484572
-v -6.254909 0.462648 1.480412
-v -6.271069 0.221475 1.404669
-v -6.513477 0.922086 1.535751
-v -6.513477 0.682926 1.535751
-v -6.553877 0.680819 1.549053
-v -6.553877 0.924192 1.549053
-v -6.432674 0.682926 1.522118
-v -6.432674 0.922086 1.522118
-v -6.254909 0.905310 1.517958
-v -6.254909 0.699701 1.517958
-v -6.513477 1.390806 1.423634
-v -6.513477 1.163352 1.497538
-v -6.553877 1.165458 1.510840
-v -6.553877 1.396920 1.435634
-v -6.432674 1.159138 1.484572
-v -6.432674 1.386593 1.410668
-v -6.271069 1.383536 1.404669
-v -6.254909 1.142363 1.480412
-v -6.513477 1.801940 1.172162
-v -6.513477 1.608455 1.312736
-v -6.553877 1.614570 1.324736
-v -6.553877 1.826425 1.167358
-v -6.432674 1.600442 1.301706
-v -6.432674 1.793926 1.161132
-v -6.271069 1.789166 1.156371
-v -6.271069 1.597385 1.295707
-v -6.513477 2.115242 0.805950
-v -6.513477 1.974667 0.999434
-v -6.553877 1.999152 0.994630
-v -6.553877 2.118239 0.830721
-v -6.432674 1.963638 0.991421
-v -6.432674 2.104212 0.797936
-v -6.271069 2.098213 0.794879
-v -6.271069 1.958877 0.986660
-v -6.513477 2.300044 0.360846
-v -6.513477 2.226139 0.588301
-v -6.553877 2.229137 0.613072
-v -6.553877 2.313346 0.362953
-v -6.432674 2.213174 0.584087
-v -6.432674 2.287078 0.356633
-v -6.254909 2.282918 0.339858
-v -6.271069 2.207175 0.581030
-v -6.432674 2.287078 -0.356633
-v -6.432674 2.213174 -0.584087
-v -6.271069 2.207175 -0.581030
-v -6.254909 2.282918 -0.339858
-v -6.513477 2.226139 -0.588301
-v -6.513477 2.300044 -0.360846
-v -6.553877 2.313346 -0.362953
-v -6.553877 2.229137 -0.613072
-v -6.513477 2.338258 -0.119580
-v -6.513477 2.338258 0.119580
-v -6.553877 2.351558 0.121686
-v -6.553877 2.351558 -0.121686
-v -6.432674 2.324623 0.119580
-v -6.432674 2.324623 -0.119580
-v -6.254909 2.320463 -0.102805
-v -6.254909 2.320463 0.102805
-v -6.432674 1.636714 -1.358798
-v -6.432674 1.829942 -1.220344
-v -6.291310 1.856823 -1.202985
-v -6.271069 1.639770 -1.364798
-v -6.513477 1.821929 -1.209314
-v -6.513477 1.628700 -1.347769
-v -6.553877 1.622586 -1.335769
-v -6.553877 1.834441 -1.178391
-v -6.432674 1.175993 -1.550078
-v -6.432674 1.411462 -1.473570
-v -6.271069 1.414518 -1.479569
-v -6.271069 1.177046 -1.556729
-v -6.513477 1.407249 -1.460604
-v -6.513477 1.171779 -1.537113
-v -6.553877 1.169673 -1.523810
-v -6.553877 1.401134 -1.448604
-v -6.432674 0.678712 -1.589626
-v -6.432674 0.926299 -1.589626
-v -6.271069 0.927352 -1.596276
-v -6.271069 0.677659 -1.596276
-v -6.513477 0.926299 -1.575993
-v -6.513477 0.678712 -1.575993
-v -6.553877 0.680819 -1.562691
-v -6.553877 0.924192 -1.562690
-v -6.432674 0.193550 -1.473570
-v -6.432674 0.429018 -1.550078
-v -6.271069 0.427966 -1.556729
-v -6.271069 0.190493 -1.479570
-v -6.513477 0.433232 -1.537113
-v -6.513477 0.197762 -1.460604
-v -6.553877 0.203877 -1.448604
-v -6.553877 0.435338 -1.523810
-v -6.432674 -0.224931 -1.220344
-v -6.432674 -0.031702 -1.358798
-v -6.271069 -0.034759 -1.364798
-v -6.291310 -0.251812 -1.202985
-v -6.513477 -0.023689 -1.347769
-v -6.513477 -0.216918 -1.209314
-v -6.553877 -0.229430 -1.178391
-v -6.553877 -0.017574 -1.335769
-v -6.432674 -0.747573 -0.373487
-v -6.432674 -0.675606 -0.600043
-v -6.291310 -0.667403 -0.630973
-v -6.271069 -0.754223 -0.374540
-v -6.513477 -0.662640 -0.595830
-v -6.513477 -0.734607 -0.369274
-v -6.553877 -0.721305 -0.367167
-v -6.553877 -0.637096 -0.617286
-v -6.432674 -0.787121 0.123794
-v -6.432674 -0.787121 -0.123794
-v -6.271069 -0.793770 -0.124846
-v -6.271069 -0.793770 0.124846
-v -6.513477 -0.773487 -0.123794
-v -6.513477 -0.773487 0.123794
-v -6.553877 -0.760186 0.121686
-v -6.553877 -0.760185 -0.121686
-v -6.432674 -0.675606 0.600043
-v -6.432674 -0.747573 0.373487
-v -6.271069 -0.754223 0.374540
-v -6.291310 -0.667403 0.630973
-v -6.513477 -0.734607 0.369274
-v -6.513477 -0.662640 0.595830
-v -6.553877 -0.637096 0.617286
-v -6.553877 -0.721305 0.367167
-v -6.432674 -0.031702 1.358798
-v -6.432674 -0.224931 1.220344
-v -6.291310 -0.251812 1.202985
-v -6.271069 -0.034759 1.364798
-v -6.513477 -0.216918 1.209314
-v -6.513477 -0.023689 1.347769
-v -6.553877 -0.017574 1.335769
-v -6.553877 -0.229430 1.178391
-v -6.432674 0.429018 1.550078
-v -6.432674 0.193550 1.473570
-v -6.271069 0.190493 1.479569
-v -6.271069 0.427966 1.556729
-v -6.513477 0.197762 1.460604
-v -6.513477 0.433232 1.537113
-v -6.553877 0.435338 1.523810
-v -6.553877 0.203877 1.448604
-v -6.432674 0.926299 1.589626
-v -6.432674 0.678712 1.589626
-v -6.271069 0.677659 1.596276
-v -6.271069 0.927352 1.596276
-v -6.513477 0.678712 1.575993
-v -6.513477 0.926299 1.575993
-v -6.553877 0.924192 1.562691
-v -6.553877 0.680819 1.562690
-v -6.432674 1.411462 1.473570
-v -6.432674 1.175993 1.550078
-v -6.271069 1.177046 1.556729
-v -6.271069 1.414518 1.479570
-v -6.513477 1.171779 1.537113
-v -6.513477 1.407249 1.460604
-v -6.553877 1.401134 1.448604
-v -6.553877 1.169673 1.523810
-v -6.432674 1.829942 1.220344
-v -6.432674 1.636714 1.358798
-v -6.271069 1.639770 1.364798
-v -6.291310 1.856823 1.202985
-v -6.513477 1.628700 1.347769
-v -6.513477 1.821929 1.209314
-v -6.553877 1.834441 1.178391
-v -6.553877 1.622586 1.335769
-v -6.432674 2.352584 0.373487
-v -6.432674 2.280617 0.600043
-v -6.291310 2.272414 0.630973
-v -6.271069 2.359235 0.374540
-v -6.513477 2.267651 0.595830
-v -6.513477 2.339618 0.369274
-v -6.553877 2.326316 0.367167
-v -6.553877 2.242107 0.617286
-v -6.513477 2.339618 -0.369274
-v -6.513477 2.267651 -0.595830
-v -6.553877 2.242107 -0.617286
-v -6.553877 2.326316 -0.367167
-v -6.432674 2.280617 -0.600043
-v -6.432674 2.352584 -0.373487
-v -6.271069 2.359235 -0.374540
-v -6.291310 2.272414 -0.630973
-v -6.432674 2.392132 -0.123794
-v -6.432674 2.392132 0.123794
-v -6.271069 2.398782 0.124846
-v -6.271069 2.398782 -0.124846
-v -6.513477 2.378499 0.123794
-v -6.513477 2.378499 -0.123794
-v -6.553877 2.365197 -0.121686
-v -6.553877 2.365196 0.121686
-v -5.786254 2.339618 0.369274
-v -5.786254 2.263110 0.604743
-v -5.745853 2.251110 0.598629
-v -5.745853 2.328452 0.350814
-v -5.867057 2.276076 0.608956
-v -5.867057 2.352584 0.373487
-v -6.028662 2.359235 0.374540
-v -6.048903 2.272414 0.630973
-v -5.786254 2.378499 -0.123794
-v -5.786254 2.378499 0.123794
-v -5.745853 2.367332 0.105333
-v -5.745853 2.367332 -0.105333
-v -5.867057 2.392132 0.123794
-v -5.867057 2.392132 -0.123794
-v -6.028662 2.398782 -0.124846
-v -6.028662 2.398782 0.124846
-v -5.786254 2.263110 -0.604743
-v -5.786254 2.339618 -0.369274
-v -5.745853 2.328451 -0.350814
-v -5.745853 2.251110 -0.598629
-v -5.867057 2.352584 -0.373487
-v -5.867057 2.276076 -0.608956
-v -6.048903 2.272414 -0.630973
-v -6.028662 2.359235 -0.374540
-v -5.786254 2.004746 -1.026496
-v -5.786254 2.150275 -0.826194
-v -5.745853 2.138274 -0.820080
-v -5.745853 1.995224 -1.016974
-v -5.867057 2.161304 -0.834208
-v -5.867057 2.015776 -1.034510
-v -6.048903 2.035584 -1.024224
-v -6.048903 2.157643 -0.856225
-v -5.786254 1.628700 -1.347769
-v -5.786254 1.829002 -1.202241
-v -5.745853 1.819479 -1.192718
-v -5.745853 1.622586 -1.335769
-v -5.867057 1.837016 -1.213270
-v -5.867057 1.636714 -1.358798
-v -6.028662 1.639770 -1.364798
-v -6.048903 1.856823 -1.202985
-v -5.786254 1.171779 -1.537113
-v -5.786254 1.407249 -1.460604
-v -5.745853 1.401134 -1.448604
-v -5.745853 1.153319 -1.525946
-v -5.867057 1.411462 -1.473570
-v -5.867057 1.175993 -1.550078
-v -6.028662 1.177046 -1.556729
-v -6.028662 1.414518 -1.479569
-v -5.786254 0.678712 -1.575993
-v -5.786254 0.926299 -1.575993
-v -5.745853 0.907838 -1.564826
-v -5.745853 0.697173 -1.564826
-v -5.867057 0.926299 -1.589626
-v -5.867057 0.678712 -1.589626
-v -6.028662 0.677659 -1.596276
-v -6.028662 0.927352 -1.596276
-v -5.786254 0.197762 -1.460604
-v -5.786254 0.433232 -1.537113
-v -5.745853 0.451692 -1.525946
-v -5.745853 0.203877 -1.448604
-v -5.867057 0.429018 -1.550078
-v -5.867057 0.193550 -1.473570
-v -6.028662 0.190493 -1.479570
-v -6.028662 0.427966 -1.556729
-v -5.786254 -0.223990 -1.202241
-v -5.786254 -0.023689 -1.347769
-v -5.745853 -0.017574 -1.335769
-v -5.745853 -0.214468 -1.192718
-v -5.867057 -0.031702 -1.358798
-v -5.867057 -0.232005 -1.213270
-v -6.048903 -0.251812 -1.202985
-v -6.028662 -0.034759 -1.364798
-v -5.786254 -0.545263 -0.826194
-v -5.786254 -0.399735 -1.026496
-v -5.745853 -0.390212 -1.016974
-v -5.745853 -0.533263 -0.820080
-v -5.867057 -0.410765 -1.034510
-v -5.867057 -0.556293 -0.834208
-v -6.048903 -0.552631 -0.856225
-v -6.048903 -0.430573 -1.024224
-v -5.786254 -0.734607 -0.369274
-v -5.786254 -0.658098 -0.604743
-v -5.745853 -0.646098 -0.598629
-v -5.745853 -0.723441 -0.350814
-v -5.867057 -0.671065 -0.608956
-v -5.867057 -0.747573 -0.373487
-v -6.028662 -0.754223 -0.374540
-v -6.048903 -0.667403 -0.630973
-v -5.786254 -0.773487 0.123794
-v -5.786254 -0.773487 -0.123794
-v -5.745853 -0.762321 -0.105333
-v -5.745853 -0.762321 0.105333
-v -5.867057 -0.787121 -0.123794
-v -5.867057 -0.787121 0.123794
-v -6.028662 -0.793770 0.124846
-v -6.028662 -0.793770 -0.124846
-v -5.786254 -0.658098 0.604743
-v -5.786254 -0.734607 0.369274
-v -5.745853 -0.723440 0.350814
-v -5.745853 -0.646098 0.598629
-v -5.867057 -0.747573 0.373487
-v -5.867057 -0.671065 0.608956
-v -6.048903 -0.667403 0.630973
-v -6.028662 -0.754223 0.374540
-v -5.786254 -0.399735 1.026496
-v -5.786254 -0.545263 0.826194
-v -5.745853 -0.533263 0.820080
-v -5.745853 -0.390212 1.016974
-v -5.867057 -0.556293 0.834208
-v -5.867057 -0.410765 1.034510
-v -6.048903 -0.430573 1.024224
-v -6.048903 -0.552632 0.856225
-v -5.786254 -0.023689 1.347769
-v -5.786254 -0.223990 1.202241
-v -5.745853 -0.214468 1.192718
-v -5.745853 -0.017574 1.335769
-v -5.867057 -0.232005 1.213270
-v -5.867057 -0.031702 1.358798
-v -6.028662 -0.034759 1.364798
-v -6.048903 -0.251812 1.202985
-v -5.786254 0.433232 1.537113
-v -5.786254 0.197762 1.460604
-v -5.745853 0.203877 1.448604
-v -5.745853 0.451692 1.525946
-v -5.867057 0.193550 1.473570
-v -5.867057 0.429018 1.550078
-v -6.028662 0.427966 1.556729
-v -6.028662 0.190493 1.479569
-v -5.786254 0.926299 1.575993
-v -5.786254 0.678712 1.575993
-v -5.745853 0.697173 1.564826
-v -5.745853 0.907838 1.564826
-v -5.867057 0.678712 1.589626
-v -5.867057 0.926299 1.589626
-v -6.028662 0.927352 1.596276
-v -6.028662 0.677659 1.596276
-v -5.786254 1.407249 1.460604
-v -5.786254 1.171779 1.537113
-v -5.745853 1.153319 1.525946
-v -5.745853 1.401134 1.448604
-v -5.867057 1.175993 1.550078
-v -5.867057 1.411462 1.473570
-v -6.028662 1.414518 1.479570
-v -6.028662 1.177046 1.556729
-v -5.867057 2.015776 1.034510
-v -5.867057 2.161304 0.834208
-v -6.048903 2.157642 0.856225
-v -6.048903 2.035584 1.024224
-v -5.786254 2.150275 0.826194
-v -5.786254 2.004746 1.026496
-v -5.745853 1.995224 1.016974
-v -5.745853 2.138274 0.820080
-v -5.786254 1.829002 1.202241
-v -5.786254 1.628700 1.347769
-v -5.745853 1.622586 1.335769
-v -5.745853 1.819479 1.192718
-v -5.867057 1.636714 1.358798
-v -5.867057 1.837016 1.213270
-v -6.048903 1.856823 1.202985
-v -6.028662 1.639770 1.364798
-# 5797 vertices
-
-# 0 vertex parms
-
-# 0 texture vertices
-
-# 0 normals
-
-g shroud
-f 5049 5019 5021 5033 5035 4907 4909 5047
-f 4951 4935 4937 4963 4965 4879 4881 4949
-f 5124 5125 5123
-f 5184 5185 5183
-f 5214 5215 5213
-f 5154 5155 5153
-f 5077 5061 5063 4893 4895 5089 5091 5075
-f 4993 4977 4979 4921 4923 5005 5007 4991
-s 853
-f 5127 5129 5126
-f 5149 5151 5148
-f 5179 5180 5181
-f 5187 5189 5186
-f 5209 5211 5208
-f 5772 5593 5592 5773
-f 5740 5569 5568 5741
-f 5708 5545 5544 5709
-f 5676 5513 5512 5677
-f 5644 5617 5616 5645
-f 5464 5605 5604 5465
-f 5432 4807 4806 5433
-f 5400 4781 4780 5401
-f 5368 5525 5524 5369
-f 5504 5637 5636 5505
-f 5240 5761 5760 5241
-f 5340 5789 5788 5341
-f 5320 5665 5664 5321
-f 5296 5697 5696 5297
-f 5184 5729 5728 5185
-f 5260 5437 5436 5261
-f 5236 5469 5468 5237
-f 5109 5509 5508 5110
-f 5308 5373 5372 5309
-f 5284 5405 5404 5285
-f 5794 5791 5790 5795
-f 5762 5759 5758 5763
-f 5730 5727 5726 5731
-f 5698 5695 5694 5699
-f 5666 5663 5662 5667
-f 5634 5631 5630 5635
-f 5602 5599 5598 5603
-f 5570 5567 5566 5571
-f 5538 5535 5534 5539
-f 5506 5503 5502 5507
-f 5474 5471 5470 5475
-f 5442 5439 5438 5443
-f 5410 5407 5406 5411
-f 5378 5375 5374 5379
-f 5346 5343 5342 5347
-f 5314 5311 5310 5315
-f 5282 5279 5278 5283
-f 5250 5247 5246 5251
-f 5787 5790 5793 5788
-f 5775 5766 5769 5776
-f 5759 5750 5753 5760
-f 5743 5734 5737 5744
-f 5727 5718 5721 5728
-f 5711 5702 5705 5712
-f 5695 5686 5689 5696
-f 5679 5670 5673 5680
-f 5663 5654 5657 5664
-f 5647 5638 5641 5648
-f 5627 5630 5633 5628
-f 5615 4867 4866 5616
-f 5607 5598 5601 5608
-f 5591 5582 5585 5592
-f 5575 4815 4814 5576
-f 5567 5558 5561 5568
-f 5551 4789 4788 5552
-f 5543 5534 5537 5544
-f 5527 5518 5521 5528
-f 5511 4841 4840 5512
-f 5499 5502 5505 5500
-f 5487 5478 5481 5488
-f 5471 5462 5465 5472
-f 5455 5446 5449 5456
-f 5439 5430 5433 5440
-f 5423 5414 5417 5424
-f 5407 5398 5401 5408
-f 5391 5382 5385 5392
-f 5375 5366 5369 5376
-f 5359 5350 5353 5360
-f 5339 5342 5345 5340
-f 5327 5318 5321 5328
-f 5311 5302 5305 5312
-f 5221 5294 5297 5216
-f 5287 5278 5281 5288
-f 5271 5179 5178 5272
-f 5263 5254 5257 5264
-f 5247 5238 5241 5248
-f 5161 5230 5233 5156
-f 5223 5338 5341 5224
-f 5212 5218 5217 5207
-f 5182 5188 5187 5177
-f 5152 5158 5157 5147
-f 5122 5128 5127 5117
-f 4869 4875 4874 4865
-f 4843 4849 4848 4839
-f 4821 4819 4818 4822
-f 4795 4793 4792 4796
-f 4837 4842 4841 4838
-f 4757 4752 4751 4754
-f 4749 4744 4743 4746
-f 4673 4670 4669 4671
-f 4667 4664 4663 4665
-f 5787 5788 5789 5786
-f 5771 5772 5773 5770
-f 5755 5756 5757 5754
-f 5739 5740 5741 5738
-f 5723 5724 5725 5722
-f 5707 5708 5709 5706
-f 5691 5692 5693 5690
-f 5675 5676 5677 5674
-f 5659 5660 5661 5658
-f 5643 5644 5645 5642
-f 5627 5628 5629 5626
-f 5611 5612 5613 5610
-f 5595 5596 5597 5594
-f 5579 5580 5581 5578
-f 5563 5564 5565 5562
-f 5547 5548 5549 5546
-f 5531 5532 5533 5530
-f 5515 5516 5517 5514
-f 5499 5500 5501 5498
-f 5483 5484 5485 5482
-f 5467 5468 5469 5466
-f 5451 5452 5453 5450
-f 5435 5436 5437 5434
-f 5419 5420 5421 5418
-f 5403 5404 5405 5402
-f 5387 5388 5389 5386
-f 5371 5372 5373 5370
-f 5355 5356 5357 5354
-f 5339 5340 5341 5338
-f 5323 5324 5325 5322
-f 5307 5308 5309 5306
-f 5291 5292 5293 5290
-f 5275 5276 5277 5274
-f 5259 5260 5261 5258
-f 5243 5244 5245 5242
-f 5227 5228 5229 5226
-f 5219 5221 5216
-f 5189 5190 5191
-f 5181 5182 5177
-f 5159 5161 5156
-f 5129 5130 5131
-f 5121 5122 5117
-f 4875 4876 4873
-f 4865 4866 4867
-f 4868 4869 4865
-f 4850 4851 4848
-f 4839 4840 4841
-f 4841 4843 4839
-f 4825 4821 4822
-f 4822 4823 4824
-f 4815 4816 4817
-f 4798 4799 4795
-f 4796 4797 4795
-f 4787 4789 4790
-f 4755 4756 4757 4754
-f 4672 4673 4671
-f 4662 4672 4752 4757
-f 4742 4755 4829 4850
-f 4670 4673 4664 4667
-f 4831 4826 4835
-f 5153 5147 5157
-f 5234 5227 5222 5231
-f 5258 5251 5246 5255
-f 5282 5275 5270 5279
-f 5306 5206 5209 5303
-f 5104 5331 5326 5131
-f 5362 5355 5350 5359
-f 5394 5387 5382 5391
-f 5426 5419 5414 5423
-f 5458 5451 5446 5455
-f 5490 5483 5478 5487
-f 5514 4838 4841 5511
-f 5546 5539 5534 5543
-f 5570 5563 5558 5567
-f 5594 5587 5582 5591
-f 5618 4864 4867 5615
-f 5650 5643 5638 5647
-f 5682 5675 5670 5679
-f 5714 5707 5702 5711
-f 5746 5739 5734 5743
-f 5778 5771 5766 5775
-f 5429 5268 5163 5170 5420
-f 5397 5292 5301 5388
-f 5365 5316 5325 5356
-f 5493 5348 5337 5484
-f 5461 5139 5141 5245 5452
-f 5256 5249 5752 5745
-f 5280 5273 5720 5713
-f 5304 5208 5215 5688 5681
-f 5124 5126 5329 5656 5649
-f 5154 5156 5233 5776 5769
-f 5488 5481 4858 4860 5621
-f 5360 5353 4832 4834 5517
-f 5392 5385 5540 5549
-f 5424 5417 5564 5573
-f 5456 5449 5588 5597
-f 4873 5609 5796 5785 4871
-f 4847 5629 5660 5669 4845
-f 5529 5692 5701 5536
-f 5553 5724 5733 5560
-f 5577 5756 5765 5584
-f 4814 4820 5748 5757 5576
-f 4788 4794 5716 5725 5552
-f 5521 5684 5693 5528
-f 5633 5652 5661 5628
-f 5601 5780 5797 5608
-f 5448 5441 5580 5589
-f 5416 5409 5556 5565
-f 5384 5377 5532 5541
-f 4833 5352 5501 5624 4827
-f 4859 5480 5473 5612 4853
-f 5232 5225 5792 5777
-f 5328 5321 5664 5657
-f 5214 5216 5297 5696 5689
-f 5272 5178 5185 5728 5721
-f 5248 5241 5760 5753
-f 5469 5236 5133 5140 5460
-f 5509 5109 5111 5349 5492
-f 5373 5308 5317 5364
-f 5405 5284 5293 5396
-f 5437 5260 5269 5428
-f 5770 5763 5758 5767
-f 5738 5731 5726 5735
-f 5706 5699 5694 5703
-f 5674 5667 5662 5671
-f 5642 5783 5786 5639
-f 4854 5611 5606 4877
-f 5586 5579 5574 5583
-f 5562 5555 5550 5559
-f 5538 5531 5526 5535
-f 4828 5623 5626 4851
-f 5482 5475 5470 5479
-f 5450 5443 5438 5447
-f 5418 5411 5406 5415
-f 5386 5379 5374 5383
-f 5354 5495 5498 5351
-f 5330 5323 5318 5327
-f 5194 5299 5294 5221
-f 5274 5176 5179 5271
-f 5250 5243 5238 5247
-f 5226 5335 5338 5223
-f 5123 5117 5127
-f 4818 4813 4822
-f 4746 4743 4849 4843
-f 4665 4663 4756 4745
-f 4669 4670 4668
-f 4751 4752 4753 4750
-f 4785 4782 4783
-f 4793 4794 4792
-f 4809 4810 4808
-f 4826 4827 4828
-f 4829 4830 4826
-f 4835 4836 4834
-f 4863 4864 4860
-f 4861 4862 4863
-f 5115 5116 5111
-f 5145 5146 5141
-f 5175 5176 5171
-f 5205 5206 5201
-f 5223 5224 5225 5222
-f 5231 5233 5230
-f 5247 5248 5249 5246
-f 5263 5264 5265
-f 5271 5272 5273 5270
-f 5287 5288 5289 5286
-f 5295 5297 5294
-f 5311 5312 5313 5310
-f 5327 5328 5329
-f 5335 5336 5337 5334
-f 5351 5352 5353 5350
-f 5367 5368 5369 5366
-f 5383 5384 5385 5382
-f 5399 5400 5401 5398
-f 5415 5416 5417 5414
-f 5431 5432 5433 5430
-f 5447 5448 5449 5446
-f 5463 5464 5465 5462
-f 5479 5480 5481 5478
-f 5495 5496 5497 5494
-f 5511 5512 5513 5510
-f 5527 5528 5529 5526
-f 5543 5544 5545 5542
-f 5559 5560 5561 5558
-f 5575 5576 5577 5574
-f 5591 5592 5593 5590
-f 5607 5608 5609 5606
-f 5623 5624 5625 5622
-f 5639 5640 5641 5638
-f 5655 5656 5657 5654
-f 5671 5672 5673 5670
-f 5687 5688 5689 5686
-f 5703 5704 5705 5702
-f 5719 5720 5721 5718
-f 5735 5736 5737 5734
-f 5751 5752 5753 5750
-f 5767 5768 5769 5766
-f 5783 5784 5785 5782
-f 4664 4673 4672 4662
-f 4665 4745 4744 4666
-f 4745 4756 4755 4742
-f 4746 4843 4842 4747
-f 4798 4777 4776 4799
-f 4850 4829 4828 4851
-f 4794 4788 4787 4792
-f 4830 4836 4835 4826
-f 4846 4840 4839 4844
-f 5130 5105 5104 5131
-f 5190 5165 5164 5191
-f 5125 5118 5117 5123
-f 5185 5178 5177 5183
-f 5335 5226 5229 5336
-f 5235 5134 5133 5236
-f 5243 5250 5253 5244
-f 5259 5266 5269 5260
-f 5176 5274 5277 5171
-f 5283 5290 5293 5284
-f 5299 5194 5193 5300
-f 5307 5314 5317 5308
-f 5323 5330 5333 5324
-f 5116 5346 5349 5111
-f 5495 5354 5357 5496
-f 5363 5370 5373 5364
-f 5379 5386 5389 5380
-f 5395 5402 5405 5396
-f 5411 5418 5421 5412
-f 5427 5434 5437 5428
-f 5443 5450 5453 5444
-f 5459 5466 5469 5460
-f 5475 5482 5485 5476
-f 5491 5506 5509 5492
-f 5623 4828 4827 5624
-f 5515 5522 5525 5516
-f 5531 5538 5541 5532
-f 5547 4776 4775 5548
-f 5555 5562 5565 5556
-f 5571 4802 4801 5572
-f 5579 5586 5589 5580
-f 5595 5602 5605 5596
-f 5611 4854 4853 5612
-f 5619 5634 5637 5620
-f 5783 5642 5645 5784
-f 5651 5658 5661 5652
-f 5667 5674 5677 5668
-f 5683 5690 5693 5684
-f 5699 5706 5709 5700
-f 5715 5722 5725 5716
-f 5731 5738 5741 5732
-f 5747 5754 5757 5748
-f 5763 5770 5773 5764
-f 5779 5794 5797 5780
-f 5226 5223 5222 5227
-f 5258 5255 5254 5259
-f 5290 5287 5286 5291
-f 5322 5319 5318 5323
-f 5354 5351 5350 5355
-f 5386 5383 5382 5387
-f 5418 5415 5414 5419
-f 5450 5447 5446 5451
-f 5482 5479 5478 5483
-f 5514 5511 5510 5515
-f 5546 5543 5542 5547
-f 5578 5575 5574 5579
-f 5610 5607 5606 5611
-f 5642 5639 5638 5643
-f 5674 5671 5670 5675
-f 5706 5703 5702 5707
-f 5738 5735 5734 5739
-f 5770 5767 5766 5771
-f 5268 5429 5428 5269
-f 5292 5397 5396 5293
-f 5316 5365 5364 5317
-f 5348 5493 5492 5349
-f 5139 5461 5460 5140
-f 5248 5753 5752 5249
-f 5272 5721 5720 5273
-f 5214 5689 5688 5215
-f 5328 5657 5656 5329
-f 5154 5769 5768 5155
-f 5488 5621 5620 5489
-f 5360 5517 5516 5361
-f 5392 5549 5548 5393
-f 5424 5573 5572 5425
-f 5456 5597 5596 5457
-f 5784 4872 4871 5785
-f 5668 4846 4845 5669
-f 5700 5537 5536 5701
-f 5732 5561 5560 5733
-f 5764 5585 5584 5765
-f 5208 5211 5207
-f 5202 5203 5201
-f 5178 5181 5177
-f 5172 5173 5171
-f 5148 5151 5147
-f 5142 5143 5141
-f 5118 5121 5117
-f 5112 5113 5111
-f 5113 5114 5111
-f 5128 5129 5127
-f 5143 5144 5141
-f 5158 5159 5157
-f 5173 5174 5171
-f 5188 5189 5187
-f 5203 5204 5201
-f 5218 5219 5217
-f 5748 4820 4819 5749
-f 5716 4794 4793 5717
-f 5684 5521 5520 5685
-f 5652 5633 5632 5653
-f 5780 5601 5600 5781
-f 5440 5581 5580 5441
-f 5408 5557 5556 5409
-f 5376 5533 5532 5377
-f 5500 5625 5624 5501
-f 5472 5613 5612 5473
-f 5224 5793 5792 5225
-f 5312 5673 5672 5313
-f 5288 5705 5704 5289
-f 5264 5737 5736 5265
-f 5252 5445 5444 5253
-f 5228 5477 5476 5229
-f 5332 5497 5496 5333
-f 5199 5381 5380 5200
-f 5276 5413 5412 5277
-f 5786 5783 5782 5787
-f 5754 5751 5750 5755
-f 5722 5719 5718 5723
-f 5690 5687 5686 5691
-f 5658 5655 5654 5659
-f 5626 5623 5622 5627
-f 5594 5591 5590 5595
-f 5562 5559 5558 5563
-f 5530 5527 5526 5531
-f 5498 5495 5494 5499
-f 5466 5463 5462 5467
-f 5434 5431 5430 5435
-f 5402 5399 5398 5403
-f 5370 5367 5366 5371
-f 5338 5335 5334 5339
-f 5306 5303 5302 5307
-f 5274 5271 5270 5275
-f 5242 5239 5238 5243
-f 5795 5782 5785 5796
-f 5771 5778 5781 5772
-f 5755 5762 5765 5756
-f 5739 5746 5749 5740
-f 5723 5730 5733 5724
-f 5707 5714 5717 5708
-f 5691 5698 5701 5692
-f 5675 5682 5685 5676
-f 5659 5666 5669 5660
-f 5643 5650 5653 5644
-f 5635 5622 5625 5636
-f 4864 5618 5621 4860
-f 5603 5610 5613 5604
-f 5587 5594 5597 5588
-f 4812 5578 5581 4808
-f 5563 5570 5573 5564
-f 4786 5554 5557 4782
-f 5539 5546 5549 5540
-f 5523 5530 5533 5524
-f 4838 5514 5517 4834
-f 5507 5494 5497 5508
-f 5483 5490 5493 5484
-f 5467 5474 5477 5468
-f 5451 5458 5461 5452
-f 5435 5442 5445 5436
-f 5419 5426 5429 5420
-f 5403 5410 5413 5404
-f 5387 5394 5397 5388
-f 5371 5378 5381 5372
-f 5355 5362 5365 5356
-f 5347 5334 5337 5348
-f 5331 5104 5103 5332
-f 5315 5322 5325 5316
-f 5206 5306 5309 5201
-f 5291 5298 5301 5292
-f 5275 5282 5285 5276
-f 5267 5164 5163 5268
-f 5251 5258 5261 5252
-f 5146 5242 5245 5141
-f 5227 5234 5237 5228
-f 5215 5208 5207 5213
-f 5155 5148 5147 5153
-f 5220 5195 5194 5221
-f 5160 5135 5134 5161
-f 4872 4866 4865 4870
-f 4834 4832 4831 4835
-f 4820 4814 4813 4818
-f 4876 4855 4854 4877
-f 4824 4803 4802 4825
-f 4750 4837 4836 4751
-f 4742 4850 4849 4743
-f 4668 4749 4748 4669
-f 4662 4757 4756 4663
-f 5791 5792 5793 5790
-f 5775 5776 5777 5774
-f 5759 5760 5761 5758
-f 5743 5744 5745 5742
-f 5727 5728 5729 5726
-f 5711 5712 5713 5710
-f 5695 5696 5697 5694
-f 5679 5680 5681 5678
-f 5663 5664 5665 5662
-f 5647 5648 5649 5646
-f 5631 5632 5633 5630
-f 5615 5616 5617 5614
-f 5599 5600 5601 5598
-f 5583 5584 5585 5582
-f 5567 5568 5569 5566
-f 5551 5552 5553 5550
-f 5535 5536 5537 5534
-f 5519 5520 5521 5518
-f 5503 5504 5505 5502
-f 5487 5488 5489 5486
-f 5471 5472 5473 5470
-f 5455 5456 5457 5454
-f 5439 5440 5441 5438
-f 5423 5424 5425 5422
-f 5407 5408 5409 5406
-f 5391 5392 5393 5390
-f 5375 5376 5377 5374
-f 5359 5360 5361 5358
-f 5343 5344 5345 5342
-f 5327 5329 5326
-f 5319 5320 5321 5318
-f 5303 5304 5305 5302
-f 5295 5296 5297
-f 5279 5280 5281 5278
-f 5263 5265 5262
-f 5255 5256 5257 5254
-f 5239 5240 5241 5238
-f 5231 5232 5233
-f 5204 5205 5201
-f 5174 5175 5171
-f 5144 5145 5141
-f 5114 5115 5111
-f 4871 4872 4870
-f 4863 4860 4861
-f 4845 4846 4844
-f 4836 4837 4838 4834
-f 4826 4828 4829
-f 4819 4820 4818
-f 4810 4811 4812 4808
-f 4783 4784 4785
-f 4785 4786 4782
-f 4743 4744 4745 4742
-f 4663 4664 4662
-f 4671 4669 4748 4753
-f 4754 4751 4836 4830
-f 4844 4839 4848
-f 5183 5177 5187
-f 5134 5235 5230 5161
-f 5266 5259 5254 5263
-f 5290 5283 5278 5287
-f 5314 5307 5302 5311
-f 5346 5116 5119 5343
-f 5370 5363 5358 5367
-f 5402 5395 5390 5399
-f 5434 5427 5422 5431
-f 5466 5459 5454 5463
-f 5506 5491 5486 5503
-f 5522 5515 5510 5519
-f 4776 5547 5542 4799
-f 4802 5571 5566 4825
-f 5602 5595 5590 5599
-f 5634 5619 5614 5631
-f 5658 5651 5646 5655
-f 5690 5683 5678 5687
-f 5722 5715 5710 5719
-f 5754 5747 5742 5751
-f 5794 5779 5774 5791
-f 5421 5169 5171 5277 5412
-f 5389 5300 5193 5200 5380
-f 5357 5324 5333 5496
-f 5485 5336 5229 5476
-f 5453 5244 5253 5444
-f 5264 5257 5744 5737
-f 5288 5281 5712 5705
-f 5312 5305 5680 5673
-f 5340 5345 5640 5789
-f 5240 5148 5155 5768 5761
-f 5504 5489 5620 5637
-f 5368 5361 5516 5525
-f 4781 5400 5393 5548 4775
-f 4807 5432 5425 5572 4801
-f 5464 5457 5596 5605
-f 4866 4872 5784 5645 5616
-f 4840 4846 5668 5677 5512
-f 5537 5700 5709 5544
-f 5561 5732 5741 5568
-f 5585 5764 5773 5592
-f 4821 5569 5740 5749 4819
-f 4795 5545 5708 5717 4793
-f 5513 5676 5685 5520
-f 5617 5644 5653 5632
-f 5593 5772 5781 5600
-f 5440 5433 4806 4808 5581
-f 5408 5401 4780 4782 5557
-f 5376 5369 5524 5533
-f 5500 5505 5636 5625
-f 5472 5465 5604 5613
-f 5224 5341 5788 5793
-f 5320 5313 5672 5665
-f 5296 5289 5704 5697
-f 5184 5186 5265 5736 5729
-f 5445 5252 5261 5436
-f 5477 5228 5237 5468
-f 5497 5332 5103 5110 5508
-f 5381 5199 5201 5309 5372
-f 5413 5276 5285 5404
-f 5782 5795 5790 5787
-f 5762 5755 5750 5759
-f 5730 5723 5718 5727
-f 5698 5691 5686 5695
-f 5666 5659 5654 5663
-f 5622 5635 5630 5627
-f 5610 5603 5598 5607
-f 5578 4812 4815 5575
-f 5554 4786 4789 5551
-f 5530 5523 5518 5527
-f 5494 5507 5502 5499
-f 5474 5467 5462 5471
-f 5442 5435 5430 5439
-f 5410 5403 5398 5407
-f 5378 5371 5366 5375
-f 5334 5347 5342 5339
-f 5322 5315 5310 5319
-f 5298 5291 5286 5295
-f 5164 5267 5262 5191
-f 5242 5146 5149 5239
-f 5213 5207 5217
-f 4870 4865 4874
-f 4792 4787 4796
-f 4750 4747 4842 4837
-f 4668 4666 4744 4749
-f 4666 4667 4665
-f 4747 4748 4749 4746
-f 4790 4791 4787
-f 4787 4788 4789
-f 4797 4798 4795
-f 4815 4817 4813
-f 4813 4814 4815
-f 4824 4825 4822
-f 4832 4833 4831
-f 4841 4842 4843
-f 4848 4849 4850
-f 4851 4847 4848
-f 4865 4867 4868
-f 4874 4875 4873
-f 4876 4877 4873
-f 5129 5131 5126
-f 5151 5152 5147
-f 5159 5160 5161
-f 5189 5191 5186
-f 5211 5212 5207
-f 5219 5220 5221
-f 5235 5236 5237 5234
-f 5251 5252 5253 5250
-f 5267 5268 5269 5266
-f 5283 5284 5285 5282
-f 5299 5300 5301 5298
-f 5315 5316 5317 5314
-f 5331 5332 5333 5330
-f 5347 5348 5349 5346
-f 5363 5364 5365 5362
-f 5379 5380 5381 5378
-f 5395 5396 5397 5394
-f 5411 5412 5413 5410
-f 5427 5428 5429 5426
-f 5443 5444 5445 5442
-f 5459 5460 5461 5458
-f 5475 5476 5477 5474
-f 5491 5492 5493 5490
-f 5507 5508 5509 5506
-f 5523 5524 5525 5522
-f 5539 5540 5541 5538
-f 5555 5556 5557 5554
-f 5571 5572 5573 5570
-f 5587 5588 5589 5586
-f 5603 5604 5605 5602
-f 5619 5620 5621 5618
-f 5635 5636 5637 5634
-f 5651 5652 5653 5650
-f 5667 5668 5669 5666
-f 5683 5684 5685 5682
-f 5699 5700 5701 5698
-f 5715 5716 5717 5714
-f 5731 5732 5733 5730
-f 5747 5748 5749 5746
-f 5763 5764 5765 5762
-f 5779 5780 5781 5778
-f 5795 5796 5797 5794
-f 4670 4667 4666 4668
-f 4671 4753 4752 4672
-f 4753 4748 4747 4750
-f 4754 4830 4829 4755
-f 4791 4797 4796 4787
-f 4817 4823 4822 4813
-f 4833 4827 4826 4831
-f 4847 4845 4844 4848
-f 4873 4871 4870 4874
-f 5126 5124 5123 5127
-f 5156 5154 5153 5157
-f 5186 5184 5183 5187
-f 5216 5214 5213 5217
-f 5231 5222 5225 5232
-f 5239 5149 5148 5240
-f 5255 5246 5249 5256
-f 5191 5262 5265 5186
-f 5279 5270 5273 5280
-f 5295 5286 5289 5296
-f 5303 5209 5208 5304
-f 5319 5310 5313 5320
-f 5131 5326 5329 5126
-f 5351 5498 5501 5352
-f 5367 5358 5361 5368
-f 5383 5374 5377 5384
-f 5399 5390 5393 5400
-f 5415 5406 5409 5416
-f 5431 5422 5425 5432
-f 5447 5438 5441 5448
-f 5463 5454 5457 5464
-f 5479 5470 5473 5480
-f 5503 5486 5489 5504
-f 4851 5626 5629 4847
-f 5519 5510 5513 5520
-f 5535 5526 5529 5536
-f 4799 5542 5545 4795
-f 5559 5550 5553 5560
-f 4825 5566 5569 4821
-f 5583 5574 5577 5584
-f 5599 5590 5593 5600
-f 4877 5606 5609 4873
-f 5631 5614 5617 5632
-f 5639 5786 5789 5640
-f 5655 5646 5649 5656
-f 5671 5662 5665 5672
-f 5687 5678 5681 5688
-f 5703 5694 5697 5704
-f 5719 5710 5713 5720
-f 5735 5726 5729 5736
-f 5751 5742 5745 5752
-f 5767 5758 5761 5768
-f 5791 5774 5777 5792
-f 5234 5231 5230 5235
-f 5266 5263 5262 5267
-f 5298 5295 5294 5299
-f 5330 5327 5326 5331
-f 5362 5359 5358 5363
-f 5394 5391 5390 5395
-f 5426 5423 5422 5427
-f 5458 5455 5454 5459
-f 5490 5487 5486 5491
-f 5522 5519 5518 5523
-f 5554 5551 5550 5555
-f 5586 5583 5582 5587
-f 5618 5615 5614 5619
-f 5650 5647 5646 5651
-f 5682 5679 5678 5683
-f 5714 5711 5710 5715
-f 5746 5743 5742 5747
-f 5778 5775 5774 5779
-f 5169 5421 5420 5170
-f 5300 5389 5388 5301
-f 5324 5357 5356 5325
-f 5336 5485 5484 5337
-f 5244 5453 5452 5245
-f 5256 5745 5744 5257
-f 5280 5713 5712 5281
-f 5304 5681 5680 5305
-f 5124 5649 5648 5125
-f 5232 5777 5776 5233
-f 5480 4859 4858 5481
-f 5352 4833 4832 5353
-f 5384 5541 5540 5385
-f 5416 5565 5564 5417
-f 5448 5589 5588 5449
-f 5796 5609 5608 5797
-f 5660 5629 5628 5661
-f 5692 5529 5528 5693
-f 5724 5553 5552 5725
-f 5756 5577 5576 5757
-f 5217 5219 5216
-f 5209 5210 5211
-f 5179 5181 5178
-f 5157 5159 5156
-f 5149 5150 5151
-s 909
-f 5103 5104 5105
-f 5119 5120 5121
-f 5343 5119 5118 5344
-f 5115 5120 5119 5116
-f 5101 4901 4900 5098
-f 5073 5083 5082 5070
-f 5075 5091 5093 5076
-f 5091 5089 5088 5092
-f 5070 5122 5121 5071
-f 4902 5115 5114 4903
-f 5092 5094 5097 5093
-f 5064 5066 5069 5065
-f 5109 5110 5108
-f 5099 5101 5098
-f 5084 5085 5086
-f 5078 5079 5077
-f 5071 5073 5070
-f 4902 4903 4904
-f 4896 4897 4895
-f 5067 5071 5121
-f 5060 5072 5066
-f 5088 5100 5094 5092
-f 4894 5065 5069 4905
-f 5098 4900 5113 5107
-f 5344 5118 5125 5648 5641
-f 5084 5096 5105 5130
-f 5090 4897 4901 5101
-f 5086 5080 5078
-f 5095 5099 5106
-f 4901 4898 4899
-f 5061 5062 5060
-f 5067 5068 5066
-f 5081 5082 5083
-f 5089 5090 5088
-f 5095 5096 5094
-f 5103 5107 5102
-f 5072 5060 5062 5073
-f 5100 5088 5090 5101
-f 5071 5067 5066 5072
-f 5084 5130 5129 5085
-f 5089 4895 4897 5090
-f 5087 5097 5096 5084
-f 5067 5121 5120 5068
-f 5107 5113 5112 5102
-f 5344 5641 5640 5345
-f 5111 5109 5108 5112
-f 4899 5114 5113 4900
-f 5081 5129 5128 5082
-f 5061 5077 5079 5062
-f 5099 5095 5094 5100
-f 5077 5075 5074 5078
-f 4903 4899 4898 4904
-f 5086 5074 5076 5087
-f 4904 4892 4894 4905
-f 5103 5106 5107
-f 5096 5097 5094
-f 5081 5083 5080
-f 5075 5076 5074
-f 5068 5069 5066
-f 4899 4900 4901
-f 4893 4894 4892
-f 5081 5085 5129
-f 5078 5074 5086
-f 5062 5079 5083 5073
-f 4902 5068 5120 5115
-f 5108 5102 5112
-f 5070 5082 5128 5122
-f 5076 5093 5097 5087
-f 5060 5066 5064
-f 4892 4904 4898 4896
-f 4899 4903 5114
-f 4904 4905 4902
-f 5064 5065 5063
-f 5071 5072 5073
-f 5086 5087 5084
-f 5092 5093 5091
-f 5099 5100 5101
-f 4896 4898 4901 4897
-f 5078 5080 5083 5079
-f 4895 4893 4892 4896
-f 5063 5061 5060 5064
-f 5085 5081 5080 5086
-f 5098 5107 5106 5099
-f 4893 5063 5065 4894
-f 4905 5069 5068 4902
-f 5095 5106 5105 5096
-f 5110 5103 5102 5108
-f 5119 5121 5118
-f 5105 5106 5103
-s 917
-f 5195 5196 5193
-f 5205 5210 5209 5206
-f 5017 4929 4928 5014
-f 4989 4999 4998 4986
-f 4991 5007 5009 4992
-f 5007 5005 5004 5008
-f 4986 5212 5211 4987
-f 4930 5205 5204 4931
-f 5008 5010 5013 5009
-f 4980 4982 4985 4981
-f 5199 5200 5198
-f 5015 5017 5014
-f 5000 5001 5002
-f 4994 4995 4993
-f 4987 4989 4986
-f 4930 4931 4932
-f 4924 4925 4923
-f 4997 5001 5219
-f 4976 4988 4982
-f 5004 5016 5010 5008
-f 4922 4981 4985 4933
-f 5014 4928 5203 5197
-f 4930 4984 5210 5205
-f 4978 4995 4999 4989
-f 4994 4990 5002
-f 4983 4987 5211
-f 4921 4922 4920
-f 4927 4928 4929
-f 4984 4985 4982
-f 4991 4992 4990
-f 4997 4999 4996
-f 5012 5013 5010
-f 5193 5196 5197
-f 4932 4920 4922 4933
-f 5002 4990 4992 5003
-f 4931 4927 4926 4932
-f 4993 4991 4990 4994
-f 5015 5011 5010 5016
-f 4977 4993 4995 4978
-f 4997 5219 5218 4998
-f 4927 5204 5203 4928
-f 5201 5199 5198 5202
-f 5197 5203 5202 5192
-f 4983 5211 5210 4984
-f 5003 5013 5012 5000
-f 5005 4923 4925 5006
-f 5000 5220 5219 5001
-f 4987 4983 4982 4988
-f 5016 5004 5006 5017
-f 4988 4976 4978 4989
-f 5193 5197 5192
-f 5011 5012 5010
-f 5005 5006 5004
-f 4997 4998 4999
-f 4983 4984 4982
-f 4977 4978 4976
-f 4929 4926 4927
-f 4927 4931 5204
-f 5002 4996 4994
-f 5006 4925 4929 5017
-f 5000 5012 5195 5220
-f 5198 5192 5202
-f 4986 4998 5218 5212
-f 4992 5009 5013 5003
-f 4976 4982 4980
-f 4920 4932 4926 4924
-f 5011 5015 5196
-f 4932 4933 4930
-f 4980 4981 4979
-f 4987 4988 4989
-f 5002 5003 5000
-f 5008 5009 5007
-f 5015 5016 5017
-f 4924 4926 4929 4925
-f 4994 4996 4999 4995
-f 4923 4921 4920 4924
-f 4979 4977 4976 4980
-f 5001 4997 4996 5002
-f 5014 5197 5196 5015
-f 4921 4979 4981 4922
-f 4933 4985 4984 4930
-f 5011 5196 5195 5012
-f 5200 5193 5192 5198
-f 5193 5194 5195
-s 905
-f 5165 5166 5163
-f 5175 5180 5179 5176
-f 4891 4971 4970 4888
-f 4947 4957 4956 4944
-f 4973 4969 4968 4974
-f 4951 4949 4948 4952
-f 4889 4885 4884 4890
-f 4952 4954 4957 4953
-f 4882 4884 4887 4883
-f 4972 4973 4974
-f 4966 4967 4965
-f 4960 4961 4958
-f 4945 4946 4947
-f 4889 4890 4891
-f 4882 4883 4881
-f 4955 4959 5189
-f 4960 4954 4952
-f 4944 4956 5188 5182
-f 5168 5162 5172
-f 4958 4886 5165 5190
-f 4880 4967 4971 4891
-f 4934 4946 4940
-f 4878 4890 4884 4882
-f 4941 4945 5181
-f 4886 4887 4884
-f 4935 4936 4934
-f 4941 4942 4940
-f 4955 4956 4957
-f 4963 4964 4962
-f 4969 4970 4971
-f 5163 5167 5162
-f 4946 4934 4936 4947
-f 4974 4962 4964 4975
-f 4888 5167 5166 4889
-f 4944 5182 5181 4945
-f 4965 4963 4962 4966
-f 4879 4965 4967 4880
-f 4961 4887 4886 4958
-f 4941 5181 5180 4942
-f 5167 5173 5172 5162
-f 5171 5169 5168 5172
-f 4969 5174 5173 4970
-f 4955 5189 5188 4956
-f 4935 4951 4953 4936
-f 4972 5175 5174 4973
-f 4959 4955 4954 4960
-f 4937 4935 4934 4938
-f 4881 4879 4878 4882
-f 4960 4948 4950 4961
-f 4890 4878 4880 4891
-f 5163 5166 5167
-f 4971 4968 4969
-f 4955 4957 4954
-f 4949 4950 4948
-f 4942 4943 4940
-f 4885 4886 4884
-f 4879 4880 4878
-f 4885 4889 5166
-f 4934 4940 4938
-f 4962 4974 4968 4966
-f 4936 4953 4957 4947
-f 4972 4942 5180 5175
-f 4888 4970 5173 5167
-f 4950 4883 4887 4961
-f 4952 4948 4960
-f 4969 4973 5174
-f 4889 4891 4888
-f 4945 4947 4944
-f 4952 4953 4951
-f 4958 4959 4960
-f 4974 4975 4972
-f 5169 5170 5168
-f 4938 4940 4943 4939
-f 4966 4968 4971 4967
-f 4945 4941 4940 4946
-f 4958 5190 5189 4959
-f 4949 4881 4883 4950
-f 4975 4943 4942 4972
-f 4885 5166 5165 4886
-f 5170 5163 5162 5168
-f 5163 5164 5165
-s 913
-f 5135 5136 5133
-f 5145 5150 5149 5146
-f 4919 5041 5040 4916
-f 5031 5055 5054 5028
-f 5057 5053 5052 5058
-f 5035 5033 5032 5036
-f 4917 4913 4912 4918
-f 5036 5038 5041 5037
-f 4910 4912 4915 4911
-f 5056 5057 5058
-f 5050 5051 5049
-f 5044 5045 5042
-f 5029 5030 5031
-f 4917 4918 4919
-f 4910 4911 4909
-f 5053 5057 5159
-f 4908 5037 5041 4919
-f 5028 5054 5158 5152
-f 5138 5132 5142
-f 5056 4914 5135 5160
-f 5050 5046 5058
-f 5018 5030 5024
-f 4906 4918 4912 4910
-f 5039 5043 5144
-f 4914 4915 4912
-f 5019 5020 5018
-f 5025 5026 5024
-f 5041 5038 5039
-f 5047 5048 5046
-f 5053 5055 5052
-f 5133 5137 5132
-f 5030 5018 5020 5031
-f 5058 5046 5048 5059
-f 4916 5137 5136 4917
-f 5028 5152 5151 5029
-f 5049 5047 5046 5050
-f 4907 5035 5037 4908
-f 5059 4915 4914 5056
-f 5025 5151 5150 5026
-f 5137 5143 5142 5132
-f 5141 5139 5138 5142
-f 5039 5144 5143 5040
-f 5053 5159 5158 5054
-f 5019 5049 5051 5020
-f 5056 5160 5159 5057
-f 5043 5039 5038 5044
-f 5021 5019 5018 5022
-f 4909 4907 4906 4910
-f 5044 5032 5034 5045
-f 4918 4906 4908 4919
-f 5133 5136 5137
-f 5053 5054 5055
-f 5039 5040 5041
-f 5033 5034 5032
-f 5026 5027 5024
-f 4913 4914 4912
-f 4907 4908 4906
-f 4913 4917 5136
-f 5018 5024 5022
-f 5058 5052 5050
-f 5048 4911 4915 5059
-f 5042 5026 5150 5145
-f 4916 5040 5143 5137
-f 5020 5051 5055 5031
-f 5032 5044 5038 5036
-f 5025 5029 5151
-f 4917 4919 4916
-f 5029 5031 5028
-f 5036 5037 5035
-f 5042 5043 5044
-f 5058 5059 5056
-f 5139 5140 5138
-f 5022 5024 5027 5023
-f 5050 5052 5055 5051
-f 5029 5025 5024 5030
-f 5042 5145 5144 5043
-f 5047 4909 4911 5048
-f 5045 5027 5026 5042
-f 4913 5136 5135 4914
-f 5140 5133 5132 5138
-f 5133 5134 5135
-s 932
-f 5022 5023 5021
-f 5034 5023 5027 5045
-f 5033 5021 5023 5034
-s 921
-f 4938 4939 4937
-f 4964 4939 4943 4975
-f 4963 4937 4939 4964
-s 857
-f 4859 4853 4852 4857
-f 4770 4856 4855 4771
-f 4769 4764 4763 4766
-f 4683 4769 4768 4684
-f 4682 4679 4678 4680
-f 4858 4859 4857
-f 4763 4764 4765 4762
-f 4678 4679 4677
-f 4680 4678 4760 4765
-f 4766 4763 4868 4863
-f 4682 4685 4676 4679
-f 4762 4759 4875 4869
-f 4677 4675 4772 4761
-f 4681 4682 4680
-f 4767 4768 4769 4766
-f 4854 4855 4856
-f 4676 4685 4684 4674
-f 4677 4761 4760 4678
-f 4761 4772 4771 4758
-f 4762 4869 4868 4763
-f 4856 4862 4861 4852
-f 4860 4858 4857 4861
-f 4766 4863 4862 4767
-f 4758 4876 4875 4759
-f 4680 4765 4764 4681
-f 4674 4773 4772 4675
-f 4854 4856 4852
-f 4852 4853 4854
-f 4759 4760 4761 4758
-f 4675 4676 4674
-f 4683 4681 4764 4769
-f 4770 4767 4862 4856
-f 4857 4852 4861
-f 4758 4771 4855 4876
-f 4674 4684 4768 4773
-f 4684 4685 4683
-f 4771 4772 4773 4770
-f 4679 4676 4675 4677
-f 4685 4682 4681 4683
-f 4765 4760 4759 4762
-f 4773 4768 4767 4770
-f 4863 4868 4867 4864
-s 865
-f 4811 4816 4815 4812
-f 4741 4736 4735 4738
-f 4733 4728 4727 4730
-f 4709 4706 4705 4707
-f 4703 4700 4699 4701
-f 4739 4740 4741 4738
-f 4708 4709 4707
-f 4698 4708 4736 4741
-f 4726 4739 4803 4824
-f 4805 4800 4809
-f 4738 4735 4810 4804
-f 4707 4705 4732 4737
-f 4699 4700 4698
-f 4727 4728 4729 4726
-f 4800 4801 4802
-f 4803 4804 4800
-f 4698 4741 4740 4699
-f 4704 4733 4732 4705
-f 4726 4824 4823 4727
-f 4734 4811 4810 4735
-f 4808 4806 4805 4809
-f 4804 4810 4809 4800
-f 4730 4817 4816 4731
-f 4729 4740 4739 4726
-f 4701 4729 4728 4702
-f 4700 4709 4708 4698
-f 4800 4802 4803
-f 4735 4736 4737 4734
-f 4705 4706 4704
-f 4701 4699 4740 4729
-f 4730 4727 4823 4817
-f 4706 4709 4700 4703
-f 4734 4731 4816 4811
-f 4704 4702 4728 4733
-f 4702 4703 4701
-f 4731 4732 4733 4730
-f 4806 4807 4805
-f 4706 4703 4702 4704
-f 4707 4737 4736 4708
-f 4737 4732 4731 4734
-f 4738 4804 4803 4739
-f 4807 4801 4800 4805
-s 861
-f 4781 4775 4774 4779
-f 4722 4778 4777 4723
-f 4721 4716 4715 4718
-f 4695 4721 4720 4696
-f 4694 4691 4690 4692
-f 4780 4781 4779
-f 4715 4716 4717 4714
-f 4690 4691 4689
-f 4692 4690 4712 4717
-f 4718 4715 4790 4785
-f 4779 4774 4783
-f 4714 4711 4797 4791
-f 4689 4687 4724 4713
-f 4693 4694 4692
-f 4719 4720 4721 4718
-f 4776 4777 4778
-f 4688 4697 4696 4686
-f 4689 4713 4712 4690
-f 4713 4724 4723 4710
-f 4714 4791 4790 4715
-f 4778 4784 4783 4774
-f 4782 4780 4779 4783
-f 4718 4785 4784 4719
-f 4710 4798 4797 4711
-f 4692 4717 4716 4693
-f 4686 4725 4724 4687
-f 4776 4778 4774
-f 4774 4775 4776
-f 4711 4712 4713 4710
-f 4687 4688 4686
-f 4695 4693 4716 4721
-f 4722 4719 4784 4778
-f 4694 4697 4688 4691
-f 4710 4723 4777 4798
-f 4686 4696 4720 4725
-f 4696 4697 4695
-f 4723 4724 4725 4722
-f 4691 4688 4687 4689
-f 4697 4694 4693 4695
-f 4717 4712 4711 4714
-f 4725 4720 4719 4722
-f 4785 4790 4789 4786
-g boat
-usemtl bluteal
-s 1
-f 384 383 452 451
-f 271 270 381 380
-f 14 429 435 6
-f 17 417 429 14
-f 407 406 425 11
-f 413 410 409
-f 412 411 24
-f 25 400 406 405
-f 331 336 312 40
-f 287 286 289 50
-f 415 416 18
-f 412 413 18
-f 405 406 19
-f 332 311 425 406
-f 401 410 412
-f 433 427 426 442
-f 270 435 434 381
-f 408 426 427 414
-f 403 417 373
-f 403 404 24
-f 19 409 410
-f 413 414 415 18
-f 451 452 453 4
-f 311 40 50 289
-f 402 24 25
-f 401 25 405 410
-f 403 411 416
-f 408 407 11 426
-f 428 15 2 434
-f 270 269 6 435
-f 434 2 382 381
-f 454 453 1 441
-f 426 11 1 442
-f 416 415 15 428
-f 414 413 409 408
-f 403 24 411
-f 402 25 401
-f 332 331 40 311
-f 288 287 50 290
-f 416 411 18
-f 410 405 19
-f 406 407 19
-f 311 289 441 425
-f 403 416 417
-f 428 434 435 429
-f 442 452 383 433
-f 416 428 429 417
-f 412 402 401
-f 289 286 454 441
-f 407 408 409 19
-f 18 411 412
-f 453 454 449 4
-f 40 312 290 50
-f 24 404 400 25
-f 24 402 412
-f 374 373 417 17
-f 413 412 410
-f 415 414 427 15
-f 15 427 433 2
-f 11 425 441 1
-f 453 452 442 1
-f 2 433 383 382
-s 5
-f 269 268 436 6
-f 445 444 306 305
-f 388 387 444 443
-f 12 423 439 10
-f 16 419 431 13
-f 20 423 12
-f 368 367 419 16
-f 366 365 377 376
-f 299 298 387 386
-f 347 346 358 357
-f 341 340 352
-f 345 352 322 35
-f 31 338 314 39
-f 35 322 316
-f 37 318 292 45
-f 39 314 302 41
-f 297 296 308 307
-f 263 262 294 293
-f 443 444 445 7
-f 21 396 397
-f 392 393 386 8
-f 376 377 372 23
-f 366 367 368 22
-f 349 350 351 29
-f 343 344 30
-f 340 341 30
-f 303 304 44
-f 293 294 295 43
-f 261 262 263 46
-f 202 249 440 446
-f 255 253 314 338
-f 301 308 296 310
-f 316 322 337 313
-f 348 356 377 365
-f 375 418 419 367
-f 430 436 437 431
-f 391 437 436 268
-f 418 430 431 419
-f 369 421 397
-f 342 350 371 395
-f 337 352 340
-f 313 301 310 316
-f 232 255 338 344
-f 210 202 446 304
-f 245 240 399 422
-f 267 268 269 5
-f 299 300 293 43
-f 307 308 303 44
-f 344 339 30
-f 29 351 352
-f 357 358 353 28
-f 22 368 369
-f 374 375 376 23
-f 390 391 392 8
-f 398 399 21
-f 447 448 443 7
-f 247 59 60 245
-f 202 201 58 249
-f 251 55 211 210
-f 255 53 54 253
-f 240 239 233 232
-f 262 261 45 292
-f 304 303 41 302
-f 309 42 295 294
-f 315 38 42 309
-f 337 31 39
-f 340 339 31 337
-f 342 341 351 350
-f 350 349 364 371
-f 300 299 386 393
-f 367 366 376 375
-f 397 396 370
-f 369 368 16 420
-f 422 20 12 424
-f 420 16 13
-f 430 14 6 436
-f 424 12 10 440
-f 389 388 443 448
-f 446 445 305 304
-f 268 267 392 391
-f 448 447 10 439
-f 438 9 390 389
-f 432 13 9 438
-f 420 13 432
-f 418 17 14 430
-f 399 398 20 422
-f 397 370 369
-f 375 374 17 418
-f 344 343 394 399
-f 356 355 372 377
-f 348 347 357 356
-f 346 345 35 321
-f 337 39 313
-f 321 35 38 315
-f 313 39 41 301
-f 298 297 307 306
-f 264 263 293 300
-f 266 265 257 264
-f 232 231 53 255
-f 253 54 55 251
-f 210 209 203 202
-f 249 58 59 247
-f 245 60 241 240
-f 445 446 7
-f 394 395 396 21
-f 386 387 388 8
-f 369 370 22
-f 364 365 366 22
-f 352 345 29
-f 347 348 349 29
-f 341 342 343 30
-f 304 305 44
-f 295 296 297 43
-f 263 264 257 46
-f 249 247 424 440
-f 253 251 302 314
-f 262 292 309 294
-f 321 315 318 324
-f 337 322 352
-f 387 298 306 444
-f 369 420 421
-f 432 438 439 423
-f 438 389 448 439
-f 423 421 420 432
-f 264 300 393 266
-f 321 324 358 346
-f 315 309 292 318
-f 240 232 344 399
-f 251 210 304 302
-f 247 245 422 424
-f 265 266 267 5
-f 297 298 299 43
-f 305 306 307 44
-f 30 339 340
-f 345 346 347 29
-f 355 356 357 28
-f 370 371 364 22
-f 388 389 390 8
-f 397 398 21
-f 399 394 21
-f 446 447 7
-f 303 308 301 41
-f 42 310 296 295
-f 38 316 310 42
-f 35 316 38
-f 34 324 318 37
-f 339 344 338 31
-f 341 352 351
-f 353 358 324 34
-f 349 348 365 364
-f 343 342 395 394
-f 396 395 371 370
-f 398 397 421 20
-f 20 421 423
-f 13 431 437 9
-f 9 437 391 390
-f 447 446 440 10
-f 267 266 393 392
-s 6
-f 27 363 26
-f 26 363 334
-f 27 330 329
-f 325 330 320 36
-f 261 260 291 45
-f 265 272 258 257
-f 360 361 27
-f 32 333 334
-f 331 332 32
-f 325 326 327 33
-f 274 282 291 260
-f 323 317 320 330
-f 334 363 359
-f 360 362 400 404
-f 323 330 361
-f 317 291 282 320
-f 259 260 261 46
-f 328 329 33
-f 332 333 32
-f 354 355 28
-f 281 49 273 280
-f 317 37 45 291
-f 323 34 37 317
-f 328 327 335
-f 354 353 34 323
-f 27 329 328
-f 360 27 26 362
-f 362 26 333 332
-f 328 359 27
-f 328 335 334
-f 326 325 36 319
-f 319 36 49 281
-f 260 259 275 274
-f 372 373 23
-f 335 336 331 32
-f 330 325 33
-f 33 327 328
-f 281 280 288 290
-f 319 312 336 326
-f 361 354 323
-f 362 332 406 400
-f 359 328 334
-f 290 312 319 281
-f 257 258 259 46
-f 329 330 33
-f 334 335 32
-f 353 354 28
-f 373 374 23
-f 49 282 274 273
-f 36 320 282 49
-f 327 326 336 335
-f 27 361 330
-f 334 333 26
-f 27 359 363
-s 62
-f 62 244 236 63
-f 223 228 222 221
-f 66 216 214 67
-f 68 206 198 197
-f 187 192 185 61
-f 221 222 65
-f 192 187 70
-f 78 167 166 216 222
-f 183 181 244 185
-f 78 77 173 167
-f 140 183 185 192
-f 77 78 222 228
-f 191 192 70
-f 222 217 65
-f 173 172 168 167
-f 166 165 80 179
-f 183 74 75 181
-f 146 145 141 140
-f 178 71 147 146
-f 140 139 74 183
-f 181 75 175 174
-f 179 80 71 178
-f 228 223 64
-f 198 193 69
-f 166 179 214 216
-f 181 174 236 244
-f 178 146 198 206
-f 146 140 192 198
-f 174 173 77 228 236
-f 179 178 206 214
-f 197 198 69
-f 227 228 64
-f 193 198 192 191
-f 67 214 206 68
-f 217 222 216 66
-f 63 236 228 227
-f 61 185 244 62
-s 2
-f 355 354 373 372
-f 449 450 451 4
-f 380 381 382 3
-f 284 278 385 450
-f 378 379 380 3
-f 450 449 285 284
-f 385 384 451 450
-f 382 383 384 3
-f 361 360 404 403 373 354
-f 283 284 285 47
-f 384 385 378 3
-f 279 278 284 283
-s 3
-f 259 258 276 275
-f 273 274 275 48
-f 276 258 272 379
-f 275 276 277 48
-f 280 279 283 288
-f 272 271 380 379
-f 278 277 378 385
-f 279 280 273 48
-f 271 272 265 5
-f 269 270 271 5
-f 277 278 279 48
-f 277 276 379 378
-s 51
-f 239 238 234 233
-f 58 250 248 59
-f 60 246 242 241
-f 189 188 200 199
-f 229 230 231 52
-f 199 200 201 57
-f 224 220 234 238
-f 186 243 248 250
-f 187 188 189 70
-f 237 238 239 51
-f 188 187 61 186
-f 235 63 227 226
-f 243 62 63 235
-f 186 61 62 243
-f 226 225 237 242
-f 224 223 221 220
-f 241 242 237 51
-f 225 226 227 64
-f 235 226 242 246
-f 243 235 246 248
-f 188 186 250 200
-f 223 224 225 64
-f 233 234 229 52
-f 225 224 238 237
-f 59 248 246 60
-f 201 200 250 58
-s 53
-f 53 256 254 54
-f 55 252 212 211
-f 217 218 219 65
-f 218 215 256 230
-f 205 196 212 252
-f 205 68 197 196
-f 215 66 67 213
-f 220 219 229 234
-f 218 217 66 215
-f 213 67 68 205
-f 219 220 221 65
-f 215 213 254 256
-f 213 205 252 254
-f 219 218 230 229
-f 54 254 252 55
-f 231 230 256 53
-s 103
-f 195 194 208 207
-f 189 190 191 70
-f 193 194 195 69
-f 194 193 191 190
-f 190 189 199 204
-f 207 208 209 56
-f 194 190 204 208
-f 203 204 199 57
-f 209 208 204 203
-s 81
-f 157 162 156 155
-f 84 150 123 122
-f 161 162 157 82
-f 129 123 150 156 162 135
-f 155 156 151 83
-f 129 128 124 123
-f 128 129 130 88
-f 122 123 124 85
-f 130 129 135 81
-f 151 156 150 84
-f 81 135 162 161
-s 76
-f 139 138 184 74
-f 75 182 176 175
-f 97 96 133 87
-f 132 126 88
-f 131 136 182 184
-f 133 132 131 184 138
-f 131 132 88
-f 159 160 161 82
-f 136 81 161 160
-f 160 159 170 176
-f 131 130 81 136
-f 137 138 139 73
-f 116 132 133 96
-f 136 160 176 182
-f 130 131 88
-f 175 176 170 76
-f 87 133 138 137
-f 74 184 182 75
-s 100
-f 172 171 169 168
-f 170 171 172 76
-f 153 154 155 83
-f 168 169 163 79
-f 154 153 163 169
-f 158 157 155 154
-f 158 154 169 171
-f 157 158 159 82
-f 159 158 171 170
-s 72
-f 71 177 148 147
-f 80 180 177 71
-f 107 106 120 119
-f 102 112 120 106
-f 152 149 180 164
-f 151 152 153 83
-f 106 105 103 102
-f 112 86 143 148
-f 152 151 84 149
-f 149 84 122 121
-f 102 101 86 112
-f 163 164 165 79
-f 149 121 177 180
-f 121 120 112 148 177
-f 147 148 143 72
-f 153 152 164 163
-f 165 164 180 80
-s 86
-f 86 111 144 143
-f 143 144 145 72
-f 111 134 142 144
-f 99 100 101 92
-f 100 99 93 98
-f 134 87 137 142
-f 98 97 87 134
-f 141 142 137 73
-f 111 100 98 134
-f 97 98 93 89
-f 101 100 111 86
-f 145 144 142 141
-s 85
-f 113 118 110 109
-f 99 104 94 93
-f 109 110 105 91
-f 101 102 103 92
-f 104 110 118 94
-f 103 104 99 92
-f 96 95 117 116
-f 116 115 126 132
-f 117 118 113 90
-f 95 96 97 89
-f 93 94 95 89
-f 105 106 107 91
-f 115 116 117 90
-f 105 110 104 103
-f 95 94 118 117
-s 96
-f 115 114 127 126
-f 114 108 125 127
-f 113 114 115 90
-f 114 113 109 108
-f 108 107 119 125
-f 124 125 119 85
-f 107 108 109 91
-f 126 127 128 88
-f 128 127 125 124
-s 82
-f 119 120 85
-f 121 122 85
-f 120 121 85
-s 74
-f 140 141 73
-f 139 140 73
-s 71
-f 167 168 79
-f 145 146 72
-f 166 167 79
-f 174 175 76
-f 172 173 76
-f 146 147 72
-f 165 166 79
-f 173 174 76
-s 56
-f 211 212 207 56
-f 196 195 207 212
-f 195 196 197 69
-s 58
-f 201 202 57
-f 202 203 57
-s 55
-f 209 210 56
-f 210 211 56
-s 54
-f 231 232 52
-f 232 233 52
-s 52
-f 239 240 51
-f 240 241 51
-s 4
-f 285 286 287 47
-f 287 288 283 47
-f 449 454 286 285
-g engine
-usemtl black
-s 116
-f 2694 2693 2305 2304
-f 1783 1782 1941 1940
-f 2721 2722 2723 470
-f 2302 2303 458
-f 2196 2195 563 1612 1606
-f 562 2204 2203 1636 1630
-f 1942 1941 563 2195 1881
-f 554 555 2301 2299
-f 2302 2268 2726 2782
-f 2302 2301 555 2249 2268
-f 562 563 1941 1782
-f 563 554 1618 1612
-f 2303 2304 2305 458
-f 2725 2726 2721 470
-f 1612 1611 1607 1606
-f 1624 1623 1619 1618
-f 1648 1647 1643 1642
-f 2693 2692 2306 2305
-f 2783 2782 2726 2725
-f 2781 2786 2304 2303
-f 1636 1635 1631 1630
-f 1618 1617 1613 1612
-f 2781 2782 2783 455
-f 2693 2694 2695 457
-f 2301 2302 458
-f 555 562 1630 1648
-f 563 562 555 554
-f 554 2299 2298 2269 2220
-f 2694 2304 2786 2687
-f 562 1782 1781 1800 2204
-f 2250 2249 555 1648 1642
-f 554 2220 2219 1624 1618
-f 2300 2301 458
-f 2305 2306 2300 458
-f 2785 2786 2781 455
-f 2782 2781 2303 2302
-f 2786 2785 2688 2687
-s 133
-f 2457 2456 2255 2254
-f 2240 2239 2258 2257
-f 2256 2251 533
-f 2240 2241 2242 557
-f 2236 2230 558
-f 2230 2231 2232 558
-f 2258 2256 2455 2728
-f 2232 2233 2234 558
-f 2237 2238 557
-f 2242 2243 2237 557
-f 2255 2256 533
-f 2241 2240 2257 2262
-f 2456 2455 2256 2255
-f 2235 2234 2251 2256
-f 2251 2252 2253 533
-f 2239 2240 557
-f 2235 2236 558
-f 2235 2256 2258 2239
-f 2457 2254 2276 2310
-f 2234 2235 558
-f 2238 2239 557
-f 2253 2254 2255 533
-f 2246 2245 2243 2242
-f 2277 2276 2254 2253
-f 2728 2727 2259 2258
-s 166
-f 2570 2569 2419 2418
-f 2566 2565 2282 2281
-f 2276 2275 2311 2310
-f 2426 2425 2418 2417
-f 2422 2427 2289 2288
-f 2286 2292 2280 2279
-f 550 2222 2271 511
-f 2232 2231 2229 2228
-f 2208 2207 2238 2237
-f 2189 2188 2225 2224
-f 2214 2213 2192 2191
-f 2200 2199 2211 2210
-f 567 2194 2083 606
-f 2178 2177 2075 2074
-f 2078 2077 2177 2176
-f 2080 2079 2065 2064
-f 1667 1666 2145 2144
-f 606 2083 1984 1983
-f 1987 1986 2072 2071
-f 2076 2081 2070 2069
-f 1945 1944 1880 1879
-f 1671 1670 1794 1793
-f 1519 1518 1530 1529
-f 1437 1436 1467 702
-f 1415 1414 1453 708
-f 1116 1115 1111 1110
-f 2424 2425 2426 544
-f 2313 2314 2315 546
-f 2292 2286 543
-f 2286 2287 2288 543
-f 2280 2281 502
-f 2274 2275 534
-f 2224 2225 547
-f 2216 2217 559
-f 2208 2209 2210 560
-f 2204 2198 561
-f 2198 2199 2200 561
-f 2188 2189 570
-f 2180 2174 574
-f 2174 2175 2176 574
-f 2146 2147 2148 584
-f 2139 2140 583
-f 2077 2078 573
-f 2073 2074 615
-f 2062 2063 2064 572
-f 1985 1986 1987 616
-f 1943 1944 1945 617
-f 1938 1939 1940 618
-f 1883 1884 629
-f 1793 1794 649
-f 1606 1607 667
-f 1495 1496 605
-f 1468 1470 2207 2206
-f 1438 2206 2218
-f 1465 1438 1478
-f 1416 1454 2235
-f 1416 2239 2238 1464
-f 565 1501 1492 1508
-f 2077 2075 2177
-f 1988 2070 2081 2063
-f 2180 2179 569 2188 2139
-f 2206 1794 2149 2218
-f 569 568 549 548
-f 2233 2227 2278
-f 2270 1525 1524 552
-f 2281 2280 549 2223 2272
-f 2427 2416 2316 2289
-f 2287 2285 2423
-f 2291 2314 2312 2274
-f 2201 2209 2243 2245
-f 549 568 2194 2223
-f 2147 2192 2213
-f 1798 2211 2199
-f 565 1882 2197
-f 2180 2139 2137 2182
-f 2072 1986 1984 2083
-f 1794 1670 1668 2149
-f 1518 1514 1528 1530
-f 1462 1464 2238
-f 1459 1458 2207
-f 1476 1478 2217
-f 1473 1472 2217 2236
-f 1116 1110 1532 1526
-f 1499 1500 1495 605
-f 1667 1668 1663 585
-f 1794 1795 649
-f 1879 1880 1875 630
-f 1940 1941 618
-f 1947 1948 1943 617
-f 1987 1988 1989 616
-f 2064 2065 2066 572
-f 2072 2073 615
-f 2080 2081 2076 573
-f 2138 2139 583
-f 2144 2145 2146 584
-f 2176 2177 2178 574
-f 2181 2182 2183 571
-f 2189 2190 2191 570
-f 2203 2204 561
-f 2207 2208 560
-f 2214 2215 2216 559
-f 2225 2226 547
-f 2273 2274 534
-f 2279 2280 502
-f 2284 2285 2279 502
-f 2291 2292 543
-f 2315 2316 2317 546
-f 2423 2424 544
-f 2426 2427 2422 544
-f 2510 2511 2506 514
-f 1416 1415 708 1454
-f 1438 1437 702 1468
-f 1520 1519 1529 1534
-f 1670 1669 1663 1668
-f 1944 1943 1936 1942
-f 1948 1947 1775 1774
-f 1986 1985 1979 1984
-f 2077 2076 2069 2075
-f 1993 1992 605 1497
-f 2139 2138 2132 2137
-f 2182 2181 2174 2180
-f 1666 1665 2134 2133
-f 2186 2185 2066 2065
-f 2188 2187 2140 2139
-f 2199 2198 1799 1798
-f 2201 2200 2210 2209
-f 2215 2214 2191 2190
-f 2190 2189 2224 2229
-f 2209 2208 2237 2243
-f 2233 2232 2228 2227
-f 2227 2226 2273 2278
-f 2314 2313 2307 2312
-f 2278 2277 2253 2252
-f 2316 2315 2290 2289
-f 511 2271 2507 2506
-f 2424 2423 2285 2284
-f 2567 2566 2511 2510
-f 2565 2570 2283 2282
-f 2275 2274 2312 2311
-f 2427 2426 2417 2416
-f 2423 2422 2288 2287
-f 2287 2286 2279 2285
-f 2223 550 511 2272
-f 2203 2202 2244 2250
-f 2217 2216 2230 2236
-f 2194 567 550 2223
-f 2213 2212 2148 2147
-f 2206 2205 1795 1794
-f 2193 567 606 2082
-f 2179 2178 2074 2073
-f 2143 2142 2146 2145
-f 2081 2080 2064 2063
-f 1668 1667 2144 2149
-f 2082 606 1983 1982
-f 1988 1987 2071 2070
-f 1991 604 629 1884
-f 1500 1499 1505 1504
-f 1887 1886 1877 1876
-f 1798 1797 1791 1796
-f 1606 1605 1625 1624
-f 1514 1513 1523 1528
-f 1459 707 706 1458
-f 2569 2570 2565 501
-f 2506 2507 2508 514
-f 2422 2423 544
-f 2417 2418 2419 545
-f 2311 2312 2307 531
-f 2288 2289 2290 543
-f 2281 2282 502
-f 2275 2276 2277 534
-f 2228 2229 2224 547
-f 2217 2218 559
-f 2210 2211 2205 560
-f 2205 2206 560
-f 2200 2201 2202 561
-f 2187 2188 570
-f 2179 2180 574
-f 2148 2149 584
-f 2140 2141 2142 583
-f 2132 2133 2134 586
-f 2074 2075 2069 615
-f 2069 2070 2071 615
-f 1992 1993 1994 604
-f 1983 1984 1979 603
-f 1942 1936 618
-f 1936 1937 1938 618
-f 1875 1876 1877 630
-f 1791 1792 1793 649
-f 1605 1606 667
-f 1496 1497 605
-f 1456 1473 2236
-f 1472 1476 2217
-f 1470 1459 2207
-f 1458 1462 2238 2207
-f 565 552 1509 1501
-f 1606 1624 2219 2196
-f 1788 1937 1948 1774
-f 1666 2133 2143 2145
-f 568 569 2179 2073
-f 565 1508 1507 1882
-f 1798 1796 2211
-f 2147 2141 2192
-f 569 548 2225 2188
-f 548 549 2280 2292
-f 2425 2283 2570 2418
-f 2281 2272 2511 2566
-f 548 2292 2291 2274 2225
-f 552 2221 2270
-f 2233 2278 2252
-f 2215 2190 2229 2231
-f 552 565 2197 2221
-f 568 2073 2072 2083 2194
-f 2079 2175 2186 2065
-f 1882 1507 1887 1876
-f 1509 552 1524 1512
-f 1451 1416 1464
-f 1416 2235 2239
-f 1454 1456 2236 2235
-f 1438 2218 2217 1478
-f 1438 1468 2206
-f 1122 1116 1526 2589
-f 1498 1499 605
-f 1665 1666 1667 585
-f 1795 1796 1791 649
-f 1886 1887 1883 629
-f 1941 1942 618
-f 1981 1982 1983 603
-f 1991 1992 604
-f 2071 2072 615
-f 2076 2077 573
-f 2136 2137 2132 586
-f 2142 2143 2138 583
-f 2149 2144 584
-f 2178 2179 574
-f 2185 2186 2181 571
-f 2191 2192 2187 570
-f 2202 2203 561
-f 2206 2207 560
-f 2212 2213 2214 559
-f 2218 2212 559
-f 2226 2227 2228 547
-f 2277 2278 2273 534
-f 2282 2283 2284 502
-f 2290 2291 543
-f 2309 2310 2311 531
-f 2415 2416 2417 545
-f 2565 2566 2567 501
-f 1122 1121 1117 1116
-f 707 1460 1457 706
-f 1513 1512 1524 1523
-f 1797 1802 1792 1791
-f 1943 1948 1937 1936
-f 1989 1988 2063 2062
-f 1994 1993 1982 1981
-f 1992 1991 1498 605
-f 2138 2143 2133 2132
-f 2181 2186 2175 2174
-f 2142 2141 2147 2146
-f 2183 2182 2137 2136
-f 2187 2192 2141 2140
-f 2205 2211 1796 1795
-f 2212 2218 2149 2148
-f 567 2193 2222 550
-f 2216 2215 2231 2230
-f 2202 2201 2245 2244
-f 2234 2233 2252 2251
-f 2226 2225 2274 2273
-f 2317 2316 2416 2415
-f 2452 2457 2310 2309
-f 2315 2314 2291 2290
-f 2272 511 2506 2511
-f 2425 2424 2284 2283
-f 1532 1531 1527 1526
-s 135
-f 2325 2330 2320 2319
-f 2724 2725 470
-f 2320 2330 2730 2453
-f 2320 2321 530
-f 2729 2730 469
-f 2731 2730 2724 2723
-f 2723 2724 470
-f 2330 2718 2724 2730
-f 2319 2320 530
-f 2730 2731 469
-f 2730 2729 2454 2453
-s 117
-f 2718 2717 2773 2772
-f 2718 2719 472
-f 2718 2772 2784 2724
-f 2690 2684 456
-f 2784 2785 455
-f 2785 2784 2689 2688
-f 2717 2718 472
-f 2688 2689 456
-f 2689 2690 456
-f 2783 2784 455
-f 2784 2783 2725 2724
-s 118
-f 2772 2771 2767 2766
-f 2556 2555 2551 2550
-f 2765 2766 460
-f 2421 2415 545
-f 2556 2550 2420 2568
-f 2421 2420 2550 2623 2690 2689 2766 2429
-f 2420 2421 545
-f 2766 2767 460
-f 2569 2568 2420 2419
-f 2608 2607 2623 2622
-f 2772 2773 459
-f 2604 2605 500
-f 2772 2766 2689 2784
-f 2605 2690 2623 2607
-f 2419 2420 545
-f 2605 2600 500
-f 2771 2772 459
-f 2605 2604 2684 2690
-f 2766 2765 2430 2429
-s 132
-f 2266 2265 2261 2260
-f 2696 2695 2686 2685
-f 2270 490 2598 2597
-f 2603 2602 2297 2296
-f 553 2220 2269 490
-f 564 2196 2219 553
-f 627 1882 1876 1875
-f 2695 2696 2691 457
-f 2598 2599 2594 487
-f 2515 2516 2512 513
-f 2456 2457 2452 532
-f 2295 2296 2297 499
-f 2265 2266 2267 467
-f 2258 2259 468
-f 2248 2249 556
-f 1527 1528 1523 489
-f 1942 1881 1880 1944
-f 2247 2262 2264
-f 2591 1525 2270 2597
-f 2298 2601 2599 2269
-f 1526 1527 489
-f 2219 2220 553
-f 2249 2250 556
-f 2259 2260 2261 468
-f 2267 2268 467
-f 2454 2455 2456 532
-f 2596 2597 2598 487
-f 2684 2685 2686 456
-f 1881 627 1875 1880
-f 2197 564 553 2221
-f 2249 2248 2263 2268
-f 513 2513 2589 488
-f 2604 2603 2685 2684
-f 2592 2591 2597 2596
-f 2590 2589 1526 489
-f 2267 2266 2722 2721
-f 2265 2264 2262 2261
-f 2729 2728 2455 2454
-f 2727 2732 2260 2259
-f 490 2269 2599 2598
-f 2602 2601 2298 2297
-f 2691 2696 2296 2295
-f 1531 1530 1528 1527
-f 2221 553 490 2270
-f 2247 2246 2242 2241
-f 2195 564 627 1881
-f 2731 2732 2727 469
-f 2600 2601 2602 500
-f 2590 2591 2592 488
-f 2297 2298 499
-f 2263 2264 2265 467
-f 2257 2258 468
-f 2246 2247 2248 556
-f 2195 2196 564
-f 1523 1524 489
-f 2603 2296 2696 2685
-f 2732 2722 2266 2260
-f 2247 2241 2262
-f 1524 1525 489
-f 2244 2245 2246 556
-f 2250 2244 556
-f 2261 2262 2257 468
-f 2268 2263 467
-f 2298 2299 499
-f 2512 2513 513
-f 2589 2590 488
-f 2602 2603 2604 500
-f 2727 2728 2729 469
-f 564 2197 1882 627
-f 2248 2247 2264 2263
-f 2601 2600 2594 2599
-f 2591 2590 489 1525
-f 2268 2267 2721 2726
-f 2732 2731 2723 2722
-s 155
-f 2609 2608 2622 2621
-f 2613 2612 2606 2611
-f 2612 2613 2614 485
-f 2610 2611 2606 498
-f 2620 2621 2622 497
-f 2614 2615 2616 485
-f 2608 2609 2610 498
-f 2618 2619 2620 497
-f 2619 2618 2549 2548
-s 159
-f 2607 2608 498
-f 2595 2605 2607 2617
-f 2617 2612 485
-f 2585 2584 2617 2616
-f 2612 2617 2607 2606
-f 2606 2607 498
-f 2593 2595 2617 2584
-f 2616 2617 485
-s 160
-f 2514 513 488 2593
-f 2622 2623 497
-f 2592 2593 488
-f 2584 2497 2514 2593
-f 2584 2585 486
-f 2623 2618 497
-f 2600 2605 2595 2594
-f 2594 2595 487
-f 2514 2515 513
-f 2583 2584 486
-f 2595 2596 487
-f 2584 2583 2498 2497
-f 2593 2592 2596 2595
-s 185
-f 2491 2490 2557 2556
-f 2568 2569 501
-f 2497 2491 2509 2514
-f 2490 2491 516
-f 2567 2568 501
-f 2491 2556 2568 2509
-f 2491 2492 516
-f 2497 2496 2492 2491
-f 2568 2567 2510 2509
-s 164
-f 2516 2515 2508 2507
-f 1485 1484 1496 1495
-f 1110 1109 1105 1104
-f 1531 1532 512
-f 1110 1104 2513 1532
-f 551 1480 1520 1534
-f 566 551 2222 2193
-f 551 1534 1533 2271
-f 2082 1497 1496 566
-f 1481 566 1496 1484
-f 1103 1104 779
-f 1533 1534 512
-f 2512 2516 1533 512
-f 1529 1530 1531 512
-f 1104 1122 2589 2513
-f 566 2193 2082
-f 551 2271 2222
-f 2271 1533 2516 2507
-f 1993 1497 2082 1982
-f 551 566 1481 1480
-f 1104 1105 779
-f 1534 1529 512
-f 1104 1103 1123 1122
-f 2513 2512 512 1532
-s 138
-f 2715 2716 2717 472
-f 2333 2334 2335 542
-f 2323 2324 2319 530
-f 2325 2326 2327 471
-f 2339 2340 2341 529
-f 2326 2325 2319 2324
-f 2334 2333 2428 2433
-f 2329 2328 2720 2719
-f 2322 2321 2341 2340
-f 2338 2337 2331 2336
-f 2719 2720 2715 472
-f 2335 2336 2331 542
-f 2321 2322 2323 530
-f 2327 2328 2329 471
-f 2337 2338 2339 529
-s 224
-f 2321 2320 2342 2341
-f 2341 2342 529
-f 2308 2318 2332 2342
-f 2332 2333 542
-f 2453 2452 2309 2308
-f 2342 2337 529
-f 2453 2308 2342 2320
-f 2331 2332 542
-f 2337 2342 2332 2331
-s 225
-f 2333 2332 2429 2428
-f 2317 2318 546
-f 2318 2313 546
-f 2318 2317 2415 2421
-f 2429 2430 541
-f 2318 2421 2429 2332
-f 2428 2429 541
-s 119
-f 2300 2306 2294 2293
-f 2691 2692 457
-f 2294 2306 2692
-f 2299 2293 499
-f 2695 2694 2687 2686
-f 2301 2300 2293 2299
-f 2293 2294 2295 499
-f 2686 2687 2688 456
-f 2692 2693 457
-f 2692 2691 2295 2294
-s 253
-f 1883 1887 1507 628
-f 1128 1127 1147 1146
-f 1140 1139 1135 1134
-f 1507 1508 628
-f 1127 1128 775
-f 1146 1140 1884 1506
-f 1128 1146 1506 1498
-f 1128 1129 775
-f 1508 1503 628
-f 1492 1491 1503 1508
-f 1884 1883 628 1506
-f 1486 1485 1495 1500
-f 1505 1506 628
-f 1140 1134 1991 1884
-f 1490 1486 1500 1504
-f 1134 1128 1498 1991
-f 1503 1504 1505 628
-f 1134 1133 1129 1128
-f 1146 1145 1141 1140
-f 1491 1490 1504 1503
-f 1499 1498 1506 1505
-s 416
-f 1593 1598 1538 681
-f 684 1535 1582 1581
-f 1571 1576 1540 683
-f 1587 1588 1589 679
-f 1535 1538 1541 1540
-f 1540 1576 1582 1535
-f 1597 1598 1593 680
-f 1541 682 683 1540
-f 1581 1582 1577 685
-f 1541 1538 1598 1588
-f 1575 1576 1571 686
-f 681 1538 1535 684
-f 1577 1582 1576 1575
-f 682 1541 1588 1587
-f 1589 1588 1598 1597
-s 255
-f 2198 2204 1800 1799
-f 1801 1800 1656 1655
-f 1673 1672 1654 1653
-f 1661 1660 1772 1771
-f 1799 1800 650
-f 1783 1784 1778 659
-f 1778 1779 1780 659
-f 1655 1656 1651 647
-f 1642 1643 665
-f 1630 1631 663
-f 1618 1619 669
-f 1781 1658 1656 1800
-f 1786 1784 1939
-f 1642 1636 2203 2250
-f 1617 1618 669
-f 1629 1630 663
-f 1641 1642 665
-f 1653 1654 1655 647
-f 1782 1783 659
-f 1785 1786 660
-f 1800 1801 650
-f 1630 1629 1649 1648
-f 1786 1785 1778 1784
-f 1802 1801 1655 1654
-f 1784 1783 1940 1939
-f 1790 1789 1773 1772
-f 1658 1657 1651 1656
-f 1642 1641 1637 1636
-f 1797 1798 1799 650
-f 1786 1787 660
-f 1780 1781 659
-f 1647 1648 664
-f 1635 1636 666
-f 1623 1624 668
-f 1611 1612 670
-f 1672 1792 1802 1654
-f 1790 1772 1660 1779
-f 1612 1613 670
-f 1624 1625 668
-f 1636 1637 666
-f 1648 1649 664
-f 1771 1772 1773 661
-f 1781 1782 659
-f 1789 1790 1785 660
-f 1801 1802 1797 650
-f 1785 1790 1779 1778
-f 1659 1658 1781 1780
-f 1787 1786 1939 1938
-s 264
-f 2185 2184 2067 2066
-f 2116 2117 588
-f 2066 2067 572
-f 2067 2068 572
-f 2184 2185 571
-f 2184 2183 2136 2135
-f 2117 2116 2166 2165
-f 2117 2118 588
-f 2117 2165 2184 2135
-f 2068 2062 572
-f 2183 2184 571
-s 265
-f 2165 2166 575
-f 2068 2067 1688 1698 1777 1776 1921 1978
-f 2165 1688 2067 2184
-f 1990 1985 616
-f 1927 1926 1922 1921
-f 2165 2164 1689 1688
-f 1990 1989 2062 2068
-f 2164 2165 575
-f 1990 2068 1978 2003
-f 1927 1921 1776 1946
-f 1989 1990 616
-s 282
-f 1665 1664 2135 2134
-f 1681 1686 1676 1675
-f 2134 2135 586
-f 1808 1803 646
-f 1676 1677 658
-f 1663 1664 585
-f 1674 1652 1686 1808
-f 1652 1662 1676 1686
-f 1673 1674 648
-f 1686 1681 645
-f 2123 2124 587
-f 1674 1673 1653 1652
-f 1808 1807 2124 2123
-f 2123 2122 2118 2117
-f 2135 2136 586
-f 1807 1808 646
-f 1675 1676 658
-f 1664 1665 585
-f 2123 2117 2135 1664
-f 1664 1674 1808 2123
-f 1674 1669 648
-f 1685 1686 645
-f 2122 2123 587
-f 1669 1674 1664 1663
-f 1803 1808 1686 1685
-s 303
-f 2008 2009 2010 601
-f 2006 2007 2002 614
-f 2009 2008 2002 2007
-f 2010 2011 2012 601
-f 2004 2005 2006 614
-s 270
-f 1998 1997 2013 2012
-f 1867 1866 1997 1996
-f 1947 1946 1776 1775
-f 1693 1698 1688 1687
-f 2003 2004 614
-f 1994 1995 604
-f 1946 1947 617
-f 1920 1921 620
-f 1776 1777 661
-f 1687 1688 576
-f 1860 1927 1946 1878
-f 1995 1980 2013 1997
-f 1866 1860 1878 1885
-f 1662 1657 662
-f 1697 1698 657
-f 1777 1771 661
-f 1885 1886 629
-f 1927 1928 619
-f 1977 1978 613
-f 2002 2003 614
-f 1662 1661 1771 1777
-f 1921 1920 1973 1978
-f 1946 1945 1879 1878
-f 1995 1994 1981 1980
-f 2004 2003 1978 1977
-f 1860 1859 1928 1927
-f 1866 1865 1861 1860
-f 2013 2008 601
-f 1996 1997 602
-f 1945 1946 617
-f 1921 1922 620
-f 1859 1860 632
-f 1775 1776 661
-f 1688 1689 576
-f 1662 1777 1698 1676
-f 1885 1995 1997 1866
-f 1980 1990 2003 2013
-f 1661 1662 662
-f 1698 1693 657
-f 1860 1861 632
-f 1926 1927 619
-f 1978 1973 613
-f 1997 1998 602
-f 2012 2013 601
-f 1677 1676 1698 1697
-f 604 1995 1885 629
-f 2008 2013 2003 2002
-s 306
-f 2005 2004 1977 1976
-s 271
-f 2124 2125 2120 587
-f 1695 1696 1697 657
-f 1677 1678 1679 658
-f 1683 1684 1685 645
-f 1803 1804 1805 646
-f 1682 1681 1675 1680
-f 1804 1803 1685 1684
-f 1678 1677 1697 1696
-f 2120 2121 2122 587
-f 1693 1694 1695 657
-f 1679 1680 1675 658
-f 1681 1682 1683 645
-f 1805 1806 1807 646
-f 1807 1806 2125 2124
-s 403
-f 1623 1622 1620 1619
-f 675 1583 1622 1621
-f 682 1542 1539 683
-f 1621 1622 1623 668
-f 1571 1572 1573 686
-f 1550 1551 671
-f 1539 1549 1548 1583 1572
-f 1583 1548 1620 1622
-f 1539 1542 1551 1549
-f 1549 1543 676
-f 1619 1620 1615 669
-f 1551 1550 1543 1549
-f 1542 682 1587 1592
-f 1548 1547 1615 1620
-f 1602 672 1639 1644
-f 1592 1591 672 1602
-f 1572 1571 683 1539
-f 1643 1644 1639 665
-f 1551 1552 671
-f 1547 1548 676
-f 1552 1551 1542 1592 1602
-f 1552 1602 1644 1646
-f 1548 1549 676
-f 1552 1553 671
-f 1591 1592 1587 679
-f 1645 1646 1647 664
-f 1573 1572 1583 675
-f 1553 1552 1646 1645
-f 1647 1646 1644 1643
-s 405
-f 1641 1640 1638 1637
-f 1591 1590 1601 672
-f 1595 1596 1597 680
-f 1596 1600 1601 1590
-f 1637 1638 1633 666
-f 1596 1595 673 1600
-f 1600 673 1633 1638
-f 1590 1589 1597 1596
-f 1589 1590 1591 679
-f 1601 1600 1638 1640
-f 1639 1640 1641 665
-f 672 1601 1640 1639
-s 407
-f 1635 1634 1632 1631
-f 673 1599 1634 1633
-f 1595 1594 1599 673
-f 1609 1610 1611 670
-f 1569 1570 674
-f 1537 1570 1569 1599 1594
-f 1599 1569 1632 1634
-f 1568 1569 674
-f 1593 1594 1595 680
-f 1631 1632 1627 663
-f 1536 684 1581 1580
-f 1594 1593 681 1537
-f 1569 1568 1627 1632
-f 1586 678 1603 1608
-f 1580 1579 678 1586
-f 1537 681 684 1536
-f 1607 1608 1603 667
-f 1570 1564 674
-f 1537 1536 1558 1570
-f 1559 1586 1608 1610
-f 1559 1558 1536 1580 1586
-f 1579 1580 1581 685
-f 1633 1634 1635 666
-f 1560 1559 1610 1609
-f 1611 1610 1608 1607
-s 640
-f 1629 1628 1650 1649
-f 1627 1628 1629 663
-f 1567 1554 1650 1628
-f 1649 1650 1645 664
-f 1554 1553 1645 1650
-f 1567 1566 1555 1554
-f 1553 1554 1555 671
-f 1566 1567 1568 674
-f 1568 1567 1628 1627
-s 639
-f 1617 1616 1614 1613
-f 1615 1616 1617 669
-f 1546 1561 1614 1616
-f 1613 1614 1609 670
-f 1561 1560 1609 1614
-f 1546 1545 1562 1561
-f 1560 1561 1562 677
-f 1545 1546 1547 676
-f 1547 1546 1616 1615
-s 409
-f 678 1585 1604 1603
-f 1603 1604 1605 667
-f 1574 1584 1585 1578
-f 1577 1578 1579 685
-f 1578 1577 1575 1574
-f 1584 675 1621 1626
-f 1574 1573 675 1584
-f 1625 1626 1621 668
-f 1573 1574 1575 686
-f 1585 1584 1626 1604
-f 1579 1578 1585 678
-f 1605 1604 1626 1625
-s 637
-f 1545 1544 1563 1562
-f 1562 1563 1557 677
-f 1563 1544 1556 1565
-f 1564 1565 1566 674
-f 1565 1564 1557 1563
-f 1543 1544 1545 676
-f 1555 1556 1550 671
-f 1550 1556 1544 1543
-f 1566 1565 1556 1555
-s 425
-f 696 1463 1452 710
-f 698 1477 1466 704
-f 700 1471 1475 699
-f 702 1467 1469 695
-f 705 1461 1463 696
-f 708 1453 1455 697
-f 1385 1384 1436 1435
-f 703 1437 1438
-f 1352 1309 1453 1414
-f 1428 1426 1457 1460
-f 1325 1386 1440 1466
-f 1447 1445 1471 1474
-f 1449 1447 1474 1455
-f 1441 1325 1466 1477
-f 1430 1428 1460 1469
-f 1422 1421 1452 1463
-f 1439 1440 1435 703
-f 1454 708 697 1456
-f 1462 705 696 1464
-f 1468 702 695 1470
-f 1472 700 699 1476
-f 1478 698 704 1465
-f 1464 696 710 1451
-f 1470 695 707 1459
-f 1456 697 701 1473
-f 1476 699 698 1478
-f 1473 701 700 1472
-f 1465 704 1439 1438
-f 1458 706 705 1462
-f 1451 710 1417 1416
-f 1435 1436 1437 703
-f 1426 1424 1461 1457
-f 1384 1433 1432 1467 1436
-f 1445 1443 1475 1471
-f 1309 1449 1455 1453
-f 1443 1441 1477 1475
-f 1432 1430 1469 1467
-f 1424 1422 1463 1461
-f 1438 1439 703
-f 1353 1352 1414 1413
-f 710 1452 1418 1417
-f 706 1457 1461 705
-f 704 1466 1440 1439
-f 701 1474 1471 700
-f 699 1475 1477 698
-f 697 1455 1474 701
-f 695 1469 1460 707
-s 426
-f 1417 1418 1413 709
-f 1421 1420 1354 1418 1452
-f 1416 1417 709
-f 1386 1385 1435 1440
-f 709 1415 1416
-f 1413 1414 1415 709
-s 490
-f 1143 1144 1145 776
-f 1141 1142 1137 777
-f 1145 1144 1142 1141
-f 1036 1035 1144 1143
-f 1035 1066 1142 1144
-f 1066 1065 1137 1142
-s 576
-f 912 911 1131 1136
-f 1064 912 1136 1138
-f 1065 1064 1138 1137
-f 1139 1138 1136 1135
-f 1135 1136 1131 778
-f 1137 1138 1139 777
-s 492
-f 1129 1130 1125 775
-f 1131 1132 1133 778
-f 1133 1132 1130 1129
-f 911 910 1132 1131
-f 910 1045 1130 1132
-f 1045 1044 1125 1130
-s 586
-f 1037 1036 1143 1148
-f 1125 1126 1127 775
-f 1044 1043 1126 1125
-f 1127 1126 1148 1147
-f 1147 1148 1143 776
-f 1043 1037 1148 1126
-s 495
-f 1117 1118 1113 781
-f 1119 1120 1121 780
-f 1121 1120 1118 1117
-f 1097 1096 1120 1119
-f 1096 1027 1118 1120
-f 1027 1026 1113 1118
-s 583
-f 1019 1018 1107 1112
-f 1025 1019 1112 1114
-f 1026 1025 1114 1113
-f 1115 1114 1112 1111
-f 1113 1114 1115 781
-f 1111 1112 1107 782
-s 497
-f 1107 1108 1109 782
-f 1105 1106 1101 779
-f 1109 1108 1106 1105
-f 1018 1017 1108 1107
-f 1017 862 1106 1108
-f 862 861 1101 1106
-s 565
-f 1098 1097 1119 1124
-f 1101 1102 1103 779
-f 861 860 1102 1101
-f 1103 1102 1124 1123
-f 860 1098 1124 1102
-f 1123 1124 1119 780
-s 486
-f 1115 1116 781
-f 1110 1111 782
-f 1122 1123 780
-f 1116 1117 781
-f 1109 1110 782
-f 1121 1122 780
-s 482
-f 1146 1147 776
-f 1134 1135 778
-f 1139 1140 777
-f 1145 1146 776
-f 1133 1134 778
-f 1140 1141 777
-s 408
-f 1559 1560 677
-f 1558 1559 677
-f 1557 1558 677
-f 1564 1570 1558 1557
-s 373
-f 1652 1653 647
-f 1651 1652 647
-f 1657 1662 1652 1651
-s 374
-f 1659 1660 1661 662
-f 1660 1659 1780 1779
-f 1657 1658 1659 662
-s 283
-f 1669 1670 1671 648
-f 1672 1671 1793 1792
-f 1671 1672 1673 648
-s 268
-f 2164 2163 1690 1689
-f 1691 1692 1687 576
-f 2166 2167 2162 575
-f 1694 1693 1687 1692
-f 1689 1690 1691 576
-f 2162 2163 2164 575
-f 2116 2115 2167 2166
-s 657
-f 1789 1788 1774 1773
-f 1773 1774 1775 661
-s 332
-f 1788 1787 1938 1937
-f 1787 1788 1789 660
-s 334
-f 1859 1858 1929 1928
-f 1928 1929 1924 619
-f 1918 1919 1920 620
-f 1924 1925 1926 619
-f 1922 1923 1918 620
-f 1926 1925 1923 1922
-s 349
-f 1865 1864 1862 1861
-f 1861 1862 1857 632
-f 1857 1858 1859 632
-s 304
-f 1863 1864 1865 631
-f 1998 1999 2000 602
-f 1999 1998 2012 2011
-f 1868 1867 1996 2001
-f 1867 1868 1863 631
-f 2000 2001 1996 602
-s 350
-f 1866 1867 631
-f 1865 1866 631
-s 313
-f 1886 1885 1878 1877
-f 1877 1878 630
-f 1878 1879 630
-s 320
-f 1920 1919 1974 1973
-f 1973 1974 1975 613
-f 1975 1976 1977 613
-s 310
-f 1985 1990 1980 1979
-f 1980 1981 603
-f 1979 1980 603
-s 266
-f 2079 2078 2176 2175
-f 2078 2079 2080 573
-s 286
-f 2118 2119 2114 588
-f 2114 2115 2116 588
-f 2122 2121 2119 2118
-s 227
-f 2307 2308 531
-f 2308 2309 531
-f 2313 2318 2308 2307
-s 139
-f 2453 2454 532
-f 2330 2325 471
-f 2452 2453 532
-f 2329 2330 471
-f 2330 2329 2719 2718
-s 122
-f 2430 2431 2432 541
-f 2765 2764 2431 2430
-f 2432 2433 2428 541
-s 187
-f 2551 2552 2547 504
-f 2553 2554 2555 503
-f 2555 2554 2552 2551
-f 2490 2489 2558 2557
-f 2557 2558 2553 503
-f 2547 2548 2549 504
-s 203
-f 2488 2489 2490 516
-f 2496 2495 2493 2492
-f 2492 2493 2488 516
-s 156
-f 2585 2586 2587 486
-f 2498 2499 2494 515
-f 2583 2588 2499 2498
-f 2587 2588 2583 486
-f 2494 2495 2496 515
-f 2586 2585 2616 2615
-s 204
-f 2497 2498 515
-f 2496 2497 515
-s 165
-f 2509 2510 514
-f 2515 2514 2509 2508
-f 2508 2509 514
-s 177
-f 2549 2550 504
-f 2618 2623 2550 2549
-f 2550 2551 504
-s 188
-f 2555 2556 503
-f 2556 2557 503
-s 120
-f 2773 2774 2769 459
-f 2763 2764 2765 460
-f 2771 2770 2768 2767
-f 2717 2716 2774 2773
-f 2769 2770 2771 459
-f 2767 2768 2763 460
-s 436
-f 1354 1353 1413 1418
-g heads
-usemtl silver
-s 128
-f 2702 2701 2753 2752
-f 2752 2751 2745 2750
-f 2704 2703 2697 2702
-f 2755 2756 2751 465
-f 2737 2738 2733 466
-f 2699 2700 2701 478
-f 2391 2392 2393 524
-f 2398 2396 2410 2408 2451 2736 2754 2700
-f 2393 2394 2395 524
-f 2701 2702 2697 478
-f 2753 2754 2755 465
-f 2396 2395 2411 2410
-f 2739 2744 2734 2733
-f 2399 2398 2700 2699
-f 2701 2700 2754 2753
-f 2755 2754 2736 2735
-f 2751 2756 2746 2745
-f 2703 2708 2698 2697
-f 2398 2397 2391 2396
-f 2735 2736 2737 466
-f 2697 2698 2699 478
-f 2702 2752 2750 2704
-f 2756 2734 2744 2746
-f 2395 2396 2391 524
-f 2733 2734 2735 466
-f 2751 2752 2753 465
-f 2397 2402 2392 2391
-f 2740 2739 2733 2738
-f 2756 2755 2735 2734
-s 142
-f 2402 2401 2375 2374
-f 2394 2393 2371 2370
-f 2395 2394 2412 2411
-f 2409 2414 2404 2403
-f 2407 2408 2403 536
-f 2399 2400 2401 477
-f 2372 2392 2402 2374
-f 2406 2382 2445 2447
-f 2397 2398 2399 477
-f 2405 2406 2407 536
-f 2413 2414 2409 523
-f 2408 2407 2446 2451
-f 2393 2392 2372 2371
-f 2401 2400 2376 2375
-f 2387 2386 2414 2413
-f 2406 2405 2383 2382
-f 2410 2409 2403 2408
-f 2409 2410 2411 523
-f 2401 2402 2397 477
-f 2384 2404 2414 2386
-f 2394 2370 2388 2412
-f 2400 2698 2708 2376
-f 2403 2404 2405 536
-f 2411 2412 2413 523
-f 2407 2406 2447 2446
-f 2405 2404 2384 2383
-f 2388 2387 2413 2412
-f 2400 2399 2699 2698
-s 131
-f 2450 2451 2446 535
-f 2738 2449 2443 2740
-f 2444 2443 2449 2448
-f 2737 2736 2451 2450
-f 2448 2449 2450 535
-f 2446 2447 2448 535
-f 2738 2737 2450 2449
-s 150
-f 2657 2656 2676 2675
-f 2645 2644 2682 2681
-f 2665 2664 2674 2673
-f 2673 2672 2666 2671
-f 2682 2683 2678 491
-f 2674 2675 2676 479
-f 2666 2667 2668 492
-f 2519 2520 2521 510
-f 2669 2651 2645 2681
-f 2653 2667 2677 2655
-f 2521 2522 2517 510
-f 2664 2665 2660 480
-f 2672 2673 2674 479
-f 2680 2681 2682 491
-f 2539 2538 2520 2519
-f 2678 2683 2522 2521
-f 2664 2663 2675 2674
-f 2644 2643 2683 2682
-f 2656 2655 2677 2676
-f 2668 2667 2653 2652
-f 2670 2669 2681 2680
-f 2672 2677 2667 2666
-f 2523 2528 2518 2517
-f 2676 2677 2672 479
-f 2668 2669 2670 492
-f 2660 2661 2662 480
-f 2517 2518 2519 510
-f 2663 2574 2657 2675
-f 2524 2522 2683 2643
-f 2662 2663 2664 480
-f 2670 2671 2666 492
-f 2678 2679 2680 491
-f 2524 2523 2517 2522
-f 2671 2670 2680 2679
-f 2669 2668 2652 2651
-f 2663 2662 2575 2574
-s 151
-f 2479 2478 2660 2665
-f 2478 2479 2480 521
-f 2477 2475 2576 2661
-f 2480 2481 2476 521
-f 2462 2461 2538 2537
-f 2662 2661 2576 2575
-f 2478 2477 2661 2660
-f 2476 2481 2471 2470
-f 2476 2477 2478 521
-f 2671 2679 2520 2538 2461 2479 2665 2673
-f 2477 2476 2470 2475
-f 2679 2678 2521 2520
-s 195
-f 2540 2539 2519 2518
-f 2536 2535 2529 2534
-f 2539 2540 2535 509
-f 2460 2461 2462 522
-f 2463 2536 2534 2465
-f 2458 2459 2460 522
-f 2537 2538 2539 509
-f 2535 2540 2530 2529
-f 2480 2479 2461 2460
-f 2464 2469 2459 2458
-f 2462 2463 2458 522
-f 2540 2518 2528 2530
-f 2481 2459 2469 2471
-f 2535 2536 2537 509
-f 2465 2464 2458 2463
-f 2481 2480 2460 2459
-f 2463 2462 2537 2536
-s 275
-f 2088 2087 2159 2158
-f 2106 2105 2087 2086
-f 1727 1726 1762 1761
-f 2090 2095 2085 2084
-f 1825 1824 1818 1817
-f 1749 1748 1740 1739
-f 1751 1750 1768 1767
-f 1753 1758 1748 1747
-f 2104 2105 2106 593
-f 2084 2085 2086 594
-f 1767 1768 1769 651
-f 1759 1760 1761 582
-f 1751 1752 1747 652
-f 1740 1748 1758 1742
-f 2161 1762 1726 2151
-f 2107 2085 2095 2097
-f 1770 1730 1728 1760
-f 1754 1752 1766 1764 2159 2087 2105 1822
-f 1753 1754 1755 639
-f 1761 1762 1763 582
-f 1769 1770 1765 651
-f 1825 1826 1821 640
-f 2102 2103 2104 593
-f 2156 2157 2158 581
-f 1754 1753 1747 1752
-f 1752 1751 1767 1766
-f 1750 1749 1739 1738
-f 1826 1825 1817 1816
-f 2091 2090 2084 2089
-f 1728 1727 1761 1760
-f 2107 2106 2086 2085
-f 2089 2088 2158 2157
-f 1824 1823 2104 2103
-f 2161 2160 1763 1762
-f 2157 2156 2150 2155
-f 2103 2102 2096 2101
-f 1744 1743 1757 1756
-f 1732 1731 1769 1768
-f 1822 1821 1755 1754
-f 1766 1765 1759 1764
-f 2160 2161 2156 581
-f 2106 2107 2102 593
-f 2086 2087 2088 594
-f 1821 1822 1823 640
-f 1765 1766 1767 651
-f 1757 1758 1753 639
-f 1749 1750 1751 652
-f 1824 2103 2101 1818
-f 1826 1816 1744 1756
-f 2089 2157 2155 2091
-f 1750 1738 1732 1768
-f 1747 1748 1749 652
-f 1755 1756 1757 639
-f 1763 1764 1759 582
-f 1823 1824 1825 640
-f 2088 2089 2084 594
-f 2158 2159 2160 581
-f 1765 1770 1760 1759
-f 1821 1826 1756 1755
-f 1731 1730 1770 1769
-f 1743 1742 1758 1757
-f 2102 2107 2097 2096
-f 2156 2161 2151 2150
-f 2160 2159 1764 1763
-f 1823 1822 2105 2104
-s 298
-f 2052 2051 2043 2042
-f 2056 2061 2051 2050
-f 2054 2055 2050 608
-f 1957 1958 1959 596
-f 2043 2051 2061 2045
-f 1959 1960 1955 596
-f 2056 2057 2058 595
-f 2057 2056 2050 2055
-f 1958 1957 2036 2035
-f 2047 2046 2060 2059
-f 1960 1959 2058 2057
-f 2060 2061 2056 595
-f 2052 2053 2054 608
-f 1955 1956 1957 596
-f 1958 2035 2047 2059
-f 2050 2051 2052 608
-f 2058 2059 2060 595
-f 1959 1958 2059 2058
-f 2046 2045 2061 2060
-s 300
-f 1963 1962 1954 1953
-f 1953 1954 1949 607
-f 2053 2041 1964 1952
-f 2053 2052 2042 2041
-f 1964 1963 1953 1952
-f 1951 1952 1953 607
-f 1949 1950 1951 607
-f 2054 2053 1952 1951
-s 299
-f 1957 1956 2037 2036
-f 1831 1830 1909 1908
-f 1845 1850 1840 1839
-f 1846 1844 2037 1956
-f 1845 1846 1847 637
-f 1846 1845 1839 1844
-f 2055 2054 1951 1950
-f 1956 1955 1847 1846
-f 1849 1850 1845 637
-f 2055 1950 1891 1909 1830 1848 1960 2057
-f 1847 1848 1849 637
-f 1892 1891 1950 1949
-f 1955 1960 1848 1847
-s 342
-f 1849 1848 1830 1829
-f 1833 1838 1828 1827
-f 1831 1832 1827 638
-f 1832 1907 1905 1834
-f 1829 1830 1831 638
-f 1910 1911 1906 625
-f 1907 1906 1900 1905
-f 1832 1831 1908 1907
-f 1911 1910 1890 1889
-f 1834 1833 1827 1832
-f 1906 1907 1908 625
-f 1911 1889 1899 1901
-f 1827 1828 1829 638
-f 1908 1909 1910 625
-f 1906 1911 1901 1900
-s 315
-f 1894 1899 1889 1888
-f 1895 1893 1954 1962
-f 1892 1893 1888 626
-f 1893 1892 1949 1954
-f 1895 1894 1888 1893
-f 1888 1889 1890 626
-f 1890 1891 1892 626
-f 1910 1909 1891 1890
-s 357
-f 1850 1828 1838 1840
-f 1850 1849 1829 1828
-s 129
-f 2445 2444 2448 2447
-g cylinders
-usemtl black
-f 2440 2441 537
-f 2444 2445 2440 537
-f 2741 2740 2443 2442
-f 2441 2442 537
-f 2442 2443 2444 537
-s 120
-f 2780 2779 2759 2758
-f 2716 2715 2709 2714
-f 2709 2710 2711 474
-f 2714 2776 2774 2716
-f 2775 2776 2777 461
-f 2775 2780 2770 2769
-f 2715 2720 2710 2709
-f 2713 2714 2709 474
-f 2780 2758 2768 2770
-f 2779 2780 2775 461
-f 2776 2775 2769 2774
-f 2714 2713 2777 2776
-s 126
-f 2432 2431 2437 2436
-f 2762 2437 2431 2764
-f 2762 2761 2438 2437
-s 138
-f 2366 2365 2327 2326
-f 2358 2357 2323 2322
-f 2359 2358 2352 2351
-f 2361 2366 2356 2355
-f 2363 2364 2365 473
-f 2351 2352 2353 527
-f 2324 2356 2366 2326
-f 2346 2334 2433 2435
-f 2353 2354 2349 527
-f 2365 2366 2361 473
-f 2346 2345 2335 2334
-f 2339 2338 2354 2353
-f 2365 2364 2328 2327
-f 2357 2356 2324 2323
-f 2434 2435 2436 539
-f 2357 2358 2359 528
-f 2336 2344 2354 2338
-f 2358 2322 2340 2352
-f 2364 2710 2720 2328
-f 2355 2356 2357 528
-f 2436 2437 2438 539
-f 2347 2346 2435 2434
-f 2345 2344 2336 2335
-f 2340 2339 2353 2352
-f 2364 2363 2711 2710
-s 127
-f 2742 2741 2442 2441
-f 2381 2380 2441 2440
-f 2348 2343 540
-f 2348 2439 2441 2380
-f 2748 2742 2760 2778
-f 2438 2439 539
-f 2348 2347 2434 2439
-f 2761 2760 2439 2438
-f 2350 2349 2343 2348
-f 2347 2348 540
-f 2742 2441 2439 2760
-f 2350 2348 2380 2390
-f 2439 2434 539
-f 2748 2747 2743 2742
-s 142
-f 2378 2377 2707 2706
-f 2385 2390 2380 2379
-f 2712 2713 474
-f 2385 2386 2387 525
-f 2379 2380 538
-f 2373 2374 2375 475
-f 2367 2368 526
-f 2359 2360 528
-f 2362 2360 2368 2378
-f 2360 2355 528
-f 2368 2369 526
-f 2375 2376 2377 475
-f 2380 2381 538
-f 2387 2388 2389 525
-f 2711 2712 474
-f 2374 2373 2367 2372
-f 2382 2381 2440 2445
-f 2370 2369 2389 2388
-f 2363 2362 2712 2711
-f 2377 2376 2708 2707
-f 2360 2359 2351 2350
-f 2386 2385 2379 2384
-f 2362 2361 2355 2360
-f 2390 2385 525
-f 2383 2384 2379 538
-f 2378 2373 475
-f 2371 2372 2367 526
-f 2362 2363 473
-f 2378 2706 2712 2362
-f 2360 2350 2390 2368
-f 2361 2362 473
-f 2369 2370 2371 526
-f 2377 2378 475
-f 2381 2382 2383 538
-f 2389 2390 525
-f 2373 2378 2368 2367
-f 2369 2368 2390 2389
-s 125
-f 2777 2778 461
-f 2706 2707 476
-f 2706 2748 2778 2712
-f 2707 2708 2703 476
-f 2778 2779 461
-f 2713 2712 2778 2777
-f 2779 2778 2760 2759
-f 2759 2760 462
-f 2705 2706 476
-f 2703 2704 2705 476
-f 2760 2761 462
-f 2706 2705 2749 2748
-s 150
-f 2655 2654 2648 2653
-f 2659 2654 481
-f 2652 2653 2648 494
-f 2647 2642 493
-f 2642 2643 2644 493
-f 2648 2649 494
-f 2654 2655 2656 481
-f 2654 2659 2649 2648
-f 2650 2649 2647 2646
-f 2658 2659 481
-f 2650 2651 2652 494
-f 2646 2647 493
-f 2644 2645 2646 493
-f 2649 2650 494
-f 2656 2657 2658 481
-f 2643 2642 2525 2524
-f 2651 2650 2646 2645
-s 152
-f 2582 2631 2659 2572
-f 2573 2572 2659 2658
-s 155
-f 2615 2614 2634 2633
-f 2621 2620 2640 2639
-f 2548 2547 2541 2546
-f 2632 2633 2634 483
-f 2577 2578 2579 484
-f 2611 2625 2635 2613
-f 2627 2609 2621 2639
-f 2541 2542 2543 506
-f 2626 2627 2628 496
-f 2640 2641 2636 495
-f 2630 2635 2625 2624
-f 2628 2627 2639 2638
-f 2626 2625 2611 2610
-f 2614 2613 2635 2634
-f 2620 2619 2641 2640
-f 2581 2580 2633 2632
-f 2636 2641 2546 2545
-f 2547 2552 2542 2541
-f 2634 2635 2630 483
-f 2579 2580 2581 484
-f 2548 2546 2641 2619
-f 2580 2586 2615 2633
-f 2545 2546 2541 506
-f 2624 2625 2626 496
-f 2638 2639 2640 495
-f 2627 2626 2610 2609
-f 2580 2579 2587 2586
-s 153
-f 2582 2581 2632 2631
-f 2637 2636 2545 2544
-f 2572 2571 2474 2473
-f 2636 2637 495
-f 2628 2629 496
-f 2532 2526 2544 2562
-f 2631 2629 2649 2659
-f 2572 2473 2503 2582
-f 2629 2624 496
-f 2637 2638 495
-f 2631 2632 483
-f 2582 2577 484
-f 2629 2637 2647 2649
-f 2637 2544 2526 2647
-f 2581 2582 484
-f 2630 2631 483
-f 2532 2531 2527 2526
-f 2631 2630 2624 2629
-f 2629 2628 2638 2637
-s 151
-f 2573 2574 2575 482
-f 2474 2475 2470 519
-f 2470 2471 2472 519
-f 2572 2573 482
-f 2571 2576 2475 2474
-f 2575 2576 2571 482
-f 2473 2474 519
-f 2472 2473 519
-f 2571 2572 482
-f 2574 2573 2658 2657
-s 156
-f 2501 2500 2494 2499
-f 2500 2505 2495 2494
-f 2579 2578 2588 2587
-f 2501 2499 2588 2578
-f 2578 2577 2502 2501
-s 187
-f 2487 2486 2561 2560
-f 2560 2559 2553 2558
-f 2559 2560 2561 505
-f 2482 2483 2484 518
-f 2564 2542 2552 2554
-f 2488 2493 2483 2482
-f 2559 2564 2554 2553
-f 2563 2564 2559 505
-f 2487 2560 2558 2489
-f 2486 2487 2482 518
-f 2489 2488 2482 2487
-f 2564 2563 2543 2542
-s 192
-f 2467 2466 2533 2532
-f 2562 2563 505
-f 2467 2468 520
-f 2467 2532 2562 2485
-f 2466 2467 520
-f 2544 2545 506
-f 2472 2471 2469 2468
-f 2486 2485 2562 2561
-f 2563 2562 2544 2543
-f 2561 2562 505
-f 2468 2469 2464 520
-f 2473 2467 2485 2503
-f 2464 2465 2466 520
-f 2543 2544 506
-f 2473 2472 2468 2467
-s 203
-f 2504 2505 2500 517
-f 2505 2483 2493 2495
-f 2500 2501 2502 517
-f 2505 2504 2484 2483
-s 268
-f 2168 2173 2163 2162
-f 2114 2119 2109 2108
-f 2168 2169 2170 577
-f 1722 1694 1692 1712
-f 2173 1714 1690 2163
-f 2172 2173 2168 577
-f 1692 1691 1713 1712
-f 2173 2172 1715 1714
-f 2113 2112 2170 2169
-f 2169 2168 2162 2167
-f 2115 2114 2108 2113
-f 2112 2113 2108 590
-f 2113 2169 2167 2115
-f 2108 2109 2110 590
-f 1695 1694 1722 1721
-f 1691 1690 1714 1713
-s 273
-f 2172 2171 1716 1715
-f 2171 2172 577
-f 2092 2093 592
-f 2099 2093 2111 2129
-f 1716 1711 578
-f 2093 2094 592
-f 1718 1717 1711 1716
-f 2093 2092 2154 2153
-f 2099 2098 2094 2093
-f 2170 2171 577
-f 2090 2091 2092 592
-f 2093 2153 2171 2111
-f 1715 1716 578
-f 2094 2095 2090 592
-f 2098 2097 2095 2094
-f 2112 2111 2171 2170
-s 275
-f 1811 1810 2129 2128
-f 2092 2091 2155 2154
-f 2130 2129 2111 2110
-f 1737 1736 1734 1733
-f 1729 1734 1724 1723
-f 2152 2153 579
-f 2111 2112 590
-f 2098 2099 591
-f 1817 1818 1819 642
-f 1745 1746 641
-f 1737 1738 1739 654
-f 1733 1734 653
-f 1725 1726 1727 580
-f 1717 1718 655
-f 1718 1716 1724 1734
-f 1810 1706 1746 1820
-f 1704 1718 1734 1736
-f 1703 1704 656
-f 1724 1725 580
-f 1731 1732 1733 653
-f 1736 1737 654
-f 1743 1744 1745 641
-f 1809 1810 644
-f 1819 1820 642
-f 2099 2100 591
-f 2129 2130 589
-f 2153 2154 579
-f 1730 1729 1723 1728
-f 1704 1703 1719 1718
-f 1810 1809 1707 1706
-f 2153 2152 1725 1724
-f 1820 1819 2100 2099
-f 1816 1815 1745 1744
-f 1738 1737 1733 1732
-f 1742 1741 1735 1740
-f 1706 1705 1699 1704
-f 2150 2151 2152 579
-f 2110 2111 590
-f 2096 2097 2098 591
-f 1815 1816 1817 642
-f 1746 1741 641
-f 1739 1740 1735 654
-f 1734 1729 653
-f 1727 1728 1723 580
-f 1718 1719 655
-f 1820 2099 2129 1810
-f 2153 1724 1716 2171
-f 1706 1704 1736 1746
-f 1704 1699 656
-f 1723 1724 580
-f 1729 1730 1731 653
-f 1735 1736 654
-f 1741 1742 1743 641
-f 1810 1811 644
-f 1820 1815 642
-f 2100 2101 2096 591
-f 2128 2129 589
-f 2154 2155 2150 579
-f 1741 1746 1736 1735
-f 1815 1820 1746 1745
-f 2152 2151 1726 1725
-f 1819 1818 2101 2100
-s 271
-f 1683 1682 1710 1709
-f 1701 1700 1680 1679
-f 1703 1702 1720 1719
-f 1705 1710 1700 1699
-f 1813 1814 1809 644
-f 1711 1712 1713 578
-f 1701 1702 1703 656
-f 2131 2109 2119 2121
-f 1812 2127 2125 1806
-f 1699 1700 1701 656
-f 1713 1714 1715 578
-f 1811 1812 1813 644
-f 1702 1701 1679 1678
-f 1814 1813 1805 1804
-f 2127 2126 2120 2125
-f 1812 1811 2128 2127
-f 2131 2130 2110 2109
-f 1684 1683 1709 1708
-f 1696 1695 1721 1720
-f 2126 2127 2128 589
-f 1721 1722 1717 655
-f 1709 1710 1705 643
-f 1680 1700 1710 1682
-f 1814 1804 1684 1708
-f 1702 1678 1696 1720
-f 1707 1708 1709 643
-f 1719 1720 1721 655
-f 2130 2131 2126 589
-f 1717 1722 1712 1711
-f 1809 1814 1708 1707
-f 1813 1812 1806 1805
-f 2126 2131 2121 2120
-s 298
-f 2044 2049 2039 2038
-f 2044 2045 2046 597
-f 2038 2039 610
-f 2042 2043 2038 610
-f 2049 2044 597
-f 2045 2044 2038 2043
-f 2046 2047 2048 597
-f 2039 2040 610
-f 2040 2041 2042 610
-f 2048 2049 597
-s 299
-f 2034 2033 2049 2048
-f 2033 2034 598
-f 1841 1842 635
-f 1839 1840 1841 635
-f 2032 2033 598
-f 1844 1843 2032 2037
-f 2035 2034 2048 2047
-f 2031 2030 2022 2021
-f 2034 2035 2036 598
-f 1842 1843 635
-f 2031 2021 2049 2033
-f 1843 1844 1839 635
-f 2036 2037 2032 598
-s 303
-f 2016 2015 2007 2006
-f 2020 2025 2015 2014
-f 2024 2025 2020 599
-f 2029 1999 2011 2023
-f 2016 2017 2018 612
-f 2026 2027 2028 600
-f 2011 2010 2024 2023
-f 2029 2028 2000 1999
-f 2022 2023 2024 599
-f 2007 2015 2025 2009
-f 2014 2015 2016 612
-f 2028 2029 2030 600
-f 2030 2029 2023 2022
-f 2010 2009 2025 2024
-s 300
-f 2041 2040 1965 1964
-s 315
-f 2019 2018 1969 1968
-f 1896 1895 1962 1961
-f 1967 1968 611
-f 1961 1962 1963 609
-f 1894 1895 1896 624
-f 2021 2019 2039 2049
-f 1897 1966 1968 1915
-f 1898 1899 1894 624
-f 1966 1961 609
-f 1903 1902 1898 1897
-f 1897 1896 1961 1966
-f 1968 1969 611
-f 1963 1964 1965 609
-f 1896 1897 624
-f 2019 1968 1966 2039
-f 1903 1897 1915 1933
-f 1897 1898 624
-f 1965 1966 609
-f 1902 1901 1899 1898
-f 1916 1915 1968 1967
-f 2040 2039 1966 1965
-s 306
-f 1969 1970 1971 611
-f 1971 1972 1967 611
-f 2017 2016 2006 2005
-f 1976 1975 1971 1970
-f 2018 2017 1970 1969
-f 2017 2005 1976 1970
-f 1975 1974 1972 1971
-s 334
-f 1930 1935 1925 1924
-f 1934 1935 1930 621
-f 1851 1852 1853 634
-f 1935 1913 1923 1925
-f 1858 1857 1851 1856
-f 1935 1934 1914 1913
-f 1856 1855 1932 1931
-f 1931 1930 1924 1929
-f 1930 1931 1932 621
-f 1856 1931 1929 1858
-f 1855 1856 1851 634
-f 1857 1862 1852 1851
-s 320
-f 1912 1913 1914 622
-f 1916 1917 1912 622
-f 1917 1916 1967 1972
-f 1919 1918 1912 1917
-f 1919 1917 1972 1974
-f 1918 1923 1913 1912
-s 304
-f 1871 1870 2027 2026
-f 1870 1868 2001 2027
-f 1870 1869 1863 1868
-f 1869 1874 1864 1863
-f 2028 2027 2001 2000
-s 301
-f 1843 1842 2033 2032
-f 1872 2031 2033 1842
-s 339
-f 1855 1854 1933 1932
-f 1841 1840 1838 1837
-f 1915 1916 622
-f 1835 1836 636
-f 1836 1903 1933 1854
-f 1836 1837 636
-f 1933 1934 621
-f 1836 1835 1904 1903
-f 1842 1841 1837 1836
-f 1914 1915 622
-f 1833 1834 1835 636
-f 1842 1836 1854 1872
-f 1837 1838 1833 636
-f 1932 1933 621
-f 1934 1933 1915 1914
-s 349
-f 1869 1870 1871 633
-f 1874 1873 1853 1852
-f 1874 1852 1862 1864
-f 1873 1874 1869 633
-s 365
-f 1705 1706 643
-f 1706 1707 643
-s 342
-f 1835 1834 1905 1904
-f 1902 1903 623
-f 1903 1904 623
-f 1900 1901 1902 623
-f 1904 1905 1900 623
-s 354
-f 1873 1872 1854 1853
-f 1854 1855 634
-f 1853 1854 634
-s 305
-f 1871 1872 633
-f 1872 1871 2026 2031
-f 1872 1873 633
-s 302
-f 2031 2026 600
-f 2019 2014 612
-f 2020 2021 599
-f 2021 2020 2014 2019
-f 2030 2031 600
-f 2018 2019 612
-f 2021 2022 599
-s 220
-f 2349 2354 2344 2343
-f 2343 2344 2345 540
-f 2345 2346 2347 540
-s 219
-f 2350 2351 527
-f 2349 2350 527
-s 122
-f 2757 2758 2759 462
-f 2433 2432 2436 2435
-f 2763 2768 2758 2757
-f 2761 2762 2757 462
-f 2764 2763 2757 2762
-s 195
-f 2529 2530 2531 507
-f 2533 2534 2529 507
-f 2466 2465 2534 2533
-f 2531 2532 507
-f 2532 2533 507
-s 208
-f 2485 2486 518
-f 2504 2503 2485 2484
-f 2484 2485 518
-s 157
-f 2503 2504 517
-f 2577 2582 2503 2502
-f 2502 2503 517
-s 170
-f 2527 2528 2523 508
-f 2523 2524 2525 508
-f 2531 2530 2528 2527
-f 2642 2647 2526 2525
-f 2526 2527 508
-f 2525 2526 508
-s 128
-f 2745 2746 2747 463
-f 2739 2740 2741 464
-f 2743 2744 2739 464
-f 2749 2750 2745 463
-f 2705 2704 2750 2749
-f 2747 2746 2744 2743
-f 2747 2748 463
-f 2741 2742 464
-f 2742 2743 464
-f 2748 2749 463
-g emounts
-usemtl dkdkgrey
-s 500
-f 970 969 791 1030
-f 835 834 872 799
-f 1075 1076 1077 802
-f 970 965 811
-f 854 871 872 834
-f 1013 972 970 1030
-f 1030 1088 870 1013
-f 969 970 811
-f 1087 1088 794
-f 973 972 1013 792
-f 1089 1088 1030 791
-f 792 1013 870 869
-f 1077 1076 1088 1087
-f 961 960 972 971
-f 971 972 814
-f 952 947 822
-f 872 871 870 1088 1076
-f 952 970 972 960
-f 951 952 822
-f 972 973 814
-f 1088 1089 794
-f 952 951 965 970
-f 1076 1075 799 872
-s 253
-f 1511 1516 1510 690
-f 691 1502 1494 1493
-f 1483 1488 1482 694
-f 1491 1492 1493 692
-f 1483 1484 1485 693
-f 1510 1516 1522 1479
-f 1485 1486 1487 693
-f 1493 1494 1489 692
-f 1484 1483 694 1481
-f 1501 691 1493 1492
-f 1512 1511 690 1509
-f 1480 687 1521 1520
-f 1509 690 691 1501
-f 1490 1489 1487 1486
-f 1481 694 687 1480
-f 1489 1490 1491 692
-f 1479 1482 1502 1510
-f 1482 1488 1494 1502
-f 1487 1488 1483 693
-f 694 1482 1479 687
-f 1489 1494 1488 1487
-f 690 1510 1502 691
-f 687 1479 1522 1521
-s 166
-f 1517 1522 1516 1515
-f 1517 1518 1519 688
-f 1511 1512 1513 689
-f 1519 1520 1521 688
-f 1518 1517 1515 1514
-f 1515 1516 1511 689
-f 1513 1514 1515 689
-f 1521 1522 1517 688
-s 447
-f 1376 1377 737
-f 1392 1394 1396 1398 1400 1376 1335 1402 1404 1406 1408 1410 1299 1362 1412 1389
-f 1375 1376 737
-f 741 1394 1392 742
-f 739 1398 1396 740
-f 1377 1376 1400 738
-f 734 1404 1402 735
-f 732 1408 1406 733
-f 1300 1299 1410 731
-f 727 1389 1412 728
-f 728 1412 1362 1361
-f 731 1410 1408 732
-f 733 1406 1404 734
-f 735 1402 1335 1334
-f 738 1400 1398 739
-f 740 1396 1394 741
-f 742 1392 1389 727
-f 1362 1357 729
-f 1361 1362 729
-s 509
-f 996 997 810
-f 901 902 796
-f 1031 996 994 1048
-f 942 952 960 958
-f 902 903 796
-f 995 996 810
-f 903 902 1048 797
-f 943 942 996 995
-f 993 994 807
-f 900 901 796
-f 1074 1031 1048 902
-f 958 994 996 942
-f 994 989 807
-f 994 993 797 1048
-s 425
-f 712 1450 1448 713
-f 714 1446 1444 715
-f 716 1442 1327 1326
-f 720 1431 1429 721
-f 722 1427 1425 723
-f 724 1423 1419 725
-f 1409 731 732 1407
-f 1405 733 734 1403
-f 1401 735 1334 1333
-f 1399 1434 1433 1384 1378
-f 1409 1407 1448 1450
-f 1407 1405 1446 1448
-f 1300 1301 1302 730
-f 1379 1378 1384 1383
-f 1422 724 725 1421
-f 1426 722 723 1424
-f 1430 720 721 1428
-f 1441 716 1326 1325
-f 1445 714 715 1443
-f 1449 712 713 1447
-f 1309 1308 712 1449
-f 1447 713 714 1445
-f 1443 715 716 1441
-f 1432 719 720 1430
-f 1428 721 722 1426
-f 1424 723 724 1422
-f 1302 1301 1307 1306
-f 1432 1433 719
-f 1403 1401 1442 1444
-f 1301 1409 1450 1307
-f 1405 1403 1444 1446
-f 1433 1434 719
-f 1403 734 735 1401
-f 1407 732 733 1405
-f 1301 1300 731 1409
-f 723 1425 1423 724
-f 721 1429 1427 722
-f 719 1434 1431 720
-f 715 1444 1442 716
-f 713 1448 1446 714
-f 1308 1307 1450 712
-s 426
-f 1390 727 728 1411
-f 1411 728 1361 1360
-f 1399 738 739 1397
-f 1395 740 741 1393
-f 1391 742 727 1390
-f 1385 1386 1387 718
-f 1393 1391 1425 1427
-f 1390 1411 1419 1423
-f 1399 1397 1431 1434
-f 1391 1390 1423 1425
-f 1384 1385 718
-f 1419 1420 725
-f 1381 1382 1383 718
-f 1395 1393 1427 1429
-f 1420 1419 1411 1360 1354
-f 1397 1395 1429 1431
-f 1383 1384 718
-f 1420 1421 725
-f 1393 741 742 1391
-f 1397 739 740 1395
-f 1378 1377 738 1399
-f 1360 1359 1355 1354
-s 620
-f 1274 1275 1276 749
-f 1280 1281 1282 750
-f 1347 1348 1343 748
-f 1276 1275 1281 1280
-f 1339 1338 1348 1347
-f 1343 1348 1275 1274
-f 1282 1281 1338 1337
-f 1337 1338 1339 747
-f 1281 1275 1348 1338
-s 437
-f 1352 1351 711 1309
-f 1340 1339 1347 1346
-f 1339 1340 1341 747
-f 1306 1307 1308 711
-f 1401 1333 1327 1442
-f 1325 1326 717
-f 1359 1360 1361 729
-f 1325 717 1387 1386
-f 1341 1340 1358 1357
-f 1332 1333 1334 736
-f 1308 1309 711
-f 1340 1346 1356 1358
-f 1326 1327 1328 717
-f 1357 1358 1359 729
-f 1333 1332 1328 1327
-s 615
-f 1373 1374 1369 745
-f 1368 1374 1255 1249
-f 1367 1368 1363 746
-f 1369 1374 1368 1367
-f 1250 1249 1255 1254
-f 1256 1255 1374 1373
-f 1363 1368 1249 1248
-f 1248 1249 1250 743
-f 1254 1255 1256 744
-s 463
-f 1318 1317 1315 1314
-f 1317 1318 1319 752
-f 1184 1185 1186 751
-f 1318 1314 1329 1331
-f 1315 1316 1311 753
-f 1328 1329 1323 717
-f 1311 1316 1179 1178
-f 1186 1185 1322 1321
-f 1332 1331 1329 1328
-f 1319 1318 1331 1330
-f 1317 1322 1316 1315
-f 1180 1179 1185 1184
-f 1321 1322 1317 752
-f 1178 1179 1180 754
-f 1179 1316 1322 1185
-f 1313 1314 1315 753
-f 1330 1331 1332 736
-f 1314 1313 1323 1329
-s 440
-f 1372 1371 1381 1388
-f 1312 1311 1178 1177
-f 1158 1157 763 1168
-f 1323 1324 717
-f 1177 1176 1168 1242 1258
-f 1257 1372 1388 1324
-f 1157 1158 1159 774
-f 1256 1257 744
-f 1311 1312 1313 753
-f 1387 1388 1381 718
-f 1163 1176 1175
-f 1313 1312 1324 1323
-f 1163 1162 1176
-f 1371 1372 1373 745
-f 1258 1252 744
-f 1161 1162 1163 773
-f 1158 1168 1176 1162
-f 1177 1258 1257 1324 1312
-f 1257 1258 744
-f 1162 1161 1159 1158
-f 1168 763 1243 1242
-f 1257 1256 1373 1372
-f 717 1324 1388 1387
-s 442
-f 1370 1369 1367 1366
-f 1369 1370 1371 745
-f 1377 1378 1379 737
-f 1371 1370 1382 1381
-f 1370 1366 1380 1382
-f 1379 1380 1375 737
-f 1380 1379 1383 1382
-s 450
-f 1286 1285 1220 1219
-f 1200 1199 759 1210
-f 1363 1364 1365 746
-f 1334 1335 736
-f 1297 1298 730
-f 1203 1204 1205 769
-f 1189 1188 1187 1246 1234
-f 1247 1246 1187 1320 1336
-f 1299 1298 1283 1342 1362
-f 1200 1210 1218 1204
-f 1335 1336 736
-f 1205 1218 1217
-f 1287 1286 1298 1297
-f 1365 1364 1376 1375
-f 1235 1234 1246 1245
-f 1205 1204 1218
-f 1298 1299 730
-f 1219 1218 1210 1268 1284
-f 1247 1336 1335 1376 1364
-f 1219 1284 1283 1298 1286
-f 1199 1200 1201 770
-f 1285 1286 1287 757
-f 1299 1300 730
-f 1336 1330 736
-f 1204 1203 1201 1200
-f 1210 759 1269 1268
-f 1364 1363 1248 1247
-s 438
-f 1294 1293 1304 1310
-f 1343 1344 1345 748
-f 1293 1294 1295 756
-f 1345 1344 1350 1349
-f 1351 1350 1310 711
-f 1344 1273 1310 1350
-f 1310 1304 711
-f 1349 1350 1351 726
-f 1344 1343 1274 1273
-s 467
-f 1303 1302 1306 1305
-f 1292 1291 1289 1288
-f 1289 1290 1285 757
-f 1221 1290 1296 1227
-f 1226 1227 1228 755
-f 1291 1292 1293 756
-f 1304 1305 1306 711
-f 1285 1290 1221 1220
-f 1228 1227 1296 1295
-f 1293 1292 1305 1304
-f 1291 1296 1290 1289
-f 1222 1221 1227 1226
-f 1295 1296 1291 756
-f 1287 1288 1289 757
-f 1292 1288 1303 1305
-f 1220 1221 1222 758
-f 1302 1303 1297 730
-f 1288 1287 1297 1303
-s 477
-f 1251 1250 1254 1253
-f 1240 1239 1237 1236
-f 1156 1155 1149 1154
-f 1239 1240 1241 764
-f 1155 1156 1157 774
-f 1190 1238 1244 1167
-f 1153 1154 1149 771
-f 1243 1244 1239 764
-f 1157 1156 1167 763
-f 1239 1244 1238 1237
-f 1241 1240 1253 1252
-f 763 1167 1244 1243
-f 1233 1238 1190 766
-f 1252 1253 1254 744
-f 1237 1238 1233 765
-f 1240 1236 1251 1253
-f 1167 1156 1154 1190
-f 1235 1236 1237 765
-f 1250 1251 1245 743
-f 1154 1153 766 1190
-f 1236 1235 1245 1251
-s 460
-f 1272 1273 749
-f 1228 1229 755
-f 1231 1230 1229 1272 1260
-f 1271 1272 749
-f 1261 1260 1272 1271
-f 1273 1274 749
-f 1229 1230 755
-f 1273 1272 1229 1294 1310
-f 1230 1224 755
-f 1229 1228 1295 1294
-s 471
-f 1262 1261 1271 1277
-f 1196 1195 762 1232
-f 1278 1279 1280 750
-f 1263 1264 1259 761
-f 1209 1198 1196 1232
-f 1232 1264 1270 1209
-f 1261 1262 1263 761
-f 1276 1277 1271 749
-f 1259 1264 1232 762
-f 759 1209 1270 1269
-f 1267 1266 1279 1278
-f 1265 1270 1264 1263
-f 1199 1198 1209 759
-f 1265 1266 1267 760
-f 1197 1198 1199 770
-f 1266 1262 1277 1279
-f 1195 1196 1191 767
-f 1269 1270 1265 760
-f 1198 1197 1191 1196
-f 1266 1265 1263 1262
-f 1277 1276 1280 1279
-s 604
-f 1202 1208 1216 1192
-f 1201 1202 1197 770
-f 1197 1202 1192 1191
-f 1211 1216 1208 1207
-f 1193 1192 1216 1215
-f 1203 1208 1202 1201
-f 1215 1216 1211 768
-f 1191 1192 1193 767
-f 1207 1208 1203 769
-s 595
-f 1159 1160 1155 774
-f 1160 1166 1174 1150
-f 1155 1160 1150 1149
-f 1169 1174 1166 1165
-f 1151 1150 1174 1173
-f 1161 1166 1160 1159
-f 1165 1166 1161 773
-f 1149 1150 1151 771
-f 1173 1174 1169 772
-s 466
-f 1230 1214 1213
-f 1259 1260 1261 761
-f 1214 1230 1231 1194
-f 1195 1194 1231 762
-f 1213 1214 1215 768
-f 1213 1224 1230
-f 1260 1259 762 1231
-s 608
-f 1206 1205 1217 1223
-f 1224 1225 1226 755
-f 1205 1206 1207 769
-f 1222 1223 1217 758
-f 1213 1212 1225 1224
-f 1211 1212 1213 768
-f 1212 1206 1223 1225
-f 1212 1211 1207 1206
-f 1223 1222 1226 1225
-s 462
-f 1188 1172 1171
-f 1172 1188 1189 1152
-f 1233 1234 1235 765
-f 1153 1152 1189 766
-f 1171 1172 1173 772
-f 1171 1182 1188
-f 1234 1233 766 1189
-s 599
-f 1164 1163 1175 1181
-f 1180 1181 1175 754
-f 1163 1164 1165 773
-f 1182 1183 1184 751
-f 1171 1170 1183 1182
-f 1170 1164 1181 1183
-f 1169 1170 1171 772
-f 1170 1169 1165 1164
-f 1181 1180 1184 1183
-s 565
-f 1097 1098 1099 787
-f 859 860 861 790
-f 860 859 1099 1098
-s 497
-f 1014 792 869 868
-f 980 979 975 974
-f 1015 1016 789
-f 1017 1016 1014 868 862
-f 861 862 790
-f 1016 1017 789
-f 981 980 1016 1015
-f 867 868 869 793
-f 974 1014 1016 980
-f 862 863 790
-f 1017 1018 789
-f 974 973 792 1014
-f 868 867 863 862
-s 514
-f 1085 1086 1081 801
-f 835 836 831 827
-f 873 1080 1086 849
-f 838 837 831 836
-f 1075 1080 873 799
-f 800 849 1086 1085
-f 836 835 799 873
-f 837 838 839 830
-f 849 838 836 873
-f 1081 1082 1083 801
-f 839 838 849 800
-s 495
-f 1092 1091 1095 1094
-f 1095 1096 787
-f 1028 1022 788
-f 1029 1028 1027 1096 1090
-f 1027 1028 788
-f 1093 1094 1095 787
-f 1083 1082 1094 1093
-f 1091 1090 1096 1095
-f 1096 1097 787
-f 1089 1090 1091 794
-f 1082 1078 1092 1094
-f 1026 1027 788
-f 1091 1092 1087 794
-f 1082 1081 1079 1078
-s 520
-f 880 881 882 826
-f 892 881 879 916
-f 881 880 874 879
-f 1051 1050 1060 1059
-f 806 892 1050 1049
-f 878 879 874 823
-f 892 916 1060 1050
-f 882 881 892 806
-s 492
-f 1045 1046 786
-f 903 904 905 796
-f 1047 1046 1045 910 904
-f 1044 1045 786
-f 993 992 1047 797
-f 905 904 910 909
-f 1046 1040 786
-f 909 910 785
-f 1010 1046 1047 992
-f 910 911 785
-f 904 903 797 1047
-s 490
-f 1032 798 1073 1072
-f 998 997 798 1032
-f 1069 1070 1071 795
-f 1049 1050 1051 803
-f 1035 1034 1032 1072 1066
-f 998 1032 1034 1004
-f 1035 1036 783
-f 1065 1066 784
-f 1071 1072 1073 795
-f 1053 1052 1070 1069
-f 1071 1070 1068 1067
-f 1005 1004 1034 1033
-f 1067 1068 1061 784
-f 1051 1052 1053 803
-f 1033 1034 783
-f 1052 1058 1068 1070
-f 1034 1035 783
-f 1066 1067 784
-f 1004 1003 999 998
-f 1052 1051 1059 1058
-f 1072 1071 1067 1066
-s 558
-f 851 856 848 847
-f 837 842 832 831
-f 847 848 843 829
-f 831 832 833 827
-f 841 842 837 830
-f 842 848 856 832
-f 855 856 851 828
-f 843 848 842 841
-f 833 832 856 855
-s 498
-f 1084 1083 1093 1100
-f 845 844 858 857
-f 843 844 845 829
-f 850 1084 1100 858
-f 857 858 790
-f 1099 1100 1093 787
-f 840 839 800 850
-f 859 858 1100 1099
-f 844 843 841 840
-f 1083 1084 1085 801
-f 840 850 858 844
-f 839 840 841 830
-f 858 859 790
-f 850 800 1085 1084
-s 493
-f 914 907 785
-f 897 914 915 877
-f 913 914 785
-f 1061 1062 1063 784
-f 878 877 915 805
-f 1063 1062 914 913
-f 1057 1056 1062 1061
-f 897 896 907 914
-f 1055 1056 1057 804
-f 896 897 898 824
-f 1056 915 914 1062
-f 1056 1055 805 915
-s 568
-f 894 899 891 890
-f 880 885 875 874
-f 884 885 880 826
-f 885 891 899 875
-f 890 891 886 825
-f 874 875 876 823
-f 898 899 894 824
-f 886 891 885 884
-f 876 875 899 898
-s 508
-f 1054 1053 1069 1074
-f 888 887 901 900
-f 1053 1054 1049 803
-f 902 901 893 1054 1074
-f 886 887 888 825
-f 887 886 884 883
-f 997 996 1031 798
-f 798 1031 1074 1073
-f 883 882 806 893
-f 1074 1069 795
-f 882 883 884 826
-f 883 893 901 887
-f 1073 1074 795
-f 893 806 1049 1054
-s 528
-f 1006 1005 1033 1039
-f 1008 1009 808
-f 918 928 936 934
-f 934 1006 1008 918
-f 1007 1008 808
-f 919 918 1008 1007
-f 1042 1041 1039 1038
-f 1009 1008 1041 1040
-f 1040 1041 1042 786
-f 1005 1006 809
-f 1008 1006 1039 1041
-f 1006 1001 809
-f 1038 1039 1033 783
-s 496
-f 986 985 1022 1028
-f 986 1028 1029 968
-f 969 968 1029 791
-f 985 986 987 812
-f 987 988 983 812
-f 1090 1089 791 1029
-s 536
-f 928 927 977 982
-f 984 985 812
-f 927 928 820
-f 928 982 984 936
-f 981 982 813
-f 1020 1021 1015 789
-f 985 984 1023 1022
-f 1024 1023 1021 1020
-f 937 936 984 983
-f 983 984 812
-f 928 923 820
-f 984 982 1021 1023
-f 982 977 813
-f 1022 1023 1024 788
-f 982 981 1015 1021
-s 512
-f 1003 1004 1005 809
-f 929 930 931 816
-f 931 932 933 816
-f 1001 1002 1003 809
-f 933 932 1002 1001
-f 1003 1002 1000 999
-f 935 940 930 929
-f 997 998 999 810
-f 932 944 1000 1002
-f 999 1000 995 810
-f 932 931 945 944
-s 511
-f 956 955 921 920
-f 956 920 1012 990
-f 957 956 990 989
-f 991 990 1012 1011
-f 989 990 991 807
-f 991 992 993 807
-f 992 991 1011 1010
-s 499
-f 926 925 963 962
-f 975 976 971 814
-f 926 962 976 978
-f 973 974 975 814
-f 927 926 978 977
-f 979 978 976 975
-f 977 978 979 813
-f 925 926 927 820
-f 923 924 925 820
-f 979 980 981 813
-s 501
-f 968 967 987 986
-f 967 968 969 811
-f 965 966 967 811
-f 967 966 988 987
-f 951 950 966 965
-f 950 938 988 966
-f 950 949 939 938
-s 544
-f 940 948 946 930
-f 931 930 946 945
-f 949 950 951 822
-f 947 948 949 822
-s 529
-f 924 923 917 922
-f 964 924 922 954
-f 925 924 964 963
-f 955 954 922 921
-f 921 922 917 815
-f 919 920 921 815
-f 920 919 1007 1012
-s 572
-f 896 895 908 907
-f 894 895 896 824
-f 895 889 906 908
-f 895 894 890 889
-f 889 888 900 906
-f 905 906 900 796
-f 888 889 890 825
-f 907 908 909 785
-f 906 905 909 908
-s 562
-f 865 866 867 793
-f 845 846 847 829
-f 863 864 857 790
-f 846 845 857 864
-f 867 866 864 863
-f 852 851 847 846
-f 851 852 853 828
-f 852 846 864 866
-f 853 852 866 865
-s 515
-f 833 834 835 827
-f 834 833 855 854
-s 504
-f 854 853 865 871
-f 853 854 855 828
-s 503
-f 869 870 793
-f 871 865 793
-f 870 871 793
-s 523
-f 876 877 878 823
-f 877 876 898 897
-s 576
-f 1064 1063 913 912
-f 911 912 913 785
-f 1063 1064 1065 784
-s 542
-f 936 937 819
-f 918 919 815
-f 923 928 918 917
-f 935 936 819
-f 917 918 815
-s 531
-f 936 935 929 934
-f 933 934 816
-f 934 929 816
-f 934 933 1001 1006
-s 537
-f 938 937 983 988
-f 939 940 935 819
-f 949 948 940 939
-f 937 938 939 819
-s 546
-f 959 960 821
-f 941 942 817
-f 947 952 942 941
-f 960 961 821
-f 942 943 817
-s 533
-f 948 947 941 946
-f 945 946 941 817
-f 943 944 945 817
-f 944 943 995 1000
-s 543
-f 953 954 955 818
-f 959 964 954 953
-f 955 956 957 818
-s 527
-f 958 957 989 994
-f 957 958 818
-f 958 953 818
-f 960 959 953 958
-s 541
-f 962 961 971 976
-f 961 962 963 821
-f 963 964 959 821
-s 494
-f 1010 1009 1040 1046
-f 1011 1012 1007 808
-f 1009 1010 1011 808
-s 583
-f 1025 1024 1020 1019
-f 1024 1025 1026 788
-f 1018 1019 1020 789
-s 586
-f 1043 1042 1038 1037
-f 1036 1037 1038 783
-f 1042 1043 1044 786
-s 491
-f 1058 1057 1061 1068
-f 1057 1058 1059 804
-f 1059 1060 1055 804
-s 506
-f 1077 1078 1079 802
-f 1081 1086 1080 1079
-f 1079 1080 1075 802
-f 1078 1077 1087 1092
-s 481
-f 1152 1151 1173 1172
-f 1151 1152 1153 771
-s 465
-f 1177 1178 754
-f 1176 1177 754
-f 1175 1176 754
-s 458
-f 1187 1186 1321 1320
-f 1245 1246 743
-f 1186 1187 751
-f 1246 1247 743
-f 1187 1188 751
-f 1188 1182 751
-f 1247 1248 743
-s 475
-f 1193 1194 1195 767
-f 1194 1193 1215 1214
-s 469
-f 1217 1218 758
-f 1219 1220 758
-f 1218 1219 758
-s 459
-f 1242 1241 1252 1258
-f 1241 1242 1243 764
-s 461
-f 1267 1268 1269 760
-f 1268 1267 1278 1284
-s 449
-f 1342 1341 1357 1362
-f 1283 1284 750
-f 1284 1278 750
-f 1341 1342 1337 747
-f 1282 1283 750
-f 1283 1282 1337 1342
-s 453
-f 1319 1320 1321 752
-f 1320 1319 1330 1336
-s 445
-f 1346 1345 1349 1356
-f 1345 1346 1347 748
-s 436
-f 1354 1355 726
-f 1353 1354 726
-f 1359 1358 1356 1355
-f 1355 1356 1349 726
-f 1351 1352 1353 726
-s 455
-f 1365 1366 1367 746
-f 1366 1365 1375 1380
-s 521
-f 879 878 805 916
-f 1055 1060 916 805
-g intakes
-usemtl silver
-s 713
-f 3118 3117 3124 3125
-f 3112 3111 3119 3120
-f 3108 3107 3115 3116
-f 3104 3103 3111 3112
-f 3100 3099 3107 3108
-f 3096 3095 3103 3104
-f 3092 3091 3099 3100
-f 3088 3087 3095 3096
-f 3084 3083 3091 3092
-f 3080 3079 3087 3088
-f 3076 3075 3083 3084
-f 3114 3121 3071 3073
-f 3122 3065 3070
-f 3126 3066 3064
-f 3076 3077 3060 3061
-f 3080 3081 3056 3057
-f 3051 3052 3060 3059
-f 3055 3048 3056 3063
-f 3042 3043 3035 3027
-f 3036 3037 3029 3028
-f 3008 3009 3028 3029
-f 2962 2961 3021 3020
-f 2965 2964 3018 3017
-f 3013 3012 3004 3005
-f 3009 3008 3000 3001
-f 3003 3002 2994 2995
-f 2997 2996 2988 2989
-f 2993 2992 2984 2985
-f 2987 2986 2978 2979
-f 2981 2980 2972 2973
-f 2977 2976 2968 2969
-f 2970 2969 2962 2963
-f 2954 2955 2869 2868
-f 2943 2942 2949 2950
-f 2937 2936 2944 2945
-f 2933 2932 2940 2941
-f 2929 2928 2936 2937
-f 2925 2924 2932 2933
-f 2921 2920 2928 2929
-f 2917 2916 2924 2925
-f 2913 2912 2920 2921
-f 2909 2908 2916 2917
-f 2905 2904 2912 2913
-f 2901 2900 2908 2909
-f 2947 2946 2898 2897
-f 2950 2949 2895 2894
-f 2907 2900 2889 2882
-f 2904 2905 2884 2885
-f 2880 2881 2889 2888
-f 2875 2876 2884 2883
-f 2873 2872 2867 2866
-f 2864 2865 2857 2856
-f 2859 2860 2852 2851
-f 2834 2835 2854 2855
-f 2839 2832 2857 2850
-f 2789 2788 2846 2845
-f 2787 2794 2793 2841 2849
-f 2832 2839 2831 2824
-f 2836 2835 2827 2828
-f 2824 2831 2823 2816
-f 2828 2827 2819 2820
-f 2816 2823 2815 2808
-f 2820 2819 2811 2812
-f 2808 2815 2807 2800
-f 2812 2811 2803 2804
-f 2800 2807 2799 2792
-f 2804 2803 2795 2796
-f 2798 2797 2790 2791
-f 2795 2794 2787 2788
-f 2801 2800 2792 2793
-f 2805 2804 2796 2797
-f 2809 2808 2800 2801
-f 2813 2812 2804 2805
-f 2817 2816 2808 2809
-f 2821 2820 2812 2813
-f 2825 2824 2816 2817
-f 2829 2828 2820 2821
-f 2833 2832 2824 2825
-f 2837 2836 2828 2829
-f 2799 2798 2791 2848 2840
-f 2791 2790 2844 2843
-f 2788 2787 2847 2846
-f 2837 2838 2851 2852
-f 2833 2834 2855 2856
-f 2861 2862 2854 2853
-f 2865 2858 2850 2857
-f 2872 2873 2879 2887
-f 2876 2877 2885 2884
-f 2905 2906 2883 2884
-f 2901 2902 2887 2888
-f 2952 2892 2890
-f 2948 2891 2896
-f 2940 2947 2897 2899
-f 2902 2901 2909 2910
-f 2906 2905 2913 2914
-f 2910 2909 2917 2918
-f 2914 2913 2921 2922
-f 2918 2917 2925 2926
-f 2922 2921 2929 2930
-f 2926 2925 2933 2934
-f 2930 2929 2937 2938
-f 2934 2933 2941 2942
-f 2938 2937 2945 2946
-f 2944 2943 2950 2951
-f 2969 2968 2961 2962
-f 2978 2977 2969 2970
-f 2986 2985 2977 2978
-f 2994 2993 2985 2986
-f 3002 3001 2993 2994
-f 3010 3009 3001 3002
-f 2961 2968 2967 3015 3023
-f 2963 2962 3020 3019
-f 3012 3013 3024 3025
-f 3009 3010 3027 3028
-f 3035 3036 3028 3027
-f 3046 3047 3053 3061
-f 3050 3051 3059 3058
-f 3079 3080 3057 3058
-f 3075 3076 3061 3062
-f 3126 3125 3067 3066
-f 3123 3122 3070 3069
-f 3122 3115 3114 3073 3065
-f 3077 3076 3084 3085
-f 3081 3080 3088 3089
-f 3085 3084 3092 3093
-f 3089 3088 3096 3097
-f 3093 3092 3100 3101
-f 3097 3096 3104 3105
-f 3101 3100 3108 3109
-f 3105 3104 3112 3113
-f 3109 3108 3116 3117
-f 3113 3112 3120 3121
-f 3119 3118 3125 3126
-f 3117 3116 3123 3124
-f 3111 3110 3118 3119
-f 3107 3106 3114 3115
-f 3103 3102 3110 3111
-f 3099 3098 3106 3107
-f 3095 3094 3102 3103
-f 3091 3090 3098 3099
-f 3087 3086 3094 3095
-f 3083 3082 3090 3091
-f 3079 3078 3086 3087
-f 3075 3074 3082 3083
-f 3121 3120 3072 3071
-f 3124 3123 3069 3068
-f 3074 3075 3062 3063
-f 3077 3078 3059 3060
-f 3053 3054 3062 3061
-f 3048 3049 3057 3056
-f 3044 3045 3060 3052
-f 3032 3033 3025 3024
-f 3011 3012 3025 3026
-f 2961 3023 3021
-f 2965 3017 3022
-f 3012 3011 3003 3004
-f 3004 3003 2995 2996
-f 2996 2995 2987 2988
-f 2988 2987 2979 2980
-f 2980 2979 2971 2972
-f 2971 2970 2963 2964
-f 2958 2959 3045 3044
-f 2942 2941 2948 2949
-f 2936 2935 2943 2944
-f 2932 2939 2947 2940
-f 2928 2927 2935 2936
-f 2924 2931 2939 2932
-f 2920 2919 2927 2928
-f 2916 2923 2931 2924
-f 2912 2911 2919 2920
-f 2908 2915 2923 2916
-f 2904 2903 2911 2912
-f 2900 2907 2915 2908
-f 2946 2945 2952 2890 2898
-f 2951 2950 2894 2893
-f 2900 2901 2888 2889
-f 2903 2904 2885 2886
-f 2879 2880 2888 2887
-f 2874 2875 2883 2882
-f 2868 2869 2861 2853
-f 2863 2864 2856 2855
-f 2858 2859 2851 2850
-f 2835 2836 2853 2854
-f 2838 2839 2850 2851
-f 2790 2789 2845 2844
-f 2793 2792 2842 2841
-f 2839 2838 2830 2831
-f 2835 2834 2826 2827
-f 2831 2830 2822 2823
-f 2827 2826 2818 2819
-f 2823 2822 2814 2815
-f 2819 2818 2810 2811
-f 2815 2814 2806 2807
-f 2811 2810 2802 2803
-f 2807 2806 2798 2799
-f 2803 2802 2794 2795
-f 2797 2796 2789 2790
-f 2796 2795 2788 2789
-f 2802 2801 2793 2794
-f 2806 2805 2797 2798
-f 2810 2809 2801 2802
-f 2814 2813 2805 2806
-f 2818 2817 2809 2810
-f 2822 2821 2813 2814
-f 2826 2825 2817 2818
-f 2830 2829 2821 2822
-f 2834 2833 2825 2826
-f 2838 2837 2829 2830
-f 2792 2799 2840 2842
-f 2791 2843 2848
-f 2787 2849 2847
-f 2836 2837 2852 2853
-f 2832 2833 2856 2857
-f 2862 2863 2855 2854
-f 2866 2867 2852 2860
-f 2881 2874 2882 2889
-f 2877 2878 2886 2885
-f 2906 2907 2882 2883
-f 2902 2903 2886 2887
-f 2952 2951 2893 2892
-f 2949 2948 2896 2895
-f 2948 2941 2940 2899 2891
-f 2903 2902 2910 2911
-f 2907 2906 2914 2915
-f 2911 2910 2918 2919
-f 2915 2914 2922 2923
-f 2919 2918 2926 2927
-f 2923 2922 2930 2931
-f 2927 2926 2934 2935
-f 2931 2930 2938 2939
-f 2935 2934 2942 2943
-f 2939 2938 2946 2947
-f 2945 2944 2951 2952
-f 2958 3044 2869 2955
-f 2972 2971 2964 2965
-f 2979 2978 2970 2971
-f 2985 2984 2976 2977
-f 2989 2988 2980 2981
-f 2995 2994 2986 2987
-f 3001 3000 2992 2993
-f 3005 3004 2996 2997
-f 3011 3010 3002 3003
-f 2973 2972 2965 3022 3014
-f 2964 2963 3019 3018
-f 3010 3011 3026 3027
-f 3033 3034 3026 3025
-f 3040 3041 3026 3034
-f 3041 3040 3047 3046
-f 3049 3050 3058 3057
-f 3054 3055 3063 3062
-f 3078 3079 3058 3059
-f 3081 3074 3063 3056
-f 3125 3124 3068 3067
-f 3120 3119 3126 3064 3072
-f 3074 3081 3089 3082
-f 3078 3077 3085 3086
-f 3082 3089 3097 3090
-f 3086 3085 3093 3094
-f 3090 3097 3105 3098
-f 3094 3093 3101 3102
-f 3098 3105 3113 3106
-f 3102 3101 3109 3110
-f 3106 3113 3121 3114
-f 3110 3109 3117 3118
-f 3116 3115 3122 3123
-s off
-f 3023 3015 3016 3014 3022
-f 2890 2892 2893 2894 2895
-f 2890 2895 2896 2891
-f 2849 2841 2842 2840 2848
-f 3044 3043 2870 2869
-f 2848 2846 2847 2849
-f 2848 2843 2844 2845 2846
-f 2891 2899 2897 2898 2890
-f 3022 3020 3021 3023
-f 3022 3017 3018 3019 3020
-s 715
-f 2863 2862 2861 2860 2859 2858 2865 2864
-f 2873 2870 2878 2879
-f 2881 2880 2879 2878 2877 2876 2875 2874
-f 2870 2873 2866 2869
-f 2869 2866 2860 2861
-s 716
-f 2960 2959 2958 2957
-f 2871 2872 2887 2886
-f 2867 2868 2853 2852
-f 2953 2954 2868 2871
-f 3041 3042 3027 3026
-f 3042 3041 3046 3045
-f 2957 2958 2955 2956
-f 2872 2871 2868 2867
-f 2954 2953 2956 2955
-f 2959 2960 3042 3045
-f 3045 3046 3061 3060
-s 717
-f 2960 2957 3043 3042
-f 2870 2871 2886 2878
-f 2956 2953 2871 2870
-f 3043 2957 2956 2870
-s 722
-f 3038 3039 3031 3030
-f 3013 3006 3031 3024
-f 3007 3006 2998 2999
-f 2991 2990 2982 2983
-f 2975 2974 2966 2967
-f 2974 2981 2973 2966
-f 2982 2989 2981 2974
-f 2990 2997 2989 2982
-f 2998 3005 2997 2990
-f 3006 3013 3005 2998
-f 3007 3008 3029 3030
-f 3039 3032 3024 3031
-f 3037 3038 3030 3029
-f 2966 2973 3014 3016
-f 3008 3007 2999 3000
-f 3000 2999 2991 2992
-f 2992 2991 2983 2984
-f 2984 2983 2975 2976
-f 2976 2975 2967 2968
-f 2983 2982 2974 2975
-f 2999 2998 2990 2991
-f 2967 2966 3016 3015
-f 3006 3007 3030 3031
-s 724
-f 3047 3044 3052 3053
-f 3043 3040 3034 3035
-f 3055 3054 3053 3052 3051 3050 3049 3048
-f 3040 3043 3044 3047
-f 3037 3036 3035 3034 3033 3032 3039 3038
-s 727
-f 3064 3066 3067 3068 3069
-f 3064 3069 3070 3065
-f 3065 3073 3071 3072 3064
-g exhaust
-usemtl bronze
-s 731
-f 3175 3174 3195 3194
-f 3172 3179 3190 3197
-f 3128 3129 3185 3186
-f 3133 3134 3127 3189 3181
-f 3179 3172 3164 3171
-f 3175 3176 3168 3167
-f 3171 3164 3156 3163
-f 3167 3168 3160 3159
-f 3163 3156 3148 3155
-f 3159 3160 3152 3151
-f 3155 3148 3140 3147
-f 3151 3152 3144 3143
-f 3147 3140 3132 3139
-f 3143 3144 3136 3135
-f 3137 3138 3131 3130
-f 3134 3135 3128 3127
-f 3140 3141 3133 3132
-f 3144 3145 3137 3136
-f 3148 3149 3141 3140
-f 3152 3153 3145 3144
-f 3156 3157 3149 3148
-f 3160 3161 3153 3152
-f 3164 3165 3157 3156
-f 3168 3169 3161 3160
-f 3172 3173 3165 3164
-f 3176 3177 3169 3168
-f 3131 3138 3139 3180 3188
-f 3130 3131 3183 3184
-f 3127 3128 3186 3187
-f 3178 3177 3192 3191
-f 3174 3173 3196 3195
-f 3176 3175 3194 3193
-f 3179 3178 3191 3190
-f 3129 3130 3184 3185
-f 3132 3133 3181 3182
-f 3178 3179 3171 3170
-f 3174 3175 3167 3166
-f 3170 3171 3163 3162
-f 3166 3167 3159 3158
-f 3162 3163 3155 3154
-f 3158 3159 3151 3150
-f 3154 3155 3147 3146
-f 3150 3151 3143 3142
-f 3146 3147 3139 3138
-f 3142 3143 3135 3134
-f 3136 3137 3130 3129
-f 3135 3136 3129 3128
-f 3141 3142 3134 3133
-f 3145 3146 3138 3137
-f 3149 3150 3142 3141
-f 3153 3154 3146 3145
-f 3157 3158 3150 3149
-f 3161 3162 3154 3153
-f 3165 3166 3158 3157
-f 3169 3170 3162 3161
-f 3173 3174 3166 3165
-f 3177 3178 3170 3169
-f 3139 3132 3182 3180
-f 3131 3188 3183
-f 3127 3187 3189
-f 3177 3176 3193 3192
-f 3173 3172 3197 3196
-s off
-f 3372 3373 3371
-f 3367 3368 3371 3373
-f 3362 3359 3351 3353
-f 3352 3353 3351
-f 3350 3348 3347 3346 3345
-f 3350 3345 3344 3349
-f 3217 3225 3224 3226 3218
-f 3209 3210 3216
-f 3207 3208 3216 3210
-f 3364 3365 3363 3204 3202 3203
-f 3199 3200 3194 3196
-f 3195 3196 3194
-f 3188 3180 3182 3181 3189
-f 3197 3190 3196
-f 3198 3199 3196 3190
-f 3280 3287 3286 3364 3203 3281
-f 3208 3205 3214 3216
-f 3215 3216 3214
-f 3358 3351 3357
-f 3359 3360 3357 3351
-f 3366 3367 3373 3375
-f 3374 3375 3373
-f 3370 3371 3377
-f 3368 3369 3377 3371
-f 3361 3362 3353 3355
-f 3354 3355 3353
-f 3211 3212 3210
-f 3206 3207 3210 3212
-f 3363 3285 3284 3283 3282 3204
-f 3200 3201 3192 3194
-f 3193 3194 3192
-f 3189 3184 3183 3188
-f 3189 3187 3186 3185 3184
-f 3191 3192 3190
-f 3201 3198 3190 3192
-f 3205 3206 3212 3214
-f 3213 3214 3212
-f 3218 3220 3219 3217
-f 3218 3223 3222 3221 3220
-f 3349 3341 3343 3342 3350
-f 3356 3357 3355
-f 3360 3361 3355 3357
-f 3369 3366 3375 3377
-f 3376 3377 3375
-s 733
-f 3365 3364 3369 3368
-f 3369 3364 3286 3366
-f 3200 3206 3282 3281
-f 3199 3202 3207 3206 3200
-f 3284 3287 3280 3283
-f 3203 3202 3199 3198
-f 3203 3198 3201 3281
-f 3361 3367 3286 3285
-f 3360 3365 3368 3367 3361
-f 3363 3359 3362 3285
-f 3363 3365 3360 3359
-f 3362 3361 3285
-f 3367 3366 3286
-f 3283 3280 3281 3282
-f 3208 3204 3282 3205
-f 3202 3204 3208 3207
-f 3201 3200 3281
-f 3206 3205 3282
-f 3287 3284 3285 3286
-s 734
-f 3269 3270 3277 3276
-f 3263 3264 3272 3271
-f 3259 3260 3268 3267
-f 3255 3256 3264 3263
-f 3251 3252 3260 3259
-f 3247 3248 3256 3255
-f 3243 3244 3252 3251
-f 3239 3240 3248 3247
-f 3235 3236 3244 3243
-f 3231 3232 3240 3239
-f 3227 3228 3236 3235
-f 3273 3274 3224 3225
-f 3276 3277 3221 3222
-f 3227 3234 3209 3216
-f 3232 3231 3212 3211
-f 3233 3232 3211 3210
-f 3229 3228 3215 3214
-f 3279 3217 3219
-f 3275 3223 3218
-f 3274 3267 3226 3224
-f 3228 3229 3237 3236
-f 3232 3233 3241 3240
-f 3236 3237 3245 3244
-f 3240 3241 3249 3248
-f 3244 3245 3253 3252
-f 3248 3249 3257 3256
-f 3252 3253 3261 3260
-f 3256 3257 3265 3264
-f 3260 3261 3269 3268
-f 3264 3265 3273 3272
-f 3270 3271 3278 3277
-f 3268 3269 3276 3275
-f 3262 3263 3271 3270
-f 3266 3259 3267 3274
-f 3254 3255 3263 3262
-f 3258 3251 3259 3266
-f 3246 3247 3255 3254
-f 3250 3243 3251 3258
-f 3238 3239 3247 3246
-f 3242 3235 3243 3250
-f 3230 3231 3239 3238
-f 3234 3227 3235 3242
-f 3279 3272 3273 3225 3217
-f 3277 3278 3220 3221
-f 3228 3227 3216 3215
-f 3231 3230 3213 3212
-f 3234 3233 3210 3209
-f 3230 3229 3214 3213
-f 3278 3279 3219 3220
-f 3275 3276 3222 3223
-f 3267 3268 3275 3218 3226
-f 3229 3230 3238 3237
-f 3233 3234 3242 3241
-f 3237 3238 3246 3245
-f 3241 3242 3250 3249
-f 3245 3246 3254 3253
-f 3249 3250 3258 3257
-f 3253 3254 3262 3261
-f 3257 3258 3266 3265
-f 3261 3262 3270 3269
-f 3265 3266 3274 3273
-f 3271 3272 3279 3278
-s 739
-f 3334 3333 3358 3357
-f 3338 3337 3354 3353
-f 3288 3289 3347 3348
-f 3291 3292 3344 3345
-f 3292 3299 3300 3341 3349
-f 3337 3338 3330 3329
-f 3333 3334 3326 3325
-f 3329 3330 3322 3321
-f 3325 3326 3318 3317
-f 3321 3322 3314 3313
-f 3317 3318 3310 3309
-f 3313 3314 3306 3305
-f 3309 3310 3302 3301
-f 3305 3306 3298 3297
-f 3301 3302 3294 3293
-f 3295 3296 3289 3288
-f 3298 3299 3292 3291
-f 3304 3305 3297 3296
-f 3308 3301 3293 3300
-f 3312 3313 3305 3304
-f 3316 3309 3301 3308
-f 3320 3321 3313 3312
-f 3324 3317 3309 3316
-f 3328 3329 3321 3320
-f 3332 3325 3317 3324
-f 3336 3337 3329 3328
-f 3340 3333 3325 3332
-f 3294 3295 3288 3350 3342
-f 3289 3290 3346 3347
-f 3340 3339 3352 3351
-f 3337 3336 3355 3354
-f 3335 3334 3357 3356
-f 3339 3338 3353 3352
-f 3288 3348 3350
-f 3292 3349 3344
-f 3300 3293 3343 3341
-f 3338 3339 3331 3330
-f 3334 3335 3327 3326
-f 3330 3331 3323 3322
-f 3326 3327 3319 3318
-f 3322 3323 3315 3314
-f 3318 3319 3311 3310
-f 3314 3315 3307 3306
-f 3310 3311 3303 3302
-f 3306 3307 3299 3298
-f 3302 3303 3295 3294
-f 3296 3297 3290 3289
-f 3297 3298 3291 3290
-f 3303 3304 3296 3295
-f 3307 3308 3300 3299
-f 3311 3312 3304 3303
-f 3315 3316 3308 3307
-f 3319 3320 3312 3311
-f 3323 3324 3316 3315
-f 3327 3328 3320 3319
-f 3331 3332 3324 3323
-f 3335 3336 3328 3327
-f 3339 3340 3332 3331
-f 3293 3294 3342 3343
-f 3290 3291 3345 3346
-f 3333 3340 3351 3358
-f 3336 3335 3356 3355
-s 741
-f 3430 3431 3438 3437
-f 3424 3425 3433 3432
-f 3420 3421 3429 3428
-f 3416 3417 3425 3424
-f 3412 3413 3421 3420
-f 3408 3409 3417 3416
-f 3404 3405 3413 3412
-f 3400 3401 3409 3408
-f 3396 3397 3405 3404
-f 3392 3393 3401 3400
-f 3388 3389 3397 3396
-f 3434 3435 3385 3386
-f 3437 3438 3382 3383
-f 3389 3388 3377 3376
-f 3392 3391 3374 3373
-f 3395 3394 3371 3370
-f 3391 3390 3375 3374
-f 3440 3378 3380
-f 3436 3384 3379
-f 3435 3428 3387 3385
-f 3389 3390 3398 3397
-f 3393 3394 3402 3401
-f 3397 3398 3406 3405
-f 3401 3402 3410 3409
-f 3405 3406 3414 3413
-f 3409 3410 3418 3417
-f 3413 3414 3422 3421
-f 3417 3418 3426 3425
-f 3421 3422 3430 3429
-f 3425 3426 3434 3433
-f 3431 3432 3439 3438
-f 3429 3430 3437 3436
-f 3423 3424 3432 3431
-f 3427 3420 3428 3435
-f 3415 3416 3424 3423
-f 3419 3412 3420 3427
-f 3407 3408 3416 3415
-f 3411 3404 3412 3419
-f 3399 3400 3408 3407
-f 3403 3396 3404 3411
-f 3391 3392 3400 3399
-f 3395 3388 3396 3403
-f 3440 3433 3434 3386 3378
-f 3438 3439 3381 3382
-f 3388 3395 3370 3377
-f 3393 3392 3373 3372
-f 3394 3393 3372 3371
-f 3390 3389 3376 3375
-f 3439 3440 3380 3381
-f 3436 3437 3383 3384
-f 3428 3429 3436 3379 3387
-f 3390 3391 3399 3398
-f 3394 3395 3403 3402
-f 3398 3399 3407 3406
-f 3402 3403 3411 3410
-f 3406 3407 3415 3414
-f 3410 3411 3419 3418
-f 3414 3415 3423 3422
-f 3418 3419 3427 3426
-f 3422 3423 3431 3430
-f 3426 3427 3435 3434
-f 3432 3433 3440 3439
-s 743
-f 3378 3386 3385 3387 3379
-f 3379 3381 3380 3378
-f 3379 3384 3383 3382 3381
-g shaft
-usemtl silver
-s 747
-f 3652 3651 3632 3633
-f 3576 3575 3556 3557
-f 3500 3499 3480 3481
-f 3481 3480 3461 3462
-f 3557 3556 3537 3538
-f 3633 3632 3613 3614
-f 3443 3442 3651 3652
-f 3595 3594 3575 3576
-f 3519 3518 3499 3500
-f 3462 3461 3442 3443
-f 3538 3537 3518 3519
-f 3614 3613 3594 3595
-s 748
-f 3446 3445 3654 3655
-f 3656 3655 3636 3637
-f 3638 3637 3618 3619
-f 3634 3633 3614 3615
-f 3616 3615 3596 3597
-f 3598 3597 3578 3579
-f 3580 3579 3560 3561
-f 3562 3561 3542 3543
-f 3558 3557 3538 3539
-f 3540 3539 3520 3521
-f 3522 3521 3502 3503
-f 3504 3503 3484 3485
-f 3486 3485 3466 3467
-f 3482 3481 3462 3463
-f 3465 3464 3445 3446
-f 3464 3463 3444 3445
-f 3483 3482 3463 3464
-f 3501 3500 3481 3482
-f 3505 3504 3485 3486
-f 3523 3522 3503 3504
-f 3541 3540 3521 3522
-f 3559 3558 3539 3540
-f 3577 3576 3557 3558
-f 3581 3580 3561 3562
-f 3599 3598 3579 3580
-f 3617 3616 3597 3598
-f 3635 3634 3615 3616
-f 3653 3652 3633 3634
-f 3657 3656 3637 3638
-f 3447 3446 3655 3656
-f 3445 3444 3653 3654
-f 3655 3654 3635 3636
-f 3637 3636 3617 3618
-f 3619 3618 3599 3600
-f 3615 3614 3595 3596
-f 3597 3596 3577 3578
-f 3579 3578 3559 3560
-f 3561 3560 3541 3542
-f 3543 3542 3523 3524
-f 3539 3538 3519 3520
-f 3521 3520 3501 3502
-f 3503 3502 3483 3484
-f 3485 3484 3465 3466
-f 3466 3465 3446 3447
-f 3463 3462 3443 3444
-f 3467 3466 3447 3448
-f 3484 3483 3464 3465
-f 3502 3501 3482 3483
-f 3520 3519 3500 3501
-f 3524 3523 3504 3505
-f 3542 3541 3522 3523
-f 3560 3559 3540 3541
-f 3578 3577 3558 3559
-f 3596 3595 3576 3577
-f 3600 3599 3580 3581
-f 3618 3617 3598 3599
-f 3636 3635 3616 3617
-f 3654 3653 3634 3635
-f 3444 3443 3652 3653
-f 3448 3447 3656 3657
-s 749
-f 3658 3657 3638 3639
-f 3582 3581 3562 3563
-f 3506 3505 3486 3487
-f 3487 3486 3467 3468
-f 3563 3562 3543 3544
-f 3639 3638 3619 3620
-f 3449 3448 3657 3658
-f 3601 3600 3581 3582
-f 3525 3524 3505 3506
-f 3468 3467 3448 3449
-f 3544 3543 3524 3525
-f 3620 3619 3600 3601
-s 750
-f 3640 3639 3620 3621
-f 3564 3563 3544 3545
-f 3488 3487 3468 3469
-f 3507 3506 3487 3488
-f 3583 3582 3563 3564
-f 3659 3658 3639 3640
-f 3621 3620 3601 3602
-f 3545 3544 3525 3526
-f 3469 3468 3449 3450
-f 3526 3525 3506 3507
-f 3602 3601 3582 3583
-f 3450 3449 3658 3659
-s 751
-f 3660 3659 3640 3641
-f 3584 3583 3564 3565
-f 3508 3507 3488 3489
-f 3489 3488 3469 3470
-f 3565 3564 3545 3546
-f 3641 3640 3621 3622
-f 3451 3450 3659 3660
-f 3603 3602 3583 3584
-f 3527 3526 3507 3508
-f 3470 3469 3450 3451
-f 3546 3545 3526 3527
-f 3622 3621 3602 3603
-s 752
-f 3454 3453 3662 3663
-f 3664 3663 3644 3645
-f 3646 3645 3626 3627
-f 3642 3641 3622 3623
-f 3624 3623 3604 3605
-f 3606 3605 3586 3587
-f 3588 3587 3568 3569
-f 3570 3569 3550 3551
-f 3566 3565 3546 3547
-f 3548 3547 3528 3529
-f 3530 3529 3510 3511
-f 3512 3511 3492 3493
-f 3494 3493 3474 3475
-f 3490 3489 3470 3471
-f 3473 3472 3453 3454
-f 3472 3471 3452 3453
-f 3491 3490 3471 3472
-f 3509 3508 3489 3490
-f 3513 3512 3493 3494
-f 3531 3530 3511 3512
-f 3549 3548 3529 3530
-f 3567 3566 3547 3548
-f 3585 3584 3565 3566
-f 3589 3588 3569 3570
-f 3607 3606 3587 3588
-f 3625 3624 3605 3606
-f 3643 3642 3623 3624
-f 3661 3660 3641 3642
-f 3665 3664 3645 3646
-f 3455 3454 3663 3664
-f 3453 3452 3661 3662
-f 3663 3662 3643 3644
-f 3645 3644 3625 3626
-f 3627 3626 3607 3608
-f 3623 3622 3603 3604
-f 3605 3604 3585 3586
-f 3587 3586 3567 3568
-f 3569 3568 3549 3550
-f 3551 3550 3531 3532
-f 3547 3546 3527 3528
-f 3529 3528 3509 3510
-f 3511 3510 3491 3492
-f 3493 3492 3473 3474
-f 3474 3473 3454 3455
-f 3471 3470 3451 3452
-f 3475 3474 3455 3456
-f 3492 3491 3472 3473
-f 3510 3509 3490 3491
-f 3528 3527 3508 3509
-f 3532 3531 3512 3513
-f 3550 3549 3530 3531
-f 3568 3567 3548 3549
-f 3586 3585 3566 3567
-f 3604 3603 3584 3585
-f 3608 3607 3588 3589
-f 3626 3625 3606 3607
-f 3644 3643 3624 3625
-f 3662 3661 3642 3643
-f 3452 3451 3660 3661
-f 3456 3455 3664 3665
-s 746
-f 3460 3459 3668 3669
-f 3669 3650 3441
-f 3666 3665 3646 3647
-f 3648 3647 3628 3629
-f 3630 3629 3610 3611
-f 3612 3611 3592 3593
-f 3593 3574 3441
-f 3590 3589 3570 3571
-f 3572 3571 3552 3553
-f 3554 3553 3534 3535
-f 3536 3535 3516 3517
-f 3517 3498 3441
-f 3514 3513 3494 3495
-f 3496 3495 3476 3477
-f 3478 3477 3458 3459
-f 3477 3476 3457 3458
-f 3495 3494 3475 3476
-f 3498 3479 3441
-f 3517 3516 3497 3498
-f 3535 3534 3515 3516
-f 3553 3552 3533 3534
-f 3571 3570 3551 3552
-f 3574 3555 3441
-f 3593 3592 3573 3574
-f 3611 3610 3591 3592
-f 3629 3628 3609 3610
-f 3647 3646 3627 3628
-f 3650 3631 3441
-f 3669 3668 3649 3650
-f 3459 3458 3667 3668
-f 3460 3669 3441
-f 3457 3456 3665 3666
-f 3667 3666 3647 3648
-f 3649 3648 3629 3630
-f 3631 3630 3611 3612
-f 3612 3593 3441
-f 3609 3608 3589 3590
-f 3591 3590 3571 3572
-f 3573 3572 3553 3554
-f 3555 3554 3535 3536
-f 3536 3517 3441
-f 3533 3532 3513 3514
-f 3515 3514 3495 3496
-f 3497 3496 3477 3478
-f 3479 3478 3459 3460
-f 3476 3475 3456 3457
-f 3479 3460 3441
-f 3498 3497 3478 3479
-f 3516 3515 3496 3497
-f 3534 3533 3514 3515
-f 3552 3551 3532 3533
-f 3555 3536 3441
-f 3574 3573 3554 3555
-f 3592 3591 3572 3573
-f 3610 3609 3590 3591
-f 3628 3627 3608 3609
-f 3631 3612 3441
-f 3650 3649 3630 3631
-f 3668 3667 3648 3649
-f 3458 3457 3666 3667
-s off
-f 3461 3480 3499 3518 3537 3556 3575 3594 3613 3632 3651 3442
-g hub
-f 4048 4058 4068 4078 4088 4098 4108 4118 4128 4038
-f 3864 3874 3884 3894 3904 3914 3924 3934 3944 3854
-f 3680 3690 3700 3710 3720 3730 3740 3750 3760 3670
-s 754
-f 3741 3740 3730 3731
-f 3701 3700 3690 3691
-f 3691 3690 3680 3681
-f 3731 3730 3720 3721
-f 3671 3670 3760 3761
-f 3751 3750 3740 3741
-f 3711 3710 3700 3701
-f 3681 3680 3670 3671
-f 3721 3720 3710 3711
-f 3761 3760 3750 3751
-s 755
-f 3672 3671 3761 3762
-f 3732 3731 3721 3722
-f 3692 3691 3681 3682
-f 3702 3701 3691 3692
-f 3742 3741 3731 3732
-f 3762 3761 3751 3752
-f 3722 3721 3711 3712
-f 3682 3681 3671 3672
-f 3712 3711 3701 3702
-f 3752 3751 3741 3742
-s 756
-f 3743 3742 3732 3733
-f 3703 3702 3692 3693
-f 3693 3692 3682 3683
-f 3733 3732 3722 3723
-f 3673 3672 3762 3763
-f 3753 3752 3742 3743
-f 3713 3712 3702 3703
-f 3683 3682 3672 3673
-f 3723 3722 3712 3713
-f 3763 3762 3752 3753
-s 757
-f 3674 3673 3763 3764
-f 3734 3733 3723 3724
-f 3694 3693 3683 3684
-f 3704 3703 3693 3694
-f 3744 3743 3733 3734
-f 3764 3763 3753 3754
-f 3724 3723 3713 3714
-f 3684 3683 3673 3674
-f 3714 3713 3703 3704
-f 3754 3753 3743 3744
-s 758
-f 3745 3744 3734 3735
-f 3705 3704 3694 3695
-f 3695 3694 3684 3685
-f 3735 3734 3724 3725
-f 3675 3674 3764 3765
-f 3755 3754 3744 3745
-f 3715 3714 3704 3705
-f 3685 3684 3674 3675
-f 3725 3724 3714 3715
-f 3765 3764 3754 3755
-s 759
-f 3676 3675 3765 3766
-f 3736 3735 3725 3726
-f 3696 3695 3685 3686
-f 3706 3705 3695 3696
-f 3746 3745 3735 3736
-f 3766 3765 3755 3756
-f 3726 3725 3715 3716
-f 3686 3685 3675 3676
-f 3716 3715 3705 3706
-f 3756 3755 3745 3746
-s 760
-f 3747 3746 3736 3737
-f 3707 3706 3696 3697
-f 3697 3696 3686 3687
-f 3737 3736 3726 3727
-f 3677 3676 3766 3767
-f 3757 3756 3746 3747
-f 3717 3716 3706 3707
-f 3687 3686 3676 3677
-f 3727 3726 3716 3717
-f 3767 3766 3756 3757
-s 761
-f 3838 3699 3689 3839
-f 3775 3749 3739 3776
-f 3838 3837 3799 3798 3709 3699
-f 3678 3677 3767 3768
-f 3758 3757 3747 3748
-f 3738 3737 3727 3728
-f 3718 3717 3707 3708
-f 3698 3697 3687 3688
-f 3688 3687 3677 3678
-f 3708 3707 3697 3698
-f 3728 3727 3717 3718
-f 3748 3747 3737 3738
-f 3768 3767 3757 3758
-f 3759 3819 3818 3769
-f 3719 3797 3796 3729
-f 3769 3818 3817 3679
-f 3679 3840 3839 3689
-f 3729 3777 3776 3739
-f 3775 3774 3820 3819 3759 3749
-f 3679 3678 3768 3769
-f 3759 3758 3748 3749
-f 3739 3738 3728 3729
-f 3719 3718 3708 3709
-f 3699 3698 3688 3689
-f 3689 3688 3678 3679
-f 3709 3708 3698 3699
-f 3729 3728 3718 3719
-f 3749 3748 3738 3739
-f 3769 3768 3758 3759
-f 3798 3797 3719 3709
-f 3795 3778 3777 3729 3796
-f 3816 3841 3840 3679 3817
-s 766
-f 3935 3934 3924 3925
-f 3895 3894 3884 3885
-f 3865 3864 3854 3855
-f 3905 3904 3894 3895
-f 3945 3944 3934 3935
-f 3925 3924 3914 3915
-f 3885 3884 3874 3875
-f 3875 3874 3864 3865
-f 3915 3914 3904 3905
-f 3855 3854 3944 3945
-s 767
-f 3946 3945 3935 3936
-f 3906 3905 3895 3896
-f 3866 3865 3855 3856
-f 3896 3895 3885 3886
-f 3936 3935 3925 3926
-f 3856 3855 3945 3946
-f 3916 3915 3905 3906
-f 3876 3875 3865 3866
-f 3886 3885 3875 3876
-f 3926 3925 3915 3916
-s 768
-f 3937 3936 3926 3927
-f 3897 3896 3886 3887
-f 3867 3866 3856 3857
-f 3907 3906 3896 3897
-f 3947 3946 3936 3937
-f 3927 3926 3916 3917
-f 3887 3886 3876 3877
-f 3877 3876 3866 3867
-f 3917 3916 3906 3907
-f 3857 3856 3946 3947
-s 769
-f 3948 3947 3937 3938
-f 3908 3907 3897 3898
-f 3868 3867 3857 3858
-f 3898 3897 3887 3888
-f 3938 3937 3927 3928
-f 3858 3857 3947 3948
-f 3918 3917 3907 3908
-f 3878 3877 3867 3868
-f 3888 3887 3877 3878
-f 3928 3927 3917 3918
-s 770
-f 3939 3938 3928 3929
-f 3899 3898 3888 3889
-f 3869 3868 3858 3859
-f 3909 3908 3898 3899
-f 3949 3948 3938 3939
-f 3929 3928 3918 3919
-f 3889 3888 3878 3879
-f 3879 3878 3868 3869
-f 3919 3918 3908 3909
-f 3859 3858 3948 3949
-s 771
-f 3950 3949 3939 3940
-f 3910 3909 3899 3900
-f 3870 3869 3859 3860
-f 3900 3899 3889 3890
-f 3940 3939 3929 3930
-f 3860 3859 3949 3950
-f 3920 3919 3909 3910
-f 3880 3879 3869 3870
-f 3890 3889 3879 3880
-f 3930 3929 3919 3920
-s 772
-f 3941 3940 3930 3931
-f 3901 3900 3890 3891
-f 3871 3870 3860 3861
-f 3911 3910 3900 3901
-f 3951 3950 3940 3941
-f 3931 3930 3920 3921
-f 3891 3890 3880 3881
-f 3881 3880 3870 3871
-f 3921 3920 3910 3911
-f 3861 3860 3950 3951
-s 773
-f 3863 4024 4023 3873
-f 3913 3961 3960 3923
-f 3959 3958 4004 4003 3943 3933
-f 3982 3981 3903 3893
-f 3952 3951 3941 3942
-f 3932 3931 3921 3922
-f 3912 3911 3901 3902
-f 3892 3891 3881 3882
-f 3872 3871 3861 3862
-f 3882 3881 3871 3872
-f 3902 3901 3891 3892
-f 3922 3921 3911 3912
-f 3942 3941 3931 3932
-f 3862 3861 3951 3952
-f 3979 3962 3961 3913 3980
-f 4000 4025 4024 3863 4001
-f 4022 3883 3873 4023
-f 3959 3933 3923 3960
-f 4022 4021 3983 3982 3893 3883
-f 3953 3952 3942 3943
-f 3933 3932 3922 3923
-f 3913 3912 3902 3903
-f 3893 3892 3882 3883
-f 3873 3872 3862 3863
-f 3883 3882 3872 3873
-f 3903 3902 3892 3893
-f 3923 3922 3912 3913
-f 3943 3942 3932 3933
-f 3863 3862 3952 3953
-f 3943 4003 4002 3953
-f 3903 3981 3980 3913
-f 3953 4002 4001 3863
-s 778
-f 4109 4108 4098 4099
-f 4069 4068 4058 4059
-f 4059 4058 4048 4049
-f 4099 4098 4088 4089
-f 4039 4038 4128 4129
-f 4119 4118 4108 4109
-f 4079 4078 4068 4069
-f 4049 4048 4038 4039
-f 4089 4088 4078 4079
-f 4129 4128 4118 4119
-s 779
-f 4040 4039 4129 4130
-f 4100 4099 4089 4090
-f 4060 4059 4049 4050
-f 4070 4069 4059 4060
-f 4110 4109 4099 4100
-f 4130 4129 4119 4120
-f 4090 4089 4079 4080
-f 4050 4049 4039 4040
-f 4080 4079 4069 4070
-f 4120 4119 4109 4110
-s 780
-f 4111 4110 4100 4101
-f 4071 4070 4060 4061
-f 4061 4060 4050 4051
-f 4101 4100 4090 4091
-f 4041 4040 4130 4131
-f 4121 4120 4110 4111
-f 4081 4080 4070 4071
-f 4051 4050 4040 4041
-f 4091 4090 4080 4081
-f 4131 4130 4120 4121
-s 781
-f 4042 4041 4131 4132
-f 4102 4101 4091 4092
-f 4062 4061 4051 4052
-f 4072 4071 4061 4062
-f 4112 4111 4101 4102
-f 4132 4131 4121 4122
-f 4092 4091 4081 4082
-f 4052 4051 4041 4042
-f 4082 4081 4071 4072
-f 4122 4121 4111 4112
-s 782
-f 4113 4112 4102 4103
-f 4073 4072 4062 4063
-f 4063 4062 4052 4053
-f 4103 4102 4092 4093
-f 4043 4042 4132 4133
-f 4123 4122 4112 4113
-f 4083 4082 4072 4073
-f 4053 4052 4042 4043
-f 4093 4092 4082 4083
-f 4133 4132 4122 4123
-s 783
-f 4044 4043 4133 4134
-f 4104 4103 4093 4094
-f 4064 4063 4053 4054
-f 4074 4073 4063 4064
-f 4114 4113 4103 4104
-f 4134 4133 4123 4124
-f 4094 4093 4083 4084
-f 4054 4053 4043 4044
-f 4084 4083 4073 4074
-f 4124 4123 4113 4114
-s 784
-f 4115 4114 4104 4105
-f 4075 4074 4064 4065
-f 4065 4064 4054 4055
-f 4105 4104 4094 4095
-f 4045 4044 4134 4135
-f 4125 4124 4114 4115
-f 4085 4084 4074 4075
-f 4055 4054 4044 4045
-f 4095 4094 4084 4085
-f 4135 4134 4124 4125
-s 785
-f 4206 4067 4057 4207
-f 4143 4117 4107 4144
-f 4206 4205 4167 4166 4077 4067
-f 4137 4136 4126 4127
-f 4117 4116 4106 4107
-f 4097 4096 4086 4087
-f 4077 4076 4066 4067
-f 4057 4056 4046 4047
-f 4067 4066 4056 4057
-f 4087 4086 4076 4077
-f 4107 4106 4096 4097
-f 4127 4126 4116 4117
-f 4047 4046 4136 4137
-f 4127 4187 4186 4137
-f 4087 4165 4164 4097
-f 4137 4186 4185 4047
-f 4047 4208 4207 4057
-f 4097 4145 4144 4107
-f 4143 4142 4188 4187 4127 4117
-f 4166 4165 4087 4077
-f 4136 4135 4125 4126
-f 4116 4115 4105 4106
-f 4096 4095 4085 4086
-f 4076 4075 4065 4066
-f 4056 4055 4045 4046
-f 4066 4065 4055 4056
-f 4086 4085 4075 4076
-f 4106 4105 4095 4096
-f 4126 4125 4115 4116
-f 4046 4045 4135 4136
-f 4163 4146 4145 4097 4164
-f 4184 4209 4208 4047 4185
-g prop
-usemtl dkteal
-f 4215 4214 4216
-f 4211 4210 4212
-f 4201 4205 4209 4202
-f 4195 4196 4194
-f 4190 4189 4191
-f 4180 4184 4188 4181
-f 4174 4175 4173
-f 4169 4168 4170
-f 4159 4163 4167 4160
-f 4152 4151 4153
-f 4148 4147 4149
-f 4138 4142 4146 4139
-f 4205 4206 4207
-f 4167 4163 4164
-f 4164 4165 4167
-f 4179 4157 4155 4177
-f 4219 4176 4174 4217
-f 4175 4151 4173
-f 4196 4214 4194
-f 4215 4170 4213
-f 4152 4191 4150
-f 4192 4210 4190
-f 4171 4147 4169
-f 4211 4168 4161 4204
-f 4183 4203 4202 4180
-f 4138 4181 4188 4142
-f 4180 4202 4209 4184
-f 4204 4161 4160 4201
-f 4169 4147 4140 4162
-f 4213 4168 4211
-f 4150 4189 4148
-f 4173 4149 4171
-f 4194 4212 4192
-f 4154 4193 4152
-f 4217 4172 4215
-f 4177 4155 4153 4175
-f 4158 4199 4197 4156
-f 4142 4143 4144
-f 4188 4184 4185
-f 4185 4186 4188
-f 4148 4141 4140 4147
-f 4152 4150 4151
-f 4162 4159 4160 4161
-f 4171 4170 4172
-f 4177 4175 4174 4176
-f 4190 4183 4182 4189
-f 4194 4192 4193
-f 4204 4201 4202 4203
-f 4213 4212 4214
-f 4219 4217 4216 4218
-f 4215 4213 4214
-f 4211 4204 4203 4210
-f 4198 4196 4195 4197
-f 4192 4191 4193
-f 4183 4180 4181 4182
-f 4173 4171 4172
-f 4169 4162 4161 4168
-f 4156 4154 4153 4155
-f 4150 4149 4151
-f 4141 4138 4139 4140
-f 4186 4187 4188
-f 4144 4145 4142
-f 4145 4146 4142
-f 4221 4178 4176 4219
-f 4198 4218 4216 4196
-f 4217 4174 4172
-f 4154 4195 4193
-f 4194 4214 4212
-f 4173 4151 4149
-f 4150 4191 4189
-f 4213 4170 4168
-f 4190 4210 4203 4183
-f 4141 4182 4181 4138
-f 4159 4139 4146 4163
-f 4201 4160 4167 4205
-f 4162 4140 4139 4159
-f 4148 4189 4182 4141
-f 4171 4149 4147
-f 4192 4212 4210
-f 4152 4193 4191
-f 4215 4172 4170
-f 4196 4216 4214
-f 4175 4153 4151
-f 4156 4197 4195 4154
-f 4200 4220 4218 4198
-f 4165 4166 4167
-f 4207 4208 4205
-f 4208 4209 4205
-f 4150 4148 4149
-f 4154 4152 4153
-f 4158 4156 4155 4157
-f 4171 4169 4170
-f 4173 4172 4174
-f 4179 4177 4176 4178
-f 4192 4190 4191
-f 4194 4193 4195
-f 4200 4198 4197 4199
-f 4213 4211 4212
-f 4217 4215 4216
-f 4221 4219 4218 4220
-s 761
-f 3847 3846 3848
-f 3843 3842 3844
-f 3833 3837 3841 3834
-f 3827 3828 3826
-f 3822 3821 3823
-f 3812 3816 3820 3813
-f 3806 3807 3805
-f 3801 3800 3802
-f 3791 3795 3799 3792
-f 3784 3783 3785
-f 3780 3779 3781
-f 3770 3774 3778 3771
-f 3837 3838 3839
-f 3799 3795 3796
-f 3796 3797 3799
-f 3811 3789 3787 3809
-f 3851 3808 3806 3849
-f 3807 3783 3805
-f 3828 3846 3826
-f 3847 3802 3845
-f 3784 3823 3782
-f 3824 3842 3822
-f 3803 3779 3801
-f 3843 3800 3793 3836
-f 3815 3835 3834 3812
-f 3770 3813 3820 3774
-f 3812 3834 3841 3816
-f 3836 3793 3792 3833
-f 3801 3779 3772 3794
-f 3845 3800 3843
-f 3782 3821 3780
-f 3805 3781 3803
-f 3826 3844 3824
-f 3786 3825 3784
-f 3849 3804 3847
-f 3809 3787 3785 3807
-f 3790 3831 3829 3788
-f 3774 3775 3776
-f 3820 3816 3817
-f 3817 3818 3820
-f 3780 3773 3772 3779
-f 3784 3782 3783
-f 3794 3791 3792 3793
-f 3803 3802 3804
-f 3809 3807 3806 3808
-f 3822 3815 3814 3821
-f 3826 3824 3825
-f 3836 3833 3834 3835
-f 3845 3844 3846
-f 3851 3849 3848 3850
-f 3847 3845 3846
-f 3843 3836 3835 3842
-f 3830 3828 3827 3829
-f 3824 3823 3825
-f 3815 3812 3813 3814
-f 3805 3803 3804
-f 3801 3794 3793 3800
-f 3788 3786 3785 3787
-f 3782 3781 3783
-f 3773 3770 3771 3772
-f 3818 3819 3820
-f 3776 3777 3774
-f 3777 3778 3774
-f 3853 3810 3808 3851
-f 3830 3850 3848 3828
-f 3849 3806 3804
-f 3786 3827 3825
-f 3826 3846 3844
-f 3805 3783 3781
-f 3782 3823 3821
-f 3845 3802 3800
-f 3822 3842 3835 3815
-f 3773 3814 3813 3770
-f 3791 3771 3778 3795
-f 3833 3792 3799 3837
-f 3794 3772 3771 3791
-f 3780 3821 3814 3773
-f 3803 3781 3779
-f 3824 3844 3842
-f 3784 3825 3823
-f 3847 3804 3802
-f 3828 3848 3846
-f 3807 3785 3783
-f 3788 3829 3827 3786
-f 3832 3852 3850 3830
-f 3797 3798 3799
-f 3839 3840 3837
-f 3840 3841 3837
-f 3782 3780 3781
-f 3786 3784 3785
-f 3790 3788 3787 3789
-f 3803 3801 3802
-f 3805 3804 3806
-f 3811 3809 3808 3810
-f 3824 3822 3823
-f 3826 3825 3827
-f 3832 3830 3829 3831
-f 3845 3843 3844
-f 3849 3847 3848
-f 3853 3851 3850 3852
-s off
-f 3789 3811 3810 3853 3852 3832 3831 3790
-f 3973 3995 3994 4037 4036 4016 4015 3974
-f 4157 4179 4178 4221 4220 4200 4199 4158
-s 773
-f 4035 4033 4032 4034
-f 4031 4029 4030
-f 4020 4017 4018 4019
-f 4009 4010 4008
-f 4006 3999 3998 4005
-f 3993 3991 3990 3992
-f 3987 3986 3988
-f 3978 3975 3976 3977
-f 3966 3965 3967
-f 3964 3957 3956 3963
-f 4004 4000 4001
-f 4001 4002 4004
-f 3958 3959 3960
-f 3974 4015 4013 3972
-f 3993 3971 3969 3991
-f 4033 3990 3988
-f 3970 4011 4009
-f 4010 4030 4028
-f 3989 3967 3965
-f 3966 4007 4005
-f 4029 3986 3984
-f 3985 3963 3956 3978
-f 4020 3977 3976 4017
-f 3996 4018 4025 4000
-f 3954 3997 4004 3958
-f 3999 4019 4018 3996
-f 4027 3984 3977 4020
-f 3987 3965 3963
-f 4008 4028 4026
-f 3968 4009 4007
-f 4031 3988 3986
-f 4012 4032 4030
-f 3991 3969 3967
-f 4035 3992 3990 4033
-f 3995 3973 3971 3993
-f 3983 3979 3980
-f 3980 3981 3983
-f 4021 4022 4023
-f 3954 3958 3962 3955
-f 3966 3964 3965
-f 3970 3968 3969
-f 3975 3979 3983 3976
-f 3987 3985 3986
-f 3991 3989 3990
-f 3996 4000 4004 3997
-f 4008 4006 4007
-f 4012 4010 4011
-f 4017 4021 4025 4018
-f 4029 4027 4028
-f 4033 4031 4032
-f 4037 4035 4034 4036
-f 4031 4030 4032
-f 4027 4026 4028
-f 4016 4014 4013 4015
-f 4010 4009 4011
-f 4006 4005 4007
-f 3995 3993 3992 3994
-f 3989 3988 3990
-f 3985 3984 3986
-f 3974 3972 3971 3973
-f 3968 3967 3969
-f 3964 3963 3965
-f 4023 4024 4021
-f 4024 4025 4021
-f 3981 3982 3983
-f 4016 4036 4034 4014
-f 3972 4013 4011 3970
-f 3991 3967 3989
-f 4012 4030 4010
-f 4031 3986 4029
-f 3968 4007 3966
-f 4008 4026 4006
-f 3987 3963 3985
-f 3964 4005 3998 3957
-f 3978 3956 3955 3975
-f 4017 3976 3983 4021
-f 3975 3955 3962 3979
-f 3957 3998 3997 3954
-f 4006 4026 4019 3999
-f 4029 3984 4027
-f 3966 4005 3964
-f 3989 3965 3987
-f 4010 4028 4008
-f 3970 4009 3968
-f 4033 3988 4031
-f 4014 4034 4032 4012
-f 4037 3994 3992 4035
-f 3960 3961 3958
-f 3961 3962 3958
-f 4002 4003 4004
-f 3957 3954 3955 3956
-f 3968 3966 3967
-f 3972 3970 3969 3971
-f 3985 3978 3977 3984
-f 3988 3989 3987
-f 3999 3996 3997 3998
-f 4008 4007 4009
-f 4014 4012 4011 4013
-f 4027 4020 4019 4026
-f 4029 4028 4030
-g rudder
-usemtl bluteal
-s 790
-f 4263 4238 4240
-f 4263 4230 4232
-f 4262 4260 4242
-f 4262 4252 4254
-f 4262 4244 4246
-f 4255 4257 4256 4254
-f 4247 4249 4248 4246
-f 4240 4238 4239 4241
-f 4232 4230 4231 4233
-f 4222 4224 4225 4223
-f 4241 4239 4255 4253
-f 4233 4231 4243 4261
-f 4263 4224 4222
-f 4231 4229 4245 4243
-f 4239 4237 4257 4255
-f 4227 4223 4249 4247
-f 4230 4228 4229 4231
-f 4238 4236 4237 4239
-f 4245 4247 4246 4244
-f 4253 4255 4254 4252
-f 4261 4243 4242 4260
-f 4262 4250 4252
-f 4262 4258 4260
-f 4263 4228 4230
-f 4263 4236 4238
-f 4263 4240 4224
-f 4263 4232 4234
-f 4263 4222 4226
-f 4262 4254 4256
-f 4262 4246 4248
-f 4257 4259 4258 4256
-f 4249 4251 4250 4248
-f 4224 4240 4241 4225
-f 4234 4232 4233 4235
-f 4226 4222 4223 4227
-f 4225 4241 4253 4251
-f 4235 4233 4261 4259
-f 4262 4242 4244
-f 4229 4227 4247 4245
-f 4237 4235 4259 4257
-f 4223 4225 4251 4249
-f 4228 4226 4227 4229
-f 4236 4234 4235 4237
-f 4243 4245 4244 4242
-f 4251 4253 4252 4250
-f 4259 4261 4260 4258
-f 4262 4248 4250
-f 4262 4256 4258
-f 4263 4226 4228
-f 4263 4234 4236
-s 792
-f 4264 4295 4296
-f 4264 4291 4292
-f 4267 4304 4305
-f 4267 4300 4301
-f 4277 4275 4268 4305
-f 4285 4283 4302 4301
-f 4273 4272 4298 4269
-f 4296 4295 4280 4282
-f 4292 4291 4270 4274
-f 4271 4288 4289 4272
-f 4282 4280 4281 4283
-f 4274 4270 4273 4275
-f 4264 4265 4266
-f 4276 4274 4275 4277
-f 4284 4282 4283 4285
-f 4266 4265 4286 4288
-f 4293 4292 4274 4276
-f 4297 4296 4282 4284
-f 4272 4289 4299 4298
-f 4283 4281 4303 4302
-f 4267 4269 4298
-f 4267 4301 4302
-f 4267 4305 4268
-f 4264 4292 4293
-f 4264 4296 4297
-f 4264 4294 4295
-f 4264 4290 4291
-f 4267 4303 4304
-f 4267 4299 4300
-f 4279 4277 4305 4304
-f 4287 4285 4301 4300
-f 4275 4273 4269 4268
-f 4295 4294 4278 4280
-f 4291 4290 4271 4270
-f 4288 4286 4287 4289
-f 4280 4278 4279 4281
-f 4270 4271 4272 4273
-f 4267 4268 4269
-f 4278 4276 4277 4279
-f 4286 4284 4285 4287
-f 4290 4266 4288 4271
-f 4294 4293 4276 4278
-f 4265 4297 4284 4286
-f 4289 4287 4300 4299
-f 4281 4279 4304 4303
-f 4267 4298 4299
-f 4267 4302 4303
-f 4264 4266 4290
-f 4264 4293 4294
-f 4264 4297 4265
-g seat
-usemtl black
-s 795
-f 4428 4430 4431 4429
-f 4420 4422 4423 4421
-f 4412 4414 4415 4413
-f 4402 4406 4407 4403
-f 4396 4398 4399 4397
-f 4388 4390 4391 4389
-f 4380 4382 4383 4381
-f 4370 4374 4375 4371
-f 4360 4362 4363 4361
-f 4352 4354 4355 4353
-f 4344 4346 4347 4345
-f 4306 4321 4320 4319 4318 4307
-f 4364 4362 4412 4410
-f 4338 4341 4402 4405
-f 4348 4346 4428 4426
-f 4356 4354 4420 4418
-f 4321 4306 4386 4384
-f 4317 4318 4378 4376
-f 4313 4314 4373 4400
-f 4309 4310 4394 4392
-f 4391 4393 4415 4417
-f 4383 4385 4423 4425
-f 4375 4377 4431 4433
-f 4399 4401 4407 4409
-f 4308 4307 4318
-f 4397 4399 4409 4411
-f 4371 4375 4433 4404
-f 4381 4383 4425 4427
-f 4389 4391 4417 4419
-f 4307 4388 4386
-f 4310 4311 4396 4394
-f 4312 4313 4400
-f 4316 4317 4376 4374
-f 4321 4384 4382
-f 4358 4356 4418 4416
-f 4350 4348 4426 4424
-f 4342 4338 4405 4432
-f 4366 4364 4410 4408
-f 4313 4312 4311 4310 4314
-f 4341 4338 4339 4340
-f 4346 4348 4349 4347
-f 4354 4356 4357 4355
-f 4362 4364 4365 4363
-f 4366 4369 4367
-f 4374 4376 4377 4375
-f 4382 4384 4385 4383
-f 4390 4392 4393 4391
-f 4398 4400 4401
-f 4405 4402 4403 4404
-f 4410 4412 4413 4411
-f 4418 4420 4421 4419
-f 4426 4428 4429 4427
-f 4430 4432 4433 4431
-f 4422 4424 4425 4423
-f 4414 4416 4417 4415
-f 4406 4408 4409 4407
-f 4398 4401 4399
-f 4394 4396 4397 4395
-f 4386 4388 4389 4387
-f 4378 4380 4381 4379
-f 4373 4370 4371 4372
-f 4366 4368 4369
-f 4358 4360 4361 4359
-f 4350 4352 4353 4351
-f 4342 4344 4345 4343
-f 4309 4315 4314 4310
-f 4362 4360 4414 4412
-f 4341 4368 4406 4402
-f 4346 4344 4430 4428
-f 4354 4352 4422 4420
-f 4320 4321 4382
-f 4318 4319 4380 4378
-f 4314 4315 4370 4373
-f 4400 4398 4312
-f 4308 4309 4392 4390
-f 4386 4306 4307
-f 4385 4387 4421 4423
-f 4377 4379 4429 4431
-f 4401 4372 4403 4407
-f 4393 4395 4413 4415
-f 4395 4397 4411 4413
-f 4372 4371 4404 4403
-f 4379 4381 4427 4429
-f 4387 4389 4419 4421
-f 4307 4308 4390 4388
-f 4311 4312 4398 4396
-f 4315 4316 4374 4370
-f 4319 4320 4382 4380
-f 4360 4358 4416 4414
-f 4352 4350 4424 4422
-f 4344 4342 4432 4430
-f 4368 4366 4408 4406
-f 4308 4318 4317 4316 4315 4309
-f 4338 4342 4343 4339
-f 4348 4350 4351 4349
-f 4356 4358 4359 4357
-f 4364 4366 4367 4365
-f 4376 4378 4379 4377
-f 4384 4386 4387 4385
-f 4392 4394 4395 4393
-f 4400 4373 4372 4401
-f 4408 4410 4411 4409
-f 4416 4418 4419 4417
-f 4424 4426 4427 4425
-f 4432 4405 4404 4433
-s 798
-f 4332 4331 4330 4329 4333
-f 4334 4328 4327 4326 4325 4335
-f 4333 4334 4361 4363
-f 4329 4330 4369 4340
-f 4325 4326 4345 4347
-f 4323 4324 4351
-f 4322 4323 4351 4353
-f 4326 4327 4343 4345
-f 4369 4330 4331
-f 4332 4333 4363 4365
-f 4337 4355 4357
-f 4324 4323 4322 4337 4336 4325
-f 4333 4329 4328 4334
-f 4336 4337 4357
-f 4334 4335 4359 4361
-f 4331 4367 4369
-f 4328 4329 4340 4339
-f 4324 4325 4347 4349
-f 4337 4322 4353 4355
-f 4324 4349 4351
-f 4327 4328 4339 4343
-f 4331 4332 4365 4367
-f 4335 4336 4357 4359
-f 4335 4325 4336
-f 4368 4341 4340 4369
-g stand
-usemtl dkdkgrey
-s off
-f 4547 4546 4549 4548
-f 4435 4434 4438 4444 4445 4440
-f 4491 4490 4493 4492
-f 4448 4479 4478 4450
-f 4527 4445 4456 4528
-f 4482 4445 4453 4483
-f 4435 4436 4437 4434
-f 4487 4486 4489 4488
-s 816
-f 4458 4459 4448 4441
-f 4464 4465 4439 4449
-f 4479 4480 4465 4464
-f 4494 4495 4480 4479
-f 4492 4493 4474 4477
-f 4477 4474 4459 4458
-f 4437 4436 4441 4448 4449 4439
-f 4459 4494 4479 4448
-s 817
-f 4547 4548 4541 4540
-f 4531 4530 4533 4532
-f 4487 4488 4473 4472
-f 4441 4436 4435 4440 4442 4443
-f 4461 4458 4441 4443
-f 4531 4457 4440 4530
-f 4540 4541 4534 4537
-f 4472 4473 4454 4457
-f 4457 4454 4442 4440
-f 4476 4477 4458 4461
-f 4491 4492 4477 4476
-f 4537 4534 4443 4442
-s 815
-f 4509 4506 4503 4502
-f 4484 4485 4466 4469
-f 4469 4466 4438 4447
-f 4434 4437 4439 4446 4447 4438
-f 4502 4503 4438 4466
-f 4499 4500 4485 4484
-f 4465 4462 4446 4439
-f 4480 4481 4462 4465
-f 4495 4496 4481 4480
-s 819
-f 4449 4448 4450 4451
-f 4453 4452 4451 4450
-f 4452 4453 4445 4444
-f 4447 4446 4451 4452
-s 840
-f 4549 4546 4543 4544
-f 4543 4542 4545 4544
-s 829
-f 4460 4497 4494 4459
-f 4495 4494 4497 4496
-s 830
-f 4499 4498 4501 4500
-f 4498 4455 4456 4501
-s 821
-f 4483 4453 4455 4498
-f 4473 4470 4455 4454
-f 4468 4469 4447 4452
-f 4488 4489 4470 4473
-f 4483 4484 4469 4468
-f 4454 4455 4453 4442
-f 4498 4499 4484 4483
-s 820
-f 4450 4478 4497 4460
-f 4460 4461 4443 4450
-f 4481 4478 4463 4462
-f 4496 4497 4478 4481
-f 4490 4491 4476 4475
-f 4475 4476 4461 4460
-f 4462 4463 4451 4446
-s 823
-f 4463 4464 4449 4451
-f 4478 4479 4464 4463
-s 833
-f 4646 4648 4510 4517
-f 4529 4526 4523 4522
-f 4516 4517 4510 4513
-f 4513 4510 4507 4508
-f 4522 4523 4520 4519
-f 4660 4654 4521 4520
-f 4659 4655 4654 4660
-f 4657 4661 4660 4658
-f 4660 4661 4659
-f 4640 4646 4517 4514
-f 4520 4521 4514 4517
-f 4507 4506 4509 4508
-f 4519 4520 4517 4516
-f 4532 4533 4526 4529
-f 4658 4660 4520 4523
-s 818
-f 4482 4483 4468 4467
-f 4467 4468 4452 4444
-f 4504 4505 4467 4444
-s 825
-f 4489 4486 4471 4470
-f 4470 4471 4456 4455
-s 826
-f 4486 4487 4472 4471
-f 4471 4472 4457 4456
-s 827
-f 4493 4490 4475 4474
-f 4474 4475 4460 4459
-s 828
-f 4501 4456 4445 4482
-f 4485 4482 4467 4466
-f 4500 4501 4482 4485
-s 832
-f 4503 4504 4444 4438
-f 4510 4511 4504 4507
-f 4648 4649 4647
-f 4645 4649 4648 4646
-f 4647 4643 4642 4648
-f 4648 4642 4511 4510
-f 4506 4507 4504 4503
-f 4642 4643 4641
-s 831
-f 4512 4513 4508 4505
-f 4508 4509 4502 4505
-f 4518 4519 4516 4515
-f 4528 4529 4522 4525
-f 4531 4532 4529 4528
-f 4525 4522 4519 4518
-f 4515 4516 4513 4512
-f 4505 4502 4466 4467
-f 4528 4456 4457 4531
-s 834
-f 4653 4650 4652 4654
-f 4651 4652 4650
-f 4642 4640 4514 4511
-f 4524 4525 4518 4521
-f 4514 4515 4512 4511
-f 4639 4640 4638
-f 4654 4655 4653
-f 4511 4512 4505 4504
-f 4521 4518 4515 4514
-f 4527 4528 4525 4524
-f 4654 4652 4524 4521
-f 4641 4638 4640 4642
-s 836
-f 4530 4440 4445 4527
-f 4533 4530 4527 4526
-f 4651 4656 4658 4652
-f 4652 4658 4523 4524
-f 4526 4527 4524 4523
-f 4657 4658 4656
-s 837
-f 4541 4538 4535 4534
-f 4544 4545 4538 4541
-f 4548 4549 4544 4541
-f 4534 4535 4450 4443
-s 838
-f 4545 4542 4539 4538
-f 4538 4539 4536 4535
-f 4535 4536 4453 4450
-s 839
-f 4536 4537 4442 4453
-f 4546 4547 4540 4543
-f 4542 4543 4540 4539
-f 4539 4540 4537 4536
-s 835
-f 4645 4646 4644
-f 4639 4644 4646 4640
-g steer
-usemtl black
-f 4635 4628 4644 4639
-f 4635 4639 4638 4636
-f 4634 4629 4628 4635
-s 834
-f 4597 4602 4605 4595
-f 4596 4589 4591 4597
-f 4635 4636 4637 4634
-f 4596 4597 4595
-f 4594 4595 4605 4600
-f 4633 4636 4638 4641
-f 4601 4604 4629 4634
-f 4587 4588 4586
-f 4599 4600 4601 4598
-f 4580 4599 4598 4581
-f 4632 4637 4636 4633
-f 4600 4605 4604 4601
-f 4593 4596 4595 4594
-f 4593 4594 4592
-f 4586 4592 4599 4580
-f 4596 4593 4588 4589
-f 4581 4598 4637 4632
-f 4590 4591 4589
-f 4603 4604 4605 4602
-f 4588 4593 4592 4586
-f 4594 4600 4599 4592
-f 4601 4634 4637 4598
-s 832
-f 4625 4647 4649 4622
-f 4633 4641 4643 4630
-f 4626 4623 4622 4627
-f 4583 4578 4631 4624
-f 4627 4622 4649 4645
-f 4623 4624 4625 4622
-f 4583 4624 4623 4584
-f 4624 4631 4630 4625
-f 4631 4632 4633 4630
-f 4579 4580 4581 4578
-f 4625 4630 4643 4647
-f 4582 4579 4578 4583
-f 4581 4632 4631 4578
-f 4627 4645 4644 4628
-s 845
-f 4589 4588 4587 4590
-f 4583 4584 4585 4582
-f 4603 4584 4623 4626
-f 4586 4580 4579 4587
-f 4602 4585 4584 4603
-f 4590 4582 4585 4591
-f 4597 4591 4585 4602
-f 4590 4587 4579 4582
-f 4627 4628 4629 4626
-f 4603 4626 4629 4604
-g throttle
-usemtl red
-s 833
-f 4611 4657 4656 4612
-f 4611 4606 4661 4657
-f 4607 4608 4609 4606
-f 4610 4607 4606 4611
-f 4609 4659 4661 4606
-s 834
-f 4573 4618 4621 4570
-f 4569 4574 4577 4567
-f 4568 4561 4563 4569
-f 4554 4551 4550 4555
-f 4575 4576 4577 4574
-f 4562 4563 4561
-f 4573 4576 4613 4618
-f 4568 4565 4560 4561
-f 4553 4570 4621 4616
-f 4558 4564 4571 4552
-f 4559 4560 4558
-f 4571 4572 4573 4570
-f 4565 4568 4567 4566
-f 4572 4577 4576 4573
-f 4608 4615 4614 4609
-f 4616 4621 4620 4617
-f 4555 4608 4607 4556
-f 4552 4571 4570 4553
-f 4615 4616 4617 4614
-f 4565 4566 4564
-f 4551 4552 4553 4550
-f 4555 4550 4615 4608
-f 4617 4620 4650 4653
-f 4609 4614 4655 4659
-f 4566 4567 4577 4572
-f 4568 4569 4567
-f 4619 4620 4621 4618
-f 4560 4565 4564 4558
-f 4566 4572 4571 4564
-f 4553 4616 4615 4550
-f 4617 4653 4655 4614
-s 836
-f 4618 4613 4612 4619
-f 4619 4651 4650 4620
-f 4619 4612 4656 4651
-s 841
-f 4575 4610 4613 4576
-f 4611 4612 4613 4610
-f 4562 4559 4551 4554
-f 4569 4563 4557 4574
-f 4562 4554 4557 4563
-f 4574 4557 4556 4575
-f 4558 4552 4551 4559
-f 4575 4556 4607 4610
-f 4555 4556 4557 4554
-f 4561 4560 4559 4562
-# 6273 elements
diff --git a/data/mesh_02.obj b/data/mesh_02.obj
deleted file mode 100644 (file)
index 0edaf34..0000000
+++ /dev/null
@@ -1,7214 +0,0 @@
-#  Viewpoint Datalabs International, Inc.  Copyright 1996
-
-
-mtllib ./vp.mtl
-
-g
-v 0.786019 -2.928538 0.601628
-v 0.787557 -2.907031 0.601650
-v 0.907193 -2.908894 0.550182
-v 0.902064 -2.928018 0.550057
-v 1.023440 -2.956840 0.481313
-v 1.017128 -2.970083 0.481210
-v 1.101541 -3.010835 0.441949
-v 1.087422 -3.020051 0.441933
-v 1.106929 -3.145379 0.395161
-v 1.091562 -3.144946 0.395144
-v 1.072088 -3.235354 0.377412
-v 1.077035 -3.157159 0.277621
-v 1.064921 -3.214447 0.290776
-v 1.021403 -3.201481 0.168705
-v 1.038110 -3.154783 0.137595
-v 1.077220 -3.018806 0.314615
-v 1.074982 -3.018031 0.239323
-v 1.042151 -3.030779 0.086701
-v 1.064326 -2.943164 0.204697
-v 1.021818 -2.957978 0.044387
-v 0.975907 -2.855559 -0.005333
-v 1.035428 -2.841887 0.171577
-v 1.011729 -2.818190 0.239631
-v 0.772762 -2.912492 0.717615
-v 0.907387 -2.923344 0.685008
-v 1.020136 -2.965400 0.658615
-v 1.097976 -3.067994 0.586489
-v 1.100485 -3.190069 0.544074
-v 0.770828 -2.937952 0.775106
-v 0.903720 -2.963398 0.760914
-v 0.999774 -3.027202 0.760806
-v 1.046470 -3.163512 0.760373
-v 1.037090 -3.238383 0.760190
-v 1.074062 -3.238380 0.527702
-v 0.893578 -2.804472 0.281931
-v 0.782004 -2.795410 0.279693
-v 0.698799 -2.801319 0.275004
-v 0.675365 -2.938091 0.585189
-v 0.661901 -2.921910 0.586087
-v 0.665882 -2.925934 0.710389
-v 0.560051 -2.971251 0.514855
-v 0.543453 -2.950871 0.514979
-v 0.555355 -2.970095 0.691185
-v 0.932929 -3.089451 0.852653
-v 0.866542 -3.038278 0.852679
-v 0.963457 -3.158557 0.852644
-v 0.771187 -3.008775 0.852663
-v 0.671917 -2.952009 0.761131
-v 0.685978 -3.046776 0.852632
-v 0.583250 -3.009146 0.760837
-v 0.632573 -3.092436 0.852583
-v 0.823277 -3.121259 0.885215
-v 0.770024 -3.097687 0.885199
-v 0.717890 -3.127336 0.885165
-v 0.695662 -3.148001 0.885157
-v 0.599302 -3.142824 0.852540
-v 0.677427 -3.175218 0.885148
-v 0.587659 -3.190575 0.852484
-v 0.670639 -3.215333 0.885132
-v 0.850614 -3.153811 0.885202
-v 0.852737 -3.194399 0.885187
-v 0.943579 -3.238376 0.852558
-v 0.685633 -3.238381 0.885102
-v 0.840481 -3.238389 0.885136
-v 0.986468 -2.855529 -0.011956
-v 1.036222 -2.962744 0.037093
-v 1.057487 -3.036565 0.080302
-v 1.054966 -3.160047 0.131091
-v 0.953122 -2.854421 -0.068876
-v 0.985483 -2.957746 -0.057919
-v 1.019390 -3.058597 -0.042315
-v 1.009796 -3.167722 -0.004136
-v 0.986530 -3.201493 0.053273
-v 0.905391 -3.053835 -0.136203
-v 0.895036 -2.957297 -0.125308
-v 0.887260 -2.854405 -0.108414
-v 0.907334 -3.150203 -0.141691
-v 0.891522 -3.201486 -0.107920
-v 0.798525 -3.145032 -0.174300
-v 0.801578 -3.042581 -0.168863
-v 0.802988 -2.964290 -0.145041
-v 0.812682 -2.854389 -0.126191
-v 0.707237 -2.954707 -0.130756
-v 0.730402 -2.854357 -0.117064
-v 0.687061 -3.034578 -0.157076
-v 0.669942 -3.140672 -0.145304
-v 0.791184 -3.201484 -0.146210
-v 0.683376 -3.201475 -0.124516
-v 0.680277 -2.854345 -0.083039
-v 0.605010 -2.955611 -0.068740
-v 0.577713 -3.033063 -0.043603
-v 0.584799 -3.145787 -0.010707
-v 0.600187 -3.201477 0.001230
-v 0.541462 -2.935125 0.085168
-v 0.620955 -2.855412 -0.016222
-v 0.531662 -3.029833 0.116483
-v 0.555642 -3.146120 0.137200
-v 0.590839 -3.201479 0.159142
-v 0.631776 -2.855329 -0.009756
-v 0.566744 -2.944517 0.088975
-v 0.558824 -2.932812 0.213749
-v 0.601732 -2.841651 0.141089
-v 0.552408 -3.033704 0.126091
-v 0.538244 -3.027855 0.247684
-v 0.571163 -3.144282 0.146245
-v 0.556490 -3.151489 0.278832
-v 0.567925 -3.215084 0.277742
-v 0.545355 -3.238381 0.401191
-v 0.515299 -3.158295 0.421111
-v 0.504552 -3.045186 0.466680
-v 0.534684 -3.037446 0.354751
-v 0.615730 -2.815993 0.209595
-v 0.475195 -3.034925 0.466812
-v 0.476549 -3.052179 0.634725
-v 0.494045 -3.160833 0.418894
-v 0.475884 -3.159244 0.586422
-v 0.534676 -3.238383 0.576237
-v 0.528877 -3.174860 0.760344
-v 0.528487 -3.075514 0.760567
-v 0.620069 -3.238380 0.852422
-v 0.560282 -3.238374 0.760130
-v 1.043198 -3.241457 0.769490
-v 0.947325 -3.241451 0.864192
-v 0.841622 -3.241463 0.897592
-v 0.682861 -3.241456 0.897559
-v 0.615641 -3.241454 0.864053
-v 0.554343 -3.241448 0.769429
-v 0.528091 -3.241457 0.580889
-v 0.539039 -3.241456 0.401420
-v 0.562180 -3.218158 0.274852
-v 0.585672 -3.204554 0.153256
-v 0.595257 -3.204551 -0.008646
-v 0.680548 -3.204550 -0.137570
-v 0.791078 -3.204558 -0.159811
-v 0.893952 -3.204560 -0.120554
-v 0.991361 -3.204567 0.044711
-v 1.027114 -3.204555 0.163059
-v 1.071733 -3.218158 0.288215
-v 1.079081 -3.238428 0.377041
-v 1.081105 -3.241456 0.531129
-v 1.071733 -3.270523 0.288214
-v 1.079080 -3.293819 0.377041
-v 1.081104 -3.293821 0.531128
-v 1.043198 -3.293823 0.769490
-v 0.947324 -3.293815 0.864192
-v 0.841621 -3.293829 0.897592
-v 0.682861 -3.293821 0.897558
-v 0.615641 -3.293820 0.864052
-v 0.554343 -3.293814 0.769428
-v 0.528090 -3.293823 0.580889
-v 0.539038 -3.293821 0.401420
-v 0.562179 -3.270524 0.274852
-v 0.585672 -3.256919 0.153255
-v 1.027114 -3.256921 0.163059
-v 0.893951 -3.294219 -0.120554
-v 0.991360 -3.294219 0.044711
-v 1.027113 -3.294219 0.163059
-v 0.585671 -3.294219 0.153256
-v 0.595255 -3.294219 -0.008646
-v 0.680546 -3.294219 -0.137570
-v 0.791077 -3.294219 -0.159812
-v 0.903816 -2.903723 0.409087
-v 0.905746 -2.925559 0.458751
-v 0.790406 -2.914967 0.482225
-v 0.790793 -2.895555 0.429593
-v 1.018182 -2.931984 0.351433
-v 1.025488 -2.953660 0.369957
-v 1.018342 -2.949813 0.400882
-v 0.790138 -2.871559 0.387279
-v 0.787987 -2.841679 0.340474
-v 0.914136 -2.845706 0.325947
-v 0.912999 -2.878417 0.370259
-v 1.015141 -2.886044 0.280661
-v 1.021929 -2.906811 0.284496
-v 1.017217 -2.915387 0.319981
-v 0.685314 -2.868801 0.376137
-v 0.688271 -2.841438 0.325026
-v 0.597187 -2.896330 0.344932
-v 0.599270 -2.886341 0.301924
-v 0.604511 -2.868714 0.294449
-v 0.577213 -2.940670 0.448258
-v 0.575888 -2.944491 0.419575
-v 0.587015 -2.919345 0.393668
-v 0.682337 -2.889899 0.427220
-v 0.679472 -2.908538 0.484016
-v 0.578191 -2.929036 0.441868
-v 0.680449 -2.896904 0.477628
-v 0.791384 -2.903331 0.475837
-v 0.906724 -2.913923 0.452362
-v 1.019319 -2.938179 0.394494
-v 1.018984 -2.925163 0.362409
-v 0.902406 -2.898798 0.421672
-v 0.791527 -2.890346 0.442937
-v 0.682278 -2.884057 0.442476
-v 0.585389 -2.913921 0.408412
-v 1.017454 -2.902199 0.319002
-v 1.016298 -2.881953 0.293736
-v 0.915292 -2.841615 0.339021
-v 0.789142 -2.837587 0.353549
-v 0.689427 -2.837347 0.338100
-v 0.605667 -2.864622 0.307524
-v 0.599852 -2.881745 0.340187
-v 0.686410 -2.854633 0.370879
-v 0.790442 -2.856759 0.383933
-v 0.915448 -2.863334 0.367673
-v 1.134076 -2.073764 0.125220
-v 1.100784 -2.840772 0.063859
-v 1.121226 -2.082448 0.281435
-v 1.077482 -2.848263 0.183241
-v 1.049602 -2.093997 0.420646
-v 1.009420 -2.858189 0.294717
-v 0.930108 -2.106653 0.521664
-v 0.906959 -2.869041 0.381315
-v 0.780934 -2.118488 0.569105
-v 0.785697 -2.879164 0.429853
-v 0.624792 -2.127701 0.555750
-v 0.664096 -2.887017 0.432939
-v 0.487609 -2.132838 0.485339
-v 0.560669 -2.891407 0.390105
-v 0.386351 -2.133204 0.365386
-v 0.491161 -2.891663 0.307871
-v 0.336248 -2.128763 0.214291
-v 0.466153 -2.887750 0.198757
-v 0.349097 -2.120078 0.058076
-v 0.489454 -2.880259 0.079375
-v 0.420722 -2.108528 -0.081137
-v 0.557517 -2.870332 -0.032100
-v 0.540217 -2.095873 -0.182154
-v 0.659978 -2.859481 -0.118699
-v 0.689391 -2.084038 -0.229594
-v 0.781240 -2.849359 -0.167237
-v 0.845533 -2.074826 -0.216238
-v 0.902840 -2.841503 -0.170322
-v 0.984872 -2.069637 -0.144119
-v 1.006268 -2.837114 -0.127489
-v 1.086195 -2.069264 -0.024214
-v 1.075776 -2.836857 -0.045255
-v 1.099357 -1.937180 0.285132
-v 1.111786 -1.928778 0.134029
-v 1.065471 -1.924427 -0.010516
-v 0.967464 -1.924788 -0.126497
-v 0.832685 -1.929805 -0.196257
-v 0.681653 -1.938717 -0.209175
-v 0.537360 -1.950165 -0.163286
-v 0.421775 -1.962406 -0.065576
-v 0.352495 -1.973576 0.069081
-v 0.340066 -1.981978 0.220184
-v 0.377305 -1.987318 0.372941
-v 0.478375 -1.986952 0.492687
-v 0.619167 -1.980950 0.550470
-v 0.770199 -1.972039 0.563388
-v 0.914492 -1.960592 0.517499
-v 1.030077 -1.948350 0.419788
-v 0.751339 -1.850779 0.469324
-v 0.858293 -1.842294 0.435310
-v 0.943969 -1.833221 0.362884
-v 0.995321 -1.824939 0.263071
-v 1.004534 -1.818712 0.151069
-v 0.970204 -1.815487 0.043927
-v 0.897558 -1.815754 -0.042042
-v 0.797655 -1.819474 -0.093750
-v 0.685705 -1.826079 -0.103325
-v 0.578750 -1.834564 -0.069312
-v 0.493075 -1.843638 0.003116
-v 0.441722 -1.851918 0.102928
-v 0.432509 -1.858146 0.214931
-v 0.384043 -1.902884 0.366993
-v 0.485102 -1.902527 0.486719
-v 0.639389 -1.857384 0.459749
-v 0.583406 -1.776776 0.258793
-v 0.621062 -1.776637 0.303356
-v 0.672847 -1.774709 0.330159
-v 0.730876 -1.771286 0.335122
-v 0.786316 -1.766887 0.317490
-v 0.830726 -1.762184 0.279949
-v 0.857345 -1.757891 0.228210
-v 0.862121 -1.754664 0.170154
-v 0.844325 -1.752992 0.114618
-v 0.806669 -1.753130 0.070055
-v 0.754884 -1.755058 0.043252
-v 0.696855 -1.758482 0.038289
-v 0.641416 -1.762880 0.055921
-v 0.597005 -1.767583 0.093462
-v 0.570387 -1.771877 0.145201
-v 0.565611 -1.775104 0.203256
-v 0.507322 -1.827416 0.433629
-v 0.437965 -1.827668 0.351484
-v 0.276676 -1.301333 0.457017
-v 0.631338 -1.958341 0.583740
-v 0.179644 -1.471140 0.419720
-v 0.501134 -2.028466 0.525199
-v 0.119448 -1.629419 0.315006
-v 0.408378 -2.099356 0.417180
-v 0.105254 -1.752074 0.158818
-v 0.367193 -2.160221 0.276124
-v 0.139222 -1.820431 -0.025069
-v 0.383848 -2.201795 0.123508
-v 0.216182 -1.824085 -0.208656
-v 0.455809 -2.217747 -0.017434
-v 0.324417 -1.762477 -0.363997
-v 0.572118 -2.205649 -0.125244
-v 0.447448 -1.644988 -0.467440
-v 0.715070 -2.167346 -0.183510
-v 0.566545 -1.489505 -0.503239
-v 0.862901 -2.108664 -0.183361
-v 0.663579 -1.319699 -0.465942
-v 0.993105 -2.038540 -0.124822
-v 0.723775 -1.161420 -0.361228
-v 1.085861 -1.967650 -0.016800
-v 0.737969 -1.038765 -0.205038
-v 1.127045 -1.906785 0.124254
-v 0.703999 -0.970408 -0.021153
-v 1.110390 -1.865212 0.276870
-v 0.627040 -0.966755 0.162436
-v 1.038430 -1.849259 0.417811
-v 0.518805 -1.028362 0.317776
-v 0.922120 -1.861355 0.525622
-v 0.395774 -1.145850 0.421219
-v 0.779169 -1.899660 0.583889
-v 0.086510 -1.364582 0.276657
-v 0.165325 -1.226657 0.306952
-v 0.262062 -1.100366 0.277875
-v 0.361995 -1.004935 0.193853
-v 0.449908 -0.954894 0.067677
-v 0.512420 -0.957862 -0.081443
-v 0.540010 -1.013385 -0.230804
-v 0.528482 -1.113012 -0.357670
-v 0.479587 -1.241574 -0.442723
-v 0.400772 -1.379501 -0.473018
-v 0.304034 -1.505792 -0.443941
-v 0.204102 -1.601222 -0.359919
-v 0.116188 -1.651262 -0.233743
-v 0.053678 -1.648296 -0.084623
-v 0.026086 -1.592772 0.064739
-v 0.037616 -1.493146 0.191604
-v 0.823165 -2.050884 0.551657
-v 0.703088 -2.098548 0.551536
-v 0.597330 -2.155506 0.503986
-v 0.521989 -2.213087 0.416247
-v 0.488536 -2.262524 0.301675
-v 0.502065 -2.296292 0.177711
-v 0.560515 -2.309250 0.063231
-v 0.654988 -2.299424 -0.024338
-v 0.771100 -2.268310 -0.071665
-v 0.891175 -2.220647 -0.071545
-v 0.996935 -2.163689 -0.023994
-v 1.072274 -2.106107 0.063745
-v 1.105727 -2.056670 0.178318
-v 1.092199 -2.022901 0.302280
-v 1.033750 -2.009944 0.416761
-v 0.939277 -2.019770 0.504329
-v 0.056989 -1.417129 -0.128923
-v 0.042326 -1.387622 -0.049546
-v 0.048452 -1.334675 0.017877
-v 0.074438 -1.266350 0.063078
-v 0.116324 -1.193050 0.079178
-v 0.167735 -1.125933 0.063725
-v 0.220844 -1.075217 0.019072
-v 0.267565 -1.048623 -0.047983
-v 0.300786 -1.050199 -0.127233
-v 0.315450 -1.079707 -0.206611
-v 0.309323 -1.132654 -0.274034
-v 0.283338 -1.200978 -0.319235
-v 0.241452 -1.274278 -0.335335
-v 0.190041 -1.341396 -0.319882
-v 0.136931 -1.392113 -0.275229
-v 0.090211 -1.418706 -0.208173
-v 0.991541 -2.181738 0.303020
-v 0.960478 -2.174852 0.363861
-v 0.910271 -2.180075 0.410399
-v 0.848563 -2.196610 0.435551
-v 0.784749 -2.221941 0.435487
-v 0.728544 -2.252211 0.410217
-v 0.688504 -2.282812 0.363588
-v 0.670726 -2.309085 0.302699
-v 0.677915 -2.327031 0.236819
-v 0.708978 -2.333918 0.175979
-v 0.759185 -2.328696 0.129440
-v 0.820894 -2.312161 0.104288
-v 0.884707 -2.286830 0.104352
-v 0.940913 -2.256561 0.129622
-v 0.980952 -2.225959 0.176251
-v 0.998731 -2.199685 0.237141
-v 0.754618 -1.773825 -0.351634
-v 0.445512 -1.941771 -0.264650
-v 0.598411 -1.871910 -0.341264
-v 0.319197 -1.972774 -0.133454
-v 0.238697 -1.960198 0.032348
-v 0.216269 -1.905957 0.207516
-v 0.255325 -1.818309 0.365380
-v 0.485656 -1.599225 0.539362
-v 0.890353 -1.662451 -0.294182
-v 0.984950 -1.554741 -0.177653
-v 1.024007 -1.467093 -0.019788
-v 1.001578 -1.412854 0.155379
-v 0.349923 -1.710600 0.481909
-v 0.641865 -1.501140 0.528991
-v 0.794765 -1.431280 0.452377
-v 0.921080 -1.400277 0.321181
-v 1.623254 -0.058139 -0.150848
-v 1.920992 -0.560413 0.351398
-v 1.614233 -0.169145 -0.261481
-v 1.926915 -0.643886 0.262807
-v 1.663402 -0.262002 -0.378115
-v 1.976469 -0.717163 0.166201
-v 1.763279 -0.322574 -0.482992
-v 2.062111 -0.769088 0.076287
-v 1.898658 -0.341639 -0.560147
-v 2.170804 -0.791754 0.006752
-v 2.048927 -0.316295 -0.597831
-v 2.285997 -0.781712 -0.031816
-v 2.188930 -0.251846 -0.590833
-v 2.390156 -0.740491 -0.033546
-v 2.301512 -0.155402 -0.539197
-v 2.467423 -0.674365 0.001825
-v 2.369690 -0.041729 -0.450937
-v 2.506035 -0.593403 0.068912
-v 2.378712 0.069277 -0.340303
-v 2.500112 -0.509929 0.157503
-v 2.329543 0.162134 -0.223670
-v 2.450558 -0.436653 0.254109
-v 2.229666 0.222706 -0.118793
-v 2.364916 -0.384728 0.344023
-v 2.094287 0.241771 -0.041638
-v 2.256223 -0.362062 0.413558
-v 1.944017 0.216426 -0.003954
-v 2.141030 -0.372103 0.452126
-v 1.801733 0.150531 -0.011475
-v 2.036871 -0.413325 0.453856
-v 1.689097 0.054116 -0.063058
-v 1.959604 -0.479450 0.418485
-v 1.585242 -0.064487 -0.360483
-v 1.593970 0.042887 -0.253471
-v 1.657657 0.151468 -0.168552
-v 1.766608 0.244728 -0.118658
-v 1.904235 0.308467 -0.111382
-v 2.049588 0.332982 -0.147834
-v 2.180537 0.314541 -0.222464
-v 2.277146 0.255952 -0.323909
-v 2.324706 0.166133 -0.436726
-v 2.315979 0.058759 -0.543739
-v 2.259804 -0.054811 -0.636991
-v 2.147429 -0.151086 -0.688541
-v 2.005713 -0.206822 -0.685827
-v 1.860360 -0.231337 -0.649374
-v 1.729412 -0.212896 -0.574745
-v 1.632803 -0.154306 -0.473300
-v 1.851576 -0.077551 -0.662815
-v 1.754512 -0.063882 -0.607497
-v 1.682904 -0.020453 -0.532303
-v 1.647650 0.046123 -0.448679
-v 1.654119 0.125713 -0.369357
-v 1.701326 0.206197 -0.306413
-v 1.782084 0.275325 -0.269429
-v 1.884098 0.322570 -0.264037
-v 1.991839 0.340741 -0.291056
-v 2.088902 0.327072 -0.346374
-v 2.160511 0.283643 -0.421569
-v 2.195765 0.217067 -0.505193
-v 2.189296 0.137478 -0.584514
-v 2.226114 0.008704 -0.682163
-v 2.113755 -0.087561 -0.733699
-v 1.959316 -0.059379 -0.689834
-v 2.015022 0.143720 -0.614586
-v 1.973161 0.107889 -0.633757
-v 1.920281 0.083399 -0.636552
-v 1.864435 0.073979 -0.622546
-v 1.814122 0.081065 -0.593872
-v 1.777002 0.103576 -0.554895
-v 1.758729 0.138086 -0.511548
-v 1.762082 0.179340 -0.470432
-v 1.786552 0.221060 -0.437805
-v 1.828413 0.256893 -0.418635
-v 1.881293 0.281382 -0.415840
-v 1.937139 0.290801 -0.429844
-v 1.987452 0.283715 -0.458519
-v 2.024570 0.261205 -0.497496
-v 2.042845 0.226694 -0.540842
-v 2.039492 0.185440 -0.581959
-v 2.076011 -0.000792 -0.734242
-v 2.153120 0.065255 -0.698886
-v 1.989742 -0.491018 0.393756
-v 1.955715 -0.562370 0.334632
-v 1.960934 -0.635935 0.256558
-v 2.004606 -0.700515 0.171419
-v 2.080083 -0.746276 0.092177
-v 2.175873 -0.766252 0.030896
-v 2.277393 -0.757402 -0.003093
-v 2.369189 -0.721074 -0.004619
-v 2.437284 -0.662797 0.026554
-v 2.471312 -0.591445 0.085678
-v 2.466093 -0.517880 0.163752
-v 2.422420 -0.453301 0.248891
-v 2.346943 -0.407541 0.328134
-v 2.251154 -0.387564 0.389414
-v 2.149634 -0.396414 0.423404
-v 2.057838 -0.432742 0.424929
-v 2.272074 -0.438359 0.438673
-v 2.170554 -0.447208 0.472664
-v 2.078759 -0.483537 0.474188
-v 2.010663 -0.541813 0.443016
-v 1.976635 -0.613165 0.383892
-v 1.981854 -0.686730 0.305817
-v 2.025527 -0.751310 0.220678
-v 2.101003 -0.797070 0.141437
-v 2.196794 -0.817047 0.080156
-v 2.298314 -0.808197 0.046166
-v 2.390109 -0.771869 0.044641
-v 2.458205 -0.713592 0.075814
-v 2.492232 -0.642240 0.134938
-v 2.487013 -0.568675 0.213012
-v 2.443341 -0.504096 0.298151
-v 2.367864 -0.458335 0.377393
-v 2.458114 -1.420465 0.381856
-v 2.446310 -1.410195 0.369510
-v 2.449583 -1.420356 0.344998
-v 2.469010 -1.430890 0.330259
-v 2.481426 -1.440292 0.331393
-v 2.487318 -1.443179 0.338042
-v 2.482575 -1.440668 0.362532
-v 2.435650 -1.386773 0.323467
-v 2.429746 -1.381620 0.371328
-v 2.474173 -1.406125 0.300120
-v 2.515998 -1.437771 0.305923
-v 2.527194 -1.444486 0.330498
-v 2.522778 -1.436007 0.377465
-v 2.454219 -1.399631 0.406579
-v 2.430851 -1.292167 0.375268
-v 2.457505 -1.277198 0.290487
-v 2.514655 -1.312284 0.255045
-v 2.579113 -1.349214 0.278885
-v 2.481628 -1.418869 0.411230
-v 2.566163 -1.351069 0.381385
-v 2.520232 -1.322599 0.441505
-v 2.481713 -1.312557 0.422294
-v 2.588793 -1.361804 0.317255
-v 2.650998 -1.216998 0.313569
-v 2.637180 -1.202623 0.382595
-v 2.578871 -1.173572 0.439716
-v 2.528897 -1.160636 0.427957
-v 2.473162 -1.163954 0.391837
-v 2.486812 -1.185991 0.286411
-v 2.563513 -1.200965 0.250526
-v 2.629210 -1.208289 0.279070
-v 2.694240 -1.091362 0.299049
-v 2.688587 -1.075872 0.370373
-v 2.626437 -1.040931 0.435452
-v 2.666122 -1.102545 0.264501
-v 2.604431 -1.095248 0.250411
-v 2.526613 -1.090707 0.307129
-v 2.497126 -1.062893 0.384632
-v 2.557580 -1.049906 0.425822
-v 2.427788 -1.421077 0.767792
-v 2.410443 -1.414130 0.741715
-v 2.416892 -1.415110 0.710305
-v 2.446879 -1.425044 0.692658
-v 2.474256 -1.431038 0.700191
-v 2.482752 -1.432804 0.723236
-v 2.475968 -1.431739 0.746829
-v 2.451249 -1.427290 0.768591
-v 2.357392 -1.347799 0.730877
-v 2.393822 -1.376235 0.678094
-v 2.445659 -1.404232 0.652317
-v 2.500278 -1.411980 0.668402
-v 2.518481 -1.412144 0.705713
-v 2.493482 -1.398171 0.762181
-v 2.453487 -1.389265 0.798440
-v 2.406744 -1.369815 0.792679
-v 2.515050 -1.292944 0.612468
-v 2.554031 -1.288391 0.663774
-v 2.518378 -1.264699 0.738999
-v 2.397640 -1.230802 0.771672
-v 2.352515 -1.242805 0.690254
-v 2.399880 -1.265281 0.616344
-v 2.463119 -1.291877 0.584167
-v 2.465790 -1.238513 0.794978
-v 2.365320 -1.143849 0.656609
-v 2.410883 -1.160618 0.577606
-v 2.477868 -1.171139 0.542115
-v 2.402481 -1.117161 0.733363
-v 2.480558 -1.122273 0.751975
-v 2.535559 -1.142820 0.705554
-v 2.574993 -1.163681 0.624134
-v 2.533051 -1.180838 0.559750
-v 2.595258 -1.021133 0.572758
-v 2.559640 -0.995783 0.661795
-v 2.498510 -0.979329 0.705800
-v 2.543678 -1.038207 0.507785
-v 2.486285 -1.073261 0.512909
-v 2.421939 -1.070266 0.562969
-v 2.396317 -1.045621 0.619649
-v 2.409117 -1.013477 0.699167
-v 2.361635 -1.146519 1.102936
-v 2.331435 -1.140843 1.111950
-v 2.314117 -1.152556 1.108892
-v 2.305754 -1.166675 1.096030
-v 2.316934 -1.191476 1.076253
-v 2.342006 -1.200506 1.061357
-v 2.360434 -1.197050 1.066741
-v 2.380024 -1.170858 1.081125
-v 2.381494 -1.096362 1.076051
-v 2.408317 -1.149427 1.031036
-v 2.370986 -1.195848 0.996326
-v 2.320845 -1.210153 0.998038
-v 2.254589 -1.160436 1.065220
-v 2.280635 -1.196655 1.027390
-v 2.280483 -1.117074 1.092520
-v 2.324145 -1.087553 1.098183
-v 2.197987 -1.101460 0.959213
-v 2.234608 -1.145825 0.916543
-v 2.291899 -1.156390 0.880497
-v 2.367524 -1.129257 0.884141
-v 2.236201 -1.048331 1.005223
-v 2.309773 -1.013897 1.009901
-v 2.362653 -1.023664 0.992213
-v 2.406385 -1.073603 0.932751
-v 2.389286 -0.997718 0.855805
-v 2.346204 -0.942460 0.904935
-v 2.287138 -0.923640 0.922986
-v 2.217926 -0.941305 0.903746
-v 2.178340 -1.008156 0.842846
-v 2.366738 -1.068709 0.800301
-v 2.223126 -1.051406 0.802474
-v 2.286362 -1.080797 0.783229
-v 2.394866 -0.915622 0.785825
-v 2.343490 -0.841171 0.823491
-v 2.264115 -0.820155 0.831033
-v 2.207612 -0.853387 0.805916
-v 2.371685 -0.996256 0.739739
-v 2.286616 -0.993170 0.709204
-v 2.223897 -0.954219 0.719138
-v 2.185849 -0.910432 0.749697
-v 2.424089 -0.819443 0.715228
-v 2.339042 -0.757233 0.759124
-v 2.244227 -0.766681 0.766023
-v 2.427818 -0.932737 0.723020
-v 2.509179 -0.872952 0.673194
-v 2.574464 -0.892686 0.616013
-v 2.610360 -0.917082 0.507947
-v 2.600772 -0.993303 0.470028
-v 2.648952 -0.938746 0.430020
-v 2.390769 -0.995162 0.706181
-v 2.528401 -1.026101 0.442822
-v 2.705450 -0.961026 0.341128
-v 2.712309 -0.989042 0.271247
-v 2.671654 -1.019840 0.235219
-v 2.586576 -1.035443 0.227840
-v 2.496489 -1.047931 0.277691
-v 2.462925 -1.029882 0.365693
-v 2.448852 -1.028639 0.424189
-v 2.382734 -1.023871 0.508831
-v 2.333352 -1.002741 0.581947
-v 2.344811 -1.009033 0.654934
-v 2.267631 -0.947789 0.638904
-v 2.219001 -0.913376 0.670577
-v 2.181780 -0.860039 0.699574
-v 2.203290 -0.802855 0.748007
-v 2.549359 -0.797719 0.535251
-v 2.497888 -0.770945 0.595589
-v 2.585326 -0.817174 0.468758
-v 2.622653 -0.826266 0.389460
-v 2.660586 -0.840540 0.283982
-v 2.665172 -0.885657 0.215745
-v 2.310264 -0.694181 0.691931
-v 2.223202 -0.712268 0.710501
-v 2.420527 -0.726001 0.649229
-v 2.183692 -0.747865 0.704595
-v 2.167818 -0.810590 0.667957
-v 2.197701 -0.857120 0.621152
-v 2.247393 -0.876634 0.569736
-v 2.305819 -0.892561 0.523184
-v 2.359446 -0.916353 0.477552
-v 2.423577 -0.951605 0.399456
-v 2.440742 -0.968404 0.334558
-v 2.485622 -0.978877 0.254820
-v 2.555184 -0.971246 0.198759
-v 2.627858 -0.936401 0.180120
-v 2.537881 -0.644137 0.387478
-v 2.478510 -0.616886 0.467050
-v 2.579527 -0.685636 0.302305
-v 2.604701 -0.733623 0.211598
-v 2.605230 -0.781530 0.141668
-v 2.402414 -0.594356 0.547250
-v 2.281770 -0.602176 0.625111
-v 2.189153 -0.646525 0.652126
-v 2.253877 -0.529620 0.556286
-v 2.153677 -0.577930 0.609574
-v 2.178499 -0.478541 0.436263
-v 2.083875 -0.523671 0.503109
-v 2.013054 -0.569685 0.552671
-v 2.081981 -0.625236 0.621936
-v 2.100171 -0.695604 0.636647
-v 2.148044 -0.712735 0.660512
-v 2.360111 -0.515446 0.462613
-v 2.428555 -0.533780 0.369823
-v 2.471238 -0.550995 0.307399
-v 2.511336 -0.586927 0.224919
-v 2.526870 -0.646474 0.144826
-v 2.525414 -0.709966 0.098136
-v 2.416027 -0.681310 0.068953
-v 2.436781 -0.597567 0.107413
-v 2.414046 -0.554953 0.151239
-v 2.368743 -0.519636 0.214872
-v 2.318974 -0.495754 0.267274
-v 2.260166 -0.480760 0.332756
-v 2.550383 -0.851041 0.107283
-v 2.488975 -0.771522 0.070085
-v 2.424307 -0.837553 0.062914
-v 2.353430 -0.870423 0.115255
-v 2.327793 -0.764165 0.075363
-v 2.478880 -0.900067 0.113551
-v 2.404709 -0.933178 0.174661
-v 2.345137 -0.637419 0.091250
-v 2.377595 -0.606598 0.098238
-v 2.274565 -0.753040 0.166661
-v 2.301123 -0.848137 0.218732
-v 2.345961 -0.914974 0.267970
-v 2.341564 -0.851619 0.388387
-v 2.287622 -0.792734 0.325587
-v 2.263828 -0.710314 0.246365
-v 2.315680 -0.614567 0.127279
-v 2.307512 -0.863165 0.427497
-v 2.177859 -0.727738 0.269228
-v 2.157067 -0.602121 0.217346
-v 2.268923 -0.606123 0.173283
-v 2.108341 -0.738600 0.297560
-v 2.081400 -0.600647 0.273802
-v 2.255818 -0.862594 0.474459
-v 2.204501 -0.855035 0.517149
-v 2.140364 -0.833654 0.443806
-v 2.188514 -0.831705 0.384859
-v 2.052571 -0.737490 0.370660
-v 2.000765 -0.625660 0.354304
-v 2.000955 -0.761041 0.466470
-v 1.934257 -0.672707 0.452990
-v 1.915706 -0.814327 0.564952
-v 2.061878 -0.806358 0.530192
-v 1.964868 -0.842302 0.604239
-v 1.867750 -0.719927 0.551639
-v 2.161158 -0.818326 0.581649
-v 2.136009 -0.770873 0.631593
-v 2.092478 -0.764335 0.614325
-v 2.000506 -0.807326 0.670819
-v 2.245679 -0.807064 0.356339
-v 1.827464 -0.845028 0.657677
-v 1.786676 -0.767718 0.638740
-v 1.867191 -0.865969 0.692278
-v 1.887626 -0.845629 0.755711
-v 1.805098 -0.832068 0.784204
-v 1.783768 -0.848174 0.765672
-v 1.940677 -0.598623 0.485857
-v 2.012368 -0.548093 0.393019
-v 1.881897 -0.667506 0.593401
-v 1.812243 -0.707915 0.688828
-v 1.738897 -0.799952 0.739523
-v 1.751713 -0.765651 0.765549
-v 2.094538 -0.521529 0.297807
-v 2.192826 -0.518375 0.234439
-v 1.918831 -0.637958 0.649504
-v 1.976174 -0.671937 0.703105
-v 2.000242 -0.738074 0.712447
-v 1.848448 -0.680772 0.742335
-v 1.783242 -0.741103 0.801898
-v 1.808573 -0.764436 0.818757
-v 1.901390 -0.705916 0.775427
-v 1.904679 -0.777936 0.797654
-v 1.815814 -0.790317 0.811131
-v 1.763151 -0.841544 0.748430
-v 2.347207 -0.559788 0.129472
-v 2.307997 -0.536935 0.165017
-v 2.252801 -0.527764 0.214822
-v 1.306815 0.345572 0.221760
-v 1.970246 -0.004896 0.119119
-v 1.306815 0.150297 0.182917
-v 1.885066 -0.135583 0.088089
-v 1.306815 -0.015248 0.072303
-v 1.812853 -0.246374 -0.000274
-v 1.306815 -0.125862 -0.093242
-v 1.764602 -0.320402 -0.132520
-v 1.306815 -0.164704 -0.288516
-v 1.747659 -0.346397 -0.288516
-v 1.306815 -0.125862 -0.483790
-v 1.764602 -0.320402 -0.444511
-v 1.306815 -0.015248 -0.649335
-v 1.812853 -0.246374 -0.576757
-v 1.306815 0.150297 -0.759949
-v 1.885066 -0.135583 -0.665122
-v 1.306815 0.345572 -0.798791
-v 1.970246 -0.004896 -0.696151
-v 1.306814 0.540847 -0.759949
-v 2.055427 0.125790 -0.665122
-v 1.306815 0.706392 -0.649335
-v 2.127640 0.236580 -0.576757
-v 1.306815 0.817006 -0.483790
-v 2.175889 0.310608 -0.444511
-v 1.306814 0.855849 -0.288516
-v 2.192834 0.336604 -0.288516
-v 1.306815 0.817006 -0.093242
-v 2.175889 0.310608 -0.132520
-v 1.306815 0.706392 0.072303
-v 2.127640 0.236580 -0.000274
-v 1.306814 0.540847 0.182917
-v 2.055427 0.125790 0.088089
-v 1.129849 0.186960 0.094406
-v 1.129849 0.345572 0.125957
-v 1.129849 0.504185 0.094406
-v 1.129849 0.638649 0.004560
-v 1.129849 0.728495 -0.129904
-v 1.129849 0.760046 -0.288516
-v 1.129849 0.728495 -0.447127
-v 1.129849 0.638649 -0.581593
-v 1.129849 0.504185 -0.671439
-v 1.129849 0.345572 -0.702988
-v 1.129849 0.186960 -0.671439
-v 1.129848 0.052495 -0.581593
-v 1.129849 -0.037351 -0.447127
-v 1.129849 -0.068901 -0.288516
-v 1.129849 -0.037351 -0.129904
-v 1.129848 0.052495 0.004560
-v 2.157869 0.024060 0.017383
-v 2.088680 -0.082091 0.042586
-v 2.019492 -0.188241 0.017383
-v 1.960838 -0.278231 -0.054391
-v 1.921646 -0.338360 -0.161808
-v 1.907883 -0.359475 -0.288516
-v 1.921646 -0.338360 -0.415223
-v 1.960838 -0.278231 -0.522641
-v 2.019492 -0.188241 -0.594414
-v 2.088680 -0.082091 -0.619618
-v 2.157869 0.024060 -0.594414
-v 2.216522 0.114050 -0.522641
-v 2.255715 0.174179 -0.415223
-v 2.269477 0.195294 -0.288516
-v 2.255715 0.174179 -0.161808
-v 2.216522 0.114050 -0.054391
-v 0.996819 0.125302 -0.288516
-v 0.996819 0.142069 -0.204222
-v 0.996818 0.189817 -0.132761
-v 0.996819 0.261278 -0.085012
-v 0.996819 0.345572 -0.068245
-v 0.996819 0.429866 -0.085012
-v 0.996819 0.501327 -0.132761
-v 0.996819 0.549076 -0.204222
-v 0.996818 0.565843 -0.288516
-v 0.996819 0.549076 -0.372810
-v 0.996819 0.501327 -0.444271
-v 0.996819 0.429866 -0.492019
-v 0.996819 0.345572 -0.508787
-v 0.996819 0.261278 -0.492019
-v 0.996818 0.189817 -0.444271
-v 0.996819 0.142069 -0.372810
-v 2.273794 0.007296 -0.288516
-v 2.266481 -0.003926 -0.221178
-v 2.245652 -0.035882 -0.164091
-v 2.214481 -0.083707 -0.125947
-v 2.177710 -0.140120 -0.112552
-v 2.140941 -0.196534 -0.125947
-v 2.109768 -0.244358 -0.164091
-v 2.088939 -0.276313 -0.221178
-v 2.081625 -0.287535 -0.288516
-v 2.088939 -0.276313 -0.355854
-v 2.109768 -0.244358 -0.412941
-v 2.140941 -0.196534 -0.451085
-v 2.177710 -0.140120 -0.464479
-v 2.214481 -0.083707 -0.451085
-v 2.245652 -0.035882 -0.412941
-v 2.266481 -0.003926 -0.355854
-v 1.653766 0.213423 -0.761987
-v 1.528826 -0.097187 -0.623311
-v 1.586149 0.045322 -0.725946
-v 1.490524 -0.192409 -0.469705
-v 1.477075 -0.225847 -0.288516
-v 1.490524 -0.192409 -0.107326
-v 1.528826 -0.097187 0.046279
-v 1.653766 0.213423 0.184955
-v 1.721383 0.381524 -0.725946
-v 1.778707 0.524033 -0.623311
-v 1.817008 0.619255 -0.469705
-v 1.830458 0.652692 -0.288516
-v 1.586149 0.045322 0.148915
-v 1.721383 0.381524 0.148915
-v 1.778707 0.524033 0.046279
-v 1.817008 0.619255 -0.107326
-v -0.786019 -2.928538 0.601628
-v -0.787557 -2.907031 0.601650
-v -0.907193 -2.908894 0.550182
-v -0.902064 -2.928018 0.550057
-v -1.023440 -2.956840 0.481313
-v -1.017128 -2.970083 0.481210
-v -1.101541 -3.010835 0.441949
-v -1.087422 -3.020051 0.441933
-v -1.106929 -3.145379 0.395161
-v -1.091562 -3.144946 0.395144
-v -1.072088 -3.235354 0.377412
-v -1.077035 -3.157159 0.277621
-v -1.064921 -3.214447 0.290776
-v -1.021403 -3.201481 0.168705
-v -1.038110 -3.154783 0.137595
-v -1.077220 -3.018806 0.314615
-v -1.074982 -3.018031 0.239323
-v -1.042151 -3.030779 0.086701
-v -1.064326 -2.943164 0.204697
-v -1.021818 -2.957978 0.044387
-v -0.975907 -2.855559 -0.005333
-v -1.035428 -2.841887 0.171577
-v -1.011729 -2.818190 0.239631
-v -0.772762 -2.912492 0.717615
-v -0.907387 -2.923344 0.685008
-v -1.020136 -2.965400 0.658615
-v -1.097976 -3.067994 0.586489
-v -1.100485 -3.190069 0.544074
-v -0.770828 -2.937952 0.775106
-v -0.903720 -2.963398 0.760914
-v -0.999774 -3.027202 0.760806
-v -1.046470 -3.163512 0.760373
-v -1.037090 -3.238383 0.760190
-v -1.074062 -3.238380 0.527702
-v -0.893578 -2.804472 0.281931
-v -0.782004 -2.795410 0.279693
-v -0.698799 -2.801319 0.275004
-v -0.675365 -2.938091 0.585189
-v -0.661901 -2.921910 0.586087
-v -0.665882 -2.925934 0.710389
-v -0.560051 -2.971251 0.514855
-v -0.543453 -2.950871 0.514979
-v -0.555355 -2.970095 0.691185
-v -0.932929 -3.089451 0.852653
-v -0.866542 -3.038278 0.852679
-v -0.963457 -3.158557 0.852644
-v -0.771187 -3.008775 0.852663
-v -0.671917 -2.952009 0.761131
-v -0.685978 -3.046776 0.852632
-v -0.583250 -3.009146 0.760837
-v -0.632573 -3.092436 0.852583
-v -0.823277 -3.121259 0.885215
-v -0.770024 -3.097687 0.885199
-v -0.717890 -3.127336 0.885165
-v -0.695662 -3.148001 0.885157
-v -0.599302 -3.142824 0.852540
-v -0.677427 -3.175218 0.885148
-v -0.587659 -3.190575 0.852484
-v -0.670639 -3.215333 0.885132
-v -0.850614 -3.153811 0.885202
-v -0.852737 -3.194399 0.885187
-v -0.943579 -3.238376 0.852558
-v -0.685633 -3.238381 0.885102
-v -0.840481 -3.238389 0.885136
-v -0.986468 -2.855529 -0.011956
-v -1.036222 -2.962744 0.037093
-v -1.057487 -3.036565 0.080302
-v -1.054966 -3.160047 0.131091
-v -0.953122 -2.854421 -0.068876
-v -0.985483 -2.957746 -0.057919
-v -1.019390 -3.058597 -0.042315
-v -1.009796 -3.167722 -0.004136
-v -0.986530 -3.201493 0.053273
-v -0.905391 -3.053835 -0.136203
-v -0.895036 -2.957297 -0.125308
-v -0.887260 -2.854405 -0.108414
-v -0.907334 -3.150203 -0.141691
-v -0.891522 -3.201486 -0.107920
-v -0.798525 -3.145032 -0.174300
-v -0.801578 -3.042581 -0.168863
-v -0.802988 -2.964290 -0.145041
-v -0.812682 -2.854389 -0.126191
-v -0.707237 -2.954707 -0.130756
-v -0.730402 -2.854357 -0.117064
-v -0.687061 -3.034578 -0.157076
-v -0.669942 -3.140672 -0.145304
-v -0.791184 -3.201484 -0.146210
-v -0.683376 -3.201475 -0.124516
-v -0.680277 -2.854345 -0.083039
-v -0.605010 -2.955611 -0.068740
-v -0.577713 -3.033063 -0.043603
-v -0.584799 -3.145787 -0.010707
-v -0.600187 -3.201477 0.001230
-v -0.541462 -2.935125 0.085168
-v -0.620955 -2.855412 -0.016222
-v -0.531662 -3.029833 0.116483
-v -0.555642 -3.146120 0.137200
-v -0.590839 -3.201479 0.159142
-v -0.631776 -2.855329 -0.009756
-v -0.566744 -2.944517 0.088975
-v -0.558824 -2.932812 0.213749
-v -0.601732 -2.841651 0.141089
-v -0.552408 -3.033704 0.126091
-v -0.538244 -3.027855 0.247684
-v -0.571163 -3.144282 0.146245
-v -0.556490 -3.151489 0.278832
-v -0.567925 -3.215084 0.277742
-v -0.545355 -3.238381 0.401191
-v -0.515299 -3.158295 0.421111
-v -0.504552 -3.045186 0.466680
-v -0.534684 -3.037446 0.354751
-v -0.615730 -2.815993 0.209595
-v -0.475195 -3.034925 0.466812
-v -0.476549 -3.052179 0.634725
-v -0.494045 -3.160833 0.418894
-v -0.475884 -3.159244 0.586422
-v -0.534676 -3.238383 0.576237
-v -0.528877 -3.174860 0.760344
-v -0.528487 -3.075514 0.760567
-v -0.620069 -3.238380 0.852422
-v -0.560282 -3.238374 0.760130
-v -1.043198 -3.241457 0.769490
-v -0.947325 -3.241451 0.864192
-v -0.841622 -3.241463 0.897592
-v -0.682861 -3.241456 0.897559
-v -0.615641 -3.241454 0.864053
-v -0.554343 -3.241448 0.769429
-v -0.528091 -3.241457 0.580889
-v -0.539039 -3.241456 0.401420
-v -0.562180 -3.218158 0.274852
-v -0.585672 -3.204554 0.153256
-v -0.595257 -3.204551 -0.008646
-v -0.680548 -3.204550 -0.137570
-v -0.791078 -3.204558 -0.159811
-v -0.893952 -3.204560 -0.120554
-v -0.991361 -3.204567 0.044711
-v -1.027114 -3.204555 0.163059
-v -1.071733 -3.218158 0.288215
-v -1.079081 -3.238428 0.377041
-v -1.081105 -3.241456 0.531129
-v -1.071733 -3.270523 0.288214
-v -1.079080 -3.293819 0.377041
-v -1.081104 -3.293821 0.531128
-v -1.043198 -3.293823 0.769490
-v -0.947324 -3.293815 0.864192
-v -0.841621 -3.293829 0.897592
-v -0.682861 -3.293821 0.897558
-v -0.615641 -3.293820 0.864052
-v -0.554343 -3.293814 0.769428
-v -0.528090 -3.293823 0.580889
-v -0.539038 -3.293821 0.401420
-v -0.562179 -3.270524 0.274852
-v -0.585672 -3.256919 0.153255
-v -1.027114 -3.256921 0.163059
-v -0.893951 -3.294219 -0.120554
-v -0.991360 -3.294219 0.044711
-v -1.027113 -3.294219 0.163059
-v -0.585671 -3.294219 0.153256
-v -0.595255 -3.294219 -0.008646
-v -0.680546 -3.294219 -0.137570
-v -0.791077 -3.294219 -0.159812
-v -0.903816 -2.903723 0.409087
-v -0.905746 -2.925559 0.458751
-v -0.790406 -2.914967 0.482225
-v -0.790793 -2.895555 0.429593
-v -1.018182 -2.931984 0.351433
-v -1.025488 -2.953660 0.369957
-v -1.018342 -2.949813 0.400882
-v -0.790138 -2.871559 0.387279
-v -0.787987 -2.841679 0.340474
-v -0.914136 -2.845706 0.325947
-v -0.912999 -2.878417 0.370259
-v -1.015141 -2.886044 0.280661
-v -1.021929 -2.906811 0.284496
-v -1.017217 -2.915387 0.319981
-v -0.685314 -2.868801 0.376137
-v -0.688271 -2.841438 0.325026
-v -0.597187 -2.896330 0.344932
-v -0.599270 -2.886341 0.301924
-v -0.604511 -2.868714 0.294449
-v -0.577213 -2.940670 0.448258
-v -0.575888 -2.944491 0.419575
-v -0.587015 -2.919345 0.393668
-v -0.682337 -2.889899 0.427220
-v -0.679472 -2.908538 0.484016
-v -0.578191 -2.929036 0.441868
-v -0.680449 -2.896904 0.477628
-v -0.791384 -2.903331 0.475837
-v -0.906724 -2.913923 0.452362
-v -1.019319 -2.938179 0.394494
-v -1.018984 -2.925163 0.362409
-v -0.902406 -2.898798 0.421672
-v -0.791527 -2.890346 0.442937
-v -0.682278 -2.884057 0.442476
-v -0.585389 -2.913921 0.408412
-v -1.017454 -2.902199 0.319002
-v -1.016298 -2.881953 0.293736
-v -0.915292 -2.841615 0.339021
-v -0.789142 -2.837587 0.353549
-v -0.689427 -2.837347 0.338100
-v -0.605667 -2.864622 0.307524
-v -0.599852 -2.881745 0.340187
-v -0.686410 -2.854633 0.370879
-v -0.790442 -2.856759 0.383933
-v -0.915448 -2.863334 0.367673
-v -1.134076 -2.073764 0.125220
-v -1.100784 -2.840772 0.063859
-v -1.121226 -2.082448 0.281435
-v -1.077482 -2.848263 0.183241
-v -1.049602 -2.093997 0.420646
-v -1.009420 -2.858189 0.294717
-v -0.930108 -2.106653 0.521664
-v -0.906959 -2.869041 0.381315
-v -0.780934 -2.118488 0.569105
-v -0.785697 -2.879164 0.429853
-v -0.624792 -2.127701 0.555750
-v -0.664096 -2.887017 0.432939
-v -0.487609 -2.132838 0.485339
-v -0.560669 -2.891407 0.390105
-v -0.386351 -2.133204 0.365386
-v -0.491161 -2.891663 0.307871
-v -0.336248 -2.128763 0.214291
-v -0.466153 -2.887750 0.198757
-v -0.349097 -2.120078 0.058076
-v -0.489454 -2.880259 0.079375
-v -0.420722 -2.108528 -0.081137
-v -0.557517 -2.870332 -0.032100
-v -0.540217 -2.095873 -0.182154
-v -0.659978 -2.859481 -0.118699
-v -0.689391 -2.084038 -0.229594
-v -0.781240 -2.849359 -0.167237
-v -0.845533 -2.074826 -0.216238
-v -0.902840 -2.841503 -0.170322
-v -0.984872 -2.069637 -0.144119
-v -1.006268 -2.837114 -0.127489
-v -1.086195 -2.069264 -0.024214
-v -1.075776 -2.836857 -0.045255
-v -1.099357 -1.937180 0.285132
-v -1.111786 -1.928778 0.134029
-v -1.065471 -1.924427 -0.010516
-v -0.967464 -1.924788 -0.126497
-v -0.832685 -1.929805 -0.196257
-v -0.681653 -1.938717 -0.209175
-v -0.537360 -1.950165 -0.163286
-v -0.421775 -1.962406 -0.065576
-v -0.352495 -1.973576 0.069081
-v -0.340066 -1.981978 0.220184
-v -0.377305 -1.987318 0.372941
-v -0.478375 -1.986952 0.492687
-v -0.619167 -1.980950 0.550470
-v -0.770199 -1.972039 0.563388
-v -0.914492 -1.960592 0.517499
-v -1.030077 -1.948350 0.419788
-v -0.751339 -1.850779 0.469324
-v -0.858293 -1.842294 0.435310
-v -0.943969 -1.833221 0.362884
-v -0.995321 -1.824939 0.263071
-v -1.004534 -1.818712 0.151069
-v -0.970204 -1.815487 0.043927
-v -0.897558 -1.815754 -0.042042
-v -0.797655 -1.819474 -0.093750
-v -0.685705 -1.826079 -0.103325
-v -0.578750 -1.834564 -0.069312
-v -0.493075 -1.843638 0.003116
-v -0.441722 -1.851918 0.102928
-v -0.432509 -1.858146 0.214931
-v -0.384043 -1.902884 0.366993
-v -0.485102 -1.902527 0.486719
-v -0.639389 -1.857384 0.459749
-v -0.583406 -1.776776 0.258793
-v -0.621062 -1.776637 0.303356
-v -0.672847 -1.774709 0.330159
-v -0.730876 -1.771286 0.335122
-v -0.786316 -1.766887 0.317490
-v -0.830726 -1.762184 0.279949
-v -0.857345 -1.757891 0.228210
-v -0.862121 -1.754664 0.170154
-v -0.844325 -1.752992 0.114618
-v -0.806669 -1.753130 0.070055
-v -0.754884 -1.755058 0.043252
-v -0.696855 -1.758482 0.038289
-v -0.641416 -1.762880 0.055921
-v -0.597005 -1.767583 0.093462
-v -0.570387 -1.771877 0.145201
-v -0.565611 -1.775104 0.203256
-v -0.507322 -1.827416 0.433629
-v -0.437965 -1.827668 0.351484
-v -0.276676 -1.301333 0.457017
-v -0.631338 -1.958341 0.583740
-v -0.179644 -1.471140 0.419720
-v -0.501134 -2.028466 0.525199
-v -0.119448 -1.629419 0.315006
-v -0.408378 -2.099356 0.417180
-v -0.105254 -1.752074 0.158818
-v -0.367193 -2.160221 0.276124
-v -0.139222 -1.820431 -0.025069
-v -0.383848 -2.201795 0.123508
-v -0.216182 -1.824085 -0.208656
-v -0.455809 -2.217747 -0.017434
-v -0.324417 -1.762477 -0.363997
-v -0.572118 -2.205649 -0.125244
-v -0.447448 -1.644988 -0.467440
-v -0.715070 -2.167346 -0.183510
-v -0.566545 -1.489505 -0.503239
-v -0.862901 -2.108664 -0.183361
-v -0.663579 -1.319699 -0.465942
-v -0.993105 -2.038540 -0.124822
-v -0.723775 -1.161420 -0.361228
-v -1.085861 -1.967650 -0.016800
-v -0.737969 -1.038765 -0.205038
-v -1.127045 -1.906785 0.124254
-v -0.703999 -0.970408 -0.021153
-v -1.110390 -1.865212 0.276870
-v -0.627040 -0.966755 0.162436
-v -1.038430 -1.849259 0.417811
-v -0.518805 -1.028362 0.317776
-v -0.922120 -1.861355 0.525622
-v -0.395774 -1.145850 0.421219
-v -0.779169 -1.899660 0.583889
-v -0.086510 -1.364582 0.276657
-v -0.165325 -1.226657 0.306952
-v -0.262062 -1.100366 0.277875
-v -0.361995 -1.004935 0.193853
-v -0.449908 -0.954894 0.067677
-v -0.512420 -0.957862 -0.081443
-v -0.540010 -1.013385 -0.230804
-v -0.528482 -1.113012 -0.357670
-v -0.479587 -1.241574 -0.442723
-v -0.400772 -1.379501 -0.473018
-v -0.304034 -1.505792 -0.443941
-v -0.204102 -1.601222 -0.359919
-v -0.116188 -1.651262 -0.233743
-v -0.053678 -1.648296 -0.084623
-v -0.026086 -1.592772 0.064739
-v -0.037616 -1.493146 0.191604
-v -0.823165 -2.050884 0.551657
-v -0.703088 -2.098548 0.551536
-v -0.597330 -2.155506 0.503986
-v -0.521989 -2.213087 0.416247
-v -0.488536 -2.262524 0.301675
-v -0.502065 -2.296292 0.177711
-v -0.560515 -2.309250 0.063231
-v -0.654988 -2.299424 -0.024338
-v -0.771100 -2.268310 -0.071665
-v -0.891175 -2.220647 -0.071545
-v -0.996935 -2.163689 -0.023994
-v -1.072274 -2.106107 0.063745
-v -1.105727 -2.056670 0.178318
-v -1.092199 -2.022901 0.302280
-v -1.033750 -2.009944 0.416761
-v -0.939277 -2.019770 0.504329
-v -0.056989 -1.417129 -0.128923
-v -0.042326 -1.387622 -0.049546
-v -0.048452 -1.334675 0.017877
-v -0.074438 -1.266350 0.063078
-v -0.116324 -1.193050 0.079178
-v -0.167735 -1.125933 0.063725
-v -0.220844 -1.075217 0.019072
-v -0.267565 -1.048623 -0.047983
-v -0.300786 -1.050199 -0.127233
-v -0.315450 -1.079707 -0.206611
-v -0.309323 -1.132654 -0.274034
-v -0.283338 -1.200978 -0.319235
-v -0.241452 -1.274278 -0.335335
-v -0.190041 -1.341396 -0.319882
-v -0.136931 -1.392113 -0.275229
-v -0.090211 -1.418706 -0.208173
-v -0.991541 -2.181738 0.303020
-v -0.960478 -2.174852 0.363861
-v -0.910271 -2.180075 0.410399
-v -0.848563 -2.196610 0.435551
-v -0.784749 -2.221941 0.435487
-v -0.728544 -2.252211 0.410217
-v -0.688504 -2.282812 0.363588
-v -0.670726 -2.309085 0.302699
-v -0.677915 -2.327031 0.236819
-v -0.708978 -2.333918 0.175979
-v -0.759185 -2.328696 0.129440
-v -0.820894 -2.312161 0.104288
-v -0.884707 -2.286830 0.104352
-v -0.940913 -2.256561 0.129622
-v -0.980952 -2.225959 0.176251
-v -0.998731 -2.199685 0.237141
-v -0.754618 -1.773825 -0.351634
-v -0.445512 -1.941771 -0.264650
-v -0.598411 -1.871910 -0.341264
-v -0.319197 -1.972774 -0.133454
-v -0.238697 -1.960198 0.032348
-v -0.216269 -1.905957 0.207516
-v -0.255325 -1.818309 0.365380
-v -0.485656 -1.599225 0.539362
-v -0.890353 -1.662451 -0.294182
-v -0.984950 -1.554741 -0.177653
-v -1.024007 -1.467093 -0.019788
-v -1.001578 -1.412854 0.155379
-v -0.349923 -1.710600 0.481909
-v -0.641865 -1.501140 0.528991
-v -0.794765 -1.431280 0.452377
-v -0.921080 -1.400277 0.321181
-v 0.000000 -0.840689 0.558902
-v 0.000000 -1.217591 0.558902
-v 0.000000 -1.417026 0.588448
-v 0.000000 -1.586917 0.470263
-v 0.000000 -1.697714 0.086165
-v 0.000000 -1.727260 -0.305320
-v 0.000000 -1.646008 -0.608166
-v 0.000000 -1.431799 -0.726350
-v 0.000000 -1.210205 -0.726350
-v 0.000000 -0.945065 -0.563847
-v 0.000000 -0.840689 -0.497369
-v -0.262299 -1.417026 0.588515
-v -0.262309 -1.217591 0.558970
-v -0.262309 -0.840689 0.558970
-v -0.262665 -0.840689 -0.497300
-v -0.262688 -0.945065 -0.563779
-v -0.262742 -1.210205 -0.726282
-v -0.262742 -1.431799 -0.726282
-v -0.262703 -1.646008 -0.608099
-v -0.262600 -1.727260 -0.305251
-v -0.262468 -1.697714 0.086233
-v -0.262338 -1.586917 0.470332
-v -0.480989 -1.677992 -0.286115
-v -0.480867 -1.651029 0.071141
-v -0.480749 -1.549919 0.364306
-v -0.480713 -1.394884 0.461361
-v -0.480722 -1.212886 0.437097
-v -0.480722 -0.840704 0.502545
-v -0.481047 -0.840704 -0.461371
-v -0.481068 -0.966839 -0.522038
-v -0.481118 -1.206145 -0.670333
-v -0.481118 -1.408365 -0.670333
-v -0.481081 -1.603845 -0.562481
-v -0.649797 -1.156924 -0.495856
-v -0.649804 -1.342083 -0.512200
-v -0.649777 -1.484589 -0.433576
-v -0.649708 -1.538643 -0.232103
-v -0.649621 -1.518986 0.028338
-v -0.649535 -1.445276 0.240307
-v -0.649507 -1.332255 0.311061
-v -0.649515 -1.199577 0.293372
-v -0.649515 -0.840746 0.293372
-v -0.649751 -0.840746 -0.359866
-v -0.649762 -0.947090 -0.391848
-v -0.790724 -0.840746 0.171394
-v -0.790835 -0.840746 -0.158250
-v -0.790843 -0.941798 -0.178996
-v -0.815688 -1.050080 -0.229704
-v -0.741764 -1.180644 -0.229704
-v -0.719175 -1.281132 -0.192828
-v -0.719146 -1.319248 -0.098314
-v -0.719108 -1.305387 0.023862
-v -0.741650 -1.253411 0.143738
-v -0.741638 -1.147102 0.180621
-v -0.790724 -1.022096 0.171394
-v -0.235435 -0.692714 0.501230
-v 0.000000 -0.692714 0.501169
-v 0.000000 -0.692714 -0.446846
-v -0.235755 -0.692714 -0.446784
-v -0.431755 -0.692728 -0.414537
-v -0.583169 -0.692766 -0.323436
-v -0.709792 -0.692766 -0.142483
-v -0.709693 -0.692766 0.153376
-v -0.582956 -0.692766 0.307244
-v -0.431463 -0.692728 0.450587
-v -0.496301 -0.571387 0.097596
-v -0.407673 -0.571387 0.205197
-v -0.301733 -0.571361 0.305438
-v -0.164649 -0.571351 0.340852
-v 0.000000 -0.571351 0.340810
-v 0.000000 -0.571351 -0.322143
-v -0.164873 -0.571351 -0.322100
-v -0.301937 -0.571361 -0.299550
-v -0.407822 -0.571387 -0.235841
-v -0.496372 -0.571387 -0.109300
-v -0.176564 -0.515313 -0.151812
-v -0.238485 -0.515328 -0.114556
-v -0.290267 -0.515328 -0.040555
-v -0.290227 -0.515328 0.080437
-v -0.238397 -0.515328 0.143361
-v -0.176444 -0.515313 0.201982
-v -0.096278 -0.515307 0.222691
-v 0.000000 -0.515307 0.222666
-v 0.000000 -0.515307 -0.165024
-v -0.096409 -0.515307 -0.164999
-v -1.623254 -0.058139 -0.150848
-v -1.920992 -0.560413 0.351398
-v -1.614233 -0.169145 -0.261481
-v -1.926915 -0.643886 0.262807
-v -1.663402 -0.262002 -0.378115
-v -1.976469 -0.717163 0.166201
-v -1.763279 -0.322574 -0.482992
-v -2.062111 -0.769088 0.076287
-v -1.898658 -0.341639 -0.560147
-v -2.170804 -0.791754 0.006752
-v -2.048927 -0.316295 -0.597831
-v -2.285997 -0.781712 -0.031816
-v -2.188930 -0.251846 -0.590833
-v -2.390156 -0.740491 -0.033546
-v -2.301512 -0.155402 -0.539197
-v -2.467423 -0.674365 0.001825
-v -2.369690 -0.041729 -0.450937
-v -2.506035 -0.593403 0.068912
-v -2.378712 0.069277 -0.340303
-v -2.500112 -0.509929 0.157503
-v -2.329543 0.162134 -0.223670
-v -2.450558 -0.436653 0.254109
-v -2.229666 0.222706 -0.118793
-v -2.364916 -0.384728 0.344023
-v -2.094287 0.241771 -0.041638
-v -2.256223 -0.362062 0.413558
-v -1.944017 0.216426 -0.003954
-v -2.141030 -0.372103 0.452126
-v -1.801733 0.150531 -0.011475
-v -2.036871 -0.413325 0.453856
-v -1.689097 0.054116 -0.063058
-v -1.959604 -0.479450 0.418485
-v -1.585242 -0.064487 -0.360483
-v -1.593970 0.042887 -0.253471
-v -1.657657 0.151468 -0.168552
-v -1.766608 0.244728 -0.118658
-v -1.904235 0.308467 -0.111382
-v -2.049588 0.332982 -0.147834
-v -2.180537 0.314541 -0.222464
-v -2.277146 0.255952 -0.323909
-v -2.324706 0.166133 -0.436726
-v -2.315979 0.058759 -0.543739
-v -2.259804 -0.054811 -0.636991
-v -2.147429 -0.151086 -0.688541
-v -2.005713 -0.206822 -0.685827
-v -1.860360 -0.231337 -0.649374
-v -1.729412 -0.212896 -0.574745
-v -1.632803 -0.154306 -0.473300
-v -1.851576 -0.077551 -0.662815
-v -1.754512 -0.063882 -0.607497
-v -1.682904 -0.020453 -0.532303
-v -1.647650 0.046123 -0.448679
-v -1.654119 0.125713 -0.369357
-v -1.701326 0.206197 -0.306413
-v -1.782084 0.275325 -0.269429
-v -1.884098 0.322570 -0.264037
-v -1.991839 0.340741 -0.291056
-v -2.088902 0.327072 -0.346374
-v -2.160511 0.283643 -0.421569
-v -2.195765 0.217067 -0.505193
-v -2.189296 0.137478 -0.584514
-v -2.226114 0.008704 -0.682163
-v -2.113755 -0.087561 -0.733699
-v -1.959316 -0.059379 -0.689834
-v -2.015022 0.143720 -0.614586
-v -1.973161 0.107889 -0.633757
-v -1.920281 0.083399 -0.636552
-v -1.864435 0.073979 -0.622546
-v -1.814122 0.081065 -0.593872
-v -1.777002 0.103576 -0.554895
-v -1.758729 0.138086 -0.511548
-v -1.762082 0.179340 -0.470432
-v -1.786552 0.221060 -0.437805
-v -1.828413 0.256893 -0.418635
-v -1.881293 0.281382 -0.415840
-v -1.937139 0.290801 -0.429844
-v -1.987452 0.283715 -0.458519
-v -2.024570 0.261205 -0.497496
-v -2.042845 0.226694 -0.540842
-v -2.039492 0.185440 -0.581959
-v -2.076011 -0.000792 -0.734242
-v -2.153120 0.065255 -0.698886
-v -1.989742 -0.491018 0.393756
-v -1.955715 -0.562370 0.334632
-v -1.960934 -0.635935 0.256558
-v -2.004606 -0.700515 0.171419
-v -2.080083 -0.746276 0.092177
-v -2.175873 -0.766252 0.030896
-v -2.277393 -0.757402 -0.003093
-v -2.369189 -0.721074 -0.004619
-v -2.437284 -0.662797 0.026554
-v -2.471312 -0.591445 0.085678
-v -2.466093 -0.517880 0.163752
-v -2.422420 -0.453301 0.248891
-v -2.346943 -0.407541 0.328134
-v -2.251154 -0.387564 0.389414
-v -2.149634 -0.396414 0.423404
-v -2.057838 -0.432742 0.424929
-v -2.272074 -0.438359 0.438673
-v -2.170554 -0.447208 0.472664
-v -2.078759 -0.483537 0.474188
-v -2.010663 -0.541813 0.443016
-v -1.976635 -0.613165 0.383892
-v -1.981854 -0.686730 0.305817
-v -2.025527 -0.751310 0.220678
-v -2.101003 -0.797070 0.141437
-v -2.196794 -0.817047 0.080156
-v -2.298314 -0.808197 0.046166
-v -2.390109 -0.771869 0.044641
-v -2.458205 -0.713592 0.075814
-v -2.492232 -0.642240 0.134938
-v -2.487013 -0.568675 0.213012
-v -2.443341 -0.504096 0.298151
-v -2.367864 -0.458335 0.377393
-v -2.458114 -1.420465 0.381856
-v -2.446310 -1.410195 0.369510
-v -2.449583 -1.420356 0.344998
-v -2.469010 -1.430890 0.330259
-v -2.481426 -1.440292 0.331393
-v -2.487318 -1.443179 0.338042
-v -2.482575 -1.440668 0.362532
-v -2.435650 -1.386773 0.323467
-v -2.429746 -1.381620 0.371328
-v -2.474173 -1.406125 0.300120
-v -2.515998 -1.437771 0.305923
-v -2.527194 -1.444486 0.330498
-v -2.522778 -1.436007 0.377465
-v -2.454219 -1.399631 0.406579
-v -2.430851 -1.292167 0.375268
-v -2.457505 -1.277198 0.290487
-v -2.514655 -1.312284 0.255045
-v -2.579113 -1.349214 0.278885
-v -2.481628 -1.418869 0.411230
-v -2.566163 -1.351069 0.381385
-v -2.520232 -1.322599 0.441505
-v -2.481713 -1.312557 0.422294
-v -2.588793 -1.361804 0.317255
-v -2.650998 -1.216998 0.313569
-v -2.637180 -1.202623 0.382595
-v -2.578871 -1.173572 0.439716
-v -2.528897 -1.160636 0.427957
-v -2.473162 -1.163954 0.391837
-v -2.486812 -1.185991 0.286411
-v -2.563513 -1.200965 0.250526
-v -2.629210 -1.208289 0.279070
-v -2.694240 -1.091362 0.299049
-v -2.688587 -1.075872 0.370373
-v -2.626437 -1.040931 0.435452
-v -2.666122 -1.102545 0.264501
-v -2.604431 -1.095248 0.250411
-v -2.526613 -1.090707 0.307129
-v -2.497126 -1.062893 0.384632
-v -2.557580 -1.049906 0.425822
-v -2.427788 -1.421077 0.767792
-v -2.410443 -1.414130 0.741715
-v -2.416892 -1.415110 0.710305
-v -2.446879 -1.425044 0.692658
-v -2.474256 -1.431038 0.700191
-v -2.482752 -1.432804 0.723236
-v -2.475968 -1.431739 0.746829
-v -2.451249 -1.427290 0.768591
-v -2.357392 -1.347799 0.730877
-v -2.393822 -1.376235 0.678094
-v -2.445659 -1.404232 0.652317
-v -2.500278 -1.411980 0.668402
-v -2.518481 -1.412144 0.705713
-v -2.493482 -1.398171 0.762181
-v -2.453487 -1.389265 0.798440
-v -2.406744 -1.369815 0.792679
-v -2.515050 -1.292944 0.612468
-v -2.554031 -1.288391 0.663774
-v -2.518378 -1.264699 0.738999
-v -2.397640 -1.230802 0.771672
-v -2.352515 -1.242805 0.690254
-v -2.399880 -1.265281 0.616344
-v -2.463119 -1.291877 0.584167
-v -2.465790 -1.238513 0.794978
-v -2.365320 -1.143849 0.656609
-v -2.410883 -1.160618 0.577606
-v -2.477868 -1.171139 0.542115
-v -2.402481 -1.117161 0.733363
-v -2.480558 -1.122273 0.751975
-v -2.535559 -1.142820 0.705554
-v -2.574993 -1.163681 0.624134
-v -2.533051 -1.180838 0.559750
-v -2.595258 -1.021133 0.572758
-v -2.559640 -0.995783 0.661795
-v -2.498510 -0.979329 0.705800
-v -2.543678 -1.038207 0.507785
-v -2.486285 -1.073261 0.512909
-v -2.421939 -1.070266 0.562969
-v -2.396317 -1.045621 0.619649
-v -2.409117 -1.013477 0.699167
-v -2.361635 -1.146519 1.102936
-v -2.331435 -1.140843 1.111950
-v -2.314117 -1.152556 1.108892
-v -2.305754 -1.166675 1.096030
-v -2.316934 -1.191476 1.076253
-v -2.342006 -1.200506 1.061357
-v -2.360434 -1.197050 1.066741
-v -2.380024 -1.170858 1.081125
-v -2.381494 -1.096362 1.076051
-v -2.408317 -1.149427 1.031036
-v -2.370986 -1.195848 0.996326
-v -2.320845 -1.210153 0.998038
-v -2.254589 -1.160436 1.065220
-v -2.280635 -1.196655 1.027390
-v -2.280483 -1.117074 1.092520
-v -2.324145 -1.087553 1.098183
-v -2.197987 -1.101460 0.959213
-v -2.234608 -1.145825 0.916543
-v -2.291899 -1.156390 0.880497
-v -2.367524 -1.129257 0.884141
-v -2.236201 -1.048331 1.005223
-v -2.309773 -1.013897 1.009901
-v -2.362653 -1.023664 0.992213
-v -2.406385 -1.073603 0.932751
-v -2.389286 -0.997718 0.855805
-v -2.346204 -0.942460 0.904935
-v -2.287138 -0.923640 0.922986
-v -2.217926 -0.941305 0.903746
-v -2.178340 -1.008156 0.842846
-v -2.366738 -1.068709 0.800301
-v -2.223126 -1.051406 0.802474
-v -2.286362 -1.080797 0.783229
-v -2.394866 -0.915622 0.785825
-v -2.343490 -0.841171 0.823491
-v -2.264115 -0.820155 0.831033
-v -2.207612 -0.853387 0.805916
-v -2.371685 -0.996256 0.739739
-v -2.286616 -0.993170 0.709204
-v -2.223897 -0.954219 0.719138
-v -2.185849 -0.910432 0.749697
-v -2.424089 -0.819443 0.715228
-v -2.339042 -0.757233 0.759124
-v -2.244227 -0.766681 0.766023
-v -2.427818 -0.932737 0.723020
-v -2.509179 -0.872952 0.673194
-v -2.574464 -0.892686 0.616013
-v -2.610360 -0.917082 0.507947
-v -2.600772 -0.993303 0.470028
-v -2.648952 -0.938746 0.430020
-v -2.390769 -0.995162 0.706181
-v -2.528401 -1.026101 0.442822
-v -2.705450 -0.961026 0.341128
-v -2.712309 -0.989042 0.271247
-v -2.671654 -1.019840 0.235219
-v -2.586576 -1.035443 0.227840
-v -2.496489 -1.047931 0.277691
-v -2.462925 -1.029882 0.365693
-v -2.448852 -1.028639 0.424189
-v -2.382734 -1.023871 0.508831
-v -2.333352 -1.002741 0.581947
-v -2.344811 -1.009033 0.654934
-v -2.267631 -0.947789 0.638904
-v -2.219001 -0.913376 0.670577
-v -2.181780 -0.860039 0.699574
-v -2.203290 -0.802855 0.748007
-v -2.549359 -0.797719 0.535251
-v -2.497888 -0.770945 0.595589
-v -2.585326 -0.817174 0.468758
-v -2.622653 -0.826266 0.389460
-v -2.660586 -0.840540 0.283982
-v -2.665172 -0.885657 0.215745
-v -2.310264 -0.694181 0.691931
-v -2.223202 -0.712268 0.710501
-v -2.420527 -0.726001 0.649229
-v -2.183692 -0.747865 0.704595
-v -2.167818 -0.810590 0.667957
-v -2.197701 -0.857120 0.621152
-v -2.247393 -0.876634 0.569736
-v -2.305819 -0.892561 0.523184
-v -2.359446 -0.916353 0.477552
-v -2.423577 -0.951605 0.399456
-v -2.440742 -0.968404 0.334558
-v -2.485622 -0.978877 0.254820
-v -2.555184 -0.971246 0.198759
-v -2.627858 -0.936401 0.180120
-v -2.537881 -0.644137 0.387478
-v -2.478510 -0.616886 0.467050
-v -2.579527 -0.685636 0.302305
-v -2.604701 -0.733623 0.211598
-v -2.605230 -0.781530 0.141668
-v -2.402414 -0.594356 0.547250
-v -2.281770 -0.602176 0.625111
-v -2.189153 -0.646525 0.652126
-v -2.253877 -0.529620 0.556286
-v -2.153677 -0.577930 0.609574
-v -2.178499 -0.478541 0.436263
-v -2.083875 -0.523671 0.503109
-v -2.013054 -0.569685 0.552671
-v -2.081981 -0.625236 0.621936
-v -2.100171 -0.695604 0.636647
-v -2.148044 -0.712735 0.660512
-v -2.360111 -0.515446 0.462613
-v -2.428555 -0.533780 0.369823
-v -2.471238 -0.550995 0.307399
-v -2.511336 -0.586927 0.224919
-v -2.526870 -0.646474 0.144826
-v -2.525414 -0.709966 0.098136
-v -2.416027 -0.681310 0.068953
-v -2.436781 -0.597567 0.107413
-v -2.414046 -0.554953 0.151239
-v -2.368743 -0.519636 0.214872
-v -2.318974 -0.495754 0.267274
-v -2.260166 -0.480760 0.332756
-v -2.550383 -0.851041 0.107283
-v -2.488975 -0.771522 0.070085
-v -2.424307 -0.837553 0.062914
-v -2.353430 -0.870423 0.115255
-v -2.327793 -0.764165 0.075363
-v -2.478880 -0.900067 0.113551
-v -2.404709 -0.933178 0.174661
-v -2.345137 -0.637419 0.091250
-v -2.377595 -0.606598 0.098238
-v -2.274565 -0.753040 0.166661
-v -2.301123 -0.848137 0.218732
-v -2.345961 -0.914974 0.267970
-v -2.341564 -0.851619 0.388387
-v -2.287622 -0.792734 0.325587
-v -2.263828 -0.710314 0.246365
-v -2.315680 -0.614567 0.127279
-v -2.307512 -0.863165 0.427497
-v -2.177859 -0.727738 0.269228
-v -2.157067 -0.602121 0.217346
-v -2.268923 -0.606123 0.173283
-v -2.108341 -0.738600 0.297560
-v -2.081400 -0.600647 0.273802
-v -2.255818 -0.862594 0.474459
-v -2.204501 -0.855035 0.517149
-v -2.140364 -0.833654 0.443806
-v -2.188514 -0.831705 0.384859
-v -2.052571 -0.737490 0.370660
-v -2.000765 -0.625660 0.354304
-v -2.000955 -0.761041 0.466470
-v -1.934257 -0.672707 0.452990
-v -1.915706 -0.814327 0.564952
-v -2.061878 -0.806358 0.530192
-v -1.964868 -0.842302 0.604239
-v -1.867750 -0.719927 0.551639
-v -2.161158 -0.818326 0.581649
-v -2.136009 -0.770873 0.631593
-v -2.092478 -0.764335 0.614325
-v -2.000506 -0.807326 0.670819
-v -2.245679 -0.807064 0.356339
-v -1.827464 -0.845028 0.657677
-v -1.786676 -0.767718 0.638740
-v -1.867191 -0.865969 0.692278
-v -1.887626 -0.845629 0.755711
-v -1.805098 -0.832068 0.784204
-v -1.783768 -0.848174 0.765672
-v -1.940677 -0.598623 0.485857
-v -2.012368 -0.548093 0.393019
-v -1.881897 -0.667506 0.593401
-v -1.812243 -0.707915 0.688828
-v -1.738897 -0.799952 0.739523
-v -1.751713 -0.765651 0.765549
-v -2.094538 -0.521529 0.297807
-v -2.192826 -0.518375 0.234439
-v -1.918831 -0.637958 0.649504
-v -1.976174 -0.671937 0.703105
-v -2.000242 -0.738074 0.712447
-v -1.848448 -0.680772 0.742335
-v -1.783242 -0.741103 0.801898
-v -1.808573 -0.764436 0.818757
-v -1.901390 -0.705916 0.775427
-v -1.904679 -0.777936 0.797654
-v -1.815814 -0.790317 0.811131
-v -1.763151 -0.841544 0.748430
-v -2.347207 -0.559788 0.129472
-v -2.307997 -0.536935 0.165017
-v -2.252801 -0.527764 0.214822
-v 0.005871 1.350316 -0.886750
-v 0.005794 1.509556 -0.750557
-v -0.230159 1.487532 -0.696821
-v -0.314581 1.329661 -0.836396
-v -0.683046 1.400683 -0.479693
-v -0.579118 1.269061 -0.723955
-v -0.768313 1.267839 -0.243274
-v -0.971293 1.138016 -0.368971
-v -1.058050 0.971981 -0.062842
-v -0.794241 1.114513 0.056744
-v -0.671219 0.854235 0.431629
-v -0.895077 0.738257 0.291984
-v -0.719383 0.447928 0.550785
-v -0.490260 0.515998 0.734879
-v -0.579876 0.260665 0.735616
-v -0.430451 0.102704 0.816277
-v -0.113326 0.000598 0.850271
-v -0.083679 0.118230 0.853136
-v -0.015855 0.091041 0.837372
-v -0.307020 1.248611 -0.843372
-v 0.005866 1.294734 -0.860496
-v -0.652605 1.135162 -0.673574
-v -0.971306 1.045959 -0.410787
-v -1.059102 0.881727 -0.097164
-v -0.908709 0.636424 0.252632
-v -0.707832 0.396231 0.475815
-v -0.566424 0.201403 0.651966
-v -0.441262 0.075824 0.725701
-v -0.305432 0.299573 0.828785
-v -1.264273 0.449619 0.275725
-v -1.281271 0.652920 0.175265
-v -0.238207 0.004903 0.845752
-v -0.226736 -0.033969 0.778462
-v -0.164620 0.154770 0.829124
-v -1.450284 0.420262 0.104539
-v -1.442443 0.565737 0.046512
-v -1.446624 0.708076 -0.183093
-v -1.273035 0.828200 -0.068799
-v -1.290098 0.861782 -0.369297
-v -1.460551 0.699653 -0.376201
-v -1.256266 0.683005 -0.673151
-v -0.975317 0.700042 -0.761768
-v -1.483624 0.569905 -0.558964
-v -0.683539 0.813690 -0.893767
-v -0.337936 0.880196 -1.029625
-v -0.974975 0.018739 0.413563
-v -1.229840 0.003148 0.245975
-v -1.466634 0.226995 0.095106
-v -0.821318 -0.034281 0.642277
-v -0.575419 -0.099591 0.805859
-v -1.484793 0.102000 -0.021613
-v -1.255179 -0.222439 0.072717
-v -0.982571 -0.194876 0.292810
-v -0.844321 -0.236894 0.624393
-v -0.990468 -0.510053 0.177612
-v -0.851905 -0.521837 0.443191
-v -0.575437 -0.299562 0.798491
-v -0.560033 -0.566355 0.629068
-v -1.067357 -0.494972 -0.089793
-v -1.255251 -0.299210 -0.147273
-v -1.503932 0.022977 -0.207091
-v -1.297577 -0.272873 -0.389768
-v -1.517021 0.011888 -0.384834
-v -1.059565 -0.462426 -0.328270
-v -1.503195 0.409195 -0.653951
-v -1.306871 0.447673 -0.799188
-v -0.982923 0.400342 -0.920459
-v -0.706571 0.476526 -1.059169
-v -1.514100 0.259092 -0.635129
-v -1.340806 0.191881 -0.813115
-v -1.005924 0.072092 -0.981793
-v -0.668182 0.052303 -1.110986
-v -1.520687 0.094939 -0.536706
-v -1.323278 -0.184984 -0.654645
-v -1.005794 -0.465433 -0.517988
-v -0.890649 -0.493516 -0.751131
-v -0.967494 -0.222311 -0.895411
-v -0.264748 -0.313173 0.820315
-v -0.260650 -0.580764 0.655200
-v -0.218461 -0.117979 0.869238
-v -0.237337 -0.327314 0.863791
-v -0.222232 -0.586704 0.696068
-v -0.191357 -0.150269 0.904556
-v 0.005364 -0.315405 0.858149
-v 0.005457 -0.589347 0.685468
-v 0.005316 -0.133456 0.920082
-v -0.247770 -1.050193 0.587406
-v -0.227110 -1.050193 0.632155
-v 0.005533 -1.050193 0.635950
-v -0.523816 -1.050193 0.528375
-v -0.765391 -1.050193 0.346402
-v -0.910538 -1.050193 0.092123
-v -0.965729 -1.050193 -0.051231
-v -0.924493 -1.050193 -0.276600
-v -0.841683 -1.050193 -0.479414
-v -0.683050 -1.050193 -0.591581
-v -0.598871 -0.513304 -0.905545
-v -0.482841 -1.050193 -0.675985
-v -0.276200 -0.531424 -0.847437
-v -0.241316 -1.050193 -0.682554
-v 0.006059 -0.522779 -0.788372
-v 0.006070 -1.050193 -0.661753
-v 0.006080 -0.219938 -0.930094
-v -0.284095 -0.283002 -0.979762
-v -0.629752 -0.279562 -1.031320
-v -0.299547 0.043960 -1.080583
-v 0.006082 0.078030 -1.022972
-v -0.314676 0.464315 -1.111950
-v 0.006063 0.469219 -1.090899
-v 0.005963 0.902086 -0.979942
-v -0.460183 0.537306 0.671402
-v 0.005331 0.735450 0.596979
-v -0.253174 0.680348 0.593082
-v -0.230448 0.596824 0.567254
-v -0.139901 0.494053 0.637261
-v -0.212076 0.255629 0.760477
-v -0.205948 0.633167 0.648864
-v -0.163725 0.590859 0.679038
-v 0.005312 0.669281 0.661733
-v 0.005304 0.613366 0.699080
-v -0.116562 0.553907 0.718480
-v 0.005300 0.567695 0.721305
-v 0.005306 0.503277 0.724248
-v -0.093794 0.504960 0.734658
-v 0.005284 0.466889 0.788759
-v -0.082156 0.449112 0.835016
-v 0.058049 0.409838 0.845554
-v -0.076109 0.365167 0.873382
-v 0.005269 0.393053 0.845671
-v -0.052654 0.277769 0.845836
-v 0.005282 0.295467 0.844612
-v -0.040825 0.156195 0.750323
-v 0.005335 0.142873 0.760661
-v -0.123287 0.175650 0.745024
-v -0.158815 0.403239 0.819261
-v -0.164620 0.325203 0.827535
-v -0.146974 0.251422 0.794659
-v -0.204503 0.385189 0.724463
-v -0.221561 0.304589 0.750982
-v -0.679385 0.672255 0.427805
-v -0.689430 0.755538 0.461203
-v -0.015858 0.055510 0.895520
-v -0.101357 -0.017956 0.912395
-v -0.154776 -0.041510 0.829106
-v -0.329893 0.573922 0.601969
-v -0.368884 0.611846 0.630954
-v -0.467186 1.451970 -0.623335
-v -0.839667 1.212862 -0.586894
-v -0.832378 1.093661 -0.565896
-v -0.570278 0.897431 0.376321
-v 0.581082 0.897572 0.376798
-v 0.843916 1.093866 -0.565202
-v 0.851192 1.213069 -0.586193
-v 0.478684 1.452086 -0.622943
-v 0.379547 0.611937 0.631264
-v 0.340591 0.574004 0.602248
-v 0.144874 -0.048734 0.829222
-v 0.700199 0.755708 0.461779
-v 0.690202 0.672423 0.428372
-v 0.222513 0.345768 0.751162
-v 0.200631 0.413666 0.724638
-v 0.156985 0.239364 0.794786
-v 0.174586 0.313148 0.827675
-v 0.175180 0.359140 0.828801
-v 0.154858 0.431705 0.819397
-v 0.133964 0.175682 0.745131
-v 0.051502 0.156206 0.750361
-v 0.063221 0.277783 0.845884
-v 0.086027 0.328295 0.873449
-v 0.104398 0.504984 0.734740
-v 0.127167 0.553937 0.718581
-v 0.174354 0.590901 0.679179
-v 0.222719 0.255682 0.760657
-v 0.150589 0.494088 0.637382
-v 0.241168 0.596882 0.567449
-v 0.263853 0.680412 0.593296
-v 0.470832 0.537420 0.671788
-v 0.326821 0.464394 -1.111685
-v 0.311768 0.044035 -1.080330
-v 0.642012 -0.279407 -1.030793
-v 0.296311 -0.282931 -0.979520
-v 0.253475 -1.050132 -0.682349
-v 0.288369 -0.531354 -0.847203
-v 0.494995 -1.050073 -0.675580
-v 0.611083 -0.513156 -0.905044
-v 0.695133 -1.050024 -0.591010
-v 0.853673 -1.049985 -0.478712
-v 0.936315 -1.049965 -0.275828
-v 0.977364 -1.049954 -0.050425
-v 0.922055 -1.049969 0.092882
-v 0.776698 -1.050004 0.347041
-v 0.534972 -1.050063 0.528814
-v 0.238180 -1.050136 0.632347
-v 0.201981 -0.150221 0.841819
-v 0.233136 -0.586649 0.696257
-v 0.248038 -0.327255 0.801093
-v 0.979627 -0.222072 -0.894605
-v 0.902728 -0.493296 -0.750388
-v 1.017673 -0.465185 -0.517149
-v 1.335201 -0.184659 -0.653543
-v 1.532444 0.095313 -0.535441
-v 0.680426 0.052467 -1.110427
-v 1.018056 0.072340 -0.980954
-v 1.352770 0.192210 -0.811999
-v 1.525898 0.259465 -0.633870
-v 0.718668 0.476700 -1.058578
-v 0.994924 0.400584 -0.919639
-v 1.318759 0.447995 -0.798100
-v 1.514973 0.409564 -0.652701
-v 1.071286 -0.462165 -0.327387
-v 1.528672 0.012261 -0.383571
-v 1.309303 -0.272554 -0.388688
-v 1.515433 0.023346 -0.205840
-v 1.266781 -0.298901 -0.146228
-v 1.078889 -0.494709 -0.088904
-v 0.570987 -0.566217 0.629537
-v 0.586174 -0.293977 0.749379
-v 0.863001 -0.521627 0.443902
-v 1.001782 -0.509809 0.178438
-v 0.855187 -0.231242 0.575504
-v 0.993712 -0.194634 0.293629
-v 1.266509 -0.222131 0.073762
-v 1.496121 0.102365 -0.020379
-v 0.586111 -0.099449 0.806340
-v 0.832131 -0.034078 0.642962
-v 1.477835 0.227355 0.096326
-v 1.240971 0.003451 0.247000
-v 0.985964 0.018979 0.414374
-v 0.349911 0.880279 -1.029341
-v 0.695416 0.813859 -0.893196
-v 1.495284 0.570270 -0.557729
-v 0.987112 0.700282 -0.760954
-v 1.267992 0.683313 -0.672106
-v 1.472026 0.700012 -0.374986
-v 1.301529 0.862098 -0.368223
-v 1.284224 0.828513 -0.067739
-v 1.457939 0.708432 -0.181889
-v 1.453604 0.566091 0.047712
-v 1.461431 0.420618 0.105745
-v 0.175231 0.154811 0.847408
-v 0.237436 -0.033912 0.778655
-v 0.248842 0.004963 0.845954
-v 1.292302 0.653235 0.176332
-v 1.275270 0.449930 0.276777
-v 0.316008 0.299649 0.829042
-v 0.451978 0.075933 0.726070
-v 0.577170 0.201544 0.652441
-v 0.718677 0.396405 0.476406
-v 0.919680 0.636648 0.253389
-v 1.070302 0.881988 -0.096281
-v 0.982726 1.046199 -0.409978
-v 0.664222 1.135323 -0.673029
-v 0.318749 1.248687 -0.843113
-v 0.094279 0.118251 0.871354
-v 0.102794 -0.018127 0.850352
-v 0.441085 0.102810 0.816639
-v 0.590539 0.260809 0.736101
-v 0.500861 0.516120 0.735289
-v 0.730153 0.448106 0.551386
-v 0.905990 0.738477 0.292730
-v 0.681988 0.854401 0.432190
-v 0.805257 1.114709 0.057407
-v 1.069200 0.972241 -0.061961
-v 0.982655 1.138255 -0.368162
-v 0.779540 1.268028 -0.242634
-v 0.590744 1.269204 -0.723469
-v 0.694437 1.400852 -0.479121
-v 0.326285 1.329739 -0.836131
-v 0.241708 1.487589 -0.696626
-v 0.072890 0.137229 0.801786
-v -0.045793 -0.058932 0.871513
-v 0.071877 0.210342 0.798123
-v -0.046740 0.216982 0.798079
-v 0.005300 0.244603 0.816629
-v 0.019833 0.187086 0.788645
-v 0.159937 0.702535 0.594777
-v 0.000000 -0.773452 0.713246
-v -0.059247 -0.792610 0.711362
-v -0.095865 -0.842765 0.706430
-v -0.095868 -0.904763 0.700334
-v -0.059254 -0.954921 0.695401
-v -0.000009 -0.974084 0.693517
-v 0.059240 -0.954932 0.695400
-v 0.095863 -0.904780 0.700331
-v 0.095872 -0.842783 0.706428
-v 0.059262 -0.792621 0.711361
-v 0.000000 -0.768140 0.659227
-v -0.059247 -0.787297 0.657343
-v -0.095865 -0.837453 0.652411
-v -0.095868 -0.899451 0.646314
-v -0.059254 -0.949610 0.641382
-v -0.000009 -0.968772 0.639498
-v 0.059240 -0.949620 0.641381
-v 0.095863 -0.899469 0.646312
-v 0.095872 -0.837471 0.652409
-v 0.059262 -0.787309 0.657342
-v 0.000000 -0.129937 0.958315
-v -0.059247 -0.148387 0.952823
-v -0.095865 -0.196689 0.938444
-v -0.095868 -0.256397 0.920671
-v -0.059254 -0.304703 0.906292
-v -0.000009 -0.323158 0.900798
-v 0.059240 -0.304714 0.906288
-v 0.095863 -0.256414 0.920666
-v 0.095872 -0.196707 0.938440
-v 0.059262 -0.148397 0.952820
-v 0.059262 -0.132912 0.900796
-v 0.095872 -0.181220 0.886416
-v 0.095863 -0.240928 0.868642
-v 0.059240 -0.289227 0.854265
-v -0.000009 -0.307672 0.848775
-v -0.059254 -0.289217 0.854268
-v -0.095868 -0.240911 0.868648
-v -0.095865 -0.181204 0.886421
-v -0.059247 -0.132901 0.900799
-v 0.000000 -0.114451 0.906291
-v 0.000000 -0.451627 0.806734
-v -0.059247 -0.469299 0.799102
-v -0.095865 -0.515567 0.779122
-v -0.095868 -0.572759 0.754424
-v -0.059254 -0.619030 0.734443
-v -0.000009 -0.636707 0.726808
-v 0.059240 -0.619040 0.734438
-v 0.095863 -0.572775 0.754417
-v 0.095872 -0.515584 0.779115
-v 0.059262 -0.469310 0.799098
-v 0.059262 -0.447790 0.749266
-v 0.095872 -0.494065 0.729284
-v 0.095863 -0.551256 0.704586
-v 0.059240 -0.597520 0.684607
-v -0.000009 -0.615188 0.676977
-v -0.059254 -0.597510 0.684611
-v -0.095868 -0.551239 0.704593
-v -0.095865 -0.494048 0.729290
-v -0.059247 -0.447780 0.749271
-v 0.000000 -0.430108 0.756902
-v -1.306815 0.345572 0.221760
-v -1.970246 -0.004896 0.119119
-v -1.306815 0.150297 0.182917
-v -1.885066 -0.135583 0.088089
-v -1.306815 -0.015248 0.072303
-v -1.812853 -0.246374 -0.000274
-v -1.306815 -0.125862 -0.093242
-v -1.764602 -0.320402 -0.132520
-v -1.306815 -0.164704 -0.288516
-v -1.747659 -0.346397 -0.288516
-v -1.306815 -0.125862 -0.483790
-v -1.764602 -0.320402 -0.444511
-v -1.306815 -0.015248 -0.649335
-v -1.812853 -0.246374 -0.576757
-v -1.306815 0.150297 -0.759949
-v -1.885066 -0.135583 -0.665122
-v -1.306815 0.345572 -0.798791
-v -1.970246 -0.004896 -0.696151
-v -1.306814 0.540847 -0.759949
-v -2.055427 0.125790 -0.665122
-v -1.306815 0.706392 -0.649335
-v -2.127640 0.236580 -0.576757
-v -1.306815 0.817006 -0.483790
-v -2.175889 0.310608 -0.444511
-v -1.306814 0.855849 -0.288516
-v -2.192834 0.336604 -0.288516
-v -1.306815 0.817006 -0.093242
-v -2.175889 0.310608 -0.132520
-v -1.306815 0.706392 0.072303
-v -2.127640 0.236580 -0.000274
-v -1.306814 0.540847 0.182917
-v -2.055427 0.125790 0.088089
-v -1.129849 0.186960 0.094406
-v -1.129849 0.345572 0.125957
-v -1.129849 0.504185 0.094406
-v -1.129849 0.638649 0.004560
-v -1.129849 0.728495 -0.129904
-v -1.129849 0.760046 -0.288516
-v -1.129849 0.728495 -0.447127
-v -1.129849 0.638649 -0.581593
-v -1.129849 0.504185 -0.671439
-v -1.129849 0.345572 -0.702988
-v -1.129849 0.186960 -0.671439
-v -1.129848 0.052495 -0.581593
-v -1.129849 -0.037351 -0.447127
-v -1.129849 -0.068901 -0.288516
-v -1.129849 -0.037351 -0.129904
-v -1.129848 0.052495 0.004560
-v -2.157869 0.024060 0.017383
-v -2.088680 -0.082091 0.042586
-v -2.019492 -0.188241 0.017383
-v -1.960838 -0.278231 -0.054391
-v -1.921646 -0.338360 -0.161808
-v -1.907883 -0.359475 -0.288516
-v -1.921646 -0.338360 -0.415223
-v -1.960838 -0.278231 -0.522641
-v -2.019492 -0.188241 -0.594414
-v -2.088680 -0.082091 -0.619618
-v -2.157869 0.024060 -0.594414
-v -2.216522 0.114050 -0.522641
-v -2.255715 0.174179 -0.415223
-v -2.269477 0.195294 -0.288516
-v -2.255715 0.174179 -0.161808
-v -2.216522 0.114050 -0.054391
-v -0.996819 0.125302 -0.288516
-v -0.996819 0.142069 -0.204222
-v -0.996818 0.189817 -0.132761
-v -0.996819 0.261278 -0.085012
-v -0.996819 0.345572 -0.068245
-v -0.996819 0.429866 -0.085012
-v -0.996819 0.501327 -0.132761
-v -0.996819 0.549076 -0.204222
-v -0.996818 0.565843 -0.288516
-v -0.996819 0.549076 -0.372810
-v -0.996819 0.501327 -0.444271
-v -0.996819 0.429866 -0.492019
-v -0.996819 0.345572 -0.508787
-v -0.996819 0.261278 -0.492019
-v -0.996818 0.189817 -0.444271
-v -0.996819 0.142069 -0.372810
-v -2.273794 0.007296 -0.288516
-v -2.266481 -0.003926 -0.221178
-v -2.245652 -0.035882 -0.164091
-v -2.214481 -0.083707 -0.125947
-v -2.177710 -0.140120 -0.112552
-v -2.140941 -0.196534 -0.125947
-v -2.109768 -0.244358 -0.164091
-v -2.088939 -0.276313 -0.221178
-v -2.081625 -0.287535 -0.288516
-v -2.088939 -0.276313 -0.355854
-v -2.109768 -0.244358 -0.412941
-v -2.140941 -0.196534 -0.451085
-v -2.177710 -0.140120 -0.464479
-v -2.214481 -0.083707 -0.451085
-v -2.245652 -0.035882 -0.412941
-v -2.266481 -0.003926 -0.355854
-v -1.653766 0.213423 -0.761987
-v -1.528826 -0.097187 -0.623311
-v -1.586149 0.045322 -0.725946
-v -1.490524 -0.192409 -0.469705
-v -1.477075 -0.225847 -0.288516
-v -1.490524 -0.192409 -0.107326
-v -1.528826 -0.097187 0.046279
-v -1.653766 0.213423 0.184955
-v -1.721383 0.381524 -0.725946
-v -1.778707 0.524033 -0.623311
-v -1.817008 0.619255 -0.469705
-v -1.830458 0.652692 -0.288516
-v -1.586149 0.045322 0.148915
-v -1.721383 0.381524 0.148915
-v -1.778707 0.524033 0.046279
-v -1.817008 0.619255 -0.107326
-v -0.187055 2.266492 -0.830954
-v -0.307165 2.256252 -0.795770
-v -0.275750 2.130272 -0.708268
-v -0.165536 2.164839 -0.745132
-v -0.416054 2.233526 -0.707535
-v -0.375172 2.106480 -0.631685
-v -0.332168 2.112302 -0.574402
-v -0.255211 2.115301 -0.630751
-v -0.282781 2.130503 -0.506869
-v -0.225401 2.127288 -0.546128
-v -0.140936 2.120265 -0.585217
-v -0.155660 2.119535 -0.668215
-v -0.000003 2.123183 -0.608480
-v -0.000003 2.125899 -0.679678
-v -0.000003 2.188265 -0.757535
-v -0.357403 2.143732 -0.325303
-v -0.456495 2.092493 -0.351798
-v -0.365545 2.157311 -0.180326
-v -0.477658 2.075927 -0.182708
-v -0.490667 2.099245 -0.364174
-v -0.559558 2.137107 -0.382321
-v -0.584213 2.082423 -0.187098
-v -0.331433 2.169831 -0.022672
-v -0.444102 2.059856 0.004349
-v -0.572342 2.028578 0.054001
-v -0.368743 2.073967 0.157892
-v -0.270796 2.178771 0.073647
-v -0.525207 2.023368 0.249290
-v -0.270059 2.098032 0.306985
-v -0.184110 2.185215 0.159225
-v -0.361582 2.032398 0.460733
-v -0.134358 2.108360 0.392918
-v -0.088376 2.188799 0.202757
-v -0.172453 2.054771 0.560306
-v -0.000003 2.074469 0.590607
-v -0.000003 2.126771 0.430511
-v -0.000003 2.190238 0.220239
-v -0.000003 2.314345 0.148359
-v -0.068840 2.313591 0.139325
-v -0.164300 2.311724 0.116824
-v -0.259930 2.306543 0.053917
-v -0.319551 2.299504 -0.031675
-v -0.348133 2.288781 -0.182719
-v -0.000003 2.331478 0.111529
-v -0.061697 2.331009 0.105825
-v -0.141287 2.330283 0.096967
-v -0.232529 2.325469 0.038313
-v -0.288508 2.318822 -0.042673
-v -0.321829 2.308118 -0.184972
-v -0.274703 2.446806 -0.135981
-v -0.269132 2.368203 -0.059092
-v -0.219577 2.347112 0.022226
-v -0.143629 2.352897 0.085565
-v -0.083852 2.385100 0.091435
-v -0.000003 2.475193 0.078617
-v -0.034377 2.471488 0.070723
-v -0.000003 2.529076 0.063453
-v -0.052778 2.589062 0.027810
-v -0.000003 2.593226 0.045823
-v -0.231926 2.551207 -0.149294
-v -0.236104 2.524531 -0.126932
-v -0.167844 2.554747 -0.069549
-v -0.172808 2.566792 -0.090474
-v -0.270298 2.535848 -0.222707
-v -0.214794 2.451369 -0.086163
-v -0.200965 2.481547 -0.095247
-v -0.297585 2.436957 -0.204284
-v -0.212741 2.422400 -0.059109
-v -0.190850 2.409340 -0.038957
-v -0.143504 2.406895 0.017759
-v -0.108672 2.426237 0.031275
-v -0.084524 2.464651 0.025772
-v -0.090089 2.490066 0.011783
-v -0.158692 2.504199 -0.068212
-v -0.106213 2.505291 -0.027466
-v -0.116351 2.566703 -0.024061
-v -0.289382 2.421385 -0.315811
-v -0.306346 2.296294 -0.312567
-v -0.264686 2.511813 -0.319604
-v -0.340922 2.275133 -0.322756
-v -0.199429 2.489064 -0.454855
-v -0.227903 2.408700 -0.465839
-v -0.243891 2.284107 -0.465687
-v -0.266485 2.261437 -0.495266
-v -0.117067 2.479218 -0.506783
-v -0.134608 2.394988 -0.515476
-v -0.142866 2.279294 -0.524343
-v -0.144913 2.255870 -0.562777
-v -0.000002 2.474760 -0.533879
-v -0.000003 2.363637 -0.541105
-v -0.000003 2.277023 -0.552013
-v -0.000003 2.253343 -0.593054
-v -0.115745 2.578044 -0.026483
-v -0.076421 2.271080 -0.883770
-v -0.186467 2.258181 -0.867070
-v -0.323573 2.230726 -0.827995
-v -0.438511 2.202117 -0.741865
-v -0.583805 2.102863 -0.390400
-v -0.590179 2.049013 -0.201652
-v -0.073463 2.041224 -0.691972
-v -0.000006 2.276473 -0.888545
-v -0.000003 2.050756 -0.704198
-v -0.276607 2.034031 -0.657899
-v -0.349043 2.021079 -0.599987
-v -0.472554 2.008581 -0.403932
-v -0.546260 2.003182 -0.188603
-v -0.568457 1.993456 0.058454
-v -0.529835 1.985792 0.243535
-v -0.362883 1.994985 0.460745
-v -0.171034 2.017905 0.562681
-v -0.000006 2.287348 -0.856320
-v -0.165526 2.038810 -0.683024
-v -0.000003 2.033740 0.590387
-v -0.074233 2.281730 -0.851712
-v -0.061340 2.184875 -0.757808
-v -0.059998 2.123521 -0.680952
-v -0.051630 2.119174 -0.607491
-v -0.052988 2.253605 -0.590108
-v -0.050606 2.379312 -0.538447
-v -0.041029 2.474888 -0.531423
-v -0.054734 2.277817 -0.544933
-v -0.000004 2.155687 -0.801841
-v -0.075099 2.152738 -0.797716
-v -0.176401 2.134409 -0.780258
-v -0.304524 2.102540 -0.736486
-v -0.400085 2.073691 -0.645952
-v -0.524007 2.040989 -0.421974
-v -0.585190 2.010457 -0.192246
-v -0.112495 2.072145 -0.555111
-v -0.049602 2.078440 -0.555665
-v 0.000000 2.072443 -0.553211
-v 0.000000 2.070849 0.325681
-v -0.115623 2.066716 0.315310
-v -0.247108 2.047304 0.245782
-v -0.370089 2.043509 0.107071
-v -0.399468 2.045435 -0.028610
-v -0.372184 2.055371 -0.197122
-v -0.321911 2.059052 -0.343992
-v -0.237668 2.067577 -0.497052
-v -0.188260 2.071930 -0.536908
-v -0.106857 2.584080 -0.050059
-v -0.048643 2.594127 -0.000307
-v -0.000003 2.597942 0.016200
-v -0.000003 2.489383 -0.515020
-v -0.037877 2.489501 -0.512770
-v -0.107555 2.493468 -0.490190
-v -0.183029 2.502492 -0.442605
-v -0.248069 2.523338 -0.312946
-v -0.247972 2.545363 -0.229872
-v -0.212809 2.559437 -0.162598
-v -0.158635 2.573972 -0.108696
-v -0.559769 2.147902 -0.543134
-v -0.515805 2.172402 -0.639867
-v -0.530742 2.180394 -0.525645
-v -0.488671 2.204352 -0.612968
-v -0.464038 2.108914 -0.492682
-v -0.425169 2.107697 -0.563172
-v -0.422101 2.099096 -0.462699
-v -0.382699 2.105699 -0.526132
-v -0.316186 2.134912 -0.454478
-v -0.338464 2.139323 -0.400769
-v -0.326496 2.270567 -0.385534
-v -0.302054 2.266002 -0.441059
-v -0.465093 2.026070 0.368527
-v -0.321626 2.085999 0.241009
-v -0.285690 2.290201 -0.392423
-v -0.269214 2.415043 -0.394122
-v -0.242628 2.500440 -0.390526
-v -0.226120 2.512916 -0.381072
-v -0.229679 2.181993 0.125006
-v -0.214341 2.309134 0.093941
-v -0.189134 2.327876 0.076211
-v -0.183829 2.350005 0.062466
-v -0.467501 1.988574 0.367633
-v -0.583492 2.018210 -0.069292
-v -0.582450 2.052476 -0.064241
-v -0.552947 2.023555 0.160216
-v -0.554710 1.987205 0.159895
-v -0.275861 2.005235 0.518965
-v -0.275919 2.042375 0.517772
-v -0.053443 2.419649 0.083914
-v -0.034289 2.540361 0.047355
-v -0.047627 2.552094 0.038776
-v 0.165536 2.164839 -0.745132
-v 0.275750 2.130272 -0.708268
-v 0.307165 2.256252 -0.795770
-v 0.187055 2.266492 -0.830954
-v 0.375172 2.106480 -0.631685
-v 0.416054 2.233526 -0.707535
-v 0.255211 2.115301 -0.630751
-v 0.332168 2.112302 -0.574402
-v 0.225401 2.127288 -0.546128
-v 0.282781 2.130503 -0.506869
-v 0.155660 2.119535 -0.668215
-v 0.140936 2.120265 -0.585217
-v 0.051630 2.119174 -0.607491
-v 0.059998 2.123521 -0.680952
-v 0.061340 2.184875 -0.757808
-v 0.316186 2.134912 -0.454478
-v 0.382699 2.105699 -0.526132
-v 0.477658 2.075927 -0.182708
-v 0.456495 2.092493 -0.351798
-v 0.357403 2.143732 -0.325303
-v 0.365545 2.157311 -0.180326
-v 0.490667 2.099245 -0.364174
-v 0.425169 2.107697 -0.563172
-v 0.488671 2.204352 -0.612968
-v 0.584213 2.082423 -0.187098
-v 0.559558 2.137107 -0.382321
-v 0.444102 2.059856 0.004349
-v 0.331433 2.169831 -0.022672
-v 0.572342 2.028578 0.054001
-v 0.582450 2.052476 -0.064241
-v 0.270796 2.178771 0.073647
-v 0.368743 2.073967 0.157892
-v 0.525207 2.023368 0.249290
-v 0.552947 2.023555 0.160216
-v 0.229679 2.181993 0.125006
-v 0.321626 2.085999 0.241009
-v 0.465093 2.026070 0.368527
-v 0.088376 2.188799 0.202757
-v 0.134358 2.108360 0.392918
-v 0.270059 2.098032 0.306985
-v 0.184110 2.185215 0.159225
-v 0.172453 2.054771 0.560306
-v 0.275919 2.042375 0.517772
-v 0.361582 2.032398 0.460733
-v 0.068840 2.313591 0.139325
-v 0.164300 2.311724 0.116824
-v 0.259930 2.306543 0.053917
-v 0.214341 2.309134 0.093941
-v 0.319551 2.299504 -0.031675
-v 0.348133 2.288781 -0.182719
-v 0.061697 2.331009 0.105825
-v 0.141287 2.330283 0.096967
-v 0.232529 2.325469 0.038313
-v 0.189134 2.327876 0.076211
-v 0.288508 2.318822 -0.042673
-v 0.321829 2.308118 -0.184972
-v 0.269132 2.368203 -0.059092
-v 0.274703 2.446806 -0.135981
-v 0.219577 2.347112 0.022226
-v 0.183829 2.350005 0.062466
-v 0.083852 2.385100 0.091435
-v 0.143629 2.352897 0.085565
-v 0.053443 2.419649 0.083914
-v 0.034377 2.471488 0.070723
-v 0.034289 2.540361 0.047355
-v 0.047627 2.552094 0.038776
-v 0.052778 2.589062 0.027810
-v 0.172808 2.566792 -0.090474
-v 0.167844 2.554747 -0.069549
-v 0.236104 2.524531 -0.126932
-v 0.231926 2.551207 -0.149294
-v 0.270298 2.535848 -0.222707
-v 0.200965 2.481547 -0.095247
-v 0.214794 2.451369 -0.086163
-v 0.297585 2.436957 -0.204284
-v 0.212741 2.422400 -0.059109
-v 0.190850 2.409340 -0.038957
-v 0.108672 2.426237 0.031275
-v 0.143504 2.406895 0.017759
-v 0.084524 2.464651 0.025772
-v 0.090089 2.490066 0.011783
-v 0.158692 2.504199 -0.068212
-v 0.106213 2.505291 -0.027466
-v 0.116351 2.566703 -0.024061
-v 0.306346 2.296294 -0.312567
-v 0.289382 2.421385 -0.315811
-v 0.264686 2.511813 -0.319604
-v 0.340922 2.275133 -0.322756
-v 0.269214 2.415043 -0.394122
-v 0.227903 2.408700 -0.465839
-v 0.199429 2.489064 -0.454855
-v 0.242628 2.500440 -0.390526
-v 0.243891 2.284107 -0.465687
-v 0.285690 2.290201 -0.392423
-v 0.266485 2.261437 -0.495266
-v 0.302054 2.266002 -0.441059
-v 0.134608 2.394988 -0.515476
-v 0.117067 2.479218 -0.506783
-v 0.142866 2.279294 -0.524343
-v 0.144913 2.255870 -0.562777
-v 0.041029 2.474888 -0.531423
-v 0.050606 2.379312 -0.538447
-v 0.054734 2.277817 -0.544933
-v 0.052988 2.253605 -0.590108
-v 0.115745 2.578044 -0.026483
-v 0.226120 2.512916 -0.381072
-v 0.183029 2.502492 -0.442605
-v 0.107555 2.493468 -0.490190
-v 0.037877 2.489501 -0.512770
-v 0.048643 2.594127 -0.000307
-v 0.106857 2.584080 -0.050059
-v 0.158635 2.573972 -0.108696
-v 0.212809 2.559437 -0.162598
-v 0.247972 2.545363 -0.229872
-v 0.248069 2.523338 -0.312946
-v 0.515805 2.172402 -0.639867
-v 0.438511 2.202117 -0.741865
-v 0.590179 2.049013 -0.201652
-v 0.583805 2.102863 -0.390400
-v 0.075099 2.152738 -0.797716
-v 0.076421 2.271080 -0.883770
-v 0.323573 2.230726 -0.827995
-v 0.400085 2.073691 -0.645952
-v 0.304524 2.102540 -0.736486
-v 0.559769 2.147902 -0.543134
-v 0.524007 2.040989 -0.421974
-v 0.585190 2.010457 -0.192246
-v 0.583492 2.018210 -0.069292
-v 0.529835 1.985792 0.243535
-v 0.554710 1.987205 0.159895
-v 0.467501 1.988574 0.367633
-v 0.362883 1.994985 0.460745
-v 0.275861 2.005235 0.518965
-v 0.171034 2.017905 0.562681
-v 0.568457 1.993456 0.058454
-v 0.074233 2.281730 -0.851712
-v 0.186467 2.258181 -0.867070
-v 0.176401 2.134409 -0.780258
-v 0.399468 2.045435 -0.028610
-v 0.370089 2.043509 0.107071
-v 0.247108 2.047304 0.245782
-v 0.115623 2.066716 0.315310
-v 0.049602 2.078440 -0.555665
-v 0.112495 2.072145 -0.555111
-v 0.188260 2.071930 -0.536908
-v 0.237668 2.067577 -0.497052
-v 0.321911 2.059052 -0.343992
-v 0.372184 2.055371 -0.197122
-v 0.073463 2.041224 -0.691972
-v 0.165526 2.038810 -0.683024
-v 0.276607 2.034031 -0.657899
-v 0.349043 2.021079 -0.599987
-v 0.472554 2.008581 -0.403932
-v 0.546260 2.003182 -0.188603
-v 0.530742 2.180394 -0.525645
-v 0.464038 2.108914 -0.492682
-v 0.422101 2.099096 -0.462699
-v 0.338464 2.139323 -0.400769
-v 0.326496 2.270567 -0.385534
-v -0.515127 1.874297 -0.461265
-v -0.512371 1.822589 -0.437378
-v -0.498180 1.964411 -0.439438
-v -0.476088 1.971013 -0.391472
-v -0.442861 1.954352 -0.331701
-v -0.387982 1.866606 -0.254715
-v -0.489640 1.791951 -0.386557
-v -0.456622 1.775527 -0.326952
-v -0.434545 1.773131 -0.287014
-v -0.473463 1.847951 -0.350158
-v -0.422196 1.883887 -0.408013
-v -0.395523 1.903794 -0.374814
-v -0.434768 1.799981 -0.137872
-v -0.374416 1.917079 -0.151280
-v -0.349714 2.001132 -0.154634
-v -0.611282 1.599814 -0.278646
-v -0.604132 1.674121 -0.132815
-v -0.583313 1.580479 -0.423823
-v -0.347973 2.140823 -0.227219
-v -0.430611 1.798772 -0.518312
-v -0.371463 1.815847 -0.544950
-v -0.423842 1.881654 -0.528425
-v -0.367647 1.877229 -0.532282
-v -0.404045 1.924808 -0.498587
-v -0.359140 1.907618 -0.509737
-v -0.380767 1.951340 -0.454269
-v -0.354318 1.942381 -0.434140
-v -0.310359 2.134199 -0.458734
-v -0.337693 2.135631 -0.365516
-v -0.194717 1.904192 -0.560406
-v -0.227718 1.782029 -0.566981
-v -0.210665 2.135795 -0.532142
-v 0.000000 2.133890 -0.570091
-v 0.000000 1.892917 -0.583920
-v 0.000000 1.793341 -0.594343
-v 0.000000 1.665464 -0.723012
-v -0.290232 1.635684 -0.665025
-v -0.457486 1.627730 -0.572201
-v -0.288728 2.282881 -0.240955
-v -0.278601 2.273607 -0.359993
-v -0.245438 2.265396 -0.459760
-v -0.202357 2.354130 -0.228910
-v -0.200615 2.344693 -0.326432
-v -0.172841 2.337263 -0.403493
-v -0.126711 2.400392 -0.229428
-v -0.129316 2.394350 -0.296820
-v -0.104779 2.391018 -0.338242
-v 0.000000 1.807521 0.684757
-v 0.000000 1.896634 0.613382
-v -0.144549 1.791377 0.633352
-v -0.115621 1.885786 0.549833
-v -0.213136 1.757715 0.518773
-v -0.171056 1.834867 0.468986
-v -0.254886 1.737050 0.372539
-v -0.207076 1.804938 0.364078
-v -0.149741 1.831210 0.386184
-v -0.240678 1.691781 0.413536
-v -0.059284 1.932917 0.456746
-v 0.000000 1.965344 0.494111
-v -0.194280 1.678478 0.478710
-v -0.124802 1.683106 0.570628
-v 0.000000 1.686959 0.605531
-v -0.326104 2.046422 -0.031963
-v -0.323471 2.169918 -0.091303
-v -0.327224 1.960350 0.037032
-v -0.377926 1.847099 0.039789
-v -0.532363 1.714199 0.079780
-v -0.261131 2.073662 0.061288
-v -0.270922 2.030841 0.096912
-v -0.297869 1.865005 0.106829
-v -0.265067 1.849636 0.154519
-v -0.201009 1.862357 0.217382
-v -0.164279 1.918301 0.248809
-v -0.096700 1.953570 0.280515
-v -0.061726 2.008265 0.269652
-v -0.069601 2.064814 0.224850
-v -0.142839 2.075776 0.195998
-v -0.202753 2.089402 0.110056
-v -0.237103 2.031143 0.170219
-v -0.034613 2.026020 0.309002
-v -0.032643 2.068776 0.255449
-v -0.327413 1.722835 0.214258
-v -0.287123 2.288412 -0.166632
-v -0.283469 2.195833 0.008535
-v -0.246301 2.297589 -0.056847
-v -0.256357 2.208662 0.051917
-v -0.312767 2.116656 0.055960
-v -0.228987 2.142449 0.106882
-v -0.147650 2.109724 0.208845
-v -0.192083 2.220325 0.128713
-v -0.054949 2.128282 0.222119
-v -0.093052 2.223406 0.174811
-v 0.000000 2.240117 0.184918
-v -0.171532 2.304138 0.024927
-v -0.093066 2.306800 0.066051
-v 0.000000 2.309867 0.096553
-v 0.000000 2.375527 -0.007879
-v 0.000000 2.411919 -0.122650
-v -0.056389 2.409917 -0.134063
-v -0.087800 2.372497 -0.039155
-v -0.140708 2.367643 -0.088995
-v -0.098696 2.406209 -0.168724
-v -0.168260 2.362622 -0.141007
-v -0.109397 2.404479 -0.186410
-v 0.000000 2.254937 -0.528605
-v -0.175468 2.261446 -0.508733
-v -0.113166 2.332258 -0.455244
-v -0.059624 2.388877 -0.369687
-v 0.000000 2.329989 -0.478620
-v 0.000000 2.388923 -0.377519
-v -0.664970 1.569244 0.159656
-v -0.502552 1.572820 0.247938
-v -0.386004 1.656990 0.268942
-v -0.416088 1.508308 0.436300
-v -0.332126 1.508318 0.525061
-v -0.518499 1.559354 0.237870
-v -0.438125 1.501487 0.452956
-v -0.349150 1.499763 0.550456
-v -0.151069 1.557444 0.647942
-v -0.139485 1.570605 0.626687
-v 0.000000 1.586247 0.661550
-v 0.000000 1.573298 0.688091
-v -0.528924 1.348225 0.495028
-v -0.654464 1.413929 0.325764
-v -0.710292 1.522034 0.157066
-v -0.759046 1.474779 0.124654
-v -0.715659 1.372870 0.301973
-v -0.587030 1.238865 0.534920
-v -0.223430 1.174905 0.832655
-v 0.000000 1.178494 0.880653
-v -0.423603 1.174610 0.699562
-v 0.000000 1.087702 0.915123
-v -0.264519 1.090276 0.843649
-v -0.471534 1.124158 0.724792
-v -0.623500 1.212523 0.535866
-v -0.762022 1.341576 0.282003
-v -0.687778 1.171086 0.488757
-v -0.574561 1.007025 0.621773
-v -0.326921 0.889927 0.754288
-v 0.000000 0.840937 0.827983
-v 0.000000 0.682282 0.623633
-v -0.360385 0.761720 0.575233
-v -0.626413 0.952733 0.482823
-v -0.749275 1.144118 0.368120
-v -0.803587 1.307760 0.210347
-v -0.361947 0.691049 0.343791
-v 0.000000 0.613641 0.381227
-v -0.627598 0.915807 0.268922
-v -0.775352 1.129668 0.183551
-v -0.763130 1.151843 0.023235
-v -0.627448 0.957243 0.051040
-v -0.390901 0.723750 0.079440
-v 0.000000 0.636430 0.088391
-v 0.000000 0.742881 -0.165540
-v 0.000000 1.040062 -0.505497
-v -0.413606 0.850018 -0.146581
-v -0.654175 1.053515 -0.146410
-v -0.772203 1.198410 -0.128162
-v -0.669446 1.202225 -0.369024
-v -0.401080 1.100365 -0.444091
-v -0.751318 1.295872 -0.308407
-v 0.000000 1.224444 -0.637672
-v 0.000000 1.419014 -0.749731
-v -0.395132 1.236345 -0.556580
-v -0.385033 1.410074 -0.658598
-v -0.655511 1.302521 -0.473685
-v -0.725788 1.376750 -0.366664
-v -0.711620 1.441974 -0.409039
-v -0.616036 1.421005 -0.566358
-v 0.000000 1.558861 -0.772577
-v -0.345625 1.523682 -0.683890
-v -0.550627 1.503762 -0.575128
-v -0.690995 1.478962 -0.417038
-v -0.731841 1.486719 -0.280430
-v -0.750626 1.448547 -0.269911
-v -0.749222 1.514054 -0.118499
-v -0.775123 1.403957 -0.213535
-v -0.762085 1.496304 -0.082714
-v -0.801792 1.351037 -0.116344
-v -0.778529 1.473085 -0.032552
-v -0.818923 1.315393 0.009473
-v -0.786272 1.460700 0.003253
-v -0.822808 1.308298 0.107611
-v -0.786678 1.453242 0.062267
-v 0.000000 2.149815 0.231318
-v 0.000000 2.087518 0.277678
-v 0.000000 2.047154 0.344610
-v -0.471704 1.549546 0.261580
-v -0.506344 1.927161 -0.459436
-v -0.415422 1.917736 -0.291394
-v 0.000000 0.890564 -0.366968
-v -0.407343 0.974284 -0.326785
-v -0.654852 1.127014 -0.263902
-v -0.360583 1.977544 -0.299052
-v 0.000000 0.932870 0.890302
-v -0.295720 0.958652 0.817717
-v -0.532120 1.063474 0.697474
-v -0.343653 0.815542 0.673833
-v 0.000000 0.751328 0.734880
-v -0.600487 0.969597 0.561370
-v 0.000000 0.640704 0.506664
-v -0.361165 0.719127 0.463746
-v -0.627006 0.927012 0.380106
-v -0.376424 0.695303 0.210406
-v 0.000000 0.612940 0.233599
-v -0.627523 0.924429 0.158771
-v -0.148211 1.655268 -0.705423
-v -0.381715 1.636005 -0.628433
-v -0.176512 1.543669 -0.740357
-v -0.457543 1.515541 -0.639558
-v -0.633856 1.492710 -0.503328
-v -0.720349 1.483539 -0.351213
-v -0.740532 1.500386 -0.199464
-v -0.196644 1.414279 -0.715783
-v -0.511052 1.415295 -0.622169
-v -0.677777 1.431580 -0.494767
-v -0.536359 1.266118 -0.522778
-v -0.705162 1.337795 -0.425824
-v -0.747475 1.412467 -0.320384
-v -0.765681 1.482438 -0.195106
-v -0.201802 1.226260 -0.606494
-v -0.546510 1.145498 -0.411921
-v -0.725309 1.245306 -0.342653
-v -0.772803 1.348944 -0.262347
-v -0.784754 1.450613 -0.148057
-v -0.204837 1.062713 -0.481591
-v -0.542257 1.042737 -0.298371
-v -0.208031 0.922029 -0.350986
-v -0.538004 0.949240 -0.143139
-v -0.721069 1.127096 -0.133736
-v -0.796878 1.272809 -0.121888
-v -0.806764 1.411744 -0.072833
-v -0.211225 0.783196 -0.156161
-v -0.519874 0.828169 0.069790
-v -0.709898 1.046713 0.041097
-v -0.800958 1.231188 0.018459
-v -0.819462 1.387225 0.009676
-v -0.199636 0.664392 0.088858
-v -0.512521 0.796895 0.191646
-v -0.192246 0.637878 0.229847
-v -0.505168 0.790322 0.315973
-v -0.716215 1.014240 0.234169
-v -0.809113 1.216370 0.149308
-v -0.821653 1.379795 0.089904
-v -0.772862 1.464010 0.093461
-v -0.184856 0.636064 0.373306
-v -0.504467 0.810376 0.433970
-v -0.184455 0.664214 0.498579
-v -0.503767 0.845250 0.543323
-v -0.702297 1.040467 0.437590
-v -0.786180 1.223413 0.294764
-v -0.184054 0.707183 0.615208
-v -0.481989 0.881337 0.633757
-v -0.175513 0.769909 0.722335
-v -0.460212 0.938419 0.705666
-v -0.638464 1.079314 0.564922
-v -0.728082 1.251571 0.386972
-v -0.166974 0.853629 0.810938
-v -0.422617 1.002320 0.776694
-v -0.151036 0.935646 0.875133
-v -0.375760 1.100494 0.803878
-v -0.553054 1.160265 0.641564
-v -0.695540 1.272550 0.410822
-v -0.135098 1.081883 0.901043
-v -0.330314 1.169453 0.785385
-v -0.515935 1.202105 0.633389
-v -0.659523 1.304344 0.425599
-v -0.752846 1.423754 0.220974
-v -0.114106 1.171437 0.877833
-v -0.776515 1.407778 0.210780
-v -0.811840 1.379520 0.142350
-v -0.591694 1.383194 0.416746
-v -0.441940 1.334843 0.540334
-v -0.077996 1.569803 0.675836
-v -0.072199 1.582858 0.651938
-v -0.233386 1.543392 0.575874
-v -0.247691 1.532535 0.599199
-v -0.393638 1.494879 0.501706
-v -0.374107 1.502567 0.480680
-v -0.446470 1.524474 0.345055
-v -0.471374 1.518499 0.343523
-v -0.222318 1.683315 0.443100
-v -0.166421 1.679191 0.526160
-v -0.063640 1.686848 0.588079
-v -0.072304 1.803078 0.657543
-v -0.057838 1.897863 0.581607
-v -0.143338 1.858210 0.510015
-v -0.178843 1.776965 0.576063
-v -0.230980 1.773413 0.360749
-v -0.192096 1.800223 0.513233
-v -0.161091 1.821519 0.562392
-v -0.130085 1.837978 0.611551
-v 0.000000 1.848449 0.667516
-v -0.065071 1.849866 0.639534
-v -0.294553 1.974870 0.081320
-v -0.160323 2.030761 0.228352
-v -0.074000 2.175844 0.198465
-v -0.169867 2.157767 0.162731
-v -0.242672 2.168297 0.073352
-v -0.298119 2.148987 0.026200
-v -0.115152 2.017553 0.156549
-v -0.168233 2.011273 0.145885
-v -0.228416 2.014419 0.115986
-v -0.263092 2.004510 0.073692
-v -0.269793 1.938484 0.091387
-v -0.259557 1.920020 0.101469
-v -0.208077 1.945140 0.143319
-v -0.167140 1.961150 0.156246
-v -0.119519 1.987425 0.165465
-v -0.104449 2.011727 0.162308
-v -0.491050 1.540186 0.254578
-v -0.682378 1.467981 0.241415
-v -0.553357 1.515768 0.235100
-v -0.353355 1.530083 0.344968
-v -0.361036 1.522618 0.353044
-v -0.411920 1.537542 0.312929
-v -0.294705 1.521548 0.386092
-v -0.301928 1.514683 0.394911
-v -0.236880 1.513234 0.426710
-v -0.243268 1.507065 0.436681
-v -0.167234 1.544988 0.479125
-v -0.172861 1.539757 0.489737
-v -0.096792 1.577687 0.532358
-v -0.101041 1.572603 0.544245
-v -0.048219 1.580862 0.544036
-v -0.050564 1.575805 0.555693
-v 0.000000 1.589213 0.555477
-v 0.000000 1.583682 0.567260
-v 0.000000 1.449520 0.739982
-v 0.000000 1.436921 0.737554
-v -0.075372 1.429359 0.730447
-v -0.077579 1.441815 0.732118
-v -0.146695 1.412952 0.707735
-v -0.150226 1.425272 0.708614
-v -0.245938 1.375512 0.645643
-v -0.250033 1.387999 0.646649
-v -0.321193 1.345109 0.602259
-v -0.357520 1.329366 0.590477
-v -0.361642 1.335331 0.582716
-v -0.354685 1.343030 0.584577
-v -0.258841 1.357163 0.626602
-v -0.258696 1.345987 0.627153
-v -0.164845 1.365243 0.662992
-v -0.164657 1.354172 0.663449
-v -0.085081 1.375099 0.679020
-v -0.084705 1.364243 0.679449
-v 0.000000 1.376067 0.679324
-v 0.000000 1.365219 0.679549
-v -0.206924 1.758658 0.248524
-v -0.203840 1.756872 0.260826
-v -0.231008 1.716982 0.274667
-v -0.236528 1.712670 0.264635
-v -0.230170 1.668782 0.334014
-v -0.232182 1.658131 0.329581
-v -0.234380 1.663298 0.326139
-v -0.261186 1.911589 0.148196
-v -0.259557 1.920020 0.141972
-v -0.203643 1.947085 0.214170
-v -0.206248 1.937778 0.221744
-v -0.274189 1.934370 0.127424
-v -0.268935 1.934305 0.125881
-v -0.268578 1.999341 0.098910
-v -0.265239 2.011732 0.101058
-v -0.263092 2.004510 0.095065
-v -0.164646 1.962320 0.234950
-v -0.164770 1.954229 0.244122
-v -0.119519 1.987425 0.250050
-v -0.115834 1.981958 0.261309
-v -0.104449 2.011727 0.244719
-v -0.094684 2.014434 0.254297
-v -0.111269 2.016805 0.235643
-v -0.130207 2.021955 0.237820
-v -0.110083 2.022812 0.240583
-v -0.453903 1.685838 -0.426531
-v -0.448491 1.687618 -0.433580
-v -0.444922 1.694717 -0.432182
-v -0.449470 1.696971 -0.437579
-v -0.458400 1.704559 -0.342269
-v -0.455644 1.707950 -0.316835
-v -0.453577 1.706793 -0.312981
-v -0.460269 1.699167 -0.309812
-v -0.461900 1.695894 -0.314131
-v -0.436764 2.025000 -0.430550
-v -0.425404 2.018460 -0.436069
-v -0.366637 1.993569 -0.377757
-v -0.364853 1.994687 -0.377773
-v -0.366244 2.006066 -0.371759
-v -0.367149 1.996599 -0.364885
-v -0.373548 1.999894 -0.367202
-v -0.455293 1.993948 -0.524740
-v -0.442851 1.990154 -0.524384
-v -0.451491 1.936017 -0.547976
-v -0.463102 1.938336 -0.548543
-v -0.229144 2.019993 0.174315
-v -0.222347 2.015109 0.169272
-v -0.168557 2.017801 0.224633
-v -0.164452 2.011397 0.217821
-v -0.438245 2.006328 -0.314179
-v -0.431966 2.012270 -0.316657
-v -0.391594 1.982942 -0.272355
-v -0.399161 1.977045 -0.269953
-v -0.476462 2.020567 -0.389573
-v -0.469529 2.027750 -0.392812
-v -0.517302 1.985586 -0.468982
-v -0.514232 1.991978 -0.477904
-v -0.529061 1.939212 -0.492594
-v -0.527004 1.941116 -0.502956
-v -0.542289 1.875339 -0.499459
-v -0.540440 1.874681 -0.509821
-v -0.545883 1.794161 -0.485343
-v -0.543602 1.790577 -0.495266
-v -0.510051 1.736251 -0.438863
-v -0.505032 1.727728 -0.445445
-v -0.357506 1.945762 -0.238077
-v -0.356600 1.947430 -0.226802
-v -0.356361 1.944756 -0.221039
-v -0.359746 1.933246 -0.229314
-v -0.198037 1.644332 0.371466
-v -0.199028 1.634275 0.367445
-v -0.163269 1.635860 0.414519
-v -0.163060 1.625234 0.411001
-v -0.121900 1.626351 0.464214
-v -0.122233 1.615812 0.460782
-v -0.078368 1.628521 0.505479
-v -0.077493 1.618453 0.504378
-v -0.039372 1.627411 0.521702
-v -0.038984 1.616395 0.520365
-v 0.000000 1.626073 0.537961
-v 0.000000 1.614251 0.536330
-v -0.177693 1.797291 0.269876
-v -0.176299 1.804614 0.258979
-v -0.143912 1.842892 0.306014
-v -0.150215 1.832678 0.313399
-v -0.104058 1.860869 0.419256
-v -0.100894 1.861371 0.430130
-v -0.107739 1.855404 0.434648
-v -0.114757 1.849728 0.418386
-v -0.472872 1.865719 -0.555412
-v -0.460813 1.864482 -0.554693
-v -0.481168 1.789156 -0.540103
-v -0.468029 1.789085 -0.540269
-v -0.460364 1.717267 -0.466592
-v -0.452829 1.711922 -0.463266
-v -0.446935 1.719244 -0.473000
-v -0.349038 1.759902 -0.540458
-v -0.352062 1.746346 -0.541589
-v -0.330708 1.756719 -0.543444
-v -0.289384 1.791699 -0.547145
-v -0.302029 1.800033 -0.543755
-v -0.263504 1.872617 -0.524421
-v -0.277199 1.870340 -0.522024
-v -0.290458 1.918326 -0.500290
-v -0.301601 1.910123 -0.500557
-v -0.323757 1.949227 -0.453957
-v -0.327374 1.944936 -0.448085
-v -0.334344 1.941415 -0.447209
-v -0.414571 1.744054 -0.492674
-v -0.418748 1.734059 -0.486546
-v -0.418654 1.729310 -0.478756
-v 0.515127 1.874297 -0.461265
-v 0.512371 1.822589 -0.437378
-v 0.498180 1.964411 -0.439438
-v 0.476088 1.971013 -0.391472
-v 0.442861 1.954352 -0.331701
-v 0.387982 1.866606 -0.254715
-v 0.489640 1.791951 -0.386557
-v 0.456622 1.775527 -0.326952
-v 0.434545 1.773131 -0.287014
-v 0.473463 1.847951 -0.350158
-v 0.422196 1.883887 -0.408013
-v 0.395523 1.903794 -0.374814
-v 0.434768 1.799981 -0.137872
-v 0.374416 1.917079 -0.151280
-v 0.349714 2.001132 -0.154634
-v 0.611282 1.599814 -0.278646
-v 0.604132 1.674121 -0.132815
-v 0.583313 1.580479 -0.423823
-v 0.347973 2.140823 -0.227219
-v 0.430611 1.798772 -0.518312
-v 0.371463 1.815847 -0.544950
-v 0.423842 1.881654 -0.528425
-v 0.367647 1.877229 -0.532282
-v 0.404045 1.924808 -0.498587
-v 0.359140 1.907618 -0.509737
-v 0.380767 1.951340 -0.454269
-v 0.354318 1.942381 -0.434140
-v 0.310359 2.134199 -0.458734
-v 0.337693 2.135631 -0.365516
-v 0.194717 1.904192 -0.560406
-v 0.227718 1.782029 -0.566981
-v 0.210665 2.135795 -0.532142
-v 0.290232 1.635684 -0.665025
-v 0.457486 1.627730 -0.572201
-v 0.288728 2.282881 -0.240955
-v 0.278601 2.273607 -0.359993
-v 0.245438 2.265396 -0.459760
-v 0.202357 2.354130 -0.228910
-v 0.200615 2.344693 -0.326432
-v 0.172841 2.337263 -0.403493
-v 0.126711 2.400392 -0.229428
-v 0.129316 2.394350 -0.296820
-v 0.104779 2.391018 -0.338242
-v 0.144549 1.791377 0.633352
-v 0.115621 1.885786 0.549833
-v 0.213136 1.757715 0.518773
-v 0.171056 1.834867 0.468986
-v 0.254886 1.737050 0.372539
-v 0.207076 1.804938 0.364078
-v 0.149741 1.831210 0.386184
-v 0.240678 1.691781 0.413536
-v 0.059284 1.932917 0.456746
-v 0.194280 1.678478 0.478710
-v 0.124802 1.683106 0.570628
-v 0.326104 2.046422 -0.031963
-v 0.323471 2.169918 -0.091303
-v 0.327224 1.960350 0.037032
-v 0.377926 1.847099 0.039789
-v 0.532363 1.714199 0.079780
-v 0.261131 2.073662 0.061288
-v 0.270922 2.030841 0.096912
-v 0.297869 1.865005 0.106829
-v 0.265067 1.849636 0.154519
-v 0.201009 1.862357 0.217382
-v 0.164279 1.918301 0.248809
-v 0.096700 1.953570 0.280515
-v 0.061726 2.008265 0.269652
-v 0.069601 2.064814 0.224850
-v 0.142839 2.075776 0.195998
-v 0.202753 2.089402 0.110056
-v 0.237103 2.031143 0.170219
-v 0.034613 2.026020 0.309002
-v 0.032643 2.068776 0.255449
-v 0.327413 1.722835 0.214258
-v 0.287123 2.288412 -0.166632
-v 0.283469 2.195833 0.008535
-v 0.246301 2.297589 -0.056847
-v 0.256357 2.208662 0.051917
-v 0.312767 2.116656 0.055960
-v 0.228987 2.142449 0.106882
-v 0.147650 2.109724 0.208845
-v 0.192083 2.220325 0.128713
-v 0.054949 2.128282 0.222119
-v 0.093052 2.223406 0.174811
-v 0.171532 2.304138 0.024927
-v 0.093066 2.306800 0.066051
-v 0.056389 2.409917 -0.134063
-v 0.087800 2.372497 -0.039155
-v 0.140708 2.367643 -0.088995
-v 0.098696 2.406209 -0.168724
-v 0.168260 2.362622 -0.141007
-v 0.109397 2.404479 -0.186410
-v 0.175468 2.261446 -0.508733
-v 0.113166 2.332258 -0.455244
-v 0.059624 2.388877 -0.369687
-v 0.664970 1.569244 0.159656
-v 0.502552 1.572820 0.247938
-v 0.386004 1.656990 0.268942
-v 0.416088 1.508308 0.436300
-v 0.332126 1.508318 0.525061
-v 0.518499 1.559354 0.237870
-v 0.438125 1.501487 0.452956
-v 0.349150 1.499763 0.550456
-v 0.151069 1.557444 0.647942
-v 0.139485 1.570605 0.626687
-v 0.528924 1.348225 0.495028
-v 0.654464 1.413929 0.325764
-v 0.710292 1.522034 0.157066
-v 0.759046 1.474779 0.124654
-v 0.715659 1.372870 0.301973
-v 0.587030 1.238865 0.534920
-v 0.223430 1.174905 0.832655
-v 0.423603 1.174610 0.699562
-v 0.264519 1.090276 0.843649
-v 0.471534 1.124158 0.724792
-v 0.623500 1.212523 0.535866
-v 0.762022 1.341576 0.282003
-v 0.687778 1.171086 0.488757
-v 0.574561 1.007025 0.621773
-v 0.326921 0.889927 0.754288
-v 0.360385 0.761720 0.575233
-v 0.626413 0.952733 0.482823
-v 0.749275 1.144118 0.368120
-v 0.803587 1.307760 0.210347
-v 0.361947 0.691049 0.343791
-v 0.627598 0.915807 0.268922
-v 0.775352 1.129668 0.183551
-v 0.763130 1.151843 0.023235
-v 0.627448 0.957243 0.051040
-v 0.390901 0.723750 0.079440
-v 0.413606 0.850018 -0.146581
-v 0.654175 1.053515 -0.146410
-v 0.772203 1.198410 -0.128162
-v 0.669446 1.202225 -0.369024
-v 0.401080 1.100365 -0.444091
-v 0.751318 1.295872 -0.308407
-v 0.395132 1.236345 -0.556580
-v 0.385033 1.410074 -0.658598
-v 0.655511 1.302521 -0.473685
-v 0.725788 1.376750 -0.366664
-v 0.711620 1.441974 -0.409039
-v 0.616036 1.421005 -0.566358
-v 0.345625 1.523682 -0.683890
-v 0.550627 1.503762 -0.575128
-v 0.690995 1.478962 -0.417038
-v 0.731841 1.486719 -0.280430
-v 0.750626 1.448547 -0.269911
-v 0.749222 1.514054 -0.118499
-v 0.775123 1.403957 -0.213535
-v 0.762085 1.496304 -0.082714
-v 0.801792 1.351037 -0.116344
-v 0.778529 1.473085 -0.032552
-v 0.818923 1.315393 0.009473
-v 0.786272 1.460700 0.003253
-v 0.822808 1.308298 0.107611
-v 0.786678 1.453242 0.062267
-v 0.471704 1.549546 0.261580
-v 0.506344 1.927161 -0.459436
-v 0.415422 1.917736 -0.291394
-v 0.407343 0.974284 -0.326785
-v 0.654852 1.127014 -0.263902
-v 0.360583 1.977544 -0.299052
-v 0.295720 0.958652 0.817717
-v 0.532120 1.063474 0.697474
-v 0.343653 0.815542 0.673833
-v 0.600487 0.969597 0.561370
-v 0.361165 0.719127 0.463746
-v 0.627006 0.927012 0.380106
-v 0.376424 0.695303 0.210406
-v 0.627523 0.924429 0.158771
-v 0.148211 1.655268 -0.705423
-v 0.381715 1.636005 -0.628433
-v 0.176512 1.543669 -0.740357
-v 0.457543 1.515541 -0.639558
-v 0.633856 1.492710 -0.503328
-v 0.720349 1.483539 -0.351213
-v 0.740532 1.500386 -0.199464
-v 0.196644 1.414279 -0.715783
-v 0.511052 1.415295 -0.622169
-v 0.677777 1.431580 -0.494767
-v 0.536359 1.266118 -0.522778
-v 0.705162 1.337795 -0.425824
-v 0.747475 1.412467 -0.320384
-v 0.765681 1.482438 -0.195106
-v 0.201802 1.226260 -0.606494
-v 0.546510 1.145498 -0.411921
-v 0.725309 1.245306 -0.342653
-v 0.772803 1.348944 -0.262347
-v 0.784754 1.450613 -0.148057
-v 0.204837 1.062713 -0.481591
-v 0.542257 1.042737 -0.298371
-v 0.208031 0.922029 -0.350986
-v 0.538004 0.949240 -0.143139
-v 0.721069 1.127096 -0.133736
-v 0.796878 1.272809 -0.121888
-v 0.806764 1.411744 -0.072833
-v 0.211225 0.783196 -0.156161
-v 0.519874 0.828169 0.069790
-v 0.709898 1.046713 0.041097
-v 0.800958 1.231188 0.018459
-v 0.819462 1.387225 0.009676
-v 0.199636 0.664392 0.088858
-v 0.512521 0.796895 0.191646
-v 0.192246 0.637878 0.229847
-v 0.505168 0.790322 0.315973
-v 0.716215 1.014240 0.234169
-v 0.809113 1.216370 0.149308
-v 0.821653 1.379795 0.089904
-v 0.772862 1.464010 0.093461
-v 0.184856 0.636064 0.373306
-v 0.504467 0.810376 0.433970
-v 0.184455 0.664214 0.498579
-v 0.503767 0.845250 0.543323
-v 0.702297 1.040467 0.437590
-v 0.786180 1.223413 0.294764
-v 0.184054 0.707183 0.615208
-v 0.481989 0.881337 0.633757
-v 0.175513 0.769909 0.722335
-v 0.460212 0.938419 0.705666
-v 0.638464 1.079314 0.564922
-v 0.728082 1.251571 0.386972
-v 0.166974 0.853629 0.810938
-v 0.422617 1.002320 0.776694
-v 0.151036 0.935646 0.875133
-v 0.375760 1.100494 0.803878
-v 0.553054 1.160265 0.641564
-v 0.695540 1.272550 0.410822
-v 0.135098 1.081883 0.901043
-v 0.330314 1.169453 0.785385
-v 0.515935 1.202105 0.633389
-v 0.659523 1.304344 0.425599
-v 0.752846 1.423754 0.220974
-v 0.114106 1.171437 0.877833
-v 0.776515 1.407778 0.210780
-v 0.811840 1.379520 0.142350
-v 0.591694 1.383194 0.416746
-v 0.441940 1.334843 0.540334
-v 0.077996 1.569803 0.675836
-v 0.072199 1.582858 0.651938
-v 0.233386 1.543392 0.575874
-v 0.247691 1.532535 0.599199
-v 0.393638 1.494879 0.501706
-v 0.374107 1.502567 0.480680
-v 0.446470 1.524474 0.345055
-v 0.471374 1.518499 0.343523
-v 0.222318 1.683315 0.443100
-v 0.166421 1.679191 0.526160
-v 0.063640 1.686848 0.588079
-v 0.072304 1.803078 0.657543
-v 0.057838 1.897863 0.581607
-v 0.143338 1.858210 0.510015
-v 0.178843 1.776965 0.576063
-v 0.230980 1.773413 0.360749
-v 0.192096 1.800223 0.513233
-v 0.161091 1.821519 0.562392
-v 0.130085 1.837978 0.611551
-v 0.065071 1.849866 0.639534
-v 0.294553 1.974870 0.081320
-v 0.160323 2.030761 0.228352
-v 0.074000 2.175844 0.198465
-v 0.169867 2.157767 0.162731
-v 0.242672 2.168297 0.073352
-v 0.298119 2.148987 0.026200
-v 0.115152 2.017553 0.156549
-v 0.168233 2.011273 0.145885
-v 0.228416 2.014419 0.115986
-v 0.263092 2.004510 0.073692
-v 0.269793 1.938484 0.091387
-v 0.259557 1.920020 0.101469
-v 0.208077 1.945140 0.143319
-v 0.167140 1.961150 0.156246
-v 0.119519 1.987425 0.165465
-v 0.104449 2.011727 0.162308
-v 0.491050 1.540186 0.254578
-v 0.682378 1.467981 0.241415
-v 0.553357 1.515768 0.235100
-v 0.353355 1.530083 0.344968
-v 0.361036 1.522618 0.353044
-v 0.411920 1.537542 0.312929
-v 0.294705 1.521548 0.386092
-v 0.301928 1.514683 0.394911
-v 0.236880 1.513234 0.426710
-v 0.243268 1.507065 0.436681
-v 0.167234 1.544988 0.479125
-v 0.172861 1.539757 0.489737
-v 0.096792 1.577687 0.532358
-v 0.101041 1.572603 0.544245
-v 0.048219 1.580862 0.544036
-v 0.050564 1.575805 0.555693
-v 0.075372 1.429359 0.730447
-v 0.077579 1.441815 0.732118
-v 0.146695 1.412952 0.707735
-v 0.150226 1.425272 0.708614
-v 0.245938 1.375512 0.645643
-v 0.250033 1.387999 0.646649
-v 0.321193 1.345109 0.602259
-v 0.357520 1.329366 0.590477
-v 0.361642 1.335331 0.582716
-v 0.354685 1.343030 0.584577
-v 0.258841 1.357163 0.626602
-v 0.258696 1.345987 0.627153
-v 0.164845 1.365243 0.662992
-v 0.164657 1.354172 0.663449
-v 0.085081 1.375099 0.679020
-v 0.084705 1.364243 0.679449
-v 0.206924 1.758658 0.248524
-v 0.203840 1.756872 0.260826
-v 0.231008 1.716982 0.274667
-v 0.236528 1.712670 0.264635
-v 0.230170 1.668782 0.334014
-v 0.232182 1.658131 0.329581
-v 0.234380 1.663298 0.326139
-v 0.261186 1.911589 0.148196
-v 0.259557 1.920020 0.141972
-v 0.203643 1.947085 0.214170
-v 0.206248 1.937778 0.221744
-v 0.274189 1.934370 0.127424
-v 0.268935 1.934305 0.125881
-v 0.268578 1.999341 0.098910
-v 0.265239 2.011732 0.101058
-v 0.263092 2.004510 0.095065
-v 0.164646 1.962320 0.234950
-v 0.164770 1.954229 0.244122
-v 0.119519 1.987425 0.250050
-v 0.115834 1.981958 0.261309
-v 0.104449 2.011727 0.244719
-v 0.094684 2.014434 0.254297
-v 0.111269 2.016805 0.235643
-v 0.130207 2.021955 0.237820
-v 0.110083 2.022812 0.240583
-v 0.453903 1.685838 -0.426531
-v 0.448491 1.687618 -0.433580
-v 0.444922 1.694717 -0.432182
-v 0.449470 1.696971 -0.437579
-v 0.458400 1.704559 -0.342269
-v 0.455644 1.707950 -0.316835
-v 0.453577 1.706793 -0.312981
-v 0.460269 1.699167 -0.309812
-v 0.461900 1.695894 -0.314131
-v 0.436764 2.025000 -0.430550
-v 0.425404 2.018460 -0.436069
-v 0.366637 1.993569 -0.377757
-v 0.364853 1.994687 -0.377773
-v 0.366244 2.006066 -0.371759
-v 0.367149 1.996599 -0.364885
-v 0.373548 1.999894 -0.367202
-v 0.455293 1.993948 -0.524740
-v 0.442851 1.990154 -0.524384
-v 0.451491 1.936017 -0.547976
-v 0.463102 1.938336 -0.548543
-v 0.229144 2.019993 0.174315
-v 0.222347 2.015109 0.169272
-v 0.168557 2.017801 0.224633
-v 0.164452 2.011397 0.217821
-v 0.438245 2.006328 -0.314179
-v 0.431966 2.012270 -0.316657
-v 0.391594 1.982942 -0.272355
-v 0.399161 1.977045 -0.269953
-v 0.476462 2.020567 -0.389573
-v 0.469529 2.027750 -0.392812
-v 0.517302 1.985586 -0.468982
-v 0.514232 1.991978 -0.477904
-v 0.529061 1.939212 -0.492594
-v 0.527004 1.941116 -0.502956
-v 0.542289 1.875339 -0.499459
-v 0.540440 1.874681 -0.509821
-v 0.545883 1.794161 -0.485343
-v 0.543602 1.790577 -0.495266
-v 0.510051 1.736251 -0.438863
-v 0.505032 1.727728 -0.445445
-v 0.357506 1.945762 -0.238077
-v 0.356600 1.947430 -0.226802
-v 0.356361 1.944756 -0.221039
-v 0.359746 1.933246 -0.229314
-v 0.198037 1.644332 0.371466
-v 0.199028 1.634275 0.367445
-v 0.163269 1.635860 0.414519
-v 0.163060 1.625234 0.411001
-v 0.121900 1.626351 0.464214
-v 0.122233 1.615812 0.460782
-v 0.078368 1.628521 0.505479
-v 0.077493 1.618453 0.504378
-v 0.039372 1.627411 0.521702
-v 0.038984 1.616395 0.520365
-v 0.177693 1.797291 0.269876
-v 0.176299 1.804614 0.258979
-v 0.143912 1.842892 0.306014
-v 0.150215 1.832678 0.313399
-v 0.104058 1.860869 0.419256
-v 0.100894 1.861371 0.430130
-v 0.107739 1.855404 0.434648
-v 0.114757 1.849728 0.418386
-v 0.472872 1.865719 -0.555412
-v 0.460813 1.864482 -0.554693
-v 0.481168 1.789156 -0.540103
-v 0.468029 1.789085 -0.540269
-v 0.460364 1.717267 -0.466592
-v 0.452829 1.711922 -0.463266
-v 0.446935 1.719244 -0.473000
-v 0.349038 1.759902 -0.540458
-v 0.352062 1.746346 -0.541589
-v 0.330708 1.756719 -0.543444
-v 0.289384 1.791699 -0.547145
-v 0.302029 1.800033 -0.543755
-v 0.263504 1.872617 -0.524421
-v 0.277199 1.870340 -0.522024
-v 0.290458 1.918326 -0.500290
-v 0.301601 1.910123 -0.500557
-v 0.323757 1.949227 -0.453957
-v 0.327374 1.944936 -0.448085
-v 0.334344 1.941415 -0.447209
-v 0.414571 1.744054 -0.492674
-v 0.418748 1.734059 -0.486546
-v 0.418654 1.729310 -0.478756
-v -0.191822 1.994182 0.184361
-v -0.184688 2.056364 0.166017
-v -0.213100 2.047200 0.152892
-v -0.233862 2.023631 0.144121
-v -0.241412 1.991974 0.142055
-v -0.233727 1.960709 0.147248
-v -0.212865 1.938216 0.158307
-v -0.184416 1.930520 0.172270
-v -0.156005 1.939684 0.185395
-v -0.135242 1.963253 0.194166
-v -0.127692 1.994911 0.196231
-v -0.135378 2.026175 0.191039
-v -0.156240 2.048668 0.179980
-v -0.164929 2.100404 0.122152
-v -0.214140 2.084531 0.099419
-v -0.250101 2.043708 0.084228
-v -0.263178 1.988875 0.080650
-v -0.249866 1.934724 0.089644
-v -0.213733 1.895764 0.108799
-v -0.164459 1.882435 0.132983
-v -0.115248 1.898308 0.155717
-v -0.079286 1.939129 0.170908
-v -0.066209 1.993963 0.174487
-v -0.079521 2.048114 0.165493
-v -0.115655 2.087074 0.146337
-v -0.137838 2.114500 0.064522
-v -0.194661 2.096171 0.038272
-v -0.236186 2.049034 0.020731
-v -0.251286 1.985718 0.016599
-v -0.235915 1.923190 0.026984
-v -0.194191 1.878202 0.049102
-v -0.137294 1.862811 0.077028
-v -0.080471 1.881140 0.103279
-v -0.038946 1.928277 0.120820
-v -0.023845 1.991593 0.124951
-v -0.039217 2.054121 0.114566
-v -0.080941 2.099109 0.092448
-v -0.110674 2.094877 0.008566
-v -0.159884 2.079004 -0.014167
-v -0.195846 2.038182 -0.029358
-v -0.208923 1.983348 -0.032936
-v -0.195611 1.929197 -0.023943
-v -0.159477 1.890237 -0.004787
-v -0.110203 1.876908 0.019398
-v -0.060993 1.892780 0.042131
-v -0.025031 1.933602 0.057322
-v -0.011954 1.988436 0.060900
-v -0.025266 2.042587 0.051907
-v -0.061400 2.081547 0.032751
-v -0.090715 2.046791 -0.030721
-v -0.119128 2.037627 -0.043845
-v -0.139890 2.014058 -0.052616
-v -0.147440 1.982401 -0.054682
-v -0.139754 1.951136 -0.049489
-v -0.118893 1.928643 -0.038430
-v -0.090444 1.920946 -0.024466
-v -0.062032 1.930111 -0.011342
-v -0.041269 1.953680 -0.002570
-v -0.033719 1.985338 -0.000505
-v -0.041405 2.016603 -0.005698
-v -0.062267 2.039096 -0.016757
-v -0.083310 1.983128 -0.042811
-v -0.213817 2.009256 0.165009
-v -0.217668 1.993113 0.163955
-v -0.213748 1.977170 0.166603
-v -0.203109 1.965699 0.172243
-v -0.188603 1.961775 0.179363
-v -0.174115 1.966449 0.186056
-v -0.163526 1.978468 0.190528
-v -0.159677 1.994611 0.191582
-v -0.163597 2.010553 0.188933
-v -0.174235 2.022024 0.183294
-v -0.188741 2.025948 0.176174
-v -0.203230 2.021275 0.169482
-v 0.191822 1.994182 0.184361
-v 0.184688 2.056364 0.166017
-v 0.213100 2.047200 0.152892
-v 0.233862 2.023631 0.144121
-v 0.241412 1.991974 0.142055
-v 0.233727 1.960709 0.147248
-v 0.212865 1.938216 0.158307
-v 0.184416 1.930520 0.172270
-v 0.156005 1.939684 0.185395
-v 0.135242 1.963253 0.194166
-v 0.127692 1.994911 0.196231
-v 0.135378 2.026175 0.191039
-v 0.156240 2.048668 0.179980
-v 0.164929 2.100404 0.122152
-v 0.214140 2.084531 0.099419
-v 0.250101 2.043708 0.084228
-v 0.263178 1.988875 0.080650
-v 0.249866 1.934724 0.089644
-v 0.213733 1.895764 0.108799
-v 0.164459 1.882435 0.132983
-v 0.115248 1.898308 0.155717
-v 0.079286 1.939129 0.170908
-v 0.066209 1.993963 0.174487
-v 0.079521 2.048114 0.165493
-v 0.115655 2.087074 0.146337
-v 0.137838 2.114500 0.064522
-v 0.194661 2.096171 0.038272
-v 0.236186 2.049034 0.020731
-v 0.251286 1.985718 0.016599
-v 0.235915 1.923190 0.026984
-v 0.194191 1.878202 0.049102
-v 0.137294 1.862811 0.077028
-v 0.080471 1.881140 0.103279
-v 0.038946 1.928277 0.120820
-v 0.023845 1.991593 0.124951
-v 0.039217 2.054121 0.114566
-v 0.080941 2.099109 0.092448
-v 0.110674 2.094877 0.008566
-v 0.159884 2.079004 -0.014167
-v 0.195846 2.038182 -0.029358
-v 0.208923 1.983348 -0.032936
-v 0.195611 1.929197 -0.023943
-v 0.159477 1.890237 -0.004787
-v 0.110203 1.876908 0.019398
-v 0.060993 1.892780 0.042131
-v 0.025031 1.933602 0.057322
-v 0.011954 1.988436 0.060900
-v 0.025266 2.042587 0.051907
-v 0.061400 2.081547 0.032751
-v 0.090715 2.046791 -0.030721
-v 0.119128 2.037627 -0.043845
-v 0.139890 2.014058 -0.052616
-v 0.147440 1.982401 -0.054682
-v 0.139754 1.951136 -0.049489
-v 0.118893 1.928643 -0.038430
-v 0.090444 1.920946 -0.024466
-v 0.062032 1.930111 -0.011342
-v 0.041269 1.953680 -0.002570
-v 0.033719 1.985338 -0.000505
-v 0.041405 2.016603 -0.005698
-v 0.062267 2.039096 -0.016757
-v 0.083310 1.983128 -0.042811
-v 0.213817 2.009256 0.165009
-v 0.217668 1.993113 0.163955
-v 0.213748 1.977170 0.166603
-v 0.203109 1.965699 0.172243
-v 0.188603 1.961775 0.179363
-v 0.174115 1.966449 0.186056
-v 0.163526 1.978468 0.190528
-v 0.159677 1.994611 0.191582
-v 0.163597 2.010553 0.188933
-v 0.174235 2.022024 0.183294
-v 0.188741 2.025948 0.176174
-v 0.203230 2.021275 0.169482
-v 0.790843 -0.941798 -0.178996
-v 0.790724 -1.022096 0.171394
-v 0.790724 -0.840746 0.171394
-v 0.790835 -0.840746 -0.158250
-v 0.262309 -1.217591 0.558970
-v 0.262299 -1.417026 0.588515
-v 0.262309 -0.840689 0.558970
-v 0.096409 -0.515307 -0.164999
-v 0.176564 -0.515313 -0.151812
-v 0.238485 -0.515328 -0.114556
-v 0.290267 -0.515328 -0.040555
-v 0.290227 -0.515328 0.080437
-v 0.238397 -0.515328 0.143361
-v 0.176444 -0.515313 0.201982
-v 0.096278 -0.515307 0.222691
-v 0.262688 -0.945065 -0.563779
-v 0.262665 -0.840689 -0.497300
-v 0.262742 -1.210205 -0.726282
-v 0.262742 -1.431799 -0.726282
-v 0.262703 -1.646008 -0.608099
-v 0.262600 -1.727260 -0.305251
-v 0.262468 -1.697714 0.086233
-v 0.262338 -1.586917 0.470332
-v 0.480867 -1.651029 0.071141
-v 0.480989 -1.677992 -0.286115
-v 0.480749 -1.549919 0.364306
-v 0.480713 -1.394884 0.461361
-v 0.480722 -1.212886 0.437097
-v 0.480722 -0.840704 0.502545
-v 0.481068 -0.966839 -0.522038
-v 0.481047 -0.840704 -0.461371
-v 0.481118 -1.206145 -0.670333
-v 0.481118 -1.408365 -0.670333
-v 0.481081 -1.603845 -0.562481
-v 0.649804 -1.342083 -0.512200
-v 0.649797 -1.156924 -0.495856
-v 0.649777 -1.484589 -0.433576
-v 0.649708 -1.538643 -0.232103
-v 0.649621 -1.518986 0.028338
-v 0.649535 -1.445276 0.240307
-v 0.649507 -1.332255 0.311061
-v 0.649515 -1.199577 0.293372
-v 0.649515 -0.840746 0.293372
-v 0.649762 -0.947090 -0.391848
-v 0.649751 -0.840746 -0.359866
-v 0.815688 -1.050080 -0.229704
-v 0.741764 -1.180644 -0.229704
-v 0.719175 -1.281132 -0.192828
-v 0.719146 -1.319248 -0.098314
-v 0.719108 -1.305387 0.023862
-v 0.741650 -1.253411 0.143738
-v 0.741638 -1.147102 0.180621
-v 0.235435 -0.692714 0.501230
-v 0.235755 -0.692714 -0.446784
-v 0.431755 -0.692728 -0.414537
-v 0.583169 -0.692766 -0.323436
-v 0.709792 -0.692766 -0.142483
-v 0.709693 -0.692766 0.153376
-v 0.582956 -0.692766 0.307244
-v 0.431463 -0.692728 0.450587
-v 0.407673 -0.571387 0.205197
-v 0.496301 -0.571387 0.097596
-v 0.301733 -0.571361 0.305438
-v 0.164649 -0.571351 0.340852
-v 0.164873 -0.571351 -0.322100
-v 0.301937 -0.571361 -0.299550
-v 0.407822 -0.571387 -0.235841
-v 0.496372 -0.571387 -0.109300
-# 3618 vertices
-
-# 0 vertex parms
-
-# 0 texture vertices
-
-# 0 normals
-
-g shoe1l
-usemtl black
-s 1
-f 29 24 40 48
-f 118 121 120 58
-f 119 114 116 118
-f 115 116 114 113
-f 105 97 98
-f 94 95 89 90
-f 83 90 89 84
-f 87 88 86 79
-f 82 76 75 81
-f 76 69 70 75
-f 67 71 70 66
-f 20 66 65 21
-f 61 46 44 60
-f 51 55 54 49
-f 48 49 47 29
-f 43 40 39 42
-f 33 34 28
-f 28 9 7 27
-f 3 4 1 2
-f 25 3 2 24
-f 30 25 24 29
-f 11 9 28 34
-f 42 39 38 41
-f 29 47 45 30
-f 49 54 53 47
-f 60 44 45 52
-f 46 62 33 32
-f 66 70 69 65
-f 75 70 71 74
-f 80 74 77 79
-f 79 86 85 80
-f 68 15 14
-f 88 93 92 86
-f 93 98 97 92
-f 100 94 96 103
-f 115 109 108
-f 50 43 114 119
-f 120 63 59 58
-f 113 42 41 110
-f 63 64 61 60 52 53 54 55 57 59
-f 48 40 43 50
-f 119 118 58 56
-f 116 115 108 117
-f 114 43 42 113
-f 97 105 103 96
-f 91 96 94 90
-f 85 91 90 83
-f 79 77 78 87
-f 83 84 82 81
-f 72 77 74 71
-f 68 72 71 67
-f 18 67 66 20
-f 61 64 62 46
-f 56 57 55 51
-f 50 51 49 48
-f 30 45 44 31
-f 39 2 1 38
-f 32 27 26 31
-f 27 7 5 26
-f 5 6 4 3
-f 26 5 3 25
-f 31 26 25 30
-f 40 24 2 39
-f 46 32 31 44
-f 47 53 52 45
-f 58 59 57 56
-f 27 32 33 28
-f 67 18 15 68
-f 14 73 72 68
-f 73 78 77 72
-f 80 85 83 81
-f 81 75 74 80
-f 86 92 91 85
-f 92 97 96 91
-f 94 100 99 95
-f 113 110 109 115
-f 50 119 56 51
-f 118 116 117 121
-g shoe2l
-usemtl white
-s 2
-f 173 175 174
-f 23 112 37 36 35
-f 21 99 102 22
-f 101 104 111 182 183 178 179
-f 108 109 106 107
-f 101 102 99 100
-f 38 1 164 185
-f 36 170 171 35
-f 6 168 163 4
-f 18 20 19 17
-f 17 12 15 18
-f 9 10 8 7
-f 9 11 10
-f 16 12 17
-f 21 22 19 20
-f 166 175 172 162
-f 165 169 176 184
-f 103 104 101 100
-f 110 111 106 109
-f 112 102 101 179 180
-f 99 21 65 69 89 95
-f 178 180 179
-f 166 168 167
-f 112 23 22 102
-f 182 111 110 41 181
-f 98 107 106 105
-f 183 184 176 178
-f 35 171 173 23
-f 164 1 4 163
-f 6 8 16 167 168
-f 14 15 12 13
-f 7 8 6 5
-f 11 13 12 10
-f 167 16 17 19 174 175 166
-f 23 173 174 19 22
-f 162 172 169 165
-f 37 177 170 36
-f 41 38 185 181
-f 105 106 104 103
-f 111 104 106
-f 177 37 112 180
-f 12 16 8 10
-f 89 69 76 82 84
-f 181 183 182
-g shoe3l
-usemtl dkgrey
-s 24
-f 143 150 151 142
-f 149 144 145 146 147 148
-f 141 152 153 154
-f 142 151 152 141
-f 144 149 150 143
-s 6
-f 13 11 139 138
-f 87 78 135 134
-f 107 98 131 130
-f 120 121 127 126
-f 33 62 123 122
-f 63 120 126 125
-f 108 107 130 129
-f 88 87 134 133
-f 14 13 138 137
-f 11 34 140 139
-f 78 73 136 135
-f 98 93 132 131
-f 121 117 128 127
-f 62 64 124 123
-f 64 63 125 124
-f 117 108 129 128
-f 93 88 133 132
-f 73 14 137 136
-f 34 33 122 140
-s 23
-f 136 137 154 157 156
-f 138 139 142 141
-f 135 136 156 155
-f 137 138 141 154
-f 139 140 143 142
-f 140 122 144 143
-s 21
-f 122 123 145 144
-f 125 126 148 147
-f 123 124 146 145
-f 124 125 147 146
-s 22
-f 131 132 159 158 153
-f 127 128 150 149
-f 128 129 151 150
-f 130 131 153 152
-f 126 127 149 148
-f 129 130 152 151
-s off
-f 134 135 155 161
-f 133 134 161 160
-f 156 159 160 161 155
-f 157 158 159 156
-f 132 133 160 159
-f 154 153 158 157
-g shoe4l
-usemtl black
-f 168 166 191 190
-s 30
-f 187 188 193 194
-f 189 190 191 192
-f 194 195 186 187
-f 188 189 192 193
-s 31
-f 197 198 205 196
-f 199 200 203 204
-f 198 199 204 205
-f 200 201 202 203
-s 27
-f 164 163 189 188
-f 185 164 188 187
-f 163 168 190 189
-f 181 185 187 186
-s 26
-f 162 165 193 192
-f 165 184 194 193
-f 166 162 192 191
-f 184 183 195 194
-s 17
-f 180 178 202 201
-f 183 181 186 195
-s 1
-f 175 173 197 196
-s 29
-f 173 171 198 197
-f 177 180 201 200
-f 171 170 199 198
-f 170 177 200 199
-s 28
-f 169 172 205 204
-f 176 169 204 203
-f 172 175 196 205
-f 178 176 203 202
-g lowlegl
-usemtl dkblue_pure
-s 1
-f 210 208 238 253
-f 218 216 250 249
-f 226 224 246 245
-f 234 232 242 241
-f 237 236 206 207
-f 229 228 230 231
-f 221 220 222 223
-f 213 212 214 215
-f 207 206 208 209
-f 215 214 216 217
-f 223 222 224 225
-f 231 230 232 233
-f 208 206 239 238
-f 232 230 243 242
-f 224 222 247 246
-f 216 214 251 250
-f 248 249 268 267
-f 212 210 253 252
-f 220 218 249 248
-f 228 226 245 244
-f 236 234 241 240
-f 235 234 236 237
-f 227 226 228 229
-f 219 218 220 221
-f 211 210 212 213
-f 209 208 210 211
-f 217 216 218 219
-f 225 224 226 227
-f 233 232 234 235
-f 206 236 240 239
-f 230 228 244 243
-f 222 220 248 247
-f 214 212 252 251
-f 267 268 286 287
-s 2
-f 269 249 250
-f 286 269 272 271
-f 263 264 283 282
-f 259 260 279 278
-f 255 256 275 274
-f 246 247 266 265
-f 242 243 262 261
-f 238 239 258 257
-f 284 285 270 271 272 273 274 275 276 277 278 279 280 281 282 283
-f 253 238 257 256
-f 241 242 261 260
-f 245 246 265 264
-f 268 269 286
-f 256 257 276 275
-f 260 261 280 279
-f 264 265 284 283
-f 287 286 271 270
-f 248 266 247
-f 266 267 287
-f 262 263 282 281
-f 258 259 278 277
-f 254 255 274 273
-f 250 251 254 269
-f 243 244 263 262
-f 239 240 259 258
-f 251 252 255 254
-f 252 253 256 255
-f 240 241 260 259
-f 244 245 264 263
-f 269 254 273 272
-f 257 258 277 276
-f 261 262 281 280
-f 265 266 285 284
-f 266 287 270 285
-s off
-f 266 248 267
-f 249 269 268
-f 235 237 207 209 211 213 215 217 219 221 223 225 227 229 231 233
-g uplegl
-s 6
-f 395 399 315 313
-f 391 396 291 289
-f 388 387 299 297
-f 384 392 307 305
-f 348 349 368 383
-f 344 345 380 379
-f 340 341 376 375
-f 336 337 372 371
-f 332 333 352 367
-f 328 329 364 363
-f 324 325 360 359
-f 320 321 356 355
-f 317 319 336 351
-f 309 311 348 347
-f 301 303 344 343
-f 293 295 340 339
-f 292 290 320 335
-f 300 298 332 331
-f 308 306 328 327
-f 316 314 324 323
-f 398 316 318 397
-f 393 308 310 394
-f 385 300 302 386
-f 390 292 294 389
-f 396 290 292 390
-f 387 298 300 385
-f 392 306 308 393
-f 399 314 316 398
-f 290 288 321 320
-f 314 312 325 324
-f 306 304 329 328
-f 298 296 333 332
-f 319 289 337 336
-f 295 297 341 340
-f 303 305 345 344
-f 311 313 349 348
-f 333 334 353 352
-f 321 322 357 356
-f 325 326 361 360
-f 329 330 365 364
-f 349 350 369 368
-f 337 338 373 372
-f 341 342 377 376
-f 345 346 381 380
-f 394 395 313 311
-f 386 384 305 303
-f 389 388 297 295
-f 397 391 289 319
-f 399 398 317 315
-f 396 390 293 291
-f 387 385 301 299
-f 392 393 309 307
-f 347 348 383 382
-f 343 344 379 378
-f 339 340 375 374
-f 351 336 371 370
-f 331 332 367 366
-f 327 328 363 362
-f 323 324 359 358
-f 335 320 355 354
-f 315 317 351 350
-f 307 309 347 346
-f 299 301 343 342
-f 291 293 339 338
-f 294 292 335 334
-f 302 300 331 330
-f 310 308 327 326
-f 318 316 323 322
-f 397 318 288 391
-f 394 310 312 395
-f 386 302 304 384
-f 389 294 296 388
-f 391 288 290 396
-f 388 296 298 387
-f 384 304 306 392
-f 395 312 314 399
-f 288 318 322 321
-f 312 310 326 325
-f 304 302 330 329
-f 296 294 334 333
-f 289 291 338 337
-f 297 299 342 341
-f 305 307 346 345
-f 313 315 350 349
-f 334 335 354 353
-f 322 323 358 357
-f 326 327 362 361
-f 330 331 366 365
-f 350 351 370 369
-f 338 339 374 373
-f 342 343 378 377
-f 346 347 382 381
-f 393 394 311 309
-f 385 386 303 301
-f 390 389 295 293
-f 398 397 319 317
-s off
-f 366 367 352 353 354 355 356 357 358 359 360 361 362 363 364 365
-f 382 383 368 369 370 371 372 373 374 375 376 377 378 379 380 381
-g lowarml
-s 1
-f 442 460 441
-f 460 461 481
-f 456 457 476 475
-f 452 453 472 471
-f 448 449 468 467
-f 444 445 448 463
-f 440 441 460 459
-f 436 437 456 455
-f 432 433 452 451
-f 404 402 432 447
-f 412 410 444 443
-f 420 418 440 439
-f 428 426 436 435
-f 478 479 464 465 466 467 468 469 470 471 472 473 474 475 476 477
-f 425 424 426 427
-f 417 416 418 419
-f 409 408 410 411
-f 401 400 402 403
-f 407 406 408 409
-f 415 414 416 417
-f 423 422 424 425
-f 431 430 400 401
-f 430 428 435 434
-f 422 420 439 438
-f 414 412 443 442
-f 406 404 447 446
-f 447 432 451 450
-f 435 436 455 454
-f 439 440 459 458
-f 443 463 462
-f 463 448 467 466
-f 451 452 471 470
-f 455 456 475 474
-f 459 460 479 478
-f 460 481 464 479
-f 463 443 444
-f 480 463 466 465
-f 457 458 477 476
-f 453 454 473 472
-f 449 450 469 468
-f 461 462 480 481
-f 460 442 461
-f 437 438 457 456
-f 433 434 453 452
-f 445 446 449 448
-f 410 408 445 444
-f 418 416 441 440
-f 426 424 437 436
-f 402 400 433 432
-f 427 426 428 429
-f 419 418 420 421
-f 411 410 412 413
-f 403 402 404 405
-f 405 404 406 407
-f 413 412 414 415
-f 421 420 422 423
-f 429 428 430 431
-f 400 430 434 433
-f 424 422 438 437
-f 416 414 442 441
-f 408 406 446 445
-f 446 447 450 449
-f 434 435 454 453
-f 438 439 458 457
-f 442 443 462 461
-f 462 463 480
-f 450 451 470 469
-f 454 455 474 473
-f 458 459 478 477
-f 481 480 465 464
-s off
-f 425 427 496 495
-f 417 419 492 491
-f 409 411 488 487
-f 401 403 484 483
-f 403 405 485 484
-f 411 413 489 488
-f 419 421 493 492
-f 427 429 497 496
-f 423 425 495 494
-f 415 417 491 490
-f 407 409 487 486
-f 431 401 483 482
-f 405 407 486 485
-f 413 415 490 489
-f 421 423 494 493
-f 429 431 482 497
-g sleavel
-usemtl white
-f 492 493 512 511
-f 488 489 508 507
-f 484 485 504 503
-f 496 497 500 499
-f 495 496 499 498
-f 483 484 503 502
-f 487 488 507 506
-f 491 492 511 510
-f 493 494 513 512
-f 489 490 509 508
-f 485 486 505 504
-f 497 482 501 500
-f 512 513 498 499 500 501 502 503 504 505 506 507 508 509 510 511
-f 482 483 502 501
-f 486 487 506 505
-f 490 491 510 509
-f 494 495 498 513
-g handl
-usemtl skin
-s 1
-f 704 703 770 771
-f 702 701 714 769
-f 750 768 745 747
-f 743 742 692 761
-f 766 765 764 767
-f 756 763 762 754
-f 691 690 759 760
-f 724 727 757 758
-f 751 735 739 753
-f 747 745 736 738
-f 744 719 718 722
-f 740 741 742 737
-f 734 736 739 735
-f 731 730 732 726
-f 723 726 727 724
-f 716 719 720 715
-f 716 709 712 717
-f 699 707 700
-f 677 676 711 706
-f 700 707 708
-f 695 696 703 704
-f 698 681 682 699
-f 694 683 679 695
-f 687 686 688 689
-f 666 659 679 683
-f 659 658 660 678 679
-f 648 649 674 675
-f 652 654 670 671
-f 657 635 665 667
-f 644 645 663 662
-f 637 638 658 659
-f 654 630 631 655
-f 652 653 654
-f 650 643 589 651
-f 647 646 548 549
-f 644 546 545 645
-f 636 642 592 587
-f 639 585 640
-f 633 636 637
-f 632 631 623 621
-f 617 622 629 625
-f 612 611 624 622
-f 612 616 602 603
-f 615 618 619 614
-f 614 613 607 608
-f 606 604 598 597
-f 605 606 597 596
-f 593 594 595 596 597 598 599 600
-f 590 578 577 591
-f 582 583 585 586
-f 581 576 571 582
-f 574 573 577 578
-f 563 562 574 575
-f 553 568 561 554
-f 558 557 564 565
-f 553 554 555 556 557 558 559 560
-f 543 542 550 549
-f 538 537 545 546
-f 528 541 542 529
-f 533 536 537 538
-f 527 535 528 522
-f 521 529 530 523
-f 518 524 525 519
-f 514 515 516 517 518 519 520
-f 517 523 524 518
-f 522 528 529 521
-f 527 532 534 535
-f 527 514 520 526 532
-f 528 535 540 541
-f 531 544 537 536
-f 544 543 549 548
-f 552 540 539 547
-f 557 556 563 564
-f 567 568 553 560
-f 568 572 573 561
-f 576 567 566 571
-f 580 572 576 581
-f 584 569 575 579
-f 588 584 579 589
-f 590 589 579 578
-f 603 599 598 604
-f 593 601 608 594
-f 605 607 613 609
-f 616 617 618 615
-f 612 622 617 616
-f 611 610 623 624
-f 620 619 627 628
-f 632 621 620 628
-f 625 636 633
-f 638 586 585 639
-f 636 625 629 642
-f 644 641 547 546
-f 648 550 551 649
-f 649 551 643 650
-f 652 591 653
-f 653 591 592 642
-f 628 627 635 657
-f 641 644 662 661
-f 666 664 634 633
-f 654 655 669 670
-f 649 650 673 674
-f 645 646 677 663
-f 681 662 663 682
-f 685 684 686 687
-f 684 683 694 686
-f 697 680 681 698
-f 696 697 702 703
-f 663 677 706 682
-f 712 711 676 675
-f 682 706 707 699
-f 715 710 709 716
-f 717 718 719 716
-f 720 723 724 725
-f 728 729 730 731
-f 736 734 737 738
-f 740 729 670 669
-f 723 720 719 744
-f 736 745 746 739
-f 733 735 751 752
-f 751 690 689 752
-f 757 688 705 758
-f 754 762 759 753
-f 761 760 765 766
-f 667 693 741 668
-f 745 768 755 746
-f 573 574 562 561
-f 703 702 769 770
-f 705 704 771 758
-f 769 714 713 721
-f 725 721 715 720
-f 748 743 761 766
-f 693 692 742 741
-f 763 764 765 762
-f 692 691 760 761
-f 727 733 752 757
-f 753 739 746 754
-f 747 738 743 748
-f 722 728 731 744
-f 741 740 669 668
-f 734 732 730 737
-f 726 732 733 727
-f 728 722 672 671
-f 721 713 710 715
-f 717 712 675 674
-f 713 714 700
-f 706 711 708 707
-f 700 708 709 710
-f 694 695 704 705
-f 698 699 700 701
-f 695 679 678 696
-f 687 689 690 691
-f 664 666 683 684
-f 660 661 680 678
-f 647 648 675 676
-f 651 652 671 672
-f 656 657 667 668
-f 635 634 664 665
-f 638 639 660 658
-f 655 631 632 656
-f 654 653 630
-f 651 589 590
-f 551 552 643
-f 645 545 548 646
-f 640 585 588 643
-f 639 640 641
-f 637 636 587
-f 626 625 633 634
-f 622 624 630 629
-f 618 617 625 626
-f 610 611 604 606
-f 614 619 620 613
-f 615 614 608 601
-f 609 610 606 605
-f 595 607 605 596
-f 601 593 600 602
-f 591 577 580 592
-f 581 582 586 587
-f 582 571 570 583
-f 575 574 578 579
-f 564 563 575 569
-f 564 569 570 565
-f 559 558 565 566
-f 561 562 555 554
-f 542 541 551 550
-f 538 546 547 539
-f 529 542 543 530
-f 534 533 538 539
-f 526 525 536 533
-f 523 530 531 524
-f 519 525 526 520
-f 521 516 515 522
-f 521 523 517 516
-f 514 527 522 515
-f 532 526 533 534
-f 536 525 524 531
-f 535 534 539 540
-f 530 543 544 531
-f 537 544 548 545
-f 551 541 540 552
-f 556 555 562 563
-f 560 559 566 567
-f 565 570 571 566
-f 572 568 567 576
-f 573 572 580 577
-f 583 570 569 584
-f 583 584 588 585
-f 592 580 581 587
-f 602 600 599 603
-f 594 608 607 595
-f 603 604 611 612
-f 602 616 615 601
-f 613 620 621 609
-f 621 623 610 609
-f 619 618 626 627
-f 630 624 623 631
-f 627 626 634 635
-f 637 587 586 638
-f 641 640 547
-f 640 643 552 547
-f 647 549 550 648
-f 643 588 589
-f 651 590 591 652
-f 630 653 642 629
-f 656 632 628 657
-f 639 641 661 660
-f 659 666 633 637
-f 655 656 668 669
-f 650 651 672 673
-f 646 647 676 677
-f 680 661 662 681
-f 665 664 684 685
-f 685 687 691 692 693
-f 696 678 680 697
-f 697 698 701 702
-f 686 694 705 688
-f 709 708 711 712
-f 700 710 713
-f 700 714 701
-f 674 673 718 717
-f 673 672 722 718
-f 671 670 729 728
-f 733 732 734 735
-f 737 730 729 740
-f 738 737 742 743
-f 744 731 726 723
-f 749 750 747 748
-f 754 746 755 756
-f 757 752 689 688
-f 759 690 751 753
-f 762 765 760 759
-f 665 685 693 667
-f 749 748 766 767
-f 749 767 764 763 756 755 768 750
-f 769 721 725 770
-f 758 771 770 725 724
-g uparml
-usemtl dkblue_pure
-s 52
-f 879 883 799 797
-f 875 880 775 773
-f 872 871 783 781
-f 868 876 791 789
-f 832 833 852 867
-f 828 829 864 863
-f 824 825 860 859
-f 820 821 856 855
-f 816 817 836 851
-f 812 813 848 847
-f 808 809 844 843
-f 804 805 840 839
-f 801 803 820 835
-f 793 795 832 831
-f 785 787 828 827
-f 777 779 824 823
-f 776 774 804 819
-f 784 782 816 815
-f 792 790 812 811
-f 800 798 808 807
-f 882 800 802 881
-f 877 792 794 878
-f 869 784 786 870
-f 874 776 778 873
-f 880 774 776 874
-f 871 782 784 869
-f 876 790 792 877
-f 883 798 800 882
-f 774 772 805 804
-f 798 796 809 808
-f 790 788 813 812
-f 782 780 817 816
-f 803 773 821 820
-f 779 781 825 824
-f 787 789 829 828
-f 795 797 833 832
-f 817 818 837 836
-f 805 806 841 840
-f 809 810 845 844
-f 813 814 849 848
-f 833 834 853 852
-f 821 822 857 856
-f 825 826 861 860
-f 829 830 865 864
-f 878 879 797 795
-f 870 868 789 787
-f 873 872 781 779
-f 881 875 773 803
-f 883 882 801 799
-f 880 874 777 775
-f 871 869 785 783
-f 876 877 793 791
-f 831 832 867 866
-f 827 828 863 862
-f 823 824 859 858
-f 835 820 855 854
-f 815 816 851 850
-f 811 812 847 846
-f 807 808 843 842
-f 819 804 839 838
-f 799 801 835 834
-f 791 793 831 830
-f 783 785 827 826
-f 775 777 823 822
-f 778 776 819 818
-f 786 784 815 814
-f 794 792 811 810
-f 802 800 807 806
-f 881 802 772 875
-f 878 794 796 879
-f 870 786 788 868
-f 873 778 780 872
-f 875 772 774 880
-f 872 780 782 871
-f 868 788 790 876
-f 879 796 798 883
-f 772 802 806 805
-f 796 794 810 809
-f 788 786 814 813
-f 780 778 818 817
-f 773 775 822 821
-f 781 783 826 825
-f 789 791 830 829
-f 797 799 834 833
-f 818 819 838 837
-f 806 807 842 841
-f 810 811 846 845
-f 814 815 850 849
-f 834 835 854 853
-f 822 823 858 857
-f 826 827 862 861
-f 830 831 866 865
-f 877 878 795 793
-f 869 870 787 785
-f 874 873 779 777
-f 882 881 803 801
-s off
-f 850 851 836 837 838 839 840 841 842 843 844 845 846 847 848 849
-f 866 867 852 853 854 855 856 857 858 859 860 861 862 863 864 865
-g shoe1r
-usemtl black
-s 1
-f 931 923 907 912
-f 941 1003 1004 1001
-f 1001 999 997 1002
-f 996 997 999 998
-f 981 980 988
-f 973 972 978 977
-f 967 972 973 966
-f 962 969 971 970
-f 964 958 959 965
-f 958 953 952 959
-f 949 953 954 950
-f 904 948 949 903
-f 943 927 929 944
-f 932 937 938 934
-f 912 930 932 931
-f 925 922 923 926
-f 911 917 916
-f 910 890 892 911
-f 885 884 887 886
-f 907 885 886 908
-f 912 907 908 913
-f 917 911 892 894
-f 924 921 922 925
-f 913 928 930 912
-f 930 936 937 932
-f 935 928 927 943
-f 915 916 945 929
-f 948 952 953 949
-f 957 954 953 958
-f 962 960 957 963
-f 963 968 969 962
-f 897 898 951
-f 969 975 976 971
-f 975 980 981 976
-f 986 979 977 983
-f 991 992 998
-f 1002 997 926 933
-f 941 942 946 1003
-f 993 924 925 996
-f 942 940 938 937 936 935 943 944 947 946
-f 933 926 923 931
-f 939 941 1001 1002
-f 1000 991 998 999
-f 996 925 926 997
-f 979 986 988 980
-f 973 977 979 974
-f 966 973 974 968
-f 970 961 960 962
-f 964 965 967 966
-f 954 957 960 955
-f 950 954 955 951
-f 903 949 950 901
-f 929 945 947 944
-f 934 938 940 939
-f 931 932 934 933
-f 914 927 928 913
-f 921 884 885 922
-f 914 909 910 915
-f 909 888 890 910
-f 886 887 889 888
-f 908 886 888 909
-f 913 908 909 914
-f 922 885 907 923
-f 927 914 915 929
-f 928 935 936 930
-f 939 940 942 941
-f 911 916 915 910
-f 951 898 901 950
-f 951 955 956 897
-f 955 960 961 956
-f 964 966 968 963
-f 963 957 958 964
-f 968 974 975 969
-f 974 979 980 975
-f 978 982 983 977
-f 998 992 993 996
-f 934 939 1002 933
-f 1004 1000 999 1001
-g shoe2r
-usemtl white
-s 2
-f 1057 1058 1056
-f 918 919 920 995 906
-f 905 985 982 904
-f 1062 1061 1066 1065 994 987 984
-f 990 989 992 991
-f 983 982 985 984
-f 1068 1047 884 921
-f 918 1054 1053 919
-f 887 1046 1051 889
-f 900 902 903 901
-f 901 898 895 900
-f 890 891 893 892
-f 893 894 892
-f 900 895 899
-f 903 902 905 904
-f 1045 1055 1058 1049
-f 1067 1059 1052 1048
-f 983 984 987 986
-f 992 989 994 993
-f 1063 1062 984 985 995
-f 978 972 952 948 904 982
-f 1062 1063 1061
-f 1050 1051 1049
-f 985 905 906 995
-f 1064 924 993 994 1065
-f 988 989 990 981
-f 1061 1059 1067 1066
-f 906 1056 1054 918
-f 1046 887 884 1047
-f 1051 1050 899 891 889
-f 896 895 898 897
-f 888 889 891 890
-f 893 895 896 894
-f 1049 1058 1057 902 900 899 1050
-f 905 902 1057 1056 906
-f 1048 1052 1055 1045
-f 919 1053 1060 920
-f 1064 1068 921 924
-f 986 987 989 988
-f 989 987 994
-f 1063 995 920 1060
-f 893 891 899 895
-f 967 965 959 952 972
-f 1065 1066 1064
-g shoe3r
-usemtl dkgrey
-s 24
-f 1025 1034 1033 1026
-f 1031 1030 1029 1028 1027 1032
-f 1037 1036 1035 1024
-f 1024 1035 1034 1025
-f 1026 1033 1032 1027
-s 6
-f 1021 1022 894 896
-f 1017 1018 961 970
-f 1013 1014 981 990
-f 1009 1010 1004 1003
-f 1005 1006 945 916
-f 1008 1009 1003 946
-f 1012 1013 990 991
-f 1016 1017 970 971
-f 1020 1021 896 897
-f 1022 1023 917 894
-f 1018 1019 956 961
-f 1014 1015 976 981
-f 1010 1011 1000 1004
-f 1006 1007 947 945
-f 1007 1008 946 947
-f 1011 1012 991 1000
-f 1015 1016 971 976
-f 1019 1020 897 956
-f 1023 1005 916 917
-s 23
-f 1039 1040 1037 1020 1019
-f 1024 1025 1022 1021
-f 1038 1039 1019 1018
-f 1037 1024 1021 1020
-f 1025 1026 1023 1022
-f 1026 1027 1005 1023
-s 21
-f 1027 1028 1006 1005
-f 1030 1031 1009 1008
-f 1028 1029 1007 1006
-f 1029 1030 1008 1007
-s 22
-f 1036 1041 1042 1015 1014
-f 1032 1033 1011 1010
-f 1033 1034 1012 1011
-f 1035 1036 1014 1013
-f 1031 1032 1010 1009
-f 1034 1035 1013 1012
-s off
-f 1044 1038 1018 1017
-f 1043 1044 1017 1016
-f 1038 1044 1043 1042 1039
-f 1039 1042 1041 1040
-f 1042 1043 1016 1015
-f 1040 1041 1036 1037
-g shoe4r
-usemtl black
-f 1073 1074 1049 1051
-s 30
-f 1077 1076 1071 1070
-f 1075 1074 1073 1072
-f 1070 1069 1078 1077
-f 1076 1075 1072 1071
-s 31
-f 1079 1088 1081 1080
-f 1087 1086 1083 1082
-f 1088 1087 1082 1081
-f 1086 1085 1084 1083
-s 27
-f 1071 1072 1046 1047
-f 1070 1071 1047 1068
-f 1072 1073 1051 1046
-f 1069 1070 1068 1064
-s 26
-f 1075 1076 1048 1045
-f 1076 1077 1067 1048
-f 1074 1075 1045 1049
-f 1077 1078 1066 1067
-s 17
-f 1084 1085 1061 1063
-f 1078 1069 1064 1066
-s 1
-f 1079 1080 1056 1058
-s 29
-f 1080 1081 1054 1056
-f 1083 1084 1063 1060
-f 1081 1082 1053 1054
-f 1082 1083 1060 1053
-s 28
-f 1087 1088 1055 1052
-f 1086 1087 1052 1059
-f 1088 1079 1058 1055
-f 1085 1086 1059 1061
-g lowlegr
-usemtl dkblue_pure
-s 1
-f 1136 1121 1091 1093
-f 1132 1133 1099 1101
-f 1128 1129 1107 1109
-f 1124 1125 1115 1117
-f 1090 1089 1119 1120
-f 1114 1113 1111 1112
-f 1106 1105 1103 1104
-f 1098 1097 1095 1096
-f 1092 1091 1089 1090
-f 1100 1099 1097 1098
-f 1108 1107 1105 1106
-f 1116 1115 1113 1114
-f 1121 1122 1089 1091
-f 1125 1126 1113 1115
-f 1129 1130 1105 1107
-f 1133 1134 1097 1099
-f 1150 1151 1132 1131
-f 1135 1136 1093 1095
-f 1131 1132 1101 1103
-f 1127 1128 1109 1111
-f 1123 1124 1117 1119
-f 1120 1119 1117 1118
-f 1112 1111 1109 1110
-f 1104 1103 1101 1102
-f 1096 1095 1093 1094
-f 1094 1093 1091 1092
-f 1102 1101 1099 1100
-f 1110 1109 1107 1108
-f 1118 1117 1115 1116
-f 1122 1123 1119 1089
-f 1126 1127 1111 1113
-f 1130 1131 1103 1105
-f 1134 1135 1095 1097
-f 1170 1169 1151 1150
-s 2
-f 1133 1132 1152
-f 1154 1155 1152 1169
-f 1165 1166 1147 1146
-f 1161 1162 1143 1142
-f 1157 1158 1139 1138
-f 1148 1149 1130 1129
-f 1144 1145 1126 1125
-f 1140 1141 1122 1121
-f 1166 1165 1164 1163 1162 1161 1160 1159 1158 1157 1156 1155 1154 1153 1168 1167
-f 1139 1140 1121 1136
-f 1143 1144 1125 1124
-f 1147 1148 1129 1128
-f 1169 1152 1151
-f 1158 1159 1140 1139
-f 1162 1163 1144 1143
-f 1166 1167 1148 1147
-f 1153 1154 1169 1170
-f 1130 1149 1131
-f 1170 1150 1149
-f 1164 1165 1146 1145
-f 1160 1161 1142 1141
-f 1156 1157 1138 1137
-f 1152 1137 1134 1133
-f 1145 1146 1127 1126
-f 1141 1142 1123 1122
-f 1137 1138 1135 1134
-f 1138 1139 1136 1135
-f 1142 1143 1124 1123
-f 1146 1147 1128 1127
-f 1155 1156 1137 1152
-f 1159 1160 1141 1140
-f 1163 1164 1145 1144
-f 1167 1168 1149 1148
-f 1168 1153 1170 1149
-s off
-f 1150 1131 1149
-f 1151 1152 1132
-f 1116 1114 1112 1110 1108 1106 1104 1102 1100 1098 1096 1094 1092 1090 1120 1118
-g uplegr
-s 6
-f 1196 1198 1282 1278
-f 1172 1174 1279 1274
-f 1180 1182 1270 1271
-f 1188 1190 1275 1267
-f 1266 1251 1232 1231
-f 1262 1263 1228 1227
-f 1258 1259 1224 1223
-f 1254 1255 1220 1219
-f 1250 1235 1216 1215
-f 1246 1247 1212 1211
-f 1242 1243 1208 1207
-f 1238 1239 1204 1203
-f 1234 1219 1202 1200
-f 1230 1231 1194 1192
-f 1226 1227 1186 1184
-f 1222 1223 1178 1176
-f 1218 1203 1173 1175
-f 1214 1215 1181 1183
-f 1210 1211 1189 1191
-f 1206 1207 1197 1199
-f 1280 1201 1199 1281
-f 1277 1193 1191 1276
-f 1269 1185 1183 1268
-f 1272 1177 1175 1273
-f 1273 1175 1173 1279
-f 1268 1183 1181 1270
-f 1276 1191 1189 1275
-f 1281 1199 1197 1282
-f 1203 1204 1171 1173
-f 1207 1208 1195 1197
-f 1211 1212 1187 1189
-f 1215 1216 1179 1181
-f 1219 1220 1172 1202
-f 1223 1224 1180 1178
-f 1227 1228 1188 1186
-f 1231 1232 1196 1194
-f 1235 1236 1217 1216
-f 1239 1240 1205 1204
-f 1243 1244 1209 1208
-f 1247 1248 1213 1212
-f 1251 1252 1233 1232
-f 1255 1256 1221 1220
-f 1259 1260 1225 1224
-f 1263 1264 1229 1228
-f 1194 1196 1278 1277
-f 1186 1188 1267 1269
-f 1178 1180 1271 1272
-f 1202 1172 1274 1280
-f 1198 1200 1281 1282
-f 1174 1176 1273 1279
-f 1182 1184 1268 1270
-f 1190 1192 1276 1275
-f 1265 1266 1231 1230
-f 1261 1262 1227 1226
-f 1257 1258 1223 1222
-f 1253 1254 1219 1234
-f 1249 1250 1215 1214
-f 1245 1246 1211 1210
-f 1241 1242 1207 1206
-f 1237 1238 1203 1218
-f 1233 1234 1200 1198
-f 1229 1230 1192 1190
-f 1225 1226 1184 1182
-f 1221 1222 1176 1174
-f 1217 1218 1175 1177
-f 1213 1214 1183 1185
-f 1209 1210 1191 1193
-f 1205 1206 1199 1201
-f 1274 1171 1201 1280
-f 1278 1195 1193 1277
-f 1267 1187 1185 1269
-f 1271 1179 1177 1272
-f 1279 1173 1171 1274
-f 1270 1181 1179 1271
-f 1275 1189 1187 1267
-f 1282 1197 1195 1278
-f 1204 1205 1201 1171
-f 1208 1209 1193 1195
-f 1212 1213 1185 1187
-f 1216 1217 1177 1179
-f 1220 1221 1174 1172
-f 1224 1225 1182 1180
-f 1228 1229 1190 1188
-f 1232 1233 1198 1196
-f 1236 1237 1218 1217
-f 1240 1241 1206 1205
-f 1244 1245 1210 1209
-f 1248 1249 1214 1213
-f 1252 1253 1234 1233
-f 1256 1257 1222 1221
-f 1260 1261 1226 1225
-f 1264 1265 1230 1229
-f 1192 1194 1277 1276
-f 1184 1186 1269 1268
-f 1176 1178 1272 1273
-f 1200 1202 1280 1281
-s off
-f 1248 1247 1246 1245 1244 1243 1242 1241 1240 1239 1238 1237 1236 1235 1250 1249
-f 1264 1263 1262 1261 1260 1259 1258 1257 1256 1255 1254 1253 1252 1251 1266 1265
-g pelvis
-s 9
-f 3607 3608 3553 3554
-f 3554 3553 3552 3551
-f 1337 1329 1330 1336
-f 1329 1337 1327 1328
-f 1328 1327 1345 1344
-f 3602 3596 3551 3552
-s 8
-f 3600 3599 3598 3597 3601
-f 3600 3601 3590 3589
-f 3596 3597 3585 3586
-f 3589 3590 3576 3574
-f 3586 3585 3583 3582
-f 3578 3579 3557 3555
-f 3575 3574 3572 3571
-f 3570 3571 1288 1289
-f 3555 3557 1283 1284
-f 1335 1331 1332 1333 1334
-f 1320 1321 1335 1334
-f 1316 1317 1331 1330
-f 1306 1307 1321 1320
-f 1313 1314 1317 1316
-f 1295 1296 1310 1309
-f 1302 1303 1306 1305
-f 1289 1288 1302 1301
-f 1285 1284 1295 1294
-f 1290 1289 1301 1300
-f 1286 1285 1294 1304
-f 1294 1295 1309 1308
-f 1301 1302 1305 1315
-f 1305 1306 1320 1319
-f 1309 1310 1324 1323
-f 1319 1320 1334 1333
-f 1323 1324 1327 1337
-f 1296 1283 1339 1338
-f 1310 1296 1338 1347
-f 3569 3570 1289 1290
-f 3573 3556 1285 1286
-f 3577 3578 3555 3556
-f 3584 3575 3571 3570
-f 3588 3589 3574 3575
-f 3592 3593 3579 3578
-f 3599 3600 3589 3588
-f 3552 3553 3593 3592
-f 3603 1339 1283 3557
-f 3610 3603 3557 3579
-f 3608 3609 3593 3553
-f 3601 3597 3596 3602
-f 3601 3602 3591 3590
-f 3597 3598 3587 3585
-f 3590 3591 3577 3576
-f 3585 3587 3584 3583
-f 3582 3583 3569 3568
-f 3574 3576 3573 3572
-f 3571 3572 1287 1288
-f 3556 3555 1284 1285
-f 1327 1324 1346 1345
-f 1336 1330 1331 1335
-f 1321 1322 1336 1335
-f 1317 1318 1332 1331
-f 1307 1308 1322 1321
-f 1314 1315 1318 1317
-f 1299 1300 1314 1313
-f 1303 1304 1307 1306
-f 1288 1287 1303 1302
-f 1284 1283 1296 1295
-f 1291 1290 1300 1299
-f 1287 1286 1304 1303
-f 1304 1294 1308 1307
-f 1300 1301 1315 1314
-f 1315 1305 1319 1318
-f 1308 1309 1323 1322
-f 1318 1319 1333 1332
-f 1322 1323 1337 1336
-f 1324 1310 1347 1346
-f 3568 3569 1290 1291
-f 3572 3573 1286 1287
-f 3576 3577 3556 3573
-f 3583 3584 3570 3569
-f 3587 3588 3575 3584
-f 3591 3592 3578 3577
-f 3598 3599 3588 3587
-f 3602 3552 3592 3591
-f 3609 3610 3579 3593
-s 11
-f 1366 3558 3615 1353
-f 3562 3563 3611 3612
-f 3618 3612 3608 3607
-f 1353 3615 3604 1340
-f 3612 3611 3609 3608
-f 1340 3604 3567 1293
-f 3595 3594 3580 3581
-f 3567 3566 1292 1293
-f 1350 1351 1364 1363
-f 1356 1357 1360 1359
-f 1342 1343 1356 1355
-f 1347 1338 1351 1350
-f 1311 1325 1343 1342
-f 1325 1326 1329 1328
-f 1298 1299 1313 1312
-f 1366 1367 1358 1359 1360 1361 1362 1363 1364 1365
-f 1297 1298 1312 1311
-f 1326 1316 1330 1329
-f 1325 1328 1344 1343
-f 1338 1339 1352 1351
-f 1343 1344 1357 1356
-f 1357 1348 1361 1360
-f 1351 1352 1365 1364
-f 1365 3565 3564 3563 3562 3561 3560 3559 3558 1366
-f 3581 3580 3566 3567
-f 3551 3596 3586 3594
-f 3606 3607 3554 3595
-f 3614 1352 1339 3603
-f 3617 3618 3607 3606
-f 3561 3562 3612 3618
-f 3565 1365 1352 3614
-f 3558 3559 3616 3615
-f 3563 3564 3613 3611
-f 3559 3560 3617 3616
-f 3615 3616 3605 3604
-f 3611 3613 3610 3609
-f 3604 3605 3581 3567
-f 3594 3586 3582 3580
-f 3566 3568 1291 1292
-f 1354 1355 1358 1367
-f 1349 1350 1363 1362
-f 1355 1356 1359 1358
-f 1341 1342 1355 1354
-f 1346 1347 1350 1349
-f 1297 1311 1342 1341
-f 1312 1313 1316 1326
-f 1292 1291 1299 1298
-f 1293 1292 1298 1297
-f 1311 1312 1326 1325
-f 1293 1297 1341 1340
-f 1345 1346 1349 1348
-f 1340 1341 1354 1353
-f 1344 1345 1348 1357
-f 1348 1349 1362 1361
-f 1353 1354 1367 1366
-f 3580 3582 3568 3566
-f 3554 3551 3594 3595
-f 3605 3606 3595 3581
-f 3613 3614 3603 3610
-f 3616 3617 3606 3605
-f 3560 3561 3618 3617
-f 3564 3565 3614 3613
-g lowarmr
-s 1
-f 1447 1432 1449 1428
-f 1446 1447 1428 1427
-f 1442 1443 1424 1423
-f 1438 1439 1420 1419
-f 1434 1435 1416 1431
-f 1430 1431 1411
-f 1426 1427 1408 1407
-f 1422 1423 1404 1403
-f 1418 1419 1400 1415
-f 1414 1415 1372 1374
-f 1410 1411 1380 1382
-f 1406 1407 1388 1390
-f 1402 1403 1396 1398
-f 1369 1368 1398 1399
-f 1393 1392 1390 1391
-f 1385 1384 1382 1383
-f 1377 1376 1374 1375
-f 1371 1370 1368 1369
-f 1379 1378 1376 1377
-f 1387 1386 1384 1385
-f 1395 1394 1392 1393
-f 1445 1444 1443 1442 1441 1440 1439 1438 1437 1436 1435 1434 1433 1432 1447 1446
-f 1403 1404 1394 1396
-f 1407 1408 1386 1388
-f 1411 1412 1378 1380
-f 1415 1400 1370 1372
-f 1419 1420 1401 1400
-f 1423 1424 1405 1404
-f 1427 1428 1409 1408
-f 1431 1416 1413 1412
-f 1435 1436 1417 1416
-f 1439 1440 1421 1420
-f 1443 1444 1425 1424
-f 1449 1429 1428
-f 1409 1428 1410
-f 1432 1433 1448 1449
-f 1445 1446 1427 1426
-f 1441 1442 1423 1422
-f 1437 1438 1419 1418
-f 1448 1431 1430
-f 1429 1430 1411 1410
-f 1425 1426 1407 1406
-f 1421 1422 1403 1402
-f 1417 1418 1415 1414
-f 1413 1414 1374 1376
-f 1409 1410 1382 1384
-f 1405 1406 1390 1392
-f 1401 1402 1398 1368
-f 1399 1398 1396 1397
-f 1391 1390 1388 1389
-f 1383 1382 1380 1381
-f 1375 1374 1372 1373
-f 1373 1372 1370 1371
-f 1381 1380 1378 1379
-f 1389 1388 1386 1387
-f 1397 1396 1394 1395
-f 1400 1401 1368 1370
-f 1404 1405 1392 1394
-f 1408 1409 1384 1386
-f 1412 1413 1376 1378
-f 1416 1417 1414 1413
-f 1420 1421 1402 1401
-f 1424 1425 1406 1405
-f 1429 1410 1428
-f 1449 1448 1430 1429
-f 1436 1437 1418 1417
-f 1440 1441 1422 1421
-f 1444 1445 1426 1425
-f 1433 1434 1431 1448
-f 1412 1411 1431
-s off
-f 1464 1465 1397 1395
-f 1460 1461 1389 1387
-f 1456 1457 1381 1379
-f 1452 1453 1373 1371
-f 1451 1452 1371 1369
-f 1455 1456 1379 1377
-f 1459 1460 1387 1385
-f 1463 1464 1395 1393
-f 1465 1450 1399 1397
-f 1461 1462 1391 1389
-f 1457 1458 1383 1381
-f 1453 1454 1375 1373
-f 1450 1451 1369 1399
-f 1454 1455 1377 1375
-f 1458 1459 1385 1383
-f 1462 1463 1393 1391
-g sleaver
-usemtl white
-f 1480 1481 1462 1461
-f 1476 1477 1458 1457
-f 1472 1473 1454 1453
-f 1468 1469 1450 1465
-f 1479 1478 1477 1476 1475 1474 1473 1472 1471 1470 1469 1468 1467 1466 1481 1480
-f 1469 1470 1451 1450
-f 1473 1474 1455 1454
-f 1477 1478 1459 1458
-f 1481 1466 1463 1462
-f 1479 1480 1461 1460
-f 1475 1476 1457 1456
-f 1471 1472 1453 1452
-f 1467 1468 1465 1464
-f 1466 1467 1464 1463
-f 1470 1471 1452 1451
-f 1474 1475 1456 1455
-f 1478 1479 1460 1459
-g handr
-usemtl skin
-s 1
-f 1726 1739 1672 1673
-f 1689 1681 1682 1737
-f 1688 1683 1689 1693
-f 1734 1729 1711 1716
-f 1709 1710 1660 1661
-f 1730 1733 1732 1731
-f 1729 1728 1659 1660
-f 1725 1720 1701 1695
-f 1722 1714 1707 1721
-f 1716 1711 1706 1715
-f 1712 1699 1696 1690
-f 1636 1637 1708 1709
-f 1705 1698 1700 1702
-f 1695 1701 1700 1694
-f 1639 1640 1690 1696
-f 1683 1678 1681 1689
-f 1642 1643 1680 1685
-f 1668 1682 1681
-f 1675 1676 1679 1674
-f 1678 1677 1676 1668
-f 1673 1672 1663 1662
-f 1669 1668 1667 1666
-f 1664 1646 1647 1663
-f 1659 1658 1657 1655
-f 1652 1651 1634 1632
-f 1646 1648 1629 1628
-f 1644 1643 1616 1615
-f 1640 1639 1620 1619
-f 1636 1635 1625 1624
-f 1633 1632 1602 1603
-f 1626 1628 1607 1606
-f 1624 1600 1599 1623
-f 1598 1621 1622
-f 1558 1557 1619
-f 1611 1520 1519
-f 1614 1516 1513 1613
-f 1611 1556 1553 1608
-f 1609 1608 1607
-f 1555 1604 1605
-f 1602 1601 1593 1594
-f 1597 1598 1592 1590
-f 1594 1593 1585 1586
-f 1574 1572 1579 1578
-f 1581 1588 1587 1582
-f 1569 1576 1582 1583
-f 1573 1574 1578 1577
-f 1564 1573 1575 1563
-f 1570 1568 1561 1569
-f 1560 1548 1545 1559
-f 1555 1554 1550 1549
-f 1551 1538 1539 1550
-f 1547 1546 1542 1543
-f 1537 1543 1531 1532
-f 1533 1538 1537 1532
-f 1534 1533 1526 1527
-f 1522 1523 1530 1529
-f 1518 1519 1509 1510
-f 1507 1515 1514 1506
-f 1498 1511 1510 1497
-f 1507 1506 1501 1502
-f 1501 1504 1493 1494
-f 1492 1499 1498 1491
-f 1488 1494 1493 1487
-f 1490 1483 1484 1489
-f 1484 1485 1491 1489
-f 1483 1490 1495 1482
-f 1502 1501 1494 1500
-f 1499 1492 1493 1504
-f 1508 1507 1502 1503
-f 1499 1512 1511 1498
-f 1513 1516 1512 1505
-f 1520 1508 1509 1519
-f 1531 1530 1523 1524
-f 1535 1534 1527 1528
-f 1534 1539 1538 1533
-f 1544 1535 1536 1540
-f 1545 1548 1540 1541
-f 1552 1537 1538 1551
-f 1553 1556 1552 1551
-f 1555 1549 1548 1560
-f 1571 1567 1568 1570
-f 1563 1575 1576 1562
-f 1580 1579 1572 1571
-f 1569 1583 1584 1570
-f 1577 1589 1588 1581
-f 1577 1578 1591 1589
-f 1595 1594 1586 1587
-f 1599 1591 1592 1598
-f 1603 1602 1594 1595
-f 1606 1554 1555 1605
-f 1515 1608 1609
-f 1515 1520 1611 1608
-f 1616 1518 1517 1615
-f 1557 1556 1611
-f 1620 1559 1558 1619
-f 1597 1610 1621 1598
-f 1625 1596 1600 1624
-f 1628 1629 1609 1607
-f 1605 1601 1634 1627
-f 1637 1636 1624 1623
-f 1641 1640 1619 1618
-f 1645 1644 1615 1614
-f 1649 1630 1629 1648
-f 1653 1652 1632 1633
-f 1661 1660 1659 1655 1653
-f 1665 1648 1646 1664
-f 1670 1669 1666 1665
-f 1656 1673 1662 1654
-f 1680 1679 1676 1677
-f 1681 1678 1668
-f 1669 1682 1668
-f 1685 1686 1641 1642
-f 1686 1690 1640 1641
-f 1696 1697 1638 1639
-f 1703 1702 1700 1701
-f 1708 1697 1698 1705
-f 1711 1710 1705 1706
-f 1691 1694 1699 1712
-f 1716 1715 1718 1717
-f 1724 1723 1714 1722
-f 1656 1657 1720 1725
-f 1721 1719 1658 1727
-f 1727 1728 1733 1730
-f 1635 1661 1653 1633
-f 1735 1734 1716 1717
-f 1718 1736 1723 1724 1731 1732 1735 1717
-f 1738 1693 1689 1737
-f 1692 1693 1738 1739 1726
-f 1739 1738 1671 1672
-f 1737 1682 1669 1670
-f 1715 1713 1736 1718
-f 1729 1660 1710 1711
-f 1735 1732 1733 1734
-f 1722 1730 1731 1724
-f 1728 1727 1658 1659
-f 1726 1725 1695 1692
-f 1721 1707 1703 1719
-f 1706 1704 1713 1715
-f 1690 1686 1687 1712
-f 1705 1710 1709 1708
-f 1703 1707 1704 1702
-f 1694 1700 1698 1699
-f 1692 1695 1694 1691
-f 1683 1688 1687 1684
-f 1685 1680 1677 1684
-f 1668 1675 1667
-f 1674 1679 1644 1645
-f 1676 1675 1668
-f 1672 1671 1664 1663
-f 1667 1650 1649 1666
-f 1663 1647 1651 1662
-f 1657 1656 1654 1655
-f 1651 1647 1627 1634
-f 1647 1646 1628 1626 1627
-f 1643 1642 1617 1616
-f 1639 1638 1622 1620
-f 1635 1633 1603 1625
-f 1630 1631 1613 1612
-f 1627 1626 1606 1605
-f 1623 1599 1598 1622
-f 1622 1621 1620
-f 1619 1557 1611 1618
-f 1517 1516 1614 1615
-f 1613 1513 1514 1612
-f 1555 1560 1610 1604
-f 1608 1553 1607
-f 1605 1604 1601
-f 1589 1591 1599 1600
-f 1593 1597 1590 1585
-f 1590 1592 1579 1580
-f 1571 1570 1584 1580
-f 1582 1587 1586 1583
-f 1576 1575 1581 1582
-f 1565 1566 1572 1574
-f 1564 1565 1574 1573
-f 1568 1567 1566 1565 1564 1563 1562 1561
-f 1559 1545 1546 1558
-f 1554 1553 1551 1550
-f 1550 1539 1544 1549
-f 1546 1545 1541 1542
-f 1543 1542 1530 1531
-f 1522 1529 1536 1521
-f 1533 1532 1525 1526
-f 1528 1527 1526 1525 1524 1523 1522 1521
-f 1517 1518 1510 1511
-f 1514 1513 1505 1506
-f 1497 1510 1509 1496
-f 1506 1505 1504 1501
-f 1490 1496 1503 1495
-f 1491 1498 1497 1489
-f 1487 1493 1492 1486
-f 1488 1487 1486 1485 1484 1483 1482
-f 1486 1492 1491 1485
-f 1489 1497 1496 1490
-f 1503 1502 1500 1495
-f 1500 1494 1488 1482 1495
-f 1509 1508 1503 1496
-f 1504 1505 1512 1499
-f 1516 1517 1511 1512
-f 1515 1507 1508 1520
-f 1532 1531 1524 1525
-f 1528 1521 1536 1535
-f 1529 1541 1540 1536
-f 1539 1534 1535 1544
-f 1549 1544 1540 1548
-f 1547 1543 1537 1552
-f 1557 1547 1552 1556
-f 1546 1547 1557 1558
-f 1572 1566 1567 1571
-f 1562 1576 1569 1561
-f 1577 1581 1575 1573
-f 1583 1586 1585 1584
-f 1584 1585 1590 1580
-f 1592 1591 1578 1579
-f 1596 1595 1587 1588
-f 1596 1588 1589 1600
-f 1601 1604 1593
-f 1607 1553 1554 1606
-f 1610 1597 1593 1604
-f 1514 1515 1609 1612
-f 1617 1519 1518 1616
-f 1618 1611 1519 1617
-f 1621 1559 1620
-f 1610 1560 1559 1621
-f 1625 1603 1595 1596
-f 1629 1630 1612 1609
-f 1601 1602 1632 1634
-f 1638 1637 1623 1622
-f 1642 1641 1618 1617
-f 1631 1645 1614 1613
-f 1650 1631 1630 1649
-f 1655 1654 1652 1653
-f 1654 1662 1651 1652
-f 1666 1649 1648 1665
-f 1671 1670 1665 1664
-f 1650 1674 1645 1631
-f 1643 1644 1679 1680
-f 1667 1675 1674 1650
-f 1684 1677 1678 1683
-f 1684 1687 1686 1685
-f 1693 1692 1691 1688
-f 1699 1698 1697 1696
-f 1706 1705 1702 1704
-f 1637 1638 1697 1708
-f 1712 1687 1688 1691
-f 1707 1714 1713 1704
-f 1720 1719 1703 1701
-f 1720 1657 1658 1719
-f 1726 1673 1656 1725
-f 1721 1727 1730 1722
-f 1734 1733 1728 1729
-f 1636 1709 1661 1635
-f 1714 1723 1736 1713
-f 1529 1530 1542 1541
-f 1738 1737 1670 1671
-g coat
-usemtl dkblue_pure
-s 5
-f 2007 2008 1893 2005
-f 1746 1744 1747
-f 1742 1743 1745 1886
-f 1755 1768 1753 1754
-f 1746 1747 1748 1749
-f 1741 1740 1743 1742
-f 1750 1880 1752 1754 1753
-f 2005 1893 2006 1892
-f 1756 1757 1773 1771
-f 1880 1750 1749 1748 1751
-f 1886 1745 1887 1744
-f 1756 1758 1757
-f 1771 1773 1768 1755
-f 1747 1744 1887
-f 2003 1892 2006
-f 1740 1741 2008 2007
-s 6
-f 1980 1896 1933
-f 1990 2003 2002 1989
-f 1989 1975 1974 1990
-f 1891 1971 1969 1991
-f 1967 1987 1986 1964
-f 1960 1967 1964 1959
-f 1961 1958 1954 1953
-f 1972 1970 1948 1947
-f 1947 1943 1942 1946
-f 1939 1951 1949 1938
-f 1963 1985 1980
-f 1935 1933 1825 1823
-f 1958 1929 1928 1954
-f 1924 1937 1925 1923
-f 1922 1920 1919 1924
-f 1842 1846 1918 1920
-f 1992 1968 1849 1760
-f 1990 1971 1891
-f 1762 1888 1781
-f 1847 1807 1783 1784
-f 1847 1845 1811 1807
-f 1844 1836 1815 1816
-f 1836 1838 1839 1837
-f 1832 1798 1803 1833
-f 1821 1827 1828 1824
-f 1822 1820 1823 1825
-f 1789 1819 1772 1767
-f 1813 1809 1810 1816
-f 1808 1809 1813 1812
-f 1780 1781 1806 1805
-f 1801 1799 1800 1802
-f 1793 1795 1797 1796
-f 1787 1790 1791 1786
-f 1785 1765 1769 1786
-f 1778 1762 1781 1780
-f 1748 1763 1764 1751
-f 1743 1740 1760 1759
-f 1747 1762 1763 1748
-f 1819 1883 1772
-f 1776 1777 1778 1779
-f 1783 1761 1759 1784
-f 1766 1788 1789 1767
-f 1792 1794 1795 1793
-f 1799 1791 1790 1800
-f 1806 1781 1783 1807
-f 1810 1806 1807 1811
-f 1814 1813 1816 1815
-f 1796 1817 1819 1789
-f 1820 1821 1824 1823
-f 1818 1826 1827 1821
-f 1831 1794 1798 1832
-f 1815 1836 1837 1835
-f 1843 1838 1836 1844
-f 1846 1842 1843 1845
-f 1784 1759 1760 1849
-f 1764 1879 1880 1751
-f 1762 1747 1887 1888
-f 2003 1990 1891 1892
-f 1898 1988 1999 1897
-f 1905 1979 1984 1912
-f 1916 1997 2000
-f 1968 1917 1848 1849
-f 1920 1918 1941 1919
-f 1840 1842 1920 1922
-f 1938 1926 1925 1937
-f 1957 1930 1929 1958
-f 1934 1935 1823 1824
-f 1944 1948 1970 1973 1976 1977 1978 1965 1962 1952 1950 1940
-f 1939 1940 1950 1951
-f 1947 1948 1944 1943
-f 1954 1949 1951 1953
-f 1959 1964 1963 1956
-f 1961 1966 1967 1960
-f 1983 1966 1965 1978
-f 1974 1973 1970 1972
-f 1988 1982 1975 1989
-f 1987 1983 1982 1988
-f 1991 2005 1892 1891
-f 1980 1933 1963
-f 1825 1933 1896 2010
-f 1756 1883 1882
-f 1881 1993 2009 1758
-f 1740 2007 1992 1760
-f 1989 2002 1999 1988
-f 1982 1983 1978 1977
-f 1975 1976 1973 1974
-f 1991 1969 1968 1992
-f 1964 1986 1985 1963
-f 1958 1960 1959 1957
-f 1961 1953 1952 1962
-f 1971 1946 1945 1969
-f 1946 1942 1941 1945
-f 1939 1938 1937 1936
-f 1955 1956 1935 1934
-f 1932 1934 1824 1828
-f 1954 1928 1927 1949
-f 1922 1924 1923 1921
-f 1924 1919 1936 1937
-f 1918 1917 1945 1941
-f 1945 1917 1968 1969
-f 1997 1916 1912 1984
-f 1932 1931 1955 1934
-f 1898 1987 1988
-f 1792 1791 1794
-f 1879 1764 1765
-f 1829 1826 1818 1797
-f 1848 1846 1845 1847
-f 1811 1844 1816 1810
-f 1838 1840 1841 1839
-f 1833 1803 1814 1834
-f 1829 1797 1795 1830
-f 1819 1822 1882 1883
-f 1817 1818 1821 1820
-f 1800 1790 1787 1774 1775 1776 1779 1782 1804 1808 1812 1802
-f 1812 1813 1801 1802
-f 1804 1805 1809 1808
-f 1803 1798 1799 1801
-f 1788 1793 1796 1789
-f 1786 1791 1792 1785
-f 1786 1769 1774 1787
-f 1779 1778 1780 1782
-f 1775 1770 1777 1776
-f 1769 1765 1764 1770
-f 1743 1759 1761 1745
-f 1745 1761 1888 1887
-f 1769 1770 1775 1774
-f 1781 1888 1761 1783
-f 1765 1785 1788 1766
-f 1785 1792 1793 1788
-f 1794 1791 1799 1798
-f 1782 1780 1805 1804
-f 1809 1805 1806 1810
-f 1801 1813 1814 1803
-f 1796 1797 1818 1817
-f 1817 1820 1822 1819
-f 1758 1756 1882 1881
-f 1830 1795 1794 1831
-f 1834 1814 1815 1835
-f 1842 1840 1838 1843
-f 1845 1843 1844 1811
-f 1847 1784 1849 1848
-f 1822 1825 2010 1882
-f 1960 1958 1961
-f 2009 1993 1979 1905
-f 1846 1848 1917 1918
-f 1919 1941 1942 1936
-f 1840 1922 1921 1841
-f 1949 1927 1926 1938
-f 1955 1931 1930 1957
-f 1935 1956 1963 1933
-f 1943 1939 1936 1942
-f 1943 1944 1940 1939
-f 1971 1972 1947 1946
-f 1953 1951 1950 1952
-f 1957 1959 1956 1955
-f 1962 1965 1966 1961
-f 1987 1967 1966 1983
-f 1990 1974 1972 1971
-f 1982 1977 1976 1975
-f 1992 2007 2005 1991
-s 9
-f 1879 1765 1752 1880
-f 1752 1765 1766 1754
-f 1756 1771 1772 1883
-f 1754 1766 1767 1755
-f 1755 1767 1772 1771
-s 8
-f 1770 1764 1763 1777
-f 1777 1763 1762 1778
-s 10
-f 1757 1871 1873 1773
-f 1850 1750 1753
-f 1773 1873 1855 1768
-f 1872 1758 2009
-f 1758 1872 1871 1757
-f 1850 1753 1768 1855
-s off
-f 1826 1829 1830 1831 1832 1833 1834 1835 1837 1839 1841 1921 1923 1925 1926 1927 1928 1929 1930 1931 1932 1828 1827
-s 18
-f 1896 1994 2010
-f 2001 2000 1897 1999 2002
-f 1987 1998 1996 1986
-f 1985 1995 1981 1980
-f 1987 1898 1897 1998
-f 2004 2003 2006
-f 1979 1981 1995 1984
-f 2003 2004 2001 2002
-f 1986 1996 1995 1985
-f 1981 1994 1896 1980
-f 2010 1994 1881
-f 1993 1994 1981 1979
-f 1984 1995 1996 1997
-f 1998 1897 2000 1997 1996
-f 1994 1993 1881
-f 1881 1882 2010
-g shirt
-usemtl white
-s 6
-f 1899 1912 1916
-f 1853 1852 1885 1884
-f 1894 1895 1916
-f 1878 1877 1884 1850
-f 1885 1850 1884
-f 1915 1914 1895 1894
-s 5
-f 1895 1900 1899 1916
-f 1850 1885 1750
-f 1878 1850 1855
-f 1851 1741 1742 1886 1744 1746 1749 1889 1852
-f 2001 1890 2000
-f 1914 1913 1900 1895
-f 2001 2004 2006 1893 2008 1741 1851 2015 1915 1890
-f 1749 1750 1889
-f 1854 1853 1884 1877
-f 1750 1885 1852 1889
-f 1916 2000 1894
-f 1894 2000 1890 1915
-g tie
-usemtl fldkred
-s 4
-f 1861 1862 1910
-f 1906 1905 1901 2011
-f 1911 1913 1914
-f 1908 1870 2013 1907
-f 1913 1909 1904 1900
-f 1912 1901 1905
-f 1870 1869 2012 2013
-f 1860 1857 1854 1863
-f 1856 1852 1853
-f 1862 1861 1863
-f 1869 1876 1873 2012
-f 1911 1861 1910
-f 1866 1864 1868
-f 1911 1910 1913
-f 2015 1858 1859 1915
-f 1860 1863 1861
-f 1872 1906 2011 2014
-f 1877 1878 1875 1874
-f 1865 1874 1875 1867
-f 1859 1858 1857 1860
-f 1856 1851 1852
-f 1865 1867 1868 1864
-f 1855 1873 1876
-f 1912 1899 1903 1902
-f 1909 1866 1904
-f 1866 1909 1864
-f 1903 1908 1907 1902
-f 1872 2014 1871
-f 1851 1858 2015
-f 1871 2014 2013 2012
-f 1906 2009 1905
-f 1862 1909 1910
-f 1875 1876 1869 1867
-f 1859 1860 1861
-f 1857 1856 1853 1854
-f 1867 1869 1870 1868
-f 1899 1900 1904 1903
-f 1868 1870 1908 1866
-f 1906 1872 2009
-f 1855 1876 1875 1878
-f 1871 2012 1873
-f 2014 2011 1907 2013
-f 1904 1866 1908 1903
-f 1910 1909 1913
-f 1902 1907 2011 1901
-f 1912 1902 1901
-f 1862 1863 1865 1864
-f 1851 1856 1857 1858
-f 1863 1874 1865
-f 1863 1854 1877 1874
-f 1911 1914 1915
-f 1862 1864 1909
-f 1915 1859 1861 1911
-g buttons
-usemtl black
-s off
-f 2063 2068 2067 2064
-f 2059 2072 2071 2060
-f 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075
-f 2043 2048 2047 2044
-f 2039 2052 2051 2040
-f 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055
-f 2023 2033 2034 2024
-f 2019 2029 2030 2020
-f 2035 2034 2033 2032 2031 2030 2029 2028 2027 2026
-f 2016 2026 2027 2017
-f 2020 2030 2031 2021
-f 2024 2034 2035 2025
-f 2036 2055 2054 2037
-f 2040 2051 2050 2041
-f 2044 2047 2046 2045
-f 2056 2075 2074 2057
-f 2060 2071 2070 2061
-f 2064 2067 2066 2065
-f 2062 2069 2068 2063
-f 2058 2073 2072 2059
-f 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065
-f 2042 2049 2048 2043
-f 2038 2053 2052 2039
-f 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045
-f 2022 2032 2033 2023
-f 2018 2028 2029 2019
-f 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025
-f 2017 2027 2028 2018
-f 2021 2031 2032 2022
-f 2025 2035 2026 2016
-f 2037 2054 2053 2038
-f 2041 2050 2049 2042
-f 2045 2046 2055 2036
-f 2057 2074 2073 2058
-f 2061 2070 2069 2062
-f 2065 2066 2075 2056
-g uparmr
-usemtl dkblue_pure
-f 2169 2168 2167 2166 2165 2164 2163 2162 2161 2160 2159 2158 2157 2156 2171 2170
-f 2153 2152 2151 2150 2149 2148 2147 2146 2145 2144 2143 2142 2141 2140 2155 2154
-s 52
-f 2105 2107 2185 2186
-f 2081 2083 2177 2178
-f 2089 2091 2174 2173
-f 2097 2099 2182 2181
-f 2169 2170 2135 2134
-f 2165 2166 2131 2130
-f 2161 2162 2127 2126
-f 2157 2158 2139 2138
-f 2153 2154 2119 2118
-f 2149 2150 2115 2114
-f 2145 2146 2111 2110
-f 2141 2142 2123 2122
-f 2137 2138 2103 2101
-f 2133 2134 2095 2093
-f 2129 2130 2087 2085
-f 2125 2126 2079 2077
-f 2121 2122 2082 2084
-f 2117 2118 2090 2092
-f 2113 2114 2098 2100
-f 2109 2110 2106 2076
-f 2187 2102 2100 2183
-f 2180 2094 2092 2172
-f 2175 2086 2084 2176
-f 2184 2078 2076 2179
-f 2176 2084 2082 2177
-f 2172 2092 2090 2174
-f 2183 2100 2098 2182
-f 2179 2076 2106 2185
-f 2110 2111 2104 2106
-f 2114 2115 2096 2098
-f 2118 2119 2088 2090
-f 2122 2123 2080 2082
-f 2126 2127 2081 2079
-f 2130 2131 2089 2087
-f 2134 2135 2097 2095
-f 2138 2139 2105 2103
-f 2142 2143 2108 2123
-f 2146 2147 2112 2111
-f 2150 2151 2116 2115
-f 2154 2155 2120 2119
-f 2158 2159 2124 2139
-f 2162 2163 2128 2127
-f 2166 2167 2132 2131
-f 2170 2171 2136 2135
-f 2095 2097 2181 2180
-f 2087 2089 2173 2175
-f 2079 2081 2178 2184
-f 2103 2105 2186 2187
-f 2107 2077 2179 2185
-f 2083 2085 2176 2177
-f 2091 2093 2172 2174
-f 2099 2101 2183 2182
-f 2168 2169 2134 2133
-f 2164 2165 2130 2129
-f 2160 2161 2126 2125
-f 2156 2157 2138 2137
-f 2152 2153 2118 2117
-f 2148 2149 2114 2113
-f 2144 2145 2110 2109
-f 2140 2141 2122 2121
-f 2136 2137 2101 2099
-f 2132 2133 2093 2091
-f 2128 2129 2085 2083
-f 2124 2125 2077 2107
-f 2120 2121 2084 2086
-f 2116 2117 2092 2094
-f 2112 2113 2100 2102
-f 2108 2109 2076 2078
-f 2186 2104 2102 2187
-f 2181 2096 2094 2180
-f 2173 2088 2086 2175
-f 2178 2080 2078 2184
-f 2177 2082 2080 2178
-f 2174 2090 2088 2173
-f 2182 2098 2096 2181
-f 2185 2106 2104 2186
-f 2111 2112 2102 2104
-f 2115 2116 2094 2096
-f 2119 2120 2086 2088
-f 2123 2108 2078 2080
-f 2127 2128 2083 2081
-f 2131 2132 2091 2089
-f 2135 2136 2099 2097
-f 2139 2124 2107 2105
-f 2143 2144 2109 2108
-f 2147 2148 2113 2112
-f 2151 2152 2117 2116
-f 2155 2140 2121 2120
-f 2159 2160 2125 2124
-f 2163 2164 2129 2128
-f 2167 2168 2133 2132
-f 2171 2156 2137 2136
-f 2093 2095 2180 2172
-f 2085 2087 2175 2176
-f 2077 2079 2184 2179
-f 2101 2103 2187 2183
-g hat
-usemtl brown
-s 1
-f 2411 2410 2406 2405
-f 2390 2389 2527 2528
-f 2384 2383 2382 2381
-f 2223 2222 2412 2409
-f 2405 2406 2402 2401
-f 2397 2388 2391 2398
-f 2389 2388 2392
-f 2383 2384 2201 2200
-f 2377 2378 2375 2372
-f 2352 2351 2218 2216
-f 2344 2342 2341 2343
-f 2191 2199 2303 2302
-f 2219 2221 2222 2223
-f 2214 2213 2352 2357
-f 2210 2205 2206 2211
-f 2207 2206 2204
-f 2200 2201 2303 2304
-f 2190 2193 2194 2195
-f 2189 2192 2193 2190
-f 2195 2199 2191 2190
-f 2205 2203 2204 2206
-f 2206 2207 2208 2209
-f 2211 2212 2364 2215 2213
-f 2216 2218 2367 2221 2219
-f 2188 2191 2302 2301
-f 2343 2341 2208 2207
-f 2346 2344 2343 2345
-f 2372 2375 2376 2373
-f 2372 2371 2381 2377
-f 2388 2389 2390 2391
-f 2395 2396 2392 2388
-f 2402 2403 2404 2399 2397
-f 2409 2412 2413 2414 2410
-f 2298 2202 2385 2506
-f 2389 2392 2526 2527
-f 2528 2527 2387 2386
-f 2410 2414 2407 2406
-f 2526 2525 2394 2393
-f 2385 2384 2381 2371
-f 2223 2409 2408 2224
-f 2403 2402 2406 2407
-f 2399 2400 2395 2388 2397
-f 2375 2378 2387 2393
-f 2384 2385 2202 2201
-f 2379 2380 2378 2377
-f 2357 2352 2216 2217
-f 2348 2345 2204 2203
-f 2199 2198 2304 2303
-f 2224 2220 2219 2223
-f 2351 2352 2213 2215
-f 2211 2206 2209 2363 2212
-f 2344 2346 2194 2193
-f 2201 2202 2302 2303
-f 2195 2194 2196 2197
-f 2188 2189 2190 2191
-f 2197 2198 2199 2195
-f 2346 2347 2196 2194
-f 2342 2344 2193 2192
-f 2210 2211 2213 2214
-f 2217 2216 2219 2220
-f 2301 2302 2202 2298
-f 2345 2343 2207 2204
-f 2347 2346 2345 2348
-f 2371 2372 2373 2374
-f 2377 2381 2382 2379
-f 2378 2380 2386 2387
-f 2376 2375 2393 2394
-f 2401 2402 2397 2398
-f 2408 2409 2410 2411
-f 2506 2385 2371 2374
-f 2392 2396 2525 2526
-f 2527 2526 2393 2387
-s 14
-f 2434 2242 2231 2433
-f 2456 2455 2464 2459
-f 2472 2471 2468 2467
-f 2472 2473 2278 2277
-f 2463 2460 2459 2464
-f 2452 2439 2454 2453
-f 2451 2435 2434 2450
-f 2447 2429 2427 2446
-f 2443 2444 2428 2440
-f 2242 2434 2435 2244
-f 2429 2423 2425 2427
-f 2360 2359 2233 2240
-f 2263 2280 2250 2249
-f 2269 2273 2274 2270
-f 2264 2254 2251 2266
-f 2253 2252 2255 2256 2257 2258 2259 2260 2262 2261
-f 2257 2240 2241 2258
-f 2236 2237 2254
-f 2247 2248 2249 2250
-f 2240 2233 2232 2241
-f 2237 2236 2235 2238
-f 2241 2232 2231 2368
-f 2251 2237 2248 2247
-f 2252 2237 2238 2255
-f 2258 2241 2368 2243 2259
-f 2260 2370 2263 2262
-f 2355 2268 2269 2354
-f 2276 2277 2306 2307
-f 2273 2272 2307 2306
-f 2354 2353 2265 2264
-f 2368 2231 2242 2243
-f 2427 2425 2426 2428
-f 2433 2231 2421 2431
-f 2441 2440 2428 2442
-f 2446 2427 2428 2444
-f 2450 2434 2433 2431 2448
-f 2453 2454 2436 2451
-f 2459 2460 2461 2462
-f 2471 2472 2277 2276
-f 2457 2456 2459 2462
-f 2447 2449 2430
-f 2432 2422 2424 2430
-f 2454 2475 2437 2436
-f 2460 2467 2468 2461
-f 2455 2456 2445 2426
-f 2443 2440 2439 2452
-f 2430 2429 2447
-f 2445 2442 2428
-f 2435 2436 2437 2246 2244
-f 2430 2424 2423 2429
-f 2370 2260 2369
-f 2257 2360 2240
-f 2274 2273 2306 2308
-f 2370 2245 2280 2263
-f 2268 2272 2273 2269
-f 2236 2254 2264 2265
-f 2261 2249 2248 2253
-f 2256 2239 2360
-f 2237 2251 2254
-f 2244 2246 2245 2370 2369
-f 2239 2234 2359 2360
-f 2238 2235 2234 2239
-f 2244 2369 2243 2242
-f 2248 2237 2252 2253
-f 2255 2238 2239 2256
-f 2259 2243 2369 2260
-f 2262 2263 2249 2261
-f 2353 2354 2269 2270
-f 2277 2278 2308 2306
-f 2355 2354 2264 2266
-f 2360 2257 2256
-f 2431 2421 2422 2432
-f 2438 2439 2440 2441
-f 2445 2428 2426
-f 2448 2431 2432 2449
-f 2452 2453 2451 2450 2448 2449 2447 2446 2444 2443
-f 2457 2442 2445 2456
-f 2463 2469 2467 2460
-f 2439 2438 2475 2454
-f 2473 2472 2467 2469
-f 2432 2430 2449
-f 2435 2451 2436
-s 19
-f 2485 2457 2462 2476
-f 2441 2442 2484 2483
-f 2468 2471 2479 2478
-f 2476 2477 2478 2479 2331 2330 2480 2481 2482 2483 2484 2485
-f 2336 2335 2266 2251
-f 2332 2331 2276 2307
-f 2335 2336 2337 2338 2328 2329 2330 2331 2332 2333 2334 2356
-f 2333 2332 2307 2272
-f 2337 2336 2251 2247
-f 2356 2355 2266 2335
-f 2471 2276 2331 2479
-f 2442 2457 2485 2484
-f 2438 2441 2483 2482
-f 2461 2468 2478 2477
-f 2437 2475 2481 2480
-f 2328 2338 2250 2280
-f 2355 2356 2334 2268
-f 2330 2329 2245 2246
-f 2329 2328 2280 2245
-f 2334 2333 2272 2268
-f 2338 2337 2247 2250
-f 2246 2437 2480 2330
-f 2461 2477 2476 2462
-f 2475 2438 2482 2481
-s 2
-f 2507 2374 2373 2492
-f 2488 2395 2400 2498
-f 2363 2362 2294 2212
-f 2282 2188 2301 2281
-f 2361 2351 2215 2295
-f 2208 2285 2286 2209
-f 2365 2295 2215 2364
-f 2283 2189 2188 2282
-f 2365 2364 2212 2294
-f 2492 2373 2376 2487
-f 2396 2489 2495 2525
-f 2491 2506 2374 2507
-f 2394 2486 2487 2376
-f 2342 2340 2339 2341
-f 2298 2288 2281 2301
-f 2192 2284 2340 2342
-f 2362 2363 2209 2286
-f 2284 2192 2189 2283
-f 2341 2339 2285 2208
-f 2395 2488 2489 2396
-f 2506 2491 2288 2298
-f 2525 2495 2486 2394
-s 8
-f 2520 2521 2515 2514
-f 2524 2505 2509 2518
-f 2504 2300 2319 2512
-f 2496 2497 2524 2523
-f 2490 2508 2520 2519
-f 2490 2491 2507 2508
-f 2327 2326 2291 2290
-f 2323 2322 2295 2365 2294
-f 2318 2317 2287 2289
-f 2291 2292 2314 2313
-f 2289 2287 2310 2309
-f 2294 2362 2286 2315
-f 2281 2288 2309 2310
-f 2286 2285 2314 2315
-f 2324 2325 2326 2327 2316 2317 2318 2319 2320 2321 2322 2323
-f 2290 2291 2313 2312
-f 2317 2316 2299 2287
-f 2322 2321 2296 2361 2295
-f 2326 2325 2292 2291
-f 2490 2309 2288 2491
-f 2494 2508 2507 2492
-f 2508 2494 2521 2520
-f 2505 2524 2497
-f 2502 2503 2504 2512 2511
-f 2523 2524 2518 2517
-f 2521 2522 2516 2515
-f 2505 2500 2499 2510 2509
-f 2289 2519 2513 2318
-f 2493 2496 2523 2522
-f 2309 2490 2519 2289
-f 2487 2486 2495 2489 2496 2493
-f 2316 2327 2290 2299
-f 2324 2323 2294 2293
-f 2320 2319 2300 2297
-f 2292 2293 2315 2314
-f 2287 2299 2311 2310
-f 2311 2282 2281 2310
-f 2312 2313 2284 2283
-f 2313 2314 2285 2339 2340 2284
-f 2283 2282 2311 2312
-f 2299 2290 2312 2311
-f 2315 2293 2294
-f 2321 2320 2297 2366 2296
-f 2325 2324 2293 2292
-f 2492 2487 2493 2494
-f 2509 2510 2511 2512 2319 2318 2513 2514 2515 2516 2517 2518
-f 2494 2493 2522 2521
-f 2519 2520 2514 2513
-f 2499 2501 2502 2511 2510
-f 2522 2523 2517 2516
-s 10
-f 2222 2300 2504 2412
-f 2367 2366 2297 2221
-f 2221 2297 2300 2222
-f 2404 2403 2499 2500
-f 2412 2504 2503 2413
-f 2502 2414 2413 2503
-f 2351 2361 2296 2218
-f 2366 2367 2218 2296
-f 2499 2403 2407 2501
-f 2414 2502 2501 2407
-s 35
-f 2505 2399 2404 2500
-f 2497 2488 2498 2505
-f 2399 2505 2498 2400
-f 2497 2496 2489 2488
-g band
-usemtl black
-s 6
-f 2529 2528 2386 2466
-f 2465 2380 2379 2382 2470
-f 2391 2390 2458 2420
-f 2417 2423 2424 2418
-f 2398 2419 2417 2401
-f 2353 2350 2349
-f 2353 2349 2267 2265
-f 2275 2274 2308 2305
-f 2305 2279 2200 2304
-f 2347 2350 2271 2196
-f 2228 2234 2235 2229
-f 2210 2229 2230 2205
-f 2224 2225 2226 2220
-f 2214 2228 2229 2210
-f 2358 2359 2234 2228
-f 2236 2265 2267 2230
-f 2270 2274 2275 2271
-f 2350 2347 2348 2349
-f 2408 2415 2225 2224
-f 2391 2420 2419 2398
-f 2419 2425 2423 2417
-f 2465 2463 2464 2466
-f 2473 2474 2279 2278
-f 2474 2473 2469 2470
-f 2455 2458 2529 2464
-f 2529 2466 2464
-f 2416 2411 2405 2418
-f 2458 2390 2528 2529
-f 2383 2474 2470 2382
-f 2465 2470 2469 2463
-f 2420 2458 2455 2426
-f 2416 2422 2421 2415
-f 2401 2417 2418 2405
-f 2359 2358 2227 2233
-f 2278 2279 2305 2308
-f 2350 2353 2270 2271
-f 2229 2235 2236 2230
-f 2225 2231 2232 2226
-f 2220 2226 2227 2217
-f 2357 2358 2228 2214
-f 2226 2232 2233 2227
-f 2230 2267 2203 2205
-f 2275 2198 2197 2196 2271
-f 2198 2275 2305 2304
-f 2349 2348 2203 2267
-f 2358 2357 2217 2227
-f 2411 2416 2415 2408
-f 2415 2421 2231 2225
-f 2420 2426 2425 2419
-f 2380 2465 2466 2386
-f 2383 2200 2279 2474
-f 2422 2416 2418 2424
-g facial
-usemtl skin
-s 1
-f 2848 2846 2847 2849
-f 3276 2856 2857 3277
-f 2856 2854 2855 2857
-f 3388 3400 3402 3389
-f 3392 3388 3390 3391
-f 3375 3377 3380 3376
-f 3369 3371 3372 3370
-f 3298 3363 3364 3299
-f 3353 3355 3356 3354
-f 3343 3347 3348 3344
-f 3308 3339 3340 3309
-f 3327 3319 3322 3323
-f 3311 3304 3303 3310
-f 3296 3298 3300 3297
-f 3389 3390 3388
-f 3331 3332 3333 3334 3330
-f 3308 3309 3307
-f 3291 3289 3288 3290
-f 3281 3279 3278 3280
-f 3095 3263 3264 3262
-f 3260 3261 3314 3312
-f 3256 3257 3302 3306
-f 3252 3253 3342 3316
-f 2588 2578 3238 3040
-f 3237 3032 3244 3245
-f 3036 3296 3295 3241
-f 3231 3087 3266 3269
-f 3032 3042 3235 3240
-f 3093 3092 3229 3228
-f 3100 3291 3293 3221
-f 3227 3093 3275 3277
-f 3033 3238 3245 3244
-f 3094 3099 3219 3224
-f 3105 3112 3223 3222
-f 3104 3099 3218 3214
-f 3108 3153 3205 3207
-f 3153 3108 3210 3206
-f 3143 3141 3189 3196
-f 3134 3135 3171 3164
-f 3141 3143 3195 3188
-f 3114 3158 3117 3187 3194
-f 3127 3130 3168 3170
-f 3130 3127 3169 3167
-f 3120 3117 3186 3181
-f 3156 3110 3201 3199
-f 2682 2683 3185 3190
-f 2691 2692 3166 3173
-f 3118 3186 3191 3157
-f 2669 2728 3206 3210
-f 3119 3148 3179 3181
-f 2994 3000 3147
-f 3232 3145 3267
-f 3134 3004 3165
-f 3356 3358 3385 3383
-f 3097 3220 3222
-f 3121 3183 3188 3116
-f 3184 3140 3142 3189
-f 3128 3129 3133 3164 3171
-f 3133 3163 3132 3022 3006
-f 3167 3169 3125 3126
-f 3125 3123 3178 3173
-f 3148 3123 3174 3179
-f 3157 3113 3198 3192
-f 3201 3109 3155 3199
-f 3205 3153 3109 3201
-f 3107 3208 3214 3103 3152
-f 3221 2659 2661 3216
-f 3098 3095 3224 3219
-f 3230 3091 3287 3286 3225
-f 2650 3227 3277 2857
-f 3091 3088 3228 3229
-f 3364 3366 3270 3268
-f 3085 3089 3084 3047 3062 3086
-f 3081 2634 2638 3082
-f 3020 2562 2634 3081
-f 3029 3080 3079 3026
-f 3076 2626 2625 3074
-f 3070 3066 3065 3073
-f 3070 3072 3248 3249
-f 3065 3066 3064
-f 3053 3375 3374 3052
-f 2716 3060 3061 2715
-f 3253 3252 3261 3260 3259
-f 3057 3247 3059 3058
-f 3053 3311 3313 3054
-f 3046 3045 3246 3050
-f 3002 3045 3046 3001
-f 3373 3037 3241 3295
-f 3363 3234 3041 3365
-f 3033 3040 3238
-f 3242 3241 3037 3035
-f 3026 3027 3030 3029
-f 3007 3017 3024 3023
-f 3159 2565 2564 3019 3021
-f 3336 3012 3014 3329
-f 3399 3015 3013 3396
-f 3012 3013 3015 3014
-f 3400 3008 3384 3387 3401
-f 3362 3361 3003 3002 2994
-f 2993 3147 3000
-f 2999 2990 2989
-f 2998 2994 2997 2996
-f 2993 3343 3346 3147
-f 3353 2989 2990 3355
-f 2545 2742 2705 2546
-f 2979 2977 2978 2980
-f 2967 2922 2921 2968
-f 2956 2958 2957 2955
-f 2948 2950 2949 2947
-f 2940 2942 2941 2939
-f 2932 2934 2933 2931
-f 2924 2926 2925 2923
-f 2914 2913 2912 2918
-f 2896 2894 2895 2897
-f 2887 2886 2885 2888
-f 2983 2985 2984
-f 2943 2946 2945 2944
-f 2900 2902 2901
-f 2873 2875 2874 2872
-f 2863 2865 2864 2862
-f 2645 2842 2840
-f 2898 2900 2830 2839
-f 2886 2887 2836 2835
-f 2926 2924 2832 2831
-f 2964 2587 2603 2963
-f 2822 2823 2814 2577
-f 2819 2818 2583 2581
-f 2807 2808 2643 2646
-f 2816 2820 2821 2580
-f 2853 2851 2805 2649
-f 2871 2794 2658 2873
-f 2803 2804 2649 2648
-f 2813 2814 2579 2590
-f 2810 2801 2652 2646
-f 2797 2799 2665 2656
-f 2785 2791 2664 2666
-f 2788 2784 2668 2725
-f 2781 2783 2727 2671
-f 2793 2798 2658 2662
-f 2754 2749 2704 2706
-f 2760 2765 2710 2708
-f 2779 2771 2677 2732 2672
-f 2752 2747 2695 2688
-f 2739 2744 2698 2701
-f 2756 2758 2686 2722
-f 2770 2776 2732 2677
-f 2769 2767 2682 2734
-f 2755 2750 2691 2684
-f 2767 2769 2733 2681
-f 2729 2782 2784 2667
-f 2723 2929 2943
-f 2930 2719 2535 2946
-f 2717 2843 2883 2884 2642
-f 2703 2704 2749 2742
-f 2794 2871 2867 2660
-f 2906 2972 2973 2987 2988 2905
-f 2773 2800 2713
-f 2760 2753 2690 2687
-f 2761 2709 2707 2754
-f 2741 2703 2545 2547 2702
-f 2697 2702 2740 2745
-f 2745 2747 2696 2697
-f 2693 2694 2743 2750
-f 2759 2764 2679 2687
-f 2733 2675 2770 2768
-f 2777 2730 2670 2781
-f 2781 2670 2728 2783
-f 2792 2786 2666 2664
-f 2802 2795 2660 2867 2868
-f 2797 2841 2654 2655
-f 2865 2806 2647 2869
-f 2854 2856 2958 2956
-f 2644 2808 2807 2647
-f 2642 2641 2717
-f 2640 2596 2546 2705
-f 2576 2637 2636 2573
-f 2632 2630 2631 2633
-f 2614 2623 2630 2632
-f 2629 2626 2627 2628
-f 2605 2610 2620
-f 2827 2619 2615 2828
-f 2613 2614 2612 2593
-f 2602 2961 2963 2603
-f 2609 2587 2588 2716
-f 2925 2825 2608 2923
-f 2825 2901 2902 2605 2606
-f 2602 2895 2888 2601
-f 2824 2891 2892 2598 2594
-f 2543 2594 2592 2544
-f 2882 2586 2583 2880
-f 2591 2577 2814 2813
-f 2580 2587 2964 2965 2816
-f 2816 2582 2819 2820
-f 2570 2569 2572 2573
-f 2976 2977 2560
-f 2914 2556 2555 2913
-f 2912 2919 2934 2932
-f 2552 2554 2982 2980
-f 2553 2554 2552 2551
-f 2940 2938 2967 2969
-f 2535 2543 2544 2945 2946
-f 2541 2719 2534
-f 2530 2531 2540
-f 2537 2538 2535 2539
-f 2719 2930 2927 2534
-f 2939 2531 2530 2937
-f 2533 2534 2927 2931
-f 2537 2908 2909 2538
-f 2540 2531 2539
-f 2541 2540 2539
-f 2542 2538 2909 2910 2546
-f 2922 2936 2934 2919
-f 2551 2552 2550 2549
-f 2550 2552 2980 2978
-f 2920 2553 2551 2968 2921
-f 2915 2984 2985 2556 2914
-f 2904 2567 2547 2903
-f 2571 2572 2569 2568
-f 2823 2822 2578 2815
-f 2583 2586 2581
-f 2812 2817 2581 2589
-f 2957 2591 2813 2955
-f 2592 2593 2548 2544
-f 2594 2598 2597 2592
-f 2601 2888 2885 2600
-f 2605 2902 2899 2604
-f 2892 2923 2608 2598
-f 2832 2836 2837 2831
-f 2603 2587 2609 2604
-f 2612 2568 2548 2593
-f 2592 2829 2613 2593
-f 2620 2610 2715 2714
-f 2622 2625 2624 2621
-f 2628 2631 2630 2629
-f 2612 2571 2568
-f 2573 2636 2635 2570
-f 2627 2639 2637 2576 2575 2574 2633 2631 2628
-f 2881 2878 2600 2611
-f 2810 2809 2717 2840
-f 2848 2850 2952 2950
-f 2858 2651 2803 2861
-f 2654 2645 2640
-f 2870 2864 2866
-f 2791 2663 2660 2795
-f 2724 2661 2793 2789
-f 2780 2786 2665 2674
-f 2764 2771 2678 2679
-f 2758 2685 2681 2763
-f 2687 2690 2752 2759
-f 2690 2696 2747 2752
-f 2739 2700 2694 2744
-f 2736 2738 2700 2566
-f 2749 2754 2707 2705
-f 2772 2765 2679 2678
-f 2678 2673 2780 2772
-f 2567 2904 2905 2988 2975
-f 2877 2875 2798 2659
-f 2796 2792 2664 2657
-f 2645 2840 2717 2641
-f 2718 2935 2937 2530
-f 2731 2776 2770 2675
-f 2784 2788 2726 2667
-f 2738 2736 2565 2699
-f 2757 2755 2684 2720
-f 2775 2769 2734 2676
-f 2768 2770 2677 2735
-f 2751 2756 2722 2688
-f 2737 2739 2701 2567
-f 2759 2752 2688 2722 2686
-f 2785 2779 2672 2729 2667
-f 2753 2760 2708 2706
-f 2761 2754 2706 2708
-f 2789 2793 2662 2725
-f 2777 2781 2671 2731
-f 2790 2788 2725 2662
-f 2786 2780 2673 2666
-f 2792 2796 2656 2665
-f 2809 2810 2646 2643
-f 2955 2813 2590 2953
-f 2861 2803 2648 2863
-f 2864 2870 2872 2862
-f 2850 2852 2954 2952
-f 2947 2811 2586 2882
-f 2802 2807 2646 2652
-f 2820 2819 2581 2817
-f 2966 2962 2585
-f 2824 2599 2889 2891
-f 2924 2893 2833 2832
-f 2887 2894 2837 2836
-f 2645 2654 2841 2842
-f 2866 2869 2868 2867
-f 2866 2864 2865 2869
-f 2875 2877 2876 2874
-f 2903 2906 2905 2904
-f 2963 2966 2965 2964
-f 2986 2988 2987
-f 2886 2890 2889 2885
-f 2898 2896 2897 2899
-f 2913 2920 2919 2912
-f 2926 2900 2901 2925
-f 2934 2936 2935 2933
-f 2942 2907 2908 2941
-f 2950 2952 2951 2949
-f 2961 2960 2959 2962
-f 2968 2970 2969 2967
-f 2981 2979 2980 2982
-f 2742 2749 2705
-f 3347 3343 2993 2992
-f 2997 3325 3324 2996
-f 2998 2990 2999
-f 2998 2999 3000
-f 3005 3326 3325 2997 3001
-f 3344 3348 3328 3334
-f 3009 3008 3400 3388
-f 3392 3009 3388
-f 3384 3008 3010 3382
-f 3344 3334 3333 3150 3345
-f 3160 3021 3019 3390 3389 3022
-f 3025 3024 3017 3016
-f 3027 3028 3031 3030
-f 3037 3038 3035
-f 3039 3034 3041 3234
-f 3365 3041 3235 3367
-f 3038 3037 3373 3376
-f 3001 3046 3047 3005
-f 3050 3305 3301 3051
-f 3054 3313 3315 3055
-f 3058 3059 3049 3048
-f 3257 3256 3255 3254 3258
-f 3056 3061 3060 3055
-f 3062 3047 3046 3050 3051
-f 3064 3066 3250 3251
-f 2714 3071 3248 3072 2622
-f 3070 3073 3074 3072
-f 3074 3073 3077 3076
-f 3026 3079 3065 3063
-f 3016 3020 3081 3025
-f 3082 2638 2639 3083
-f 3086 3062 3297 3300
-f 3088 3231 3269 3271
-f 3228 3088 3271 3273
-f 3227 2650 2651 3226
-f 3095 3262 3233 3224
-f 3292 3278 2859 2876
-f 3103 3101 3217 3213
-f 3152 3103 3213 3211
-f 3111 3106 3208 3202
-f 3115 3111 3202 3194
-f 3119 3118 3190 3185
-f 3178 3123 3148 3180
-f 3169 3174 3123 3125
-f 3131 3126 3166 3161
-f 3160 3162 3131 3021
-f 3124 3128 3171 3176
-f 3189 3142 3144 3196
-f 3223 3144 3197 3097 3222
-f 3084 3096 3097 3197 3144 3142 3140 3138 3136
-f 3385 3358 3323 3322 3386
-f 3004 3327 3326 3005
-f 3001 2997 2994 3002
-f 3354 3381 3338 3352
-f 3119 3185 3180 3148
-f 2676 3198 3200 2730
-f 2669 3210 3212 2724
-f 2692 2699 3161 3166
-f 2683 2720 3180 3185
-f 3110 3154 3205 3201
-f 3117 3158 3191 3186
-f 3127 3122 3174 3169
-f 3130 3132 3163 3168
-f 3117 3120 3182 3187
-f 3143 3112 3203 3195
-f 3135 3137 3176 3171
-f 3141 3139 3184 3189
-f 3108 3151 3212 3210
-f 3113 3155 3200 3198
-f 3100 3102 3213 3217
-f 3112 3143 3196 3223
-f 3105 3215 3209
-f 3087 3232 3267 3266
-f 3370 3372 3276 3274
-f 3290 3280 3278 3292
-f 3092 3281 3283 3229
-f 3042 3369 3367 3235
-f 3299 3364 3268 3265
-f 3099 3094 3225 3218
-f 3032 3240 3243 3244
-f 3035 3038 3380 3379 3239
-f 3341 3247 3317
-f 3255 3256 3306 3309
-f 3259 3260 3312 3310
-f 3095 3098 3220 3263
-f 3279 2858 2859 3278
-f 3284 3288 3289 3285
-f 3299 3300 3298
-f 3324 3325 3326 3327 3323
-f 3386 3387 3385
-f 3297 3294 3295 3296
-f 3305 3307 3309 3306
-f 3318 3315 3314 3316
-f 3335 3338 3337 3336
-f 3346 3343 3344 3345
-f 3354 3352 3351 3353
-f 3362 3346 3345 3359
-f 3370 3368 3367 3369
-f 3373 3295 3294 3374
-f 3387 3384 3383 3385
-f 3399 3396 3395 3397
-f 3052 3374 3294 3051
-f 3266 3267 3145 3265
-f 3275 3273 3272 3274
-f 2850 2848 2849 2851
-f 2854 2852 2853 2855
-f 2846 2843 2844 2847
-f 3273 3271 3269 3268 3270 3272
-f 3275 3274 3276 3277
-f 3005 3136 3165 3004
-f 3394 3392 3391 3393
-f 3382 3337 3338 3381
-f 3371 2957 2958 3372
-f 3363 3365 3366 3364
-f 3355 3357 3358 3356
-f 3347 3349 3350 3348
-f 3339 3341 3342 3340
-f 3334 3328 3329 3330
-f 3313 3311 3310 3312
-f 3304 3301 3302 3303
-f 3398 3399 3397
-f 3360 3361 3362 3359
-f 3317 3318 3316
-f 3290 3292 3293 3291
-f 3280 3282 3283 3281
-f 3262 3264 3089
-f 3261 3252 3316 3314
-f 3257 3258 3303 3302
-f 3253 3254 3340 3342
-f 3377 3054 3040 3378
-f 2577 3237 3245 2822
-f 3034 3036 3241 3242
-f 3090 3087 3231 3230
-f 3033 3244 3243 3239
-f 3093 3228 3273 3275
-f 3291 3100 3217 3289
-f 3092 3093 3227 3226
-f 3042 3032 3237 3236
-f 3090 3094 3224 3233
-f 3098 3105 3222 3220
-f 3106 3104 3214 3208
-f 3151 3108 3207 3211
-f 3109 3153 3206 3204
-f 3102 3100 3221 3216
-f 3137 3135 3172 3177
-f 3139 3141 3188 3183
-f 3110 3156 3114 3194 3202
-f 3122 3127 3170 3175
-f 3132 3130 3167 3162
-f 3149 3120 3181 3179
-f 3114 3156 3199 3193
-f 2734 2682 3190 3192
-f 2684 2691 3173 3178
-f 3118 3157 3192 3190
-f 3107 3207 3205 3154
-f 3359 3345 3150
-f 3362 2994 3147 3346
-f 3086 3300 3299 3265 3145
-f 3165 3172 3135 3134
-f 3101 3285 3289 3217
-f 3321 3402 3401 3387 3386 3322
-f 3144 3223 3196
-f 3121 3124 3176 3183
-f 3177 3138 3140 3184
-f 3133 3006 3004 3134 3164
-f 3168 3163 3133 3129
-f 3129 3128 3170 3168
-f 3173 3166 3126 3125
-f 3121 3116 3187 3182
-f 3191 3193 3113 3157
-f 3204 2670 2730 3200
-f 3206 2728 2670 3204
-f 3104 3106 3209 3215
-f 3286 3285 3101 3218 3225
-f 3097 3096 3263 3220
-f 3287 3091 3229 3283
-f 3372 2958 2856 3276
-f 3091 3230 3231 3088
-f 3145 3085 3086
-f 3136 3005 3047 3084
-f 3028 3082 3083 3031
-f 3080 3078 3077 3079
-f 3079 3077 3073 3065
-f 3075 2627 2626 3076
-f 3071 3061 3056
-f 3250 3066 3070 3249
-f 3044 3063 3065 3064
-f 3054 3377 3375 3053
-f 2716 2588 3040 3060
-f 3339 3059 3247 3341
-f 3057 3056 3318 3317 3247
-f 3052 3304 3311 3053
-f 3045 3049 3308 3307 3246
-f 3003 3043 3045 3002
-f 3296 3036 3039 3298
-f 3236 3237 2577 2591
-f 3239 3379 3378 3040 3033
-f 3243 3242 3035 3239
-f 3028 3027 3024 3025
-f 3019 3391 3390
-f 3329 3014 3015 3330
-f 3348 3350 3335 3328
-f 3394 3396 3013 3011
-f 3010 3011 3013 3012
-f 3383 3381 3354 3356
-f 3004 3006 3319 3327
-f 2994 2998 3000
-f 2999 2989 3146 2991
-f 2998 2996 2995
-f 3355 2990 2995 3357
-f 3351 3349 2991 3146
-f 2975 2988 2986 2974
-f 2977 2976 2974 2978
-f 2962 2966 2963 2961
-f 2954 2956 2955 2953
-f 2883 2948 2947 2882
-f 2938 2940 2939 2937
-f 2928 2932 2931 2927
-f 2893 2924 2923 2892
-f 2907 2906 2903 2911
-f 2894 2887 2888 2895
-f 2881 2884 2882 2880
-f 2974 2976 2975
-f 2914 2918 2917 2916 2915
-f 2891 2893 2892
-f 2872 2870 2871 2873
-f 2862 2860 2861 2863
-f 2840 2842 2841 2653
-f 2896 2898 2839 2838
-f 2890 2886 2835 2834
-f 2900 2926 2831 2830
-f 2587 2815 2578 2588
-f 2823 2821 2579 2814
-f 2818 2879 2880 2583
-f 2847 2844 2643 2808
-f 2817 2812 2590 2579
-f 2805 2806 2648 2649
-f 2798 2875 2873 2658
-f 2855 2853 2649 2804
-f 2821 2823 2815 2580
-f 2801 2796 2657 2652
-f 2799 2800 2674 2665
-f 2791 2795 2657 2664
-f 2784 2782 2727 2668
-f 2783 2787 2668 2727
-f 2773 2766 2710 2712
-f 2741 2748 2704 2703
-f 2765 2772 2712 2710
-f 2771 2764 2680 2735 2677
-f 2747 2745 2698 2695
-f 2744 2746 2695 2698
-f 2758 2763 2680 2686
-f 2776 2778 2672 2732
-f 2767 2762 2683 2682
-f 2750 2743 2692 2691
-f 2733 2768 2763 2681
-f 2787 2783 2728 2669
-f 2758 2756 2721 2685
-f 2719 2541 2535
-f 2845 2717 2809
-f 2742 2545 2703
-f 2969 2971 2942 2940
-f 2799 2797 2655
-f 2679 2765 2760 2687
-f 2766 2711 2709 2761
-f 2748 2741 2702 2697 2696
-f 2547 2567 2701 2740 2702
-f 2694 2693 2746 2744
-f 2750 2755 2689 2693
-f 2756 2751 2689 2721
-f 2769 2775 2675 2733
-f 2776 2731 2671 2778
-f 2778 2671 2727 2782
-f 2726 2663 2791 2785 2667
-f 2793 2661 2659 2798
-f 2796 2801 2653 2656
-f 2802 2868 2869 2647 2807
-f 2857 2855 2804 2650
-f 2806 2805 2644 2647
-f 2846 2848 2950 2948
-f 2642 2611 2596 2640 2645 2641
-f 2636 2638 2634 2635
-f 2635 2634 2562 2561
-f 2571 2632 2633 2574
-f 2624 2625 2626 2629
-f 2623 2614 2615 2619
-f 2827 2826 2621 2619
-f 2613 2615 2614
-f 2601 2960 2961 2602
-f 2715 2610 2609 2716
-f 2837 2838 2839 2830 2831
-f 2607 2608 2825 2606
-f 2603 2897 2895 2602
-f 2599 2824 2594 2595
-f 2542 2595 2594 2543
-f 2879 2818 2584 2959
-f 2949 2589 2811 2947
-f 2815 2587 2580
-f 2582 2584 2818 2819
-f 2574 2575 2572 2571
-f 2568 2569 2558 2548
-f 2566 2560 2564 2565 2736
-f 2913 2555 2553 2920
-f 2982 2554 2556 2985
-f 2555 2556 2554 2553
-f 2987 2973 2970 2549 2986
-f 2911 2903 2547 2545
-f 2541 2539 2535
-f 2532 2718 2530 2540
-f 2536 2537 2539
-f 2941 2536 2531 2939
-f 2718 2532 2933 2935
-f 2532 2533 2931 2933
-f 2908 2537 2536 2941
-f 2531 2536 2539
-f 2533 2532 2540
-f 2540 2541 2534 2533
-f 2918 2912 2932 2928
-f 2974 2986 2549 2550
-f 2974 2550 2978
-f 2968 2551 2549 2970
-f 2929 2723 2917 2918 2928
-f 2567 2975 2976 2560 2566 2737
-f 2557 2558 2569 2570
-f 2575 2576 2573 2572
-f 2582 2585 2584
-f 2811 2589 2581 2586
-f 2951 2812 2589 2949
-f 2962 2959 2584 2585
-f 2546 2596 2595 2542
-f 2600 2885 2889 2599
-f 2604 2899 2897 2603
-f 2597 2598 2608 2607
-f 2836 2832 2833 2834 2835
-f 2604 2609 2610 2605
-f 2600 2599 2595 2596 2611
-f 2829 2828 2615 2613
-f 2622 2621 2826 2620 2714
-f 2621 2624 2623 2619
-f 2629 2630 2623 2624
-f 2612 2614 2632 2571
-f 2570 2635 2561 2557
-f 2637 2639 2638 2636
-f 2884 2881 2611 2642
-f 2849 2847 2808 2644
-f 2851 2849 2644 2805
-f 2803 2651 2650 2804
-f 2801 2810 2840 2653
-f 2876 2859 2860 2874
-f 2790 2794 2660 2663
-f 2788 2790 2663 2726
-f 2779 2785 2666 2673
-f 2771 2779 2673 2678
-f 2762 2767 2681 2685
-f 2757 2721 2689 2755
-f 2693 2689 2751 2746
-f 2738 2743 2694 2700
-f 2566 2700 2739 2737
-f 2753 2748 2696 2690
-f 2773 2713 2711 2766
-f 2799 2655 2774 2713 2800
-f 2705 2707 2709 2711 2713 2774 2655 2654 2640
-f 2972 2906 2907 2942 2971
-f 2546 2910 2911 2545
-f 2543 2535 2538 2542
-f 2936 2922 2967 2938
-f 2721 2757 2762 2685
-f 2730 2777 2775 2676
-f 2724 2789 2787 2669
-f 2743 2738 2699 2692
-f 2762 2757 2720 2683
-f 2778 2782 2729 2672
-f 2763 2768 2735 2680
-f 2746 2751 2688 2695
-f 2745 2740 2701 2698
-f 2764 2759 2686 2680
-f 2772 2780 2674 2712
-f 2748 2753 2706 2704
-f 2766 2761 2708 2710
-f 2787 2789 2725 2668
-f 2775 2777 2731 2675
-f 2794 2790 2662 2658
-f 2800 2773 2712 2674
-f 2786 2792 2665
-f 2844 2845 2809 2643
-f 2852 2854 2956 2954
-f 2874 2860 2862 2872
-f 2806 2865 2863 2648
-f 2812 2951 2953 2590
-f 2843 2846 2948 2883
-f 2795 2802 2652 2657
-f 2821 2820 2817 2579
-f 2816 2965 2966 2585 2582
-f 2901 2825 2925
-f 2893 2890 2834 2833
-f 2894 2896 2838 2837
-f 2841 2797 2656 2653
-f 2860 2859 2858 2861
-f 2867 2871 2870 2866
-f 2882 2884 2883
-f 2907 2911 2910 2909 2908
-f 2971 2973 2972
-f 2880 2879 2878 2881
-f 2890 2893 2891 2889
-f 2900 2898 2899 2902
-f 2920 2921 2922 2919
-f 2929 2928 2927 2930
-f 2937 2935 2936 2938
-f 2943 2929 2930 2946
-f 2953 2951 2952 2954
-f 2960 2878 2879 2959
-f 2971 2969 2970 2973
-f 2983 2981 2982 2985
-f 2600 2878 2960 2601
-f 3349 3347 2992 2991
-f 3357 2995 2996 3324
-f 2998 2995 2990
-f 2999 2991 2992
-f 2992 2993 3000 2999
-f 3335 3350 3352 3338
-f 3008 3009 3011 3010
-f 3392 3394 3011 3009
-f 3337 3382 3010 3012 3336
-f 3330 3015 3399 3398 3331
-f 3319 3006 3022 3320
-f 3023 3024 3027 3026
-f 3238 2578 2822 3245
-f 3034 3039 3036
-f 3041 3034 3240 3235
-f 3371 3236 2591 2957
-f 3003 3007 3044 3043
-f 3043 3048 3049 3045
-f 3051 3301 3304 3052
-f 3055 3315 3318 3056
-f 3049 3059 3339 3308
-f 3253 3259 3258 3254
-f 3055 3060 3040 3054
-f 3044 3007 3023 3063
-f 3044 3064 3251 3043
-f 2714 2715 3061 3071
-f 3072 3074 2625 2622
-f 3076 3077 3078 3075
-f 3023 3026 3063
-f 3025 3081 3082 3028
-f 3075 3078 3080 3029 3030 3031 3083 2639 2627
-f 3062 3051 3294 3297
-f 3262 3145 3232 3233
-f 3366 3368 3272 3270
-f 3279 3226 2651 2858
-f 3084 3089 3096
-f 3284 3282 3288
-f 3218 3101 3103 3214
-f 3212 3216 2661 2724
-f 3112 3105 3209 3203
-f 3116 3115 3194 3187
-f 3186 3118 3119 3181
-f 3182 3175 3124 3121
-f 3175 3170 3128 3124
-f 3167 3126 3131 3162
-f 3021 3131 3161 3159
-f 3136 3138 3177 3172
-f 3115 3116 3188 3195
-f 3195 3203 3111 3115
-f 3389 3402 3321 3320 3022
-f 2659 3221 3293 2877
-f 3099 3104 3215 3219
-f 3085 3145 3262 3089
-f 2989 3353 3351 3146
-f 3113 3193 3199 3155
-f 3107 3152 3211 3207
-f 2699 2565 3159 3161
-f 2720 2684 3178 3180
-f 2676 2734 3192 3198
-f 3158 3114 3193 3191
-f 3122 3149 3179 3174
-f 3022 3132 3162 3160
-f 3120 3149 3122 3175 3182
-f 3107 3154 3110 3202 3208
-f 3137 3139 3183 3176
-f 3139 3137 3177 3184
-f 3151 3102 3216 3212
-f 3155 3109 3204 3200
-f 3102 3151 3211 3213
-f 3106 3111 3203 3209
-f 3105 3098 3219 3215
-f 3087 3090 3233 3232
-f 3369 3042 3236 3371
-f 3281 3092 3226 3279
-f 3280 3290 3288 3282
-f 3368 3370 3274 3272
-f 3298 3039 3234 3363
-f 3094 3090 3230 3225
-f 3240 3034 3242 3243
-f 3038 3376 3380
-f 3307 3305 3050 3246
-f 3254 3255 3309 3340
-f 3258 3259 3310 3303
-f 3264 3263 3096 3089
-f 3285 3286 3287 3284
-f 3287 3283 3282 3284
-f 3292 2876 2877 3293
-f 3320 3321 3322 3319
-f 3378 3379 3380 3377
-f 3401 3402 3400
-f 3301 3305 3306 3302
-f 3315 3313 3312 3314
-f 3328 3335 3336 3329
-f 3341 3317 3316 3342
-f 3349 3351 3352 3350
-f 3357 3324 3323 3358
-f 3365 3367 3368 3366
-f 3376 3373 3374 3375
-f 3381 3383 3384 3382
-f 3396 3394 3393 3395
-f 3136 3172 3165
-f 3269 3266 3265 3268
-f 2843 2717 2845 2844
-f 2852 2850 2851 2853
-g hair
-usemtl brnhair
-f 3360 3359 3150 3007
-f 3067 3043 3251
-f 3058 3068 3069 3057
-f 2563 2562 3020 3018
-f 3332 3331 3398 3397 3016 3017
-f 2826 2827 2618 2620
-f 2605 2620 2618 2606
-f 2560 2559 2563 2564
-f 2977 2979 2559 2560
-f 2558 2557 2983 2984 2915 2916
-f 2559 2561 2562 2563
-f 2606 2618 2617 2607
-f 2829 2592 2616
-f 2548 2723 2943 2944
-f 3395 3020 3016 3397
-f 3067 3048 3043
-f 3068 3067 3251 3250
-f 3071 3069 3249 3248
-f 3057 3069 3071 3056
-f 2564 2563 3018 3019
-f 3019 3018 3393 3391
-f 2827 2828 2617 2618
-f 2558 2916 2917 2723 2548
-f 2597 2607 2617 2616
-f 2981 2561 2559 2979
-f 2544 2548 2944 2945
-f 2983 2557 2561 2981
-f 2592 2597 2616
-f 2828 2829 2616 2617
-f 3361 3360 3007 3003
-f 3393 3018 3020 3395
-f 3067 3068 3058 3048
-f 3007 3150 3333 3332 3017
-f 3069 3068 3250 3249
-g irisr
-usemtl deepgreen
-f 3473 3472 3413 3414
-f 3469 3468 3409 3410
-f 3465 3476 3405 3406
-f 3466 3465 3406 3407
-f 3470 3469 3410 3411
-f 3474 3473 3414 3415
-f 3472 3471 3412 3413
-f 3468 3467 3408 3409
-f 3476 3475 3404 3405
-f 3467 3466 3407 3408
-f 3471 3470 3411 3412
-f 3404 3475 3474 3415
-g eyewhiter
-usemtl white
-f 3464 3463 3462
-f 3464 3459 3458
-f 3464 3455 3454
-f 3463 3451 3450 3462
-f 3459 3447 3446 3458
-f 3455 3443 3442 3454
-f 3451 3439 3438 3450
-f 3447 3435 3434 3446
-f 3443 3431 3430 3442
-f 3439 3427 3426 3438
-f 3435 3423 3422 3434
-f 3431 3419 3418 3430
-f 3427 3415 3414 3426
-f 3423 3411 3410 3422
-f 3419 3407 3406 3418
-f 3418 3406 3405 3417
-f 3422 3410 3409 3421
-f 3426 3414 3413 3425
-f 3430 3418 3417 3429
-f 3434 3422 3421 3433
-f 3438 3426 3425 3437
-f 3442 3430 3429 3441
-f 3446 3434 3433 3445
-f 3450 3438 3437 3449
-f 3454 3442 3441 3453
-f 3458 3446 3445 3457
-f 3462 3450 3449 3461
-f 3464 3454 3453
-f 3464 3458 3457
-f 3464 3462 3461
-f 3464 3452 3463
-f 3464 3460 3459
-f 3464 3456 3455
-f 3452 3440 3451 3463
-f 3460 3448 3447 3459
-f 3456 3444 3443 3455
-f 3440 3428 3439 3451
-f 3448 3436 3435 3447
-f 3444 3432 3431 3443
-f 3428 3416 3427 3439
-f 3436 3424 3423 3435
-f 3432 3420 3419 3431
-f 3416 3404 3415 3427
-f 3424 3412 3411 3423
-f 3420 3408 3407 3419
-f 3417 3405 3404 3416
-f 3421 3409 3408 3420
-f 3425 3413 3412 3424
-f 3429 3417 3416 3428
-f 3433 3421 3420 3432
-f 3437 3425 3424 3436
-f 3441 3429 3428 3440
-f 3445 3433 3432 3444
-f 3449 3437 3436 3448
-f 3453 3441 3440 3452
-f 3457 3445 3444 3456
-f 3461 3449 3448 3460
-f 3464 3453 3452
-f 3464 3457 3456
-f 3464 3461 3460
-g pupilr
-usemtl black
-f 3469 3470 3403
-f 3473 3474 3403
-f 3465 3466 3403
-f 3476 3465 3403
-f 3472 3473 3403
-f 3468 3469 3403
-f 3470 3471 3403
-f 3474 3475 3403
-f 3466 3467 3403
-f 3475 3476 3403
-f 3471 3472 3403
-f 3467 3468 3403
-g irisl
-usemtl deepgreen
-f 3489 3488 3547 3548
-f 3485 3484 3543 3544
-f 3481 3480 3539 3540
-f 3480 3479 3550 3539
-f 3484 3483 3542 3543
-f 3488 3487 3546 3547
-f 3489 3548 3549 3478
-f 3486 3485 3544 3545
-f 3482 3481 3540 3541
-f 3479 3478 3549 3550
-f 3483 3482 3541 3542
-f 3487 3486 3545 3546
-g eyewhitel
-usemtl white
-f 3535 3536 3538
-f 3531 3532 3538
-f 3527 3528 3538
-f 3535 3523 3524 3536
-f 3531 3519 3520 3532
-f 3527 3515 3516 3528
-f 3523 3511 3512 3524
-f 3519 3507 3508 3520
-f 3515 3503 3504 3516
-f 3511 3499 3500 3512
-f 3507 3495 3496 3508
-f 3503 3491 3492 3504
-f 3499 3487 3488 3500
-f 3495 3483 3484 3496
-f 3491 3479 3480 3492
-f 3492 3480 3481 3493
-f 3496 3484 3485 3497
-f 3500 3488 3489 3501
-f 3504 3492 3493 3505
-f 3508 3496 3497 3509
-f 3512 3500 3501 3513
-f 3516 3504 3505 3517
-f 3520 3508 3509 3521
-f 3524 3512 3513 3525
-f 3528 3516 3517 3529
-f 3532 3520 3521 3533
-f 3536 3524 3525 3537
-f 3528 3529 3538
-f 3532 3533 3538
-f 3536 3537 3538
-f 3534 3535 3538
-f 3530 3531 3538
-f 3526 3527 3538
-f 3534 3522 3523 3535
-f 3530 3518 3519 3531
-f 3526 3514 3515 3527
-f 3522 3510 3511 3523
-f 3518 3506 3507 3519
-f 3514 3502 3503 3515
-f 3510 3498 3499 3511
-f 3506 3494 3495 3507
-f 3502 3490 3491 3503
-f 3498 3486 3487 3499
-f 3494 3482 3483 3495
-f 3490 3478 3479 3491
-f 3493 3481 3482 3494
-f 3497 3485 3486 3498
-f 3501 3489 3478 3490
-f 3505 3493 3494 3506
-f 3509 3497 3498 3510
-f 3513 3501 3490 3502
-f 3517 3505 3506 3518
-f 3521 3509 3510 3522
-f 3525 3513 3502 3514
-f 3529 3517 3518 3530
-f 3533 3521 3522 3534
-f 3537 3525 3514 3526
-f 3529 3530 3538
-f 3533 3534 3538
-f 3537 3526 3538
-g pupill
-usemtl black
-f 3477 3543 3542
-f 3477 3547 3546
-f 3477 3539 3550
-f 3477 3540 3539
-f 3477 3548 3547
-f 3477 3544 3543
-f 3477 3542 3541
-f 3477 3546 3545
-f 3477 3550 3549
-f 3477 3541 3540
-f 3477 3549 3548
-f 3477 3545 3544
-# 3442 elements
diff --git a/data/mesh_03.vtk b/data/mesh_03.vtk
deleted file mode 100644 (file)
index d041211..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-# vtk DataFile Version 3.0
-vtk output
-ASCII
-DATASET POLYDATA
-POINTS 12 float
-10 10 0
-20 10 0
-20 20 0
-10 20 0
-20 30 0
-10 30 0
-0 20 0
-0 10 0
-10 0 0
-20 0 0
-30 10 0
-30 20 0
-POLYGONS 10 40
-3 8 9 0
-3 2 10 11
-3 10 2 1
-3 2 5 3
-3 4 5 2
-3 7 0 6
-3 3 6 0
-3 9 1 0
-3 0 1 3
-3 1 2 3
diff --git a/data/mesh_04.vtk b/data/mesh_04.vtk
deleted file mode 100644 (file)
index 11162da..0000000
+++ /dev/null
@@ -1,5461 +0,0 @@
-# vtk DataFile Version 3.0
-vtk output
-ASCII
-DATASET POLYDATA
-POINTS 2205 float
-0 -0.2048 -0.090616 0 -0.2016 -0.091464 0 -0.1984 -0.09232 
-0 -0.1952 -0.093296 0 -0.192 -0.094312 0 -0.1888 -0.095248 
-0 -0.1856 -0.096328 0 -0.1824 -0.09752 0 -0.1792 -0.09876 
-0 -0.176 -0.100104 0 -0.1728 -0.101392 0 -0.1696 -0.1028 
-0 -0.1664 -0.104032 0 -0.1632 -0.105344 0 -0.160 -0.106376 
-0 -0.1568 -0.107336 0 -0.1536 -0.108224 0 -0.1504 -0.108808 
-0 -0.1472 -0.10928 0 -0.144 -0.109536 0 -0.1408 -0.109664 
-0 -0.1376 -0.109672 0 -0.1344 -0.1096 0 -0.1312 -0.109536 
-0 -0.128 -0.10956 0 -0.1248 -0.10956 0 -0.1216 -0.109576 
-0 -0.1184 -0.10932 0 -0.1152 -0.109096 0 -0.112 -0.108848 
-0 -0.1088 -0.10836 0 -0.1056 -0.107944 0 -0.1024 -0.10744 
-0 -0.0992002 -0.106952 0 -0.0960002 -0.106784 0 -0.0928002 -0.106168 
-0 -0.0896002 -0.106032 0 -0.0864002 -0.105592 0 -0.0832002 -0.105088 
-0 -0.0800002 -0.104456 0 -0.0768002 -0.104184 0 -0.0736002 -0.103688 
-0 -0.0704002 -0.103344 0 -0.0672002 -0.10332 0 -0.0640002 -0.103152 
-0 -0.0608002 -0.10324 0 -0.0576002 -0.10284 0 -0.0544003 -0.102432 
-0 -0.0512003 -0.101784 0.00335392 -0.2048 -0.0910582 0.00339514 -0.2016 -0.0921775 
-0.00343224 -0.1984 -0.0931848 0.00346935 -0.1952 -0.0941921 0.00351293 -0.192 -0.0953753 
-0.0035568 -0.1888 -0.0965665 0.00360598 -0.1856 -0.0979016 0.00365986 -0.1824 -0.0993646 
-0.00371581 -0.1792 -0.100884 0.00377411 -0.176 -0.102467 0.00382358 -0.1728 -0.10381 
-0.00387982 -0.1696 -0.105337 0.00393018 -0.1664 -0.106704 0.00397906 -0.1632 -0.108031 
-0.00402323 -0.16 -0.10923 0.00406151 -0.1568 -0.110269 0.0040883 -0.1536 -0.110997 
-0.0041098 -0.1504 -0.11158 0.00412099 -0.1472 -0.111884 0.00412953 -0.144 -0.112116 
-0.00413129 -0.1408 -0.112164 0.00413159 -0.1376 -0.112172 0.00413159 -0.1344 -0.112172 
-0.00412717 -0.1312 -0.112052 0.00412747 -0.128 -0.11206 0.00412776 -0.1248 -0.112068 
-0.00413453 -0.1216 -0.112252 0.00412806 -0.1184 -0.112076 0.00412393 -0.1152 -0.111964 
-0.00411039 -0.112 -0.111596 0.00408919 -0.1088 -0.111021 0.00407064 -0.1056 -0.110517 
-0.00404943 -0.1024 -0.109941 0.0040247 -0.0992002 -0.10927 0.00401439 -0.0960002 -0.10899 
-0.00398995 -0.0928002 -0.108327 0.00397494 -0.0896002 -0.107919 0.00396169 -0.0864002 -0.107559 
-0.00393489 -0.0832002 -0.106832 0.0039184 -0.0800002 -0.106384 0.00389985 -0.0768002 -0.10588 
-0.00387776 -0.0736002 -0.105281 0.00387394 -0.0704002 -0.105177 0.00387688 -0.0672002 -0.105257 
-0.00386451 -0.0640002 -0.104921 0.00386981 -0.0608002 -0.105065 0.00385067 -0.0576002 -0.104545 
-0.0038333 -0.0544003 -0.104073 0.00381534 -0.0512003 -0.103586 0.00682217 -0.2048 -0.0924847 
-0.00691162 -0.2016 -0.0936974 0.00700402 -0.1984 -0.09495 0.00709583 -0.1952 -0.0961946 
-0.00720589 -0.192 -0.0976866 0.007313 -0.1888 -0.0991386 0.00744247 -0.1856 -0.100894 
-0.00756547 -0.1824 -0.102561 0.00769201 -0.1792 -0.104277 0.00780912 -0.176 -0.105864 
-0.00792683 -0.1728 -0.10746 0.00803865 -0.1696 -0.108976 0.00814282 -0.1664 -0.110388 
-0.00823875 -0.1632 -0.111689 0.00833173 -0.16 -0.112949 0.00840059 -0.1568 -0.113883 
-0.00844767 -0.1536 -0.114521 0.00847886 -0.1504 -0.114944 0.00849652 -0.1472 -0.115183 
-0.00850947 -0.144 -0.115359 0.00851829 -0.1408 -0.115478 0.00851123 -0.1376 -0.115383 
-0.00850829 -0.1344 -0.115343 0.00850123 -0.1312 -0.115247 0.00850947 -0.128 -0.115359 
-0.00852006 -0.1248 -0.115502 0.00853477 -0.1216 -0.115702 0.00854301 -0.1184 -0.115813 
-0.00852241 -0.1152 -0.115534 0.00848651 -0.112 -0.115047 0.00843943 -0.1088 -0.114409 
-0.00838293 -0.1056 -0.113643 0.00832997 -0.1024 -0.112925 0.00829642 -0.0992002 -0.11247 
-0.0082411 -0.0960002 -0.11172 0.00821874 -0.0928002 -0.111417 0.00817401 -0.0896002 -0.110811 
-0.00811986 -0.0864002 -0.110077 0.00808691 -0.0832002 -0.10963 0.00807043 -0.0800002 -0.109407 
-0.00802099 -0.0768002 -0.108737 0.00799333 -0.0736002 -0.108362 0.00798097 -0.0704002 -0.108194 
-0.00797391 -0.0672002 -0.108098 0.00797097 -0.0640002 -0.108058 0.00795802 -0.0608002 -0.107883 
-0.00792918 -0.0576002 -0.107492 0.00788092 -0.0544003 -0.106838 0.00784679 -0.0512003 -0.106375 
-0.0103178 -0.2048 -0.0930376 0.0104695 -0.2016 -0.0944052 0.0106582 -0.1984 -0.0961068 
-0.0108407 -0.1952 -0.0977527 0.0110426 -0.192 -0.0995736 0.0112543 -0.1888 -0.101482 
-0.01148 -0.1856 -0.103517 0.0116934 -0.1824 -0.105442 0.0118953 -0.1792 -0.107262 
-0.0120858 -0.176 -0.10898 0.0122542 -0.1728 -0.110499 0.0124112 -0.1696 -0.111914 
-0.0125805 -0.1664 -0.113441 0.0127066 -0.1632 -0.114578 0.0128186 -0.16 -0.115587 
-0.0128935 -0.1568 -0.116263 0.0129447 -0.1536 -0.116724 0.0129932 -0.1504 -0.117162 
-0.0130178 -0.1472 -0.117384 0.013039 -0.144 -0.117575 0.0130531 -0.1408 -0.117702 
-0.0130566 -0.1376 -0.117734 0.0130461 -0.1344 -0.117639 0.0130214 -0.1312 -0.117416 
-0.0130496 -0.128 -0.117671 0.0131007 -0.1248 -0.118132 0.0131378 -0.1216 -0.118466 
-0.0131519 -0.1184 -0.118593 0.0130769 -0.1152 -0.117917 0.0130381 -0.112 -0.117567 
-0.0129976 -0.1088 -0.117201 0.0128459 -0.1056 -0.115834 0.0127806 -0.1024 -0.115245 
-0.0127392 -0.0992002 -0.114872 0.0126951 -0.0960002 -0.114474 0.0126431 -0.0928002 -0.114005 
-0.0125373 -0.0896002 -0.113051 0.0125038 -0.0864002 -0.112749 0.0124526 -0.0832002 -0.112288 
-0.0124094 -0.0800002 -0.111898 0.0123512 -0.0768002 -0.111373 0.0123062 -0.0736002 -0.110968 
-0.0122886 -0.0704002 -0.110809 0.0122648 -0.0672002 -0.110594 0.0122666 -0.0640002 -0.11061 
-0.0122216 -0.0608002 -0.110204 0.0121713 -0.0576002 -0.109751 0.0121237 -0.0544003 -0.109322 
-0.0120514 -0.0512003 -0.10867 0.0138997 -0.2048 -0.0937027 0.0141544 -0.2016 -0.0954199 
-0.014442 -0.1984 -0.0973587 0.0147413 -0.1952 -0.0993766 0.0150242 -0.192 -0.101284 
-0.0153235 -0.1888 -0.103302 0.0155771 -0.1856 -0.105011 0.0158741 -0.1824 -0.107013 
-0.0161417 -0.1792 -0.108817 0.0163507 -0.176 -0.110226 0.0165831 -0.1728 -0.111793 
-0.0167721 -0.1696 -0.113067 0.0169576 -0.1664 -0.114317 0.0171137 -0.1632 -0.11537 
-0.0172322 -0.16 -0.116169 0.0172992 -0.1568 -0.11662 0.0173508 -0.1536 -0.116968 
-0.0174165 -0.1504 -0.117411 0.0174741 -0.1472 -0.117799 0.0175257 -0.144 -0.118147 
-0.0175562 -0.1408 -0.118353 0.0175656 -0.1376 -0.118416 0.0175762 -0.1344 -0.118487 
-0.0175856 -0.1312 -0.118551 0.0176044 -0.128 -0.118677 0.0176044 -0.1248 -0.118677 
-0.0176501 -0.1216 -0.118986 0.0176325 -0.1184 -0.118867 0.0176102 -0.1152 -0.118717 
-0.0175269 -0.112 -0.118155 0.0174271 -0.1088 -0.117482 0.0173121 -0.1056 -0.116707 
-0.0170585 -0.1024 -0.114998 0.0169681 -0.0992002 -0.114388 0.0170749 -0.0960002 -0.115108 
-0.0170761 -0.0928002 -0.115116 0.0170585 -0.0896002 -0.114998 0.0169658 -0.0864002 -0.114373 
-0.0169 -0.0832002 -0.113929 0.0168155 -0.0800002 -0.11336 0.0167204 -0.0768002 -0.112719 
-0.0166418 -0.0736002 -0.112188 0.016569 -0.0704002 -0.111698 0.0165326 -0.0672002 -0.111452 
-0.0164751 -0.0640002 -0.111065 0.0164 -0.0608002 -0.110558 0.016346 -0.0576002 -0.110194 
-0.016265 -0.0544003 -0.109648 0.0161922 -0.0512003 -0.109158 0.017329 -0.2048 -0.0930725 
-0.0176994 -0.2016 -0.0950623 0.0180787 -0.1984 -0.0970993 0.0184858 -0.1952 -0.0992858 
-0.0188738 -0.192 -0.10137 0.0192004 -0.1888 -0.103124 0.0195284 -0.1856 -0.104886 
-0.0198462 -0.1824 -0.106592 0.0201156 -0.1792 -0.108039 0.0203514 -0.176 -0.109306 
-0.0205681 -0.1728 -0.11047 0.0207907 -0.1696 -0.111665 0.0209796 -0.1664 -0.11268 
-0.0211392 -0.1632 -0.113537 0.0212636 -0.16 -0.114205 0.0213676 -0.1568 -0.114764 
-0.0214555 -0.1536 -0.115236 0.0215316 -0.1504 -0.115645 0.0216224 -0.1472 -0.116132 
-0.0216971 -0.144 -0.116533 0.0217806 -0.1408 -0.116982 0.021864 -0.1376 -0.11743 
-0.0219372 -0.1344 -0.117823 0.0219563 -0.1312 -0.117925 0.0219709 -0.128 -0.118004 
-0.0219636 -0.1248 -0.117965 0.0219841 -0.1216 -0.118075 0.0219533 -0.1184 -0.11791 
-0.0218626 -0.1152 -0.117422 0.0216253 -0.112 -0.116148 0.0215038 -0.1088 -0.115495 
-0.0214115 -0.1056 -0.115 0.0210279 -0.1024 -0.112939 0.0207511 -0.0992002 -0.111453 
-0.0207658 -0.0960002 -0.111531 0.0208961 -0.0928002 -0.112231 0.0211333 -0.0896002 -0.113505 
-0.0212182 -0.0864002 -0.113962 0.0212344 -0.0832002 -0.114048 0.0212007 -0.0800002 -0.113867 
-0.0210821 -0.0768002 -0.11323 0.0209166 -0.0736002 -0.112341 0.0207628 -0.0704002 -0.111516 
-0.0206105 -0.0672002 -0.110698 0.0204846 -0.0640002 -0.110021 0.0203733 -0.0608002 -0.109424 
-0.0203089 -0.0576002 -0.109077 0.0201976 -0.0544003 -0.10848 0.0200995 -0.0512003 -0.107953 
-0.020892 -0.2048 -0.0930351 0.0213898 -0.2016 -0.0952519 0.021821 -0.1984 -0.0971721 
-0.0223048 -0.1952 -0.0993264 0.0227132 -0.192 -0.101145 0.0231128 -0.1888 -0.102925 
-0.0234652 -0.1856 -0.104494 0.0237684 -0.1824 -0.105844 0.0240453 -0.1792 -0.107077 
-0.0242925 -0.176 -0.108178 0.0245081 -0.1728 -0.109138 0.0247254 -0.1696 -0.110106 
-0.0249147 -0.1664 -0.110949 0.025069 -0.1632 -0.111636 0.025211 -0.16 -0.112268 
-0.0253249 -0.1568 -0.112775 0.0254774 -0.1536 -0.113455 0.0256071 -0.1504 -0.114032 
-0.0257088 -0.1472 -0.114485 0.0258104 -0.144 -0.114938 0.0259156 -0.1408 -0.115406 
-0.0260646 -0.1376 -0.116069 0.0262066 -0.1344 -0.116702 0.0263118 -0.1312 -0.11717 
-0.0263661 -0.128 -0.117412 0.0263678 -0.1248 -0.11742 0.0263012 -0.1216 -0.117123 
-0.0261873 -0.1184 -0.116616 0.0260418 -0.1152 -0.115968 0.025835 -0.112 -0.115047 
-0.0255142 -0.1088 -0.113618 0.0252583 -0.1056 -0.112479 0.0249445 -0.1024 -0.111082 
-0.0243889 -0.0992002 -0.108607 0.0244397 -0.0960002 -0.108834 0.0246431 -0.0928002 -0.109739 
-0.0249621 -0.0896002 -0.11116 0.0252425 -0.0864002 -0.112409 0.025388 -0.0832002 -0.113056 
-0.0254441 -0.0800002 -0.113306 0.0253898 -0.0768002 -0.113064 0.025197 -0.0736002 -0.112206 
-0.0249428 -0.0704002 -0.111074 0.0246694 -0.0672002 -0.109856 0.024445 -0.0640002 -0.108857 
-0.0242907 -0.0608002 -0.10817 0.0241575 -0.0576002 -0.107577 0.0240173 -0.0544003 -0.106952 
-0.0238718 -0.0512003 -0.106305 0.024655 -0.2048 -0.0935414 0.0252055 -0.2016 -0.09563 
-0.0257234 -0.1984 -0.0975949 0.0262413 -0.1952 -0.0995598 0.0267021 -0.192 -0.101308 
-0.0271425 -0.1888 -0.102979 0.027485 -0.1856 -0.104279 0.027799 -0.1824 -0.10547 
-0.0280458 -0.1792 -0.106406 0.0282741 -0.176 -0.107272 0.0284903 -0.1728 -0.108092 
-0.0286941 -0.1696 -0.108866 0.0288552 -0.1664 -0.109477 0.0289878 -0.1632 -0.10998 
-0.0291244 -0.16 -0.110498 0.0292773 -0.1568 -0.111078 0.0294689 -0.1536 -0.111806 
-0.0296015 -0.1504 -0.112308 0.029785 -0.1472 -0.113005 0.0299766 -0.144 -0.113732 
-0.0302295 -0.1408 -0.114691 0.0304334 -0.1376 -0.115465 0.0305924 -0.1344 -0.116068 
-0.0307392 -0.1312 -0.116625 0.0308656 -0.128 -0.117105 0.0308717 -0.1248 -0.117128 
-0.030782 -0.1216 -0.116787 0.0305883 -0.1184 -0.116053 0.0303233 -0.1152 -0.115047 
-0.0300358 -0.112 -0.113956 0.0296953 -0.1088 -0.112664 0.0290856 -0.1056 -0.110351 
-0.0287941 -0.1024 -0.109245 0.0284882 -0.0992002 -0.108085 0.0283169 -0.0960002 -0.107435 
-0.0287125 -0.0928002 -0.108936 0.0291142 -0.0896002 -0.11046 0.0294078 -0.0864002 -0.111574 
-0.0296932 -0.0832002 -0.112657 0.0298135 -0.0800002 -0.113113 0.0297524 -0.0768002 -0.112881 
-0.0296056 -0.0736002 -0.112324 0.0292997 -0.0704002 -0.111164 0.0289164 -0.0672002 -0.109709 
-0.0285473 -0.0640002 -0.108309 0.0283455 -0.0608002 -0.107543 0.0281763 -0.0576002 -0.106901 
-0.0279846 -0.0544003 -0.106174 0.0277848 -0.0512003 -0.105416 0.0286108 -0.2048 -0.0943159 
-0.0292541 -0.2016 -0.0964365 0.0298207 -0.1984 -0.0983045 0.0303595 -0.1952 -0.100081 
-0.0308356 -0.192 -0.10165 0.0313256 -0.1888 -0.103265 0.0316461 -0.1856 -0.104322 
-0.0319108 -0.1824 -0.105194 0.0321268 -0.1792 -0.105906 0.0322708 -0.176 -0.106381 
-0.0324403 -0.1728 -0.10694 0.0325936 -0.1696 -0.107445 0.0326888 -0.1664 -0.107759 
-0.0327933 -0.1632 -0.108104 0.0329442 -0.16 -0.108601 0.0331741 -0.1568 -0.109359 
-0.03349 -0.1536 -0.1104 0.0337872 -0.1504 -0.11138 0.0340473 -0.1472 -0.112237 
-0.0342842 -0.144 -0.113018 0.034535 -0.1408 -0.113845 0.0348671 -0.1376 -0.11494 
-0.0351435 -0.1344 -0.115851 0.035313 -0.1312 -0.11641 0.0354314 -0.128 -0.1168 
-0.0354477 -0.1248 -0.116854 0.0353292 -0.1216 -0.116463 0.0349971 -0.1184 -0.115369 
-0.0346279 -0.1152 -0.114151 0.0342238 -0.112 -0.112819 0.0336595 -0.1088 -0.110959 
-0.0330046 -0.1056 -0.1088 0.0327445 -0.1024 -0.107943 0.0327677 -0.0992002 -0.108019 
-0.0321616 -0.0960002 -0.106021 0.0323938 -0.0928002 -0.106787 0.0333901 -0.0896002 -0.110071 
-0.0336734 -0.0864002 -0.111005 0.0339962 -0.0832002 -0.112069 0.0342401 -0.0800002 -0.112873 
-0.0341983 -0.0768002 -0.112735 0.0340218 -0.0736002 -0.112153 0.0336827 -0.0704002 -0.111036 
-0.0331648 -0.0672002 -0.109328 0.0327283 -0.0640002 -0.107889 0.032438 -0.0608002 -0.106932 
-0.0322499 -0.0576002 -0.106312 0.0319828 -0.0544003 -0.105432 0.0317157 -0.0512003 -0.104551 
-0.0327188 -0.2048 -0.0951053 0.0333955 -0.2016 -0.0970721 0.0340747 -0.1984 -0.0990466 
-0.0346967 -0.1952 -0.100855 0.0352042 -0.192 -0.10233 0.0356284 -0.1888 -0.103563 
-0.0359095 -0.1856 -0.10438 0.0360787 -0.1824 -0.104871 0.0361906 -0.1792 -0.105197 
-0.0362816 -0.176 -0.105462 0.0363441 -0.1728 -0.105643 0.0364274 -0.1696 -0.105885 
-0.0364794 -0.1664 -0.106036 0.0366694 -0.1632 -0.106589 0.0369297 -0.16 -0.107345 
-0.0372498 -0.1568 -0.108276 0.0376115 -0.1536 -0.109327 0.0380019 -0.1504 -0.110462 
-0.0383949 -0.1472 -0.111604 0.038754 -0.144 -0.112648 0.0390767 -0.1408 -0.113586 
-0.0394411 -0.1376 -0.114645 0.0397768 -0.1344 -0.115621 0.0400397 -0.1312 -0.116385 
-0.0401646 -0.128 -0.116748 0.0401204 -0.1248 -0.11662 0.0399538 -0.1216 -0.116136 
-0.0395608 -0.1184 -0.114993 0.0389987 -0.1152 -0.113359 0.0383949 -0.112 -0.111604 
-0.0375387 -0.1088 -0.109115 0.0370442 -0.1056 -0.107678 0.0371951 -0.1024 -0.108117 
-0.0371327 -0.0992002 -0.107935 0.03643 -0.0960002 -0.105893 0.0367085 -0.0928002 -0.106702 
-0.037281 -0.0896002 -0.108366 0.038054 -0.0864002 -0.110613 0.0383584 -0.0832002 -0.111498 
-0.0387488 -0.0800002 -0.112633 0.0388087 -0.0768002 -0.112807 0.0385432 -0.0736002 -0.112035 
-0.0381945 -0.0704002 -0.111022 0.0376818 -0.0672002 -0.109531 0.0371561 -0.0640002 -0.108003 
-0.0368542 -0.0608002 -0.107126 0.0365445 -0.0576002 -0.106226 0.0362868 -0.0544003 -0.105477 
-0.0358288 -0.0512003 -0.104145 0.0369602 -0.2048 -0.0958145 0.0377261 -0.2016 -0.0977999 
-0.0384689 -0.1984 -0.0997256 0.0390563 -0.1952 -0.101248 0.0395486 -0.192 -0.102525 
-0.0398682 -0.1888 -0.103353 0.0400554 -0.1856 -0.103838 0.0401158 -0.1824 -0.103995 
-0.0401475 -0.1792 -0.104077 0.0400957 -0.176 -0.103943 0.0401187 -0.1728 -0.104002 
-0.0401907 -0.1696 -0.104189 0.0402886 -0.1664 -0.104443 0.0404815 -0.1632 -0.104943 
-0.0406917 -0.16 -0.105488 0.0410228 -0.1568 -0.106346 0.0414345 -0.1536 -0.107413 
-0.0418117 -0.1504 -0.108391 0.0421946 -0.1472 -0.109384 0.0427359 -0.144 -0.110787 
-0.043306 -0.1408 -0.112265 0.0437206 -0.1376 -0.11334 0.0441352 -0.1344 -0.114415 
-0.0444145 -0.1312 -0.115139 0.0445527 -0.128 -0.115497 0.044544 -0.1248 -0.115474 
-0.0443108 -0.1216 -0.11487 0.0437983 -0.1184 -0.113541 0.043067 -0.1152 -0.111645 
-0.0420909 -0.112 -0.109115 0.0406456 -0.1088 -0.105368 0.041017 -0.1056 -0.106331 
-0.041469 -0.1024 -0.107503 0.0413308 -0.0992002 -0.107145 0.0405304 -0.0960002 -0.10507 
-0.0410544 -0.0928002 -0.106428 0.0414402 -0.0896002 -0.107428 0.0419499 -0.0864002 -0.108749 
-0.0423702 -0.0832002 -0.109839 0.0429547 -0.0800002 -0.111354 0.0431591 -0.0768002 -0.111884 
-0.0430152 -0.0736002 -0.111511 0.0427013 -0.0704002 -0.110698 0.0421485 -0.0672002 -0.109264 
-0.0417138 -0.0640002 -0.108137 0.0413539 -0.0608002 -0.107204 0.0409767 -0.0576002 -0.106227 
-0.040516 -0.0544003 -0.105032 0.0400179 -0.0512003 -0.103741 0.0410261 -0.2048 -0.0957053 
-0.0418582 -0.2016 -0.0976464 0.0426683 -0.1984 -0.0995361 0.0432419 -0.1952 -0.100874 
-0.0436832 -0.192 -0.101904 0.0439448 -0.1888 -0.102514 0.0440457 -0.1856 -0.102749 
-0.0440394 -0.1824 -0.102735 0.0439826 -0.1792 -0.102602 0.0439385 -0.176 -0.102499 
-0.0438944 -0.1728 -0.102396 0.0439133 -0.1696 -0.102441 0.0440394 -0.1664 -0.102735 
-0.0442695 -0.1632 -0.103271 0.0444365 -0.16 -0.103661 0.0445689 -0.1568 -0.10397 
-0.0444933 -0.1536 -0.103793 0.0443829 -0.1504 -0.103536 0.0445468 -0.1472 -0.103918 
-0.0448368 -0.144 -0.104595 0.0463624 -0.1408 -0.108154 0.0472607 -0.1376 -0.110249 
-0.0478154 -0.1344 -0.111543 0.0481369 -0.1312 -0.112293 0.0483891 -0.128 -0.112882 
-0.0484049 -0.1248 -0.112918 0.0481748 -0.1216 -0.112382 0.0475633 -0.1184 -0.110955 
-0.0466681 -0.1152 -0.108867 0.0454389 -0.112 -0.105999 0.0437116 -0.1088 -0.10197 
-0.0443546 -0.1056 -0.10347 0.0450732 -0.1024 -0.105146 0.0451047 -0.0992002 -0.10522 
-0.0443829 -0.0960002 -0.103536 0.0436643 -0.0928002 -0.10186 0.0444964 -0.0896002 -0.103801 
-0.0451741 -0.0864002 -0.105382 0.0457068 -0.0832002 -0.106624 0.0464853 -0.0800002 -0.10844 
-0.0469108 -0.0768002 -0.109433 0.0469297 -0.0736002 -0.109477 0.0468226 -0.0704002 -0.109227 
-0.0463372 -0.0672002 -0.108095 0.0459968 -0.0640002 -0.107301 0.0455744 -0.0608002 -0.106316 
-0.0450984 -0.0576002 -0.105205 0.0445059 -0.0544003 -0.103823 0.0438912 -0.0512003 -0.102389 
-0.0452153 -0.2048 -0.0955984 0.0461662 -0.2016 -0.0976089 0.0469051 -0.1984 -0.099171 
-0.0474865 -0.1952 -0.1004 0.0479244 -0.192 -0.101326 0.0481569 -0.1888 -0.101818 
-0.0483485 -0.1856 -0.102223 0.0483177 -0.1824 -0.102158 0.0482288 -0.1792 -0.10197 
-0.0480509 -0.176 -0.101594 0.048003 -0.1728 -0.101492 0.0479928 -0.1696 -0.101471 
-0.0479928 -0.1664 -0.101471 0.0480954 -0.1632 -0.101688 0.0480099 -0.16 -0.101507 
-0.0479209 -0.1568 -0.101319 0.0479551 -0.1536 -0.101391 0.0481056 -0.1504 -0.101709 
-0.0482185 -0.1472 -0.101948 0.0482288 -0.144 -0.10197 0.04854 -0.1408 -0.102628 
-0.0493199 -0.1376 -0.104277 0.0506573 -0.1344 -0.107104 0.0512525 -0.1312 -0.108363 
-0.0516219 -0.128 -0.109144 0.051769 -0.1248 -0.109455 0.051639 -0.1216 -0.10918 
-0.0510473 -0.1184 -0.107929 0.050134 -0.1152 -0.105998 0.0486734 -0.112 -0.10291 
-0.0465459 -0.1088 -0.0984116 0.0468743 -0.1056 -0.0991059 0.0479346 -0.1024 -0.101348 
-0.0481125 -0.0992002 -0.101724 0.0474831 -0.0960002 -0.100393 0.0468708 -0.0928002 -0.0990987 
-0.0485777 -0.0896002 -0.102707 0.0480783 -0.0864002 -0.101652 0.0486461 -0.0832002 -0.102852 
-0.0493165 -0.0800002 -0.104269 0.0503221 -0.0768002 -0.106396 0.0507018 -0.0736002 -0.107198 
-0.0507531 -0.0704002 -0.107307 0.0505034 -0.0672002 -0.106779 0.0501511 -0.0640002 -0.106034 
-0.0497543 -0.0608002 -0.105195 0.0491249 -0.0576002 -0.103864 0.0483382 -0.0544003 -0.102201 
-0.0475994 -0.0512003 -0.100639 0.0495361 -0.2048 -0.0954742 0.0505383 -0.2016 -0.0974057 
-0.0513636 -0.1984 -0.0989964 0.0519457 -0.1952 -0.100118 0.0524947 -0.192 -0.101176 
-0.0527636 -0.1888 -0.101695 0.0529257 -0.1856 -0.102007 0.052922 -0.1824 -0.102 
-0.0526568 -0.1792 -0.101489 0.0524468 -0.176 -0.101084 0.0522257 -0.1728 -0.100658 
-0.0521078 -0.1696 -0.100431 0.0520452 -0.1664 -0.10031 0.0517541 -0.1632 -0.0997491 
-0.0513157 -0.16 -0.098904 0.0507298 -0.1568 -0.097775 0.050074 -0.1536 -0.096511 
-0.0508146 -0.1504 -0.0979383 0.0513672 -0.1472 -0.0990035 0.0517357 -0.144 -0.0997136 
-0.0519199 -0.1408 -0.100069 0.0520525 -0.1376 -0.100324 0.0524357 -0.1344 -0.101063 
-0.053261 -0.1312 -0.102653 0.0542889 -0.128 -0.104635 0.0546537 -0.1248 -0.105338 
-0.05472 -0.1216 -0.105465 0.0544363 -0.1184 -0.104919 0.0535189 -0.1152 -0.103151 
-0.0519715 -0.112 -0.100168 0.049853 -0.1088 -0.0960849 0.049503 -0.1056 -0.0954103 
-0.0505677 -0.1024 -0.0974625 0.0507446 -0.0992002 -0.0978034 0.0499119 -0.0960002 -0.0961985 
-0.0492966 -0.0928002 -0.0950126 0.0508625 -0.0896002 -0.0980306 0.0503209 -0.0864002 -0.0969868 
-0.0514741 -0.0832002 -0.0992094 0.0518941 -0.0800002 -0.100019 0.0539242 -0.0768002 -0.103932 
-0.0546132 -0.0736002 -0.10526 0.0547237 -0.0704002 -0.105473 0.0545763 -0.0672002 -0.105189 
-0.0542152 -0.0640002 -0.104493 0.0538579 -0.0608002 -0.103804 0.0531099 -0.0576002 -0.102362 
-0.0522331 -0.0544003 -0.100672 0.0513304 -0.0512003 -0.0989325 0.0538054 -0.2048 -0.0949783 
-0.0549608 -0.2016 -0.0970178 0.0558243 -0.1984 -0.0985422 0.0566248 -0.1952 -0.0999552 
-0.0571571 -0.192 -0.100895 0.0575869 -0.1888 -0.101654 0.0576737 -0.1856 -0.101807 
-0.0575317 -0.1824 -0.101556 0.0572202 -0.1792 -0.101006 0.0567983 -0.176 -0.100261 
-0.0564276 -0.1728 -0.0996072 0.0561437 -0.1696 -0.099106 0.0556942 -0.1664 -0.0983125 
-0.0551461 -0.1632 -0.097345 0.0546335 -0.16 -0.0964401 0.053904 -0.1568 -0.0951524 
-0.0533006 -0.1536 -0.0940874 0.0542943 -0.1504 -0.0958415 0.0550041 -0.1472 -0.0970944 
-0.0552999 -0.144 -0.0976164 0.0553551 -0.1408 -0.0977139 0.055501 -0.1376 -0.0979714 
-0.055568 -0.1344 -0.0980898 0.0555483 -0.1312 -0.098055 0.055777 -0.128 -0.0984587 
-0.0567707 -0.1248 -0.100213 0.0573701 -0.1216 -0.101271 0.0574489 -0.1184 -0.10141 
-0.0568298 -0.1152 -0.100317 0.0552999 -0.112 -0.0976164 0.0534426 -0.1088 -0.094338 
-0.052027 -0.1056 -0.0918391 0.052445 -0.1024 -0.0925769 0.0527644 -0.0992002 -0.0931407 
-0.0522517 -0.0960002 -0.0922358 0.0526342 -0.0928002 -0.092911 0.0525357 -0.0896002 -0.092737 
-0.0528945 -0.0864002 -0.0933704 0.0536477 -0.0832002 -0.0946999 0.0550081 -0.0800002 -0.0971014 
-0.0573464 -0.0768002 -0.101229 0.0583677 -0.0736002 -0.103032 0.0585925 -0.0704002 -0.103429 
-0.0584781 -0.0672002 -0.103227 0.0581705 -0.0640002 -0.102684 0.0577171 -0.0608002 -0.101883 
-0.05696 -0.0576002 -0.100547 0.0558046 -0.0544003 -0.0985074 0.0548424 -0.0512003 -0.096809 
-0.058142 -0.2048 -0.094357 0.0595185 -0.2016 -0.0965909 0.0608615 -0.1984 -0.0987704 
-0.0616882 -0.1952 -0.100112 0.0623094 -0.192 -0.10112 0.0625989 -0.1888 -0.10159 
-0.0625444 -0.1856 -0.101502 0.0622758 -0.1824 -0.101066 0.061789 -0.1792 -0.100276 
-0.0612098 -0.176 -0.0993357 0.0607314 -0.1728 -0.0985593 0.0602236 -0.1696 -0.0977352 
-0.0596066 -0.1664 -0.096734 0.0591114 -0.1632 -0.0959303 0.0586246 -0.16 -0.0951402 
-0.0582133 -0.1568 -0.0944728 0.0575754 -0.1536 -0.0934375 0.0591198 -0.1504 -0.0959439 
-0.0596612 -0.1472 -0.0968225 0.0596654 -0.144 -0.0968293 0.0594262 -0.1408 -0.0964411 
-0.0592121 -0.1376 -0.0960938 0.0590443 -0.1344 -0.0958213 0.0587211 -0.1312 -0.0952969 
-0.05857 -0.128 -0.0950517 0.0586708 -0.1248 -0.0952152 0.0593884 -0.1216 -0.0963798 
-0.0601103 -0.1184 -0.0975513 0.0600137 -0.1152 -0.0973946 0.0585994 -0.112 -0.0950994 
-0.0568871 -0.1088 -0.0923206 0.0554938 -0.1056 -0.0900594 0.0546754 -0.1024 -0.0887313 
-0.0550574 -0.0992002 -0.0893511 0.0546125 -0.0960002 -0.0886291 0.054004 -0.0928002 -0.0876415 
-0.0543733 -0.0896002 -0.0882409 0.0547258 -0.0864002 -0.088813 0.0562199 -0.0832002 -0.0912376 
-0.058931 -0.0800002 -0.0956374 0.0610839 -0.0768002 -0.0991314 0.0619275 -0.0736002 -0.1005 
-0.0621877 -0.0704002 -0.100923 0.0621121 -0.0672002 -0.1008 0.0619107 -0.0640002 -0.100473 
-0.0614071 -0.0608002 -0.0996558 0.0605929 -0.0576002 -0.0983345 0.0593045 -0.0544003 -0.0962436 
-0.0581546 -0.0512003 -0.0943774 0.0628024 -0.2048 -0.0939889 0.0646246 -0.2016 -0.0967161 
-0.0661003 -0.1984 -0.0989244 0.0669981 -0.1952 -0.100268 0.0675848 -0.192 -0.101146 
-0.0677981 -0.1888 -0.101465 0.0675759 -0.1856 -0.101133 0.0670292 -0.1824 -0.100315 
-0.0663669 -0.1792 -0.0993235 0.0657002 -0.176 -0.0983258 0.0650069 -0.1728 -0.0972881 
-0.0643846 -0.1696 -0.0963569 0.063958 -0.1664 -0.0957183 0.063509 -0.1632 -0.0950465 
-0.0631979 -0.16 -0.0945809 0.063029 -0.1568 -0.0943281 0.0615356 -0.1536 -0.0920931 
-0.0638868 -0.1504 -0.0956119 0.0644113 -0.1472 -0.0963968 0.0642869 -0.144 -0.0962105 
-0.0638291 -0.1408 -0.0955254 0.0632513 -0.1376 -0.0946607 0.0627579 -0.1344 -0.0939223 
-0.0624512 -0.1312 -0.0934634 0.0621979 -0.128 -0.0930842 0.062269 -0.1248 -0.0931907 
-0.0624868 -0.1216 -0.0935166 0.0628557 -0.1184 -0.0940687 0.0631801 -0.1152 -0.0945543 
-0.0620157 -0.112 -0.0928115 0.0604289 -0.1088 -0.0904368 0.0593089 -0.1056 -0.0887606 
-0.0581044 -0.1024 -0.086958 0.0570421 -0.0992002 -0.0853682 0.0569177 -0.0960002 -0.085182 
-0.0562421 -0.0928002 -0.0841709 0.0560554 -0.0896002 -0.0838915 0.0571088 -0.0864002 -0.085468 
-0.0589755 -0.0832002 -0.0882617 0.0632957 -0.0800002 -0.0947272 0.064878 -0.0768002 -0.0970952 
-0.0656425 -0.0736002 -0.0982393 0.0658958 -0.0704002 -0.0986185 0.0658114 -0.0672002 -0.0984921 
-0.0655358 -0.0640002 -0.0980797 0.0649047 -0.0608002 -0.0971351 0.0640335 -0.0576002 -0.0958314 
-0.0624423 -0.0544003 -0.0934501 0.0611223 -0.0512003 -0.0914745 0.0677237 -0.2048 -0.0936948 
-0.0697716 -0.2016 -0.0965281 0.0713744 -0.1984 -0.0987455 0.0723304 -0.1952 -0.100068 
-0.0728694 -0.192 -0.100814 0.0729818 -0.1888 -0.100969 0.0726585 -0.1856 -0.100522 
-0.0720117 -0.1824 -0.0996273 0.0710745 -0.1792 -0.0983306 0.0700059 -0.176 -0.0968523 
-0.0692421 -0.1728 -0.0957955 0.0687969 -0.1696 -0.0951796 0.0685297 -0.1664 -0.09481 
-0.0683751 -0.1632 -0.094596 0.0683188 -0.16 -0.0945182 0.068197 -0.1568 -0.0943496 
-0.0669973 -0.1536 -0.0926898 0.0683329 -0.1504 -0.0945377 0.0691436 -0.1472 -0.0956593 
-0.0687266 -0.144 -0.0950823 0.0682907 -0.1408 -0.0944793 0.0676393 -0.1376 -0.0935781 
-0.0670207 -0.1344 -0.0927223 0.0666879 -0.1312 -0.0922619 0.069392 -0.128 -0.096003 
-0.0695982 -0.1248 -0.0962882 0.0680002 -0.1216 -0.0940773 0.0671379 -0.1184 -0.0928843 
-0.0668567 -0.1152 -0.0924953 0.0661209 -0.112 -0.0914774 0.0643822 -0.1088 -0.089072 
-0.0636137 -0.1056 -0.0880087 0.062667 -0.1024 -0.086699 0.0615094 -0.0992002 -0.0850975 
-0.0599114 -0.0960002 -0.0828866 0.0590209 -0.0928002 -0.0816547 0.0590397 -0.0896002 -0.0816806 
-0.0605206 -0.0864002 -0.0837295 0.0629435 -0.0832002 -0.0870815 0.0670441 -0.0800002 -0.0927547 
-0.0684969 -0.0768002 -0.0947646 0.0692139 -0.0736002 -0.0957566 0.0693827 -0.0704002 -0.09599 
-0.069392 -0.0672002 -0.096003 0.069078 -0.0640002 -0.0955686 0.0681736 -0.0608002 -0.0943172 
-0.0670301 -0.0576002 -0.0927352 0.065282 -0.0544003 -0.0903168 0.0637683 -0.0512003 -0.0882226 
-0.0719681 -0.2048 -0.092217 0.0746899 -0.2016 -0.0957046 0.0764766 -0.1984 -0.097994 
-0.0773773 -0.1952 -0.0991481 0.0778547 -0.192 -0.0997599 0.0779827 -0.1888 -0.0999238 
-0.0776923 -0.1856 -0.0995517 0.0770327 -0.1824 -0.0987066 0.0756743 -0.1792 -0.096966 
-0.0742322 -0.176 -0.0951181 0.0732281 -0.1728 -0.0938315 0.0729722 -0.1696 -0.0935036 
-0.0728786 -0.1664 -0.0933838 0.0730411 -0.1632 -0.0935919 0.073361 -0.16 -0.0940018 
-0.0732478 -0.1568 -0.0938568 0.0720616 -0.1536 -0.0923368 0.0724652 -0.1504 -0.092854 
-0.0735677 -0.1472 -0.0942667 0.073169 -0.144 -0.0937559 0.0728097 -0.1408 -0.0932955 
-0.0722831 -0.1376 -0.0926206 0.0718204 -0.1344 -0.0920278 0.0720321 -0.1312 -0.092299 
-0.0770081 -0.128 -0.0986751 0.0772788 -0.1248 -0.099022 0.0754479 -0.1216 -0.0966759 
-0.0726867 -0.1184 -0.0931378 0.0718106 -0.1152 -0.0920152 0.0706343 -0.112 -0.0905079 
-0.0689165 -0.1088 -0.0883068 0.0682816 -0.1056 -0.0874933 0.0675925 -0.1024 -0.0866103 
-0.0664703 -0.0992002 -0.0851724 0.0650627 -0.0960002 -0.0833687 0.0637977 -0.0928002 -0.0817478 
-0.0636944 -0.0896002 -0.0816154 0.0648264 -0.0864002 -0.0830659 0.0679124 -0.0832002 -0.0870203 
-0.0705457 -0.0800002 -0.0903944 0.0717663 -0.0768002 -0.0919584 0.0723176 -0.0736002 -0.0926648 
-0.072416 -0.0704002 -0.0927909 0.0724504 -0.0672002 -0.0928351 0.0720616 -0.0640002 -0.0923368 
-0.0710969 -0.0608002 -0.0911007 0.069704 -0.0576002 -0.0893159 0.0679272 -0.0544003 -0.0870392 
-0.0664802 -0.0512003 -0.085185 0.0760244 -0.2048 -0.0903503 0.0789397 -0.2016 -0.0938149 
-0.0806961 -0.1984 -0.0959023 0.0818293 -0.1952 -0.097249 0.0824422 -0.192 -0.0979774 
-0.0826379 -0.1888 -0.09821 0.0823959 -0.1856 -0.0979223 0.0815202 -0.1824 -0.0968817 
-0.0800523 -0.1792 -0.0951371 0.0781929 -0.176 -0.0929274 0.076797 -0.1728 -0.0912685 
-0.0766219 -0.1696 -0.0910604 0.0768743 -0.1664 -0.0913603 0.0772657 -0.1632 -0.0918255 
-0.0778272 -0.16 -0.0924927 0.0777499 -0.1568 -0.0924009 0.0764725 -0.1536 -0.0908828 
-0.0761068 -0.1504 -0.0904482 0.0774203 -0.1472 -0.0920092 0.077173 -0.144 -0.0917153 
-0.0767095 -0.1408 -0.0911644 0.076524 -0.1376 -0.0909441 0.0766477 -0.1344 -0.091091 
-0.0771215 -0.1312 -0.0916541 0.0835496 -0.128 -0.0992935 0.0832972 -0.1248 -0.0989935 
-0.0812266 -0.1216 -0.0965328 0.0785122 -0.1184 -0.0933069 0.0775336 -0.1152 -0.0921438 
-0.0762923 -0.112 -0.0906686 0.0742165 -0.1088 -0.0882017 0.0728001 -0.1056 -0.0865184 
-0.0722026 -0.1024 -0.0858083 0.0712755 -0.0992002 -0.0847064 0.0697303 -0.0960002 -0.0828701 
-0.068592 -0.0928002 -0.0815173 0.0692152 -0.0896002 -0.0822579 0.0702505 -0.0864002 -0.0834883 
-0.0718008 -0.0832002 -0.0853308 0.0736706 -0.0800002 -0.0875529 0.0747264 -0.0768002 -0.0888077 
-0.0752364 -0.0736002 -0.0894137 0.0753394 -0.0704002 -0.0895362 0.0751179 -0.0672002 -0.0892729 
-0.0745101 -0.0640002 -0.0885506 0.0735109 -0.0608002 -0.0873631 0.0721562 -0.0576002 -0.0857532 
-0.070369 -0.0544003 -0.0836291 0.069107 -0.0512003 -0.0821294 0.0797659 -0.2048 -0.0880065 
-0.0823017 -0.2016 -0.0908043 0.0843164 -0.1984 -0.0930271 0.0857187 -0.1952 -0.0945742 
-0.0866051 -0.192 -0.0955523 0.0869812 -0.1888 -0.0959672 0.0867878 -0.1856 -0.0957538 
-0.0859067 -0.1824 -0.0947817 0.0845313 -0.1792 -0.0932642 0.0826671 -0.176 -0.0912074 
-0.0796799 -0.1728 -0.0879116 0.0798734 -0.1696 -0.088125 0.0804052 -0.1664 -0.0887119 
-0.0811144 -0.1632 -0.0894943 0.0817484 -0.16 -0.0901937 0.081657 -0.1568 -0.090093 
-0.0801903 -0.1536 -0.0884748 0.0794489 -0.1504 -0.0876567 0.080835 -0.1472 -0.0891861 
-0.0805449 -0.144 -0.088866 0.0802065 -0.1408 -0.0884925 0.0806309 -0.1376 -0.0889608 
-0.0815012 -0.1344 -0.0899211 0.086589 -0.1312 -0.0955345 0.0903766 -0.128 -0.0997134 
-0.0901671 -0.1248 -0.0994822 0.0877441 -0.1216 -0.0968089 0.0862882 -0.1184 -0.0952025 
-0.0850471 -0.1152 -0.0938333 0.0831506 -0.112 -0.0917408 0.082205 -0.1088 -0.0906976 
-0.0814529 -0.1056 -0.0898677 0.0804804 -0.1024 -0.0887948 0.0791749 -0.0992002 -0.0873544 
-0.0774987 -0.0960002 -0.085505 0.0761072 -0.0928002 -0.0839698 0.0757687 -0.0896002 -0.0835964 
-0.0754571 -0.0864002 -0.0832526 0.075758 -0.0832002 -0.0835845 0.0766069 -0.0800002 -0.0845211 
-0.0774289 -0.0768002 -0.085428 0.0777405 -0.0736002 -0.0857718 0.0777458 -0.0704002 -0.0857777 
-0.0772892 -0.0672002 -0.0852739 0.0764672 -0.0640002 -0.0843669 0.0754571 -0.0608002 -0.0832526 
-0.0740925 -0.0576002 -0.081747 0.0727225 -0.0544003 -0.0802354 0.0715244 -0.0512003 -0.0789136 
-0.0828171 -0.2048 -0.0848734 0.0851189 -0.2016 -0.0872324 0.0878343 -0.1984 -0.0900152 
-0.0896668 -0.1952 -0.0918932 0.0906837 -0.192 -0.0929353 0.0910133 -0.1888 -0.0932732 
-0.0908457 -0.1856 -0.0931014 0.0900132 -0.1824 -0.0922482 0.0885662 -0.1792 -0.0907653 
-0.0866666 -0.176 -0.0888185 0.0836887 -0.1728 -0.0857666 0.0828506 -0.1696 -0.0849078 
-0.0835937 -0.1664 -0.0856693 0.0845267 -0.1632 -0.0866255 0.0851804 -0.16 -0.0872954 
-0.0850463 -0.1568 -0.087158 0.0833423 -0.1536 -0.0854116 0.08275 -0.1504 -0.0848047 
-0.0839792 -0.1472 -0.0860644 0.0829959 -0.144 -0.0850566 0.0828338 -0.1408 -0.0848906 
-0.0844876 -0.1376 -0.0865854 0.0915776 -0.1344 -0.0938515 0.0960417 -0.1312 -0.0984264 
-0.0975558 -0.128 -0.0999781 0.0974161 -0.1248 -0.0998349 0.0965668 -0.1216 -0.0989646 
-0.0950639 -0.1184 -0.0974244 0.0933822 -0.1152 -0.0957009 0.0910859 -0.112 -0.0933476 
-0.0897115 -0.1088 -0.091939 0.0886053 -0.1056 -0.0908053 0.0872755 -0.1024 -0.0894426 
-0.0854877 -0.0992002 -0.0876103 0.0839624 -0.0960002 -0.0860472 0.0820908 -0.0928002 -0.0841291 
-0.0803811 -0.0896002 -0.082377 0.0795542 -0.0864002 -0.0815296 0.0794481 -0.0832002 -0.0814208 
-0.0796883 -0.0800002 -0.081667 0.0800291 -0.0768002 -0.0820163 0.0801967 -0.0736002 -0.082188 
-0.0801241 -0.0704002 -0.0821136 0.0796436 -0.0672002 -0.0816212 0.0786603 -0.0640002 -0.0806134 
-0.0774591 -0.0608002 -0.0793824 0.0763584 -0.0576002 -0.0782544 0.0750846 -0.0544003 -0.0769489 
-0.0739169 -0.0512003 -0.0757522 0.0844248 -0.2048 -0.0803775 0.0876869 -0.2016 -0.0834832 
-0.0910764 -0.1984 -0.0867102 0.0929363 -0.1952 -0.0884809 0.0939213 -0.192 -0.0894187 
-0.0942342 -0.1888 -0.0897165 0.0940777 -0.1856 -0.0895676 0.093226 -0.1824 -0.0887567 
-0.0918007 -0.1792 -0.0873997 0.0899755 -0.176 -0.0856621 0.0867483 -0.1728 -0.0825895 
-0.0857285 -0.1696 -0.0816187 0.0864759 -0.1664 -0.0823303 0.0873103 -0.1632 -0.0831246 
-0.0880229 -0.16 -0.0838031 0.0877622 -0.1568 -0.0835549 0.0859777 -0.1536 -0.0818559 
-0.0856706 -0.1504 -0.0815635 0.0867309 -0.1472 -0.082573 0.0851955 -0.144 -0.0811112 
-0.0853171 -0.1408 -0.081227 0.0881099 -0.1376 -0.0838858 0.0993561 -0.1344 -0.0945929 
-0.101378 -0.1312 -0.0965181 0.102184 -0.128 -0.0972849 0.101998 -0.1248 -0.0971083 
-0.100949 -0.1216 -0.0961099 0.0997327 -0.1184 -0.0949515 0.0986608 -0.1152 -0.093931 
-0.0970095 -0.112 -0.0923588 0.0951322 -0.1088 -0.0905716 0.0932955 -0.1056 -0.0888229 
-0.0913024 -0.1024 -0.0869253 0.0893208 -0.0992002 -0.0850387 0.0875189 -0.0960002 -0.0833232 
-0.0851491 -0.0928002 -0.081067 0.0830922 -0.0896002 -0.0791088 0.0820319 -0.0864002 -0.0780993 
-0.0818987 -0.0832002 -0.0779724 0.0822753 -0.0800002 -0.078331 0.0825939 -0.0768002 -0.0786344 
-0.0828605 -0.0736002 -0.0788881 0.0828257 -0.0704002 -0.078855 0.0821188 -0.0672002 -0.078182 
-0.0813598 -0.0640002 -0.0774594 0.0801894 -0.0608002 -0.0763451 0.07888 -0.0576002 -0.0750984 
-0.077698 -0.0544003 -0.0739731 0.0763943 -0.0512003 -0.072732 0.0869366 -0.2048 -0.0768711 
-0.0907003 -0.2016 -0.080199 0.0936789 -0.1984 -0.0828328 0.0956207 -0.1952 -0.0845497 
-0.0966994 -0.192 -0.0855036 0.0969691 -0.1888 -0.0857421 0.0966455 -0.1856 -0.0854559 
-0.0958184 -0.1824 -0.0847246 0.0945419 -0.1792 -0.0835959 0.0926301 -0.176 -0.0819054 
-0.0887945 -0.1728 -0.0785139 0.0878296 -0.1696 -0.0776607 0.0886866 -0.1664 -0.0784185 
-0.0895496 -0.1632 -0.0791816 0.0902808 -0.16 -0.0798281 0.0899631 -0.1568 -0.0795472 
-0.0882611 -0.1536 -0.0780422 0.0876258 -0.1504 -0.0774805 0.0889803 -0.1472 -0.0786782 
-0.0881712 -0.144 -0.0779627 0.0882611 -0.1408 -0.0780422 0.0890162 -0.1376 -0.0787099 
-0.102063 -0.1344 -0.0902464 0.104622 -0.1312 -0.0925092 0.105467 -0.128 -0.0932564 
-0.10518 -0.1248 -0.0930021 0.103975 -0.1216 -0.0919369 0.102723 -0.1184 -0.0908294 
-0.101284 -0.1152 -0.0895575 0.0994503 -0.112 -0.087936 0.0968253 -0.1088 -0.0856149 
-0.0947277 -0.1056 -0.0837601 0.0924922 -0.1024 -0.0817835 0.0903107 -0.0992002 -0.0798546 
-0.0878176 -0.0960002 -0.0776501 0.0846172 -0.0928002 -0.0748203 0.082232 -0.0896002 -0.0727112 
-0.0818184 -0.0864002 -0.0723455 0.0826515 -0.0832002 -0.0730821 0.0837183 -0.0800002 -0.0740254 
-0.0844015 -0.0768002 -0.0746295 0.084791 -0.0736002 -0.074974 0.0849409 -0.0704002 -0.0751064 
-0.0847191 -0.0672002 -0.0749104 0.083928 -0.0640002 -0.0742109 0.0828732 -0.0608002 -0.0732782 
-0.081333 -0.0576002 -0.0719163 0.0799006 -0.0544003 -0.0706498 0.0783844 -0.0512003 -0.0693091 
-0.0889156 -0.2048 -0.0729695 0.0917232 -0.2016 -0.0752736 0.094976 -0.1984 -0.077943 
-0.0971034 -0.1952 -0.0796889 0.0983464 -0.192 -0.080709 0.0986989 -0.1888 -0.0809982 
-0.0983402 -0.1856 -0.0807039 0.0973322 -0.1824 -0.0798766 0.0955882 -0.1792 -0.0784455 
-0.0928549 -0.176 -0.0762023 0.0890331 -0.1728 -0.0730659 0.0890949 -0.1696 -0.0731166 
-0.0897937 -0.1664 -0.0736901 0.0907337 -0.1632 -0.0744615 0.0915191 -0.16 -0.0751061 
-0.0911542 -0.1568 -0.0748066 0.0892928 -0.1536 -0.073279 0.0889094 -0.1504 -0.0729644 
-0.0902699 -0.1472 -0.0740809 0.0899236 -0.144 -0.0737967 0.0898865 -0.1408 -0.0737662 
-0.0896515 -0.1376 -0.0735734 0.0894845 -0.1344 -0.0734364 0.100263 -0.1312 -0.0822822 
-0.1056 -0.128 -0.086662 0.105334 -0.1248 -0.0864438 0.104023 -0.1216 -0.0853679 
-0.101803 -0.1184 -0.0835459 0.0985381 -0.1152 -0.0808663 0.0939618 -0.112 -0.0771107 
-0.0893917 -0.1088 -0.0733602 0.0848155 -0.1056 -0.0696047 0.08275 -0.1024 -0.0679096 
-0.0806226 -0.0992002 -0.0661638 0.0787055 -0.0960002 -0.0645905 0.0742653 -0.0928002 -0.0609466 
-0.0753043 -0.0896002 -0.0617992 0.0782356 -0.0864002 -0.0642048 0.0831458 -0.0832002 -0.0682344 
-0.0852298 -0.0800002 -0.0699447 0.0862564 -0.0768002 -0.0707872 0.086782 -0.0736002 -0.0712186 
-0.0869861 -0.0704002 -0.071386 0.0868995 -0.0672002 -0.071315 0.0862564 -0.0640002 -0.0707872 
-0.0851803 -0.0608002 -0.0699041 0.0835044 -0.0576002 -0.0685288 0.0817605 -0.0544003 -0.0670976 
-0.0799857 -0.0512003 -0.0656411 0.0875174 -0.2048 -0.0665858 0.0922924 -0.2016 -0.0702188 
-0.0945845 -0.1984 -0.0719627 0.0966218 -0.1952 -0.0735128 0.0979525 -0.192 -0.0745252 
-0.0986273 -0.1888 -0.0750386 0.0985127 -0.1856 -0.0749514 0.0973922 -0.1824 -0.0740989 
-0.0952402 -0.1792 -0.0724616 0.0919868 -0.176 -0.0699863 0.0900131 -0.1728 -0.0684847 
-0.0894783 -0.1696 -0.0680778 0.0898158 -0.1664 -0.0683345 0.0904588 -0.1632 -0.0688238 
-0.0912101 -0.16 -0.0693953 0.0910063 -0.1568 -0.0692403 0.0889944 -0.1536 -0.0677096 
-0.0889753 -0.1504 -0.0676951 0.0904843 -0.1472 -0.0688431 0.090185 -0.144 -0.0686155 
-0.0897075 -0.1408 -0.0682522 0.0889563 -0.1376 -0.0676806 0.088084 -0.1344 -0.0670169 
-0.0902296 -0.1312 -0.0686494 0.0989011 -0.128 -0.0752469 0.0978761 -0.1248 -0.074467 
-0.0944317 -0.1216 -0.0718464 0.0889881 -0.1184 -0.0677048 0.0874792 -0.1152 -0.0665568 
-0.0850152 -0.112 -0.0646821 0.0835318 -0.1088 -0.0635535 0.0819592 -0.1056 -0.062357 
-0.0803484 -0.1024 -0.0611315 0.0775343 -0.0992002 -0.0589904 0.0760699 -0.0960002 -0.0578763 
-0.0750385 -0.0928002 -0.0570916 0.0748475 -0.0896002 -0.0569462 0.0764647 -0.0864002 -0.0581766 
-0.0814753 -0.0832002 -0.0619889 0.0860594 -0.0800002 -0.0654765 0.0874601 -0.0768002 -0.0665422 
-0.0878803 -0.0736002 -0.0668619 0.0880776 -0.0704002 -0.0670121 0.0882113 -0.0672002 -0.0671138 
-0.0877911 -0.0640002 -0.0667941 0.0868298 -0.0608002 -0.0660627 0.0853463 -0.0576002 -0.064934 
-0.0834936 -0.0544003 -0.0635244 0.0813607 -0.0512003 -0.0619017 0.0875477 -0.2048 -0.0616565 
-0.0910666 -0.2016 -0.0641347 0.0948603 -0.1984 -0.0668064 0.0965478 -0.1952 -0.0679949 
-0.0976008 -0.192 -0.0687365 0.0982157 -0.1888 -0.0691695 0.098183 -0.1856 -0.0691465 
-0.097228 -0.1824 -0.0684739 0.0952135 -0.1792 -0.0670552 0.0927541 -0.176 -0.0653232 
-0.0909293 -0.1728 -0.064038 0.0901771 -0.1696 -0.0635083 0.0899874 -0.1664 -0.0633747 
-0.0899809 -0.1632 -0.0633701 0.0905565 -0.16 -0.0637754 0.0907004 -0.1568 -0.0638768 
-0.0888951 -0.1536 -0.0626054 0.0887447 -0.1504 -0.0624995 0.0906742 -0.1472 -0.0638583 
-0.0904387 -0.144 -0.0636925 0.0898631 -0.1408 -0.0632872 0.0886073 -0.1376 -0.0624027 
-0.0877701 -0.1344 -0.0618131 0.0870179 -0.1312 -0.0612834 0.0956255 -0.128 -0.0673454 
-0.0954359 -0.1248 -0.0672118 0.0917011 -0.1216 -0.0645815 0.0874496 -0.1184 -0.0615874 
-0.0867432 -0.1152 -0.0610899 0.0849576 -0.112 -0.0598324 0.083571 -0.1088 -0.0588558 
-0.0824329 -0.1056 -0.0580543 0.0808958 -0.1024 -0.0569718 0.078286 -0.0992002 -0.0551338 
-0.0777039 -0.0960002 -0.0547239 0.0754604 -0.0928002 -0.0531439 0.0762911 -0.0896002 -0.0537289 
-0.0780179 -0.0864002 -0.054945 0.080052 -0.0832002 -0.0563776 0.0865535 -0.0800002 -0.0609563 
-0.088555 -0.0768002 -0.0623659 0.0893791 -0.0736002 -0.0629463 0.0896015 -0.0704002 -0.0631029 
-0.089765 -0.0672002 -0.0632181 0.0893399 -0.0640002 -0.0629186 0.0883784 -0.0608002 -0.0622415 
-0.0869591 -0.0576002 -0.0612419 0.0851473 -0.0544003 -0.0599659 0.0829954 -0.0512003 -0.0584504 
-0.0880747 -0.2048 -0.0572973 0.0918769 -0.2016 -0.0597708 0.0952499 -0.1984 -0.0619652 
-0.097141 -0.1952 -0.0631954 0.0980731 -0.192 -0.0638018 0.0983279 -0.1888 -0.0639676 
-0.0978518 -0.1856 -0.0636578 0.0967721 -0.1824 -0.0629555 0.095089 -0.1792 -0.0618605 
-0.0932382 -0.176 -0.0606564 0.0916355 -0.1728 -0.0596138 0.0908911 -0.1696 -0.0591295 
-0.0904284 -0.1664 -0.0588285 0.0902339 -0.1632 -0.058702 0.0902406 -0.16 -0.0587064 
-0.0901199 -0.1568 -0.0586279 0.0882691 -0.1536 -0.0574238 0.0895701 -0.1504 -0.0582701 
-0.0910386 -0.1472 -0.0592255 0.0906229 -0.144 -0.058955 0.0900663 -0.1408 -0.058593 
-0.0891677 -0.1376 -0.0580084 0.0883496 -0.1344 -0.0574762 0.0880277 -0.1312 -0.0572668 
-0.0877528 -0.128 -0.0570879 0.0878936 -0.1248 -0.0571795 0.0883295 -0.1216 -0.0574631 
-0.0886514 -0.1184 -0.0576725 0.0882155 -0.1152 -0.0573889 0.085969 -0.112 -0.0559275 
-0.0844669 -0.1088 -0.0549503 0.0834208 -0.1056 -0.0542697 0.0807653 -0.1024 -0.0525422 
-0.0807787 -0.0992002 -0.0525509 0.0801819 -0.0960002 -0.0521626 0.0768826 -0.0928002 -0.0500163 
-0.0792363 -0.0896002 -0.0515475 0.0806647 -0.0864002 -0.0524767 0.0833873 -0.0832002 -0.0542479 
-0.0888324 -0.0800002 -0.0577903 0.0910185 -0.0768002 -0.0592124 0.0920445 -0.0736002 -0.0598799 
-0.0922792 -0.0704002 -0.0600326 0.0922792 -0.0672002 -0.0600326 0.0916288 -0.0640002 -0.0596094 
-0.0906765 -0.0608002 -0.0589899 0.0892348 -0.0576002 -0.058052 0.0871962 -0.0544003 -0.0567258 
-0.0850436 -0.0512003 -0.0553254 0.0877292 -0.2048 -0.0525813 0.0893417 -0.2016 -0.0535478 
-0.0936853 -0.1984 -0.0561511 0.0960938 -0.1952 -0.0575947 0.0971505 -0.192 -0.0582281 
-0.0974113 -0.1888 -0.0583844 0.09678 -0.1856 -0.058006 0.0959154 -0.1824 -0.0574878 
-0.0945224 -0.1792 -0.0566529 0.0931569 -0.176 -0.0558345 0.0919081 -0.1728 -0.0550859 
-0.0907072 -0.1696 -0.0543662 0.090124 -0.1664 -0.0540166 0.089575 -0.1632 -0.0536876 
-0.0890604 -0.16 -0.0533792 0.0883948 -0.1568 -0.0529802 0.086597 -0.1536 -0.0519027 
-0.0884222 -0.1504 -0.0529967 0.0899044 -0.1472 -0.053885 0.0898563 -0.144 -0.0538562 
-0.089623 -0.1408 -0.0537164 0.0892045 -0.1376 -0.0534655 0.0888751 -0.1344 -0.0532681 
-0.0889506 -0.1312 -0.0533134 0.089081 -0.128 -0.0533915 0.0892113 -0.1248 -0.0534696 
-0.0901926 -0.1216 -0.0540578 0.0905082 -0.1184 -0.054247 0.0894721 -0.1152 -0.0536259 
-0.0873861 -0.112 -0.0523757 0.0858765 -0.1088 -0.0514709 0.0838179 -0.1056 -0.050237 
-0.0836326 -0.1024 -0.050126 0.0842159 -0.0992002 -0.0504756 0.083317 -0.0960002 -0.0499368 
-0.0804213 -0.0928002 -0.0482012 0.0826102 -0.0896002 -0.0495132 0.0832552 -0.0864002 -0.0498998 
-0.0862607 -0.0832002 -0.0517012 0.0902681 -0.0800002 -0.054103 0.0930746 -0.0768002 -0.0557851 
-0.0940284 -0.0736002 -0.0563568 0.0941862 -0.0704002 -0.0564514 0.0941793 -0.0672002 -0.0564473 
-0.0934177 -0.0640002 -0.0559908 0.0922923 -0.0608002 -0.0553163 0.0906935 -0.0576002 -0.054358 
-0.0887104 -0.0544003 -0.0531694 0.0865421 -0.0512003 -0.0518698 0.0862971 -0.2048 -0.0474959 
-0.0883996 -0.2016 -0.0486531 0.090355 -0.1984 -0.0497293 0.0929132 -0.1952 -0.0511372 
-0.0945392 -0.192 -0.0520321 0.095184 -0.1888 -0.052387 0.0950788 -0.1856 -0.0523292 
-0.0945602 -0.1824 -0.0520437 0.0934669 -0.1792 -0.051442 0.0924366 -0.176 -0.0508749 
-0.0915185 -0.1728 -0.0503696 0.0904952 -0.1696 -0.0498064 0.0897102 -0.1664 -0.0493744 
-0.0888342 -0.1632 -0.0488922 0.087923 -0.16 -0.0483908 0.0865914 -0.1568 -0.0476579 
-0.0852387 -0.1536 -0.0469134 0.0858765 -0.1504 -0.0472644 0.0880492 -0.1472 -0.0484602 
-0.0892757 -0.144 -0.0491353 0.0896261 -0.1408 -0.0493281 0.0898784 -0.1376 -0.049467 
-0.0900817 -0.1344 -0.0495789 0.0903761 -0.1312 -0.0497409 0.0914834 -0.128 -0.0503503 
-0.0930253 -0.1248 -0.051199 0.093614 -0.1216 -0.051523 0.0932216 -0.1184 -0.051307 
-0.091932 -0.1152 -0.0505972 0.0895561 -0.112 -0.0492896 0.0872923 -0.1088 -0.0480436 
-0.0856803 -0.1056 -0.0471564 0.0873273 -0.1024 -0.0480629 0.0880001 -0.0992002 -0.0484332 
-0.0874535 -0.0960002 -0.0481323 0.0847972 -0.0928002 -0.0466704 0.0853088 -0.0896002 -0.046952 
-0.0872923 -0.0864002 -0.0480436 0.0893108 -0.0832002 -0.0491545 0.0915115 -0.0800002 -0.0503658 
-0.0945882 -0.0768002 -0.0520592 0.0953452 -0.0736002 -0.0524757 0.0952611 -0.0704002 -0.0524295 
-0.0949597 -0.0672002 -0.0522636 0.0943289 -0.0640002 -0.0519164 0.0932145 -0.0608002 -0.0513031 
-0.0917287 -0.0576002 -0.0504853 0.0897663 -0.0544003 -0.0494053 0.0876567 -0.0512003 -0.0482442 
-0.0845068 -0.2048 -0.0425357 0.0868506 -0.2016 -0.0437154 0.0885942 -0.1984 -0.044593 
-0.0900519 -0.1952 -0.0453268 0.0915311 -0.192 -0.0460713 0.0925673 -0.1888 -0.0465928 
-0.0929389 -0.1856 -0.0467799 0.0927745 -0.1824 -0.0466971 0.0922171 -0.1792 -0.0464166 
-0.0916026 -0.176 -0.0461073 0.090938 -0.1728 -0.0457728 0.0903092 -0.1696 -0.0454562 
-0.0897232 -0.1664 -0.0451613 0.0891301 -0.1632 -0.0448628 0.0885727 -0.16 -0.0445822 
-0.0873651 -0.1568 -0.0439744 0.086086 -0.1536 -0.0433305 0.086529 -0.1504 -0.0435535 
-0.0891373 -0.1472 -0.0448664 0.0902091 -0.144 -0.0454059 0.0907737 -0.1408 -0.04569 
-0.0913596 -0.1376 -0.045985 0.0922957 -0.1344 -0.0464562 0.0944038 -0.1312 -0.0475172 
-0.0958901 -0.128 -0.0482653 0.0964975 -0.1248 -0.0485711 0.0964475 -0.1216 -0.0485459 
-0.0955114 -0.1184 -0.0480747 0.0938392 -0.1152 -0.0472331 0.091231 -0.112 -0.0459202 
-0.0879653 -0.1088 -0.0442765 0.0884584 -0.1056 -0.0445247 0.090252 -0.1024 -0.0454275 
-0.0906736 -0.0992002 -0.0456397 0.0903449 -0.0960002 -0.0454742 0.0872651 -0.0928002 -0.043924 
-0.0875509 -0.0896002 -0.0440679 0.0906164 -0.0864002 -0.0456109 0.0919098 -0.0832002 -0.0462619 
-0.0937035 -0.0800002 -0.0471647 0.0957543 -0.0768002 -0.048197 0.0960616 -0.0736002 -0.0483517 
-0.09579 -0.0704002 -0.048215 0.095347 -0.0672002 -0.047992 0.0946753 -0.0640002 -0.0476539 
-0.0934676 -0.0608002 -0.047046 0.0920742 -0.0576002 -0.0463447 0.0901806 -0.0544003 -0.0453915 
-0.0881583 -0.0512003 -0.0443736 0.0829239 -0.2048 -0.0379805 0.085186 -0.2016 -0.0390166 
-0.0870698 -0.1984 -0.0398794 0.088539 -0.1952 -0.0405523 0.0895791 -0.192 -0.0410287 
-0.0903064 -0.1888 -0.0413618 0.0907938 -0.1856 -0.041585 0.0908883 -0.1824 -0.0416283 
-0.0908956 -0.1792 -0.0416317 0.0906119 -0.176 -0.0415017 0.0903646 -0.1728 -0.0413885 
-0.0902773 -0.1696 -0.0413485 0.0901973 -0.1664 -0.0413118 0.0899428 -0.1632 -0.0411953 
-0.0897464 -0.16 -0.0411053 0.0894627 -0.1568 -0.0409754 0.0892809 -0.1536 -0.0408921 
-0.0896591 -0.1504 -0.0410653 0.0903792 -0.1472 -0.0413951 0.0909974 -0.144 -0.0416783 
-0.0919284 -0.1408 -0.0421047 0.093114 -0.1376 -0.0426477 0.095776 -0.1344 -0.043867 
-0.0975216 -0.1312 -0.0446665 0.0983508 -0.128 -0.0450463 0.0985617 -0.1248 -0.0451429 
-0.0981981 -0.1216 -0.0449763 0.0971434 -0.1184 -0.0444933 0.0954051 -0.1152 -0.0436971 
-0.0926703 -0.112 -0.0424445 0.0889536 -0.1088 -0.0407422 0.0903646 -0.1056 -0.0413885 
-0.0919357 -0.1024 -0.042108 0.0922775 -0.0992002 -0.0422646 0.0918338 -0.0960002 -0.0420614 
-0.091172 -0.0928002 -0.0417583 0.08995 -0.0896002 -0.0411986 0.0923212 -0.0864002 -0.0422846 
-0.093594 -0.0832002 -0.0428676 0.094925 -0.0800002 -0.0434772 0.0960015 -0.0768002 -0.0439703 
-0.0960015 -0.0736002 -0.0439703 0.0953105 -0.0704002 -0.0436538 0.0946632 -0.0672002 -0.0433573 
-0.0938486 -0.0640002 -0.0429842 0.0929758 -0.0608002 -0.0425844 0.0914702 -0.0576002 -0.0418948 
-0.0897682 -0.0544003 -0.0411153 0.0879935 -0.0512003 -0.0403025 0.0816641 -0.2048 -0.0338249 
-0.0839996 -0.2016 -0.0347923 0.0858548 -0.1984 -0.0355607 0.0875178 -0.1952 -0.0362495 
-0.0886191 -0.192 -0.0367057 0.0892695 -0.1888 -0.0369751 0.0896021 -0.1856 -0.0371128 
-0.0896538 -0.1824 -0.0371343 0.0898164 -0.1792 -0.0372016 0.0899495 -0.176 -0.0372567 
-0.0900308 -0.1728 -0.0372904 0.0903634 -0.1696 -0.0374282 0.0906442 -0.1664 -0.0375445 
-0.0908438 -0.1632 -0.0376272 0.0909694 -0.16 -0.0376792 0.0910359 -0.1568 -0.0377067 
-0.0911912 -0.1536 -0.037771 0.091509 -0.1504 -0.0379027 0.0916272 -0.1472 -0.0379517 
-0.0924772 -0.144 -0.0383037 0.0942289 -0.1408 -0.0390293 0.0967197 -0.1376 -0.0400609 
-0.0986118 -0.1344 -0.0408446 0.0997205 -0.1312 -0.0413038 0.100216 -0.128 -0.041509 
-0.100327 -0.1248 -0.0415549 0.0998092 -0.1216 -0.0413406 0.0986562 -0.1184 -0.040863 
-0.0967788 -0.1152 -0.0400854 0.0939406 -0.112 -0.0389099 0.0903708 -0.1088 -0.0374312 
-0.0915016 -0.1056 -0.0378996 0.0931055 -0.1024 -0.0385639 0.0932976 -0.0992002 -0.0386435 
-0.0921372 -0.0960002 -0.0381629 0.0908955 -0.0928002 -0.0376486 0.0913168 -0.0896002 -0.0378231 
-0.0936672 -0.0864002 -0.0387966 0.095005 -0.0832002 -0.0393507 0.0962614 -0.0800002 -0.0398711 
-0.0967419 -0.0768002 -0.0400701 0.0963797 -0.0736002 -0.0399201 0.0953154 -0.0704002 -0.0394793 
-0.0942806 -0.0672002 -0.0390507 0.0928468 -0.0640002 -0.0384568 0.0919672 -0.0608002 -0.0380925 
-0.0905334 -0.0576002 -0.0374986 0.0893212 -0.0544003 -0.0369965 0.0879243 -0.0512003 -0.0364179 
-0.0806641 -0.2048 -0.0299823 0.0831537 -0.2016 -0.0309076 0.0852458 -0.1984 -0.0316853 
-0.0868581 -0.1952 -0.0322845 0.0881254 -0.192 -0.0327556 0.0890402 -0.1888 -0.0330956 
-0.0894826 -0.1856 -0.0332601 0.0897676 -0.1824 -0.033366 0.0898201 -0.1792 -0.0333855 
-0.0900375 -0.176 -0.0334663 0.090315 -0.1728 -0.0335695 0.0907124 -0.1696 -0.0337172 
-0.0910949 -0.1664 -0.0338593 0.0915823 -0.1632 -0.0340405 0.0922347 -0.16 -0.034283 
-0.0927746 -0.1568 -0.0344837 0.093442 -0.1536 -0.0347317 0.0940194 -0.1504 -0.0349464 
-0.0947618 -0.1472 -0.0352223 0.096149 -0.144 -0.0357379 0.0977988 -0.1408 -0.0363511 
-0.0994785 -0.1376 -0.0369755 0.100761 -0.1344 -0.0374521 0.101541 -0.1312 -0.0377419 
-0.101961 -0.128 -0.037898 0.102028 -0.1248 -0.0379231 0.101383 -0.1216 -0.0376834 
-0.0999959 -0.1184 -0.0371678 0.0980687 -0.1152 -0.0364515 0.0951067 -0.112 -0.0353505 
-0.0922047 -0.1088 -0.0342718 0.0927071 -0.1056 -0.0344586 0.0939444 -0.1024 -0.0349185 
-0.0940119 -0.0992002 -0.0349436 0.0931195 -0.0960002 -0.0346119 0.0909524 -0.0928002 -0.0338064 
-0.0936594 -0.0896002 -0.0348126 0.0952867 -0.0864002 -0.0354174 0.0965165 -0.0832002 -0.0358745 
-0.0976338 -0.0800002 -0.0362898 0.0978137 -0.0768002 -0.0363567 0.0970264 -0.0736002 -0.036064 
-0.0958191 -0.0704002 -0.0356153 0.0943118 -0.0672002 -0.0350551 0.0925871 -0.0640002 -0.034414 
-0.0913873 -0.0608002 -0.033968 0.09033 -0.0576002 -0.033575 0.0892802 -0.0544003 -0.0331848 
-0.0880729 -0.0512003 -0.0327361 0.0799127 -0.2048 -0.0263982 0.0826094 -0.2016 -0.027289 
-0.0847743 -0.1984 -0.0280042 0.0864987 -0.1952 -0.0285738 0.0879647 -0.192 -0.0290581 
-0.0890738 -0.1888 -0.0294245 0.0898866 -0.1856 -0.029693 0.0902968 -0.1824 -0.0298285 
-0.0905095 -0.1792 -0.0298987 0.090745 -0.176 -0.0299765 0.0910564 -0.1728 -0.0300794 
-0.0916641 -0.1696 -0.0302801 0.0921579 -0.1664 -0.0304432 0.0925985 -0.1632 -0.0305888 
-0.0932593 -0.16 -0.0308071 0.0943608 -0.1568 -0.031171 0.0954699 -0.1536 -0.0315373 
-0.0966017 -0.1504 -0.0319112 0.0977032 -0.1472 -0.0322751 0.0988198 -0.144 -0.0326439 
-0.100073 -0.1408 -0.033058 0.101327 -0.1376 -0.033472 0.102246 -0.1344 -0.0337756 
-0.102975 -0.1312 -0.0340165 0.1034 -0.128 -0.0341571 0.10318 -0.1248 -0.0340843 
-0.102314 -0.1216 -0.0337982 0.10097 -0.1184 -0.0333541 0.0989869 -0.1152 -0.0326991 
-0.096032 -0.112 -0.031723 0.0936695 -0.1088 -0.0309426 0.0934341 -0.1056 -0.0308648 
-0.094376 -0.1024 -0.031176 0.0941253 -0.0992002 -0.0310932 0.0929251 -0.0960002 -0.0306967 
-0.0921959 -0.0928002 -0.0304558 0.0942469 -0.0896002 -0.0311333 0.0966701 -0.0864002 -0.0319338 
-0.0977184 -0.0832002 -0.0322801 0.0985767 -0.0800002 -0.0325636 0.098326 -0.0768002 -0.0324808 
-0.0974981 -0.0736002 -0.0322073 0.0961535 -0.0704002 -0.0317632 0.0941633 -0.0672002 -0.0311057 
-0.0925985 -0.0640002 -0.0305888 0.0914286 -0.0608002 -0.0302024 0.0905247 -0.0576002 -0.0299037 
-0.0894384 -0.0544003 -0.0295449 0.0884737 -0.0512003 -0.0292262 0.079209 -0.2048 -0.0229688 
-0.0820749 -0.2016 -0.0237999 0.0842033 -0.1984 -0.024417 0.086055 -0.1952 -0.024954 
-0.0877838 -0.192 -0.0254553 0.0890054 -0.1888 -0.0258095 0.0901119 -0.1856 -0.0261304 
-0.0907803 -0.1824 -0.0263242 0.0912797 -0.1792 -0.026469 0.0916101 -0.176 -0.0265648 
-0.0919559 -0.1728 -0.0266651 0.0924937 -0.1696 -0.0268211 0.0931468 -0.1664 -0.0270104 
-0.0937 -0.1632 -0.0271709 0.0943839 -0.16 -0.0273692 0.0953597 -0.1568 -0.0276521 
-0.0965813 -0.1536 -0.0280064 0.0979797 -0.1504 -0.0284119 0.0989171 -0.1472 -0.0286837 
-0.0997316 -0.144 -0.0289199 0.100853 -0.1408 -0.0292452 0.101967 -0.1376 -0.0295682 
-0.102943 -0.1344 -0.0298512 0.103696 -0.1312 -0.0300695 0.103934 -0.128 -0.0301386 
-0.103727 -0.1248 -0.0300785 0.102843 -0.1216 -0.0298222 0.101368 -0.1184 -0.0293944 
-0.0994012 -0.1152 -0.0288241 0.0971038 -0.112 -0.0281579 0.095037 -0.1088 -0.0275585 
-0.0942072 -0.1056 -0.0273179 0.0942994 -0.1024 -0.0273447 0.0936616 -0.0992002 -0.0271597 
-0.0916025 -0.0960002 -0.0265626 0.0924553 -0.0928002 -0.0268099 0.0955133 -0.0896002 -0.0276967 
-0.0972191 -0.0864002 -0.0281913 0.0981641 -0.0832002 -0.0284654 0.0986482 -0.0800002 -0.0286057 
-0.0983793 -0.0768002 -0.0285277 0.0976647 -0.0736002 -0.0283205 0.0963278 -0.0704002 -0.0279329 
-0.094307 -0.0672002 -0.0273469 0.092632 -0.0640002 -0.0268612 0.0915564 -0.0608002 -0.0265492 
-0.090473 -0.0576002 -0.0262351 0.0895971 -0.0544003 -0.0259811 0.088675 -0.0512003 -0.0257137 
-0.077696 -0.2048 -0.0194604 0.0810561 -0.2016 -0.0203021 0.0832833 -0.1984 -0.0208599 
-0.0851924 -0.1952 -0.0213381 0.0870471 -0.192 -0.0218026 0.0885215 -0.1888 -0.0221719 
-0.089802 -0.1856 -0.0224926 0.0907953 -0.1824 -0.0227414 0.091548 -0.1792 -0.02293 
-0.0921689 -0.176 -0.0230855 0.0926423 -0.1728 -0.023204 0.0931156 -0.1696 -0.0233226 
-0.0937287 -0.1664 -0.0234762 0.094303 -0.1632 -0.02362 0.0950945 -0.16 -0.0238183 
-0.0959636 -0.1568 -0.0240359 0.0969414 -0.1536 -0.0242809 0.0980046 -0.1504 -0.0245471 
-0.098835 -0.1472 -0.0247551 0.0995489 -0.144 -0.0249339 0.100635 -0.1408 -0.0252061 
-0.101931 -0.1376 -0.0255307 0.102987 -0.1344 -0.025795 0.103608 -0.1312 -0.0259505 
-0.103778 -0.128 -0.0259933 0.10339 -0.1248 -0.0258961 0.102513 -0.1216 -0.0256764 
-0.10114 -0.1184 -0.0253324 0.0992618 -0.1152 -0.024862 0.0975312 -0.112 -0.0244286 
-0.0958705 -0.1088 -0.0240126 0.0948229 -0.1056 -0.0237502 0.0940003 -0.1024 -0.0235442 
-0.0927587 -0.0992002 -0.0232332 0.0910514 -0.0960002 -0.0228056 0.0928595 -0.0928002 -0.0232585 
-0.0960956 -0.0896002 -0.024069 0.0971432 -0.0864002 -0.0243314 0.0978882 -0.0832002 -0.024518 
-0.0981443 -0.0800002 -0.0245821 0.0979425 -0.0768002 -0.0245316 0.0972441 -0.0736002 -0.0243567 
-0.0957386 -0.0704002 -0.0239796 0.0936045 -0.0672002 -0.0234451 0.0923784 -0.0640002 -0.023138 
-0.0913075 -0.0608002 -0.0228697 0.0903219 -0.0576002 -0.0226229 0.0894916 -0.0544003 -0.0224149 
-0.0886147 -0.0512003 -0.0221953 0.0756986 -0.2048 -0.0160242 0.07861 -0.2016 -0.0166405 
-0.081185 -0.1984 -0.0171855 0.0834234 -0.1952 -0.0176594 0.0855287 -0.192 -0.018105 
-0.0874306 -0.1888 -0.0185076 0.088902 -0.1856 -0.0188191 0.0900368 -0.1824 -0.0190593 
-0.0910543 -0.1792 -0.0192747 0.0919543 -0.176 -0.0194652 0.0927918 -0.1728 -0.0196425 
-0.0934883 -0.1696 -0.01979 0.0940206 -0.1664 -0.0199026 0.0945449 -0.1632 -0.0200136 
-0.0950771 -0.16 -0.0201263 0.0957033 -0.1568 -0.0202588 0.0964233 -0.1536 -0.0204112 
-0.0972451 -0.1504 -0.0205852 0.0979964 -0.1472 -0.0207443 0.0988026 -0.144 -0.0209149 
-0.099914 -0.1408 -0.0211502 0.101151 -0.1376 -0.0214119 0.10209 -0.1344 -0.0216107 
-0.102395 -0.1312 -0.0216754 0.102442 -0.128 -0.0216853 0.10216 -0.1248 -0.0216257 
-0.101518 -0.1216 -0.0214898 0.100282 -0.1184 -0.021228 0.0987243 -0.1152 -0.0208983 
-0.0973155 -0.112 -0.0206001 0.0958128 -0.1088 -0.020282 0.0945684 -0.1056 -0.0200186 
-0.0938014 -0.1024 -0.0198562 0.0912656 -0.0992002 -0.0193194 0.0914378 -0.0960002 -0.0193559 
-0.0931596 -0.0928002 -0.0197204 0.0945214 -0.0896002 -0.0200087 0.095578 -0.0864002 -0.0202323 
-0.096259 -0.0832002 -0.0203765 0.0965407 -0.0800002 -0.0204361 0.0964468 -0.0768002 -0.0204162 
-0.095445 -0.0736002 -0.0202042 0.093684 -0.0704002 -0.0198314 0.0922204 -0.0672002 -0.0195216 
-0.0912734 -0.0640002 -0.0193211 0.0904282 -0.0608002 -0.0191422 0.089669 -0.0576002 -0.0189815 
-0.089035 -0.0544003 -0.0188473 0.0880254 -0.0512003 -0.0186335 0.0740458 -0.2048 -0.0128468 
-0.0764893 -0.2016 -0.0132708 0.0789959 -0.1984 -0.0137057 0.0813921 -0.1952 -0.0141214 
-0.0836227 -0.192 -0.0145084 0.0855775 -0.1888 -0.0148476 0.0874614 -0.1856 -0.0151744 
-0.0889275 -0.1824 -0.0154288 0.0902596 -0.1792 -0.0156599 0.0914419 -0.176 -0.015865 
-0.092443 -0.1728 -0.0160387 0.0934677 -0.1696 -0.0162165 0.094248 -0.1664 -0.0163519 
-0.0949495 -0.1632 -0.0164736 0.0952806 -0.16 -0.016531 0.0957693 -0.1568 -0.0166158 
-0.0962974 -0.1536 -0.0167074 0.0968018 -0.1504 -0.016795 0.0973694 -0.1472 -0.0168934 
-0.0980788 -0.144 -0.0170165 0.0989852 -0.1408 -0.0171738 0.0997656 -0.1376 -0.0173092 
-0.100412 -0.1344 -0.0174213 0.100767 -0.1312 -0.0174828 0.100751 -0.128 -0.0174801 
-0.100459 -0.1248 -0.0174295 0.0998444 -0.1216 -0.0173228 0.0989773 -0.1184 -0.0171724 
-0.0979054 -0.1152 -0.0169864 0.0965023 -0.112 -0.016743 0.0951229 -0.1088 -0.0165037 
-0.0946736 -0.1056 -0.0164257 0.0932627 -0.1024 -0.0161809 0.0908744 -0.0992002 -0.0157666 
-0.0907877 -0.0960002 -0.0157515 0.0908744 -0.0928002 -0.0157666 0.0921829 -0.0896002 -0.0159936 
-0.0935228 -0.0864002 -0.0162261 0.0941534 -0.0832002 -0.0163355 0.0942795 -0.0800002 -0.0163573 
-0.0939091 -0.0768002 -0.0162931 0.0927188 -0.0736002 -0.0160866 0.0915129 -0.0704002 -0.0158773 
-0.0908113 -0.0672002 -0.0157556 0.0900704 -0.0640002 -0.0156271 0.0895265 -0.0608002 -0.0155327 
-0.0889748 -0.0576002 -0.015437 0.0883206 -0.0544003 -0.0153235 0.0873905 -0.0512003 -0.0151621 
-0.0731843 -0.2048 -0.00993827 0.0752057 -0.2016 -0.0102128 0.0773699 -0.1984 -0.0105067 
-0.0794944 -0.1952 -0.0107952 0.0816664 -0.192 -0.0110901 0.0837196 -0.1888 -0.0113689 
-0.0855349 -0.1856 -0.0116155 0.0872631 -0.1824 -0.0118501 0.0888723 -0.1792 -0.0120687 
-0.0903151 -0.176 -0.0122646 0.0917023 -0.1728 -0.012453 0.0929469 -0.1696 -0.012622 
-0.0939537 -0.1664 -0.0127587 0.0947464 -0.1632 -0.0128664 0.0954043 -0.16 -0.0129557 
-0.0958562 -0.1568 -0.0130171 0.0962208 -0.1536 -0.0130666 0.0966331 -0.1504 -0.0131226 
-0.0970453 -0.1472 -0.0131785 0.0974179 -0.144 -0.0132291 0.0978697 -0.1408 -0.0132905 
-0.0983771 -0.1376 -0.0133594 0.0986862 -0.1344 -0.0134014 0.0986783 -0.1312 -0.0134003 
-0.0985832 -0.128 -0.0133874 0.0983691 -0.1248 -0.0133583 0.0980917 -0.1216 -0.0133206 
-0.0974971 -0.1184 -0.0132399 0.0965617 -0.1152 -0.0131129 0.0951427 -0.112 -0.0129202 
-0.094786 -0.1088 -0.0128717 0.0939219 -0.1056 -0.0127544 0.092067 -0.1024 -0.0125025 
-0.0905925 -0.0992002 -0.0123023 0.0902199 -0.0960002 -0.0122517 0.0902754 -0.0928002 -0.0122592 
-0.091195 -0.0896002 -0.0123841 0.0920432 -0.0864002 -0.0124993 0.092281 -0.0832002 -0.0125316 
-0.0922255 -0.0800002 -0.012524 0.0916627 -0.0768002 -0.0124476 0.0908145 -0.0736002 -0.0123324 
-0.0901565 -0.0704002 -0.0122431 0.0894589 -0.0672002 -0.0121483 0.0889516 -0.0640002 -0.0120794 
-0.0884918 -0.0608002 -0.012017 0.0880954 -0.0576002 -0.0119632 0.087493 -0.0544003 -0.0118814 
-0.086621 -0.0512003 -0.0117629 0.0720515 -0.2048 -0.00709511 0.0738906 -0.2016 -0.00727621 
-0.0755944 -0.1984 -0.00744398 0.0774255 -0.1952 -0.0076243 0.0794079 -0.192 -0.00781952 
-0.0812868 -0.1888 -0.00800454 0.0832056 -0.1856 -0.00819348 0.0851641 -0.1824 -0.00838634 
-0.0866768 -0.1792 -0.0085353 0.0883248 -0.176 -0.00869759 0.0899728 -0.1728 -0.00885987 
-0.0914776 -0.1696 -0.00900805 0.0926399 -0.1664 -0.00912251 0.0936749 -0.1632 -0.00922443 
-0.0943676 -0.16 -0.00929263 0.0948851 -0.1568 -0.00934359 0.0952752 -0.1536 -0.00938201 
-0.0957688 -0.1504 -0.00943062 0.0958325 -0.1472 -0.00943689 0.0960315 -0.144 -0.00945649 
-0.0962306 -0.1408 -0.00947609 0.0962863 -0.1376 -0.00948158 0.0961987 -0.1344 -0.00947295 
-0.0959917 -0.1312 -0.00945257 0.0957688 -0.128 -0.00943062 0.0955777 -0.1248 -0.0094118 
-0.0954026 -0.1216 -0.00939455 0.0950204 -0.1184 -0.00935692 0.0945188 -0.1152 -0.00930753 
-0.0944313 -0.112 -0.0092989 0.0937545 -0.1088 -0.00923227 0.0925285 -0.1056 -0.00911153 
-0.0914935 -0.1024 -0.00900961 0.0899967 -0.0992002 -0.00886222 0.0897021 -0.0960002 -0.00883321 
-0.0897499 -0.0928002 -0.00883792 0.0902992 -0.0896002 -0.00889201 0.090562 -0.0864002 -0.00891789 
-0.0902913 -0.0832002 -0.00889123 0.0900684 -0.0800002 -0.00886928 0.0896942 -0.0768002 -0.00883243 
-0.0890413 -0.0736002 -0.00876814 0.088492 -0.0704002 -0.00871405 0.0879028 -0.0672002 -0.00865603 
-0.0876321 -0.0640002 -0.00862938 0.0873535 -0.0608002 -0.00860194 0.0871385 -0.0576002 -0.00858077 
-0.0864538 -0.0544003 -0.00851335 0.0876162 -0.0512003 -0.00862781 0.0702197 -0.2048 -0.00431271 
-0.0718806 -0.2016 -0.00441471 0.0732859 -0.1984 -0.00450103 0.074827 -0.1952 -0.00459568 
-0.0764959 -0.192 -0.00469817 0.0784043 -0.1888 -0.00481538 0.0802009 -0.1856 -0.00492572 
-0.0820294 -0.1824 -0.00503803 0.0837941 -0.1792 -0.00514641 0.0855189 -0.176 -0.00525234 
-0.08706 -0.1728 -0.00534699 0.088649 -0.1696 -0.00544458 0.0901581 -0.1664 -0.00553727 
-0.091284 -0.1632 -0.00560642 0.0920106 -0.16 -0.00565105 0.0924259 -0.1568 -0.00567655 
-0.0927213 -0.1536 -0.00569469 0.0930487 -0.1504 -0.0057148 0.0931844 -0.1472 -0.00572314 
-0.0933202 -0.144 -0.00573148 0.0934479 -0.1408 -0.00573932 0.093392 -0.1376 -0.00573589 
-0.0930167 -0.1344 -0.00571284 0.0927612 -0.1312 -0.00569715 0.0924977 -0.128 -0.00568096 
-0.0924179 -0.1248 -0.00567606 0.092322 -0.1216 -0.00567017 0.0924498 -0.1184 -0.00567802 
-0.0925776 -0.1152 -0.00568587 0.09233 -0.112 -0.00567066 0.091795 -0.1088 -0.00563781 
-0.090765 -0.1056 -0.00557454 0.0899825 -0.1024 -0.00552648 0.08916 -0.0992002 -0.00547597 
-0.0889843 -0.0960002 -0.00546518 0.0885771 -0.0928002 -0.00544017 0.0884254 -0.0896002 -0.00543085 
-0.0883455 -0.0864002 -0.00542595 0.0881779 -0.0832002 -0.00541565 0.0879064 -0.0800002 -0.00539897 
-0.0873554 -0.0768002 -0.00536514 0.0869242 -0.0736002 -0.00533865 0.086493 -0.0704002 -0.00531217 
-0.0861896 -0.0672002 -0.00529354 0.0860618 -0.0640002 -0.00528569 0.0858462 -0.0608002 -0.00527245 
-0.0852793 -0.0576002 -0.00523763 0.0848242 -0.0544003 -0.00520967 0.0834428 -0.0512003 -0.00512483 
-0.0672278 -0.2048 -0.00164904 0.0686034 -0.2016 -0.00168279 0.0700429 -0.1984 -0.0017181 
-0.0714425 -0.1952 -0.00175243 0.0729621 -0.192 -0.0017897 0.0745936 -0.1888 -0.00182972 
-0.076505 -0.1856 -0.00187661 0.0784244 -0.1824 -0.00192369 0.0802559 -0.1792 -0.00196861 
-0.0819274 -0.176 -0.00200961 0.0837268 -0.1728 -0.00205375 0.0852304 -0.1696 -0.00209063 
-0.0867099 -0.1664 -0.00212693 0.0879975 -0.1632 -0.00215851 0.0887973 -0.16 -0.00217813 
-0.0892851 -0.1568 -0.00219009 0.089637 -0.1536 -0.00219873 0.089813 -0.1504 -0.00220304 
-0.0900449 -0.1472 -0.00220873 0.0902209 -0.144 -0.00221305 0.0904128 -0.1408 -0.00221775 
-0.0901649 -0.1376 -0.00221167 0.089821 -0.1344 -0.00220324 0.089605 -0.1312 -0.00219794 
-0.0892691 -0.128 -0.0021897 0.0892212 -0.1248 -0.00218852 0.0894291 -0.1216 -0.00219362 
-0.0895971 -0.1184 -0.00219774 0.089725 -0.1152 -0.00220088 0.089717 -0.112 -0.00220069 
-0.0892931 -0.1088 -0.00219029 0.0885334 -0.1056 -0.00217165 0.0880935 -0.1024 -0.00216086 
-0.0875897 -0.0992002 -0.0021485 0.0874697 -0.0960002 -0.00214556 0.0868219 -0.0928002 -0.00212967 
-0.086534 -0.0896002 -0.00212261 0.0861421 -0.0864002 -0.002113 0.0859182 -0.0832002 -0.0021075 
-0.0855183 -0.0800002 -0.0020977 0.0851024 -0.0768002 -0.00208749 0.0848065 -0.0736002 -0.00208024 
-0.0843746 -0.0704002 -0.00206964 0.0842307 -0.0672002 -0.00206611 0.0840947 -0.0640002 -0.00206278 
-0.0840227 -0.0608002 -0.00206101 0.0834949 -0.0576002 -0.00204806 0.0827511 -0.0544003 -0.00202982 
-0.0817594 -0.0512003 -0.00200549 0.0631472 -0.2048 0.000776227 0.0642751 -0.2016 0.000790092 
-0.0655471 -0.1984 0.000805726 0.0670189 -0.1952 0.000823819 0.0686188 -0.192 0.000843485 
-0.0704427 -0.1888 0.000865905 0.0724985 -0.1856 0.000891176 0.0745944 -0.1824 0.000916939 
-0.0766022 -0.1792 0.00094162 0.0783141 -0.176 0.000962663 0.079994 -0.1728 0.000983312 
-0.0815138 -0.1696 0.001002 0.0829137 -0.1664 0.0010192 0.0841856 -0.1632 0.00103484 
-0.0851776 -0.16 0.00104703 0.0857535 -0.1568 0.00105411 0.0861615 -0.1536 0.00105913 
-0.0864815 -0.1504 0.00106306 0.0866495 -0.1472 0.00106512 0.0869374 -0.144 0.00106866 
-0.0869934 -0.1408 0.00106935 0.0868254 -0.1376 0.00106729 0.0865295 -0.1344 0.00106365 
-0.0861295 -0.1312 0.00105873 0.0859935 -0.128 0.00105706 0.0859375 -0.1248 0.00105637 
-0.0858495 -0.1216 0.00105529 0.0861375 -0.1184 0.00105883 0.0862575 -0.1152 0.00106031 
-0.0863215 -0.112 0.00106109 0.0861535 -0.1088 0.00105903 0.0857535 -0.1056 0.00105411 
-0.0852176 -0.1024 0.00104752 0.0848576 -0.0992002 0.0010431 0.0847536 -0.0960002 0.00104182 
-0.0844496 -0.0928002 0.00103808 0.0840097 -0.0896002 0.00103267 0.0834337 -0.0864002 0.00102559 
-0.0828817 -0.0832002 0.00101881 0.0824738 -0.0800002 0.0010138 0.0821538 -0.0768002 0.00100986 
-0.0819778 -0.0736002 0.0010077 0.0818738 -0.0704002 0.00100642 0.0817298 -0.0672002 0.00100465 
-0.0816658 -0.0640002 0.00100386 0.0816258 -0.0608002 0.00100337 0.0810419 -0.0576002 0.000996194 
-0.0801459 -0.0544003 0.000985181 0.079402 -0.0512003 0.000976036 0.0611582 -0.2048 0.00300576 
-0.0623408 -0.2016 0.00306388 0.0635872 -0.1984 0.00312514 0.0647219 -0.1952 0.0031809 
-0.066256 -0.192 0.0032563 0.0676623 -0.1888 0.00332542 0.0694122 -0.1856 0.00341142 
-0.07125 -0.1824 0.00350174 0.0730878 -0.1792 0.00359206 0.0748457 -0.176 0.00367846 
-0.0764357 -0.1728 0.0037566 0.0779379 -0.1696 0.00383043 0.0792723 -0.1664 0.00389601 
-0.0804149 -0.1632 0.00395217 0.0814537 -0.16 0.00400322 0.0822287 -0.1568 0.00404132 
-0.0827801 -0.1536 0.00406841 0.0831237 -0.1504 0.0040853 0.0833874 -0.1472 0.00409826 
-0.0834912 -0.144 0.00410336 0.083675 -0.1408 0.00411239 0.0835791 -0.1376 0.00410768 
-0.0834113 -0.1344 0.00409944 0.0831077 -0.1312 0.00408451 0.082812 -0.128 0.00406998 
-0.0826442 -0.1248 0.00406174 0.0824605 -0.1216 0.0040527 0.0826762 -0.1184 0.00406331 
-0.082844 -0.1152 0.00407155 0.0830438 -0.112 0.00408137 0.082876 -0.1088 0.00407312 
-0.0825084 -0.1056 0.00405506 0.0821409 -0.1024 0.004037 0.0819731 -0.0992002 0.00402875 
-0.0818852 -0.0960002 0.00402443 0.0817653 -0.0928002 0.00401854 0.0813338 -0.0896002 0.00399733 
-0.0808624 -0.0864002 0.00397416 0.0802711 -0.0832002 0.0039451 0.0797917 -0.0800002 0.00392154 
-0.0794641 -0.0768002 0.00390544 0.0792723 -0.0736002 0.00389601 0.0793283 -0.0704002 0.00389876 
-0.0793842 -0.0672002 0.00390151 0.0790566 -0.0640002 0.00388541 0.0789847 -0.0608002 0.00388188 
-0.0785452 -0.0576002 0.00386028 0.0778181 -0.0544003 0.00382454 0.0768353 -0.0512003 0.00377624 
-
-POLYGONS 4224 16896
-3 0 49 1 
-3 49 50 1 
-3 1 50 2 
-3 50 51 2 
-3 2 51 3 
-3 51 52 3 
-3 3 52 4 
-3 52 53 4 
-3 4 53 5 
-3 53 54 5 
-3 5 54 6 
-3 54 55 6 
-3 6 55 7 
-3 55 56 7 
-3 7 56 8 
-3 56 57 8 
-3 8 57 9 
-3 57 58 9 
-3 9 58 10 
-3 58 59 10 
-3 10 59 11 
-3 59 60 11 
-3 11 60 12 
-3 60 61 12 
-3 12 61 13 
-3 61 62 13 
-3 13 62 14 
-3 62 63 14 
-3 14 63 15 
-3 63 64 15 
-3 15 64 16 
-3 64 65 16 
-3 16 65 17 
-3 65 66 17 
-3 17 66 18 
-3 66 67 18 
-3 18 67 19 
-3 67 68 19 
-3 19 68 20 
-3 68 69 20 
-3 20 69 21 
-3 69 70 21 
-3 21 70 22 
-3 70 71 22 
-3 22 71 23 
-3 71 72 23 
-3 23 72 24 
-3 72 73 24 
-3 24 73 25 
-3 73 74 25 
-3 25 74 26 
-3 74 75 26 
-3 26 75 27 
-3 75 76 27 
-3 27 76 28 
-3 76 77 28 
-3 28 77 29 
-3 77 78 29 
-3 29 78 30 
-3 78 79 30 
-3 30 79 31 
-3 79 80 31 
-3 31 80 32 
-3 80 81 32 
-3 32 81 33 
-3 81 82 33 
-3 33 82 34 
-3 82 83 34 
-3 34 83 35 
-3 83 84 35 
-3 35 84 36 
-3 84 85 36 
-3 36 85 37 
-3 85 86 37 
-3 37 86 38 
-3 86 87 38 
-3 38 87 39 
-3 87 88 39 
-3 39 88 40 
-3 88 89 40 
-3 40 89 41 
-3 89 90 41 
-3 41 90 42 
-3 90 91 42 
-3 42 91 43 
-3 91 92 43 
-3 43 92 44 
-3 92 93 44 
-3 44 93 45 
-3 93 94 45 
-3 45 94 46 
-3 94 95 46 
-3 46 95 47 
-3 95 96 47 
-3 47 96 48 
-3 96 97 48 
-3 49 98 50 
-3 98 99 50 
-3 50 99 51 
-3 99 100 51 
-3 51 100 52 
-3 100 101 52 
-3 52 101 53 
-3 101 102 53 
-3 53 102 54 
-3 102 103 54 
-3 54 103 55 
-3 103 104 55 
-3 55 104 56 
-3 104 105 56 
-3 56 105 57 
-3 105 106 57 
-3 57 106 58 
-3 106 107 58 
-3 58 107 59 
-3 107 108 59 
-3 59 108 60 
-3 108 109 60 
-3 60 109 61 
-3 109 110 61 
-3 61 110 62 
-3 110 111 62 
-3 62 111 63 
-3 111 112 63 
-3 63 112 64 
-3 112 113 64 
-3 64 113 65 
-3 113 114 65 
-3 65 114 66 
-3 114 115 66 
-3 66 115 67 
-3 115 116 67 
-3 67 116 68 
-3 116 117 68 
-3 68 117 69 
-3 117 118 69 
-3 69 118 70 
-3 118 119 70 
-3 70 119 71 
-3 119 120 71 
-3 71 120 72 
-3 120 121 72 
-3 72 121 73 
-3 121 122 73 
-3 73 122 74 
-3 122 123 74 
-3 74 123 75 
-3 123 124 75 
-3 75 124 76 
-3 124 125 76 
-3 76 125 77 
-3 125 126 77 
-3 77 126 78 
-3 126 127 78 
-3 78 127 79 
-3 127 128 79 
-3 79 128 80 
-3 128 129 80 
-3 80 129 81 
-3 129 130 81 
-3 81 130 82 
-3 130 131 82 
-3 82 131 83 
-3 131 132 83 
-3 83 132 84 
-3 132 133 84 
-3 84 133 85 
-3 133 134 85 
-3 85 134 86 
-3 134 135 86 
-3 86 135 87 
-3 135 136 87 
-3 87 136 88 
-3 136 137 88 
-3 88 137 89 
-3 137 138 89 
-3 89 138 90 
-3 138 139 90 
-3 90 139 91 
-3 139 140 91 
-3 91 140 92 
-3 140 141 92 
-3 92 141 93 
-3 141 142 93 
-3 93 142 94 
-3 142 143 94 
-3 94 143 95 
-3 143 144 95 
-3 95 144 96 
-3 144 145 96 
-3 96 145 97 
-3 145 146 97 
-3 98 147 99 
-3 147 148 99 
-3 99 148 100 
-3 148 149 100 
-3 100 149 101 
-3 149 150 101 
-3 101 150 102 
-3 150 151 102 
-3 102 151 103 
-3 151 152 103 
-3 103 152 104 
-3 152 153 104 
-3 104 153 105 
-3 153 154 105 
-3 105 154 106 
-3 154 155 106 
-3 106 155 107 
-3 155 156 107 
-3 107 156 108 
-3 156 157 108 
-3 108 157 109 
-3 157 158 109 
-3 109 158 110 
-3 158 159 110 
-3 110 159 111 
-3 159 160 111 
-3 111 160 112 
-3 160 161 112 
-3 112 161 113 
-3 161 162 113 
-3 113 162 114 
-3 162 163 114 
-3 114 163 115 
-3 163 164 115 
-3 115 164 116 
-3 164 165 116 
-3 116 165 117 
-3 165 166 117 
-3 117 166 118 
-3 166 167 118 
-3 118 167 119 
-3 167 168 119 
-3 119 168 120 
-3 168 169 120 
-3 120 169 121 
-3 169 170 121 
-3 121 170 122 
-3 170 171 122 
-3 122 171 123 
-3 171 172 123 
-3 123 172 124 
-3 172 173 124 
-3 124 173 125 
-3 173 174 125 
-3 125 174 126 
-3 174 175 126 
-3 126 175 127 
-3 175 176 127 
-3 127 176 128 
-3 176 177 128 
-3 128 177 129 
-3 177 178 129 
-3 129 178 130 
-3 178 179 130 
-3 130 179 131 
-3 179 180 131 
-3 131 180 132 
-3 180 181 132 
-3 132 181 133 
-3 181 182 133 
-3 133 182 134 
-3 182 183 134 
-3 134 183 135 
-3 183 184 135 
-3 135 184 136 
-3 184 185 136 
-3 136 185 137 
-3 185 186 137 
-3 137 186 138 
-3 186 187 138 
-3 138 187 139 
-3 187 188 139 
-3 139 188 140 
-3 188 189 140 
-3 140 189 141 
-3 189 190 141 
-3 141 190 142 
-3 190 191 142 
-3 142 191 143 
-3 191 192 143 
-3 143 192 144 
-3 192 193 144 
-3 144 193 145 
-3 193 194 145 
-3 145 194 146 
-3 194 195 146 
-3 147 196 148 
-3 196 197 148 
-3 148 197 149 
-3 197 198 149 
-3 149 198 150 
-3 198 199 150 
-3 150 199 151 
-3 199 200 151 
-3 151 200 152 
-3 200 201 152 
-3 152 201 153 
-3 201 202 153 
-3 153 202 154 
-3 202 203 154 
-3 154 203 155 
-3 203 204 155 
-3 155 204 156 
-3 204 205 156 
-3 156 205 157 
-3 205 206 157 
-3 157 206 158 
-3 206 207 158 
-3 158 207 159 
-3 207 208 159 
-3 159 208 160 
-3 208 209 160 
-3 160 209 161 
-3 209 210 161 
-3 161 210 162 
-3 210 211 162 
-3 162 211 163 
-3 211 212 163 
-3 163 212 164 
-3 212 213 164 
-3 164 213 165 
-3 213 214 165 
-3 165 214 166 
-3 214 215 166 
-3 166 215 167 
-3 215 216 167 
-3 167 216 168 
-3 216 217 168 
-3 168 217 169 
-3 217 218 169 
-3 169 218 170 
-3 218 219 170 
-3 170 219 171 
-3 219 220 171 
-3 171 220 172 
-3 220 221 172 
-3 172 221 173 
-3 221 222 173 
-3 173 222 174 
-3 222 223 174 
-3 174 223 175 
-3 223 224 175 
-3 175 224 176 
-3 224 225 176 
-3 176 225 177 
-3 225 226 177 
-3 177 226 178 
-3 226 227 178 
-3 178 227 179 
-3 227 228 179 
-3 179 228 180 
-3 228 229 180 
-3 180 229 181 
-3 229 230 181 
-3 181 230 182 
-3 230 231 182 
-3 182 231 183 
-3 231 232 183 
-3 183 232 184 
-3 232 233 184 
-3 184 233 185 
-3 233 234 185 
-3 185 234 186 
-3 234 235 186 
-3 186 235 187 
-3 235 236 187 
-3 187 236 188 
-3 236 237 188 
-3 188 237 189 
-3 237 238 189 
-3 189 238 190 
-3 238 239 190 
-3 190 239 191 
-3 239 240 191 
-3 191 240 192 
-3 240 241 192 
-3 192 241 193 
-3 241 242 193 
-3 193 242 194 
-3 242 243 194 
-3 194 243 195 
-3 243 244 195 
-3 196 245 197 
-3 245 246 197 
-3 197 246 198 
-3 246 247 198 
-3 198 247 199 
-3 247 248 199 
-3 199 248 200 
-3 248 249 200 
-3 200 249 201 
-3 249 250 201 
-3 201 250 202 
-3 250 251 202 
-3 202 251 203 
-3 251 252 203 
-3 203 252 204 
-3 252 253 204 
-3 204 253 205 
-3 253 254 205 
-3 205 254 206 
-3 254 255 206 
-3 206 255 207 
-3 255 256 207 
-3 207 256 208 
-3 256 257 208 
-3 208 257 209 
-3 257 258 209 
-3 209 258 210 
-3 258 259 210 
-3 210 259 211 
-3 259 260 211 
-3 211 260 212 
-3 260 261 212 
-3 212 261 213 
-3 261 262 213 
-3 213 262 214 
-3 262 263 214 
-3 214 263 215 
-3 263 264 215 
-3 215 264 216 
-3 264 265 216 
-3 216 265 217 
-3 265 266 217 
-3 217 266 218 
-3 266 267 218 
-3 218 267 219 
-3 267 268 219 
-3 219 268 220 
-3 268 269 220 
-3 220 269 221 
-3 269 270 221 
-3 221 270 222 
-3 270 271 222 
-3 222 271 223 
-3 271 272 223 
-3 223 272 224 
-3 272 273 224 
-3 224 273 225 
-3 273 274 225 
-3 225 274 226 
-3 274 275 226 
-3 226 275 227 
-3 275 276 227 
-3 227 276 228 
-3 276 277 228 
-3 228 277 229 
-3 277 278 229 
-3 229 278 230 
-3 278 279 230 
-3 230 279 231 
-3 279 280 231 
-3 231 280 232 
-3 280 281 232 
-3 232 281 233 
-3 281 282 233 
-3 233 282 234 
-3 282 283 234 
-3 234 283 235 
-3 283 284 235 
-3 235 284 236 
-3 284 285 236 
-3 236 285 237 
-3 285 286 237 
-3 237 286 238 
-3 286 287 238 
-3 238 287 239 
-3 287 288 239 
-3 239 288 240 
-3 288 289 240 
-3 240 289 241 
-3 289 290 241 
-3 241 290 242 
-3 290 291 242 
-3 242 291 243 
-3 291 292 243 
-3 243 292 244 
-3 292 293 244 
-3 245 294 246 
-3 294 295 246 
-3 246 295 247 
-3 295 296 247 
-3 247 296 248 
-3 296 297 248 
-3 248 297 249 
-3 297 298 249 
-3 249 298 250 
-3 298 299 250 
-3 250 299 251 
-3 299 300 251 
-3 251 300 252 
-3 300 301 252 
-3 252 301 253 
-3 301 302 253 
-3 253 302 254 
-3 302 303 254 
-3 254 303 255 
-3 303 304 255 
-3 255 304 256 
-3 304 305 256 
-3 256 305 257 
-3 305 306 257 
-3 257 306 258 
-3 306 307 258 
-3 258 307 259 
-3 307 308 259 
-3 259 308 260 
-3 308 309 260 
-3 260 309 261 
-3 309 310 261 
-3 261 310 262 
-3 310 311 262 
-3 262 311 263 
-3 311 312 263 
-3 263 312 264 
-3 312 313 264 
-3 264 313 265 
-3 313 314 265 
-3 265 314 266 
-3 314 315 266 
-3 266 315 267 
-3 315 316 267 
-3 267 316 268 
-3 316 317 268 
-3 268 317 269 
-3 317 318 269 
-3 269 318 270 
-3 318 319 270 
-3 270 319 271 
-3 319 320 271 
-3 271 320 272 
-3 320 321 272 
-3 272 321 273 
-3 321 322 273 
-3 273 322 274 
-3 322 323 274 
-3 274 323 275 
-3 323 324 275 
-3 275 324 276 
-3 324 325 276 
-3 276 325 277 
-3 325 326 277 
-3 277 326 278 
-3 326 327 278 
-3 278 327 279 
-3 327 328 279 
-3 279 328 280 
-3 328 329 280 
-3 280 329 281 
-3 329 330 281 
-3 281 330 282 
-3 330 331 282 
-3 282 331 283 
-3 331 332 283 
-3 283 332 284 
-3 332 333 284 
-3 284 333 285 
-3 333 334 285 
-3 285 334 286 
-3 334 335 286 
-3 286 335 287 
-3 335 336 287 
-3 287 336 288 
-3 336 337 288 
-3 288 337 289 
-3 337 338 289 
-3 289 338 290 
-3 338 339 290 
-3 290 339 291 
-3 339 340 291 
-3 291 340 292 
-3 340 341 292 
-3 292 341 293 
-3 341 342 293 
-3 294 343 295 
-3 343 344 295 
-3 295 344 296 
-3 344 345 296 
-3 296 345 297 
-3 345 346 297 
-3 297 346 298 
-3 346 347 298 
-3 298 347 299 
-3 347 348 299 
-3 299 348 300 
-3 348 349 300 
-3 300 349 301 
-3 349 350 301 
-3 301 350 302 
-3 350 351 302 
-3 302 351 303 
-3 351 352 303 
-3 303 352 304 
-3 352 353 304 
-3 304 353 305 
-3 353 354 305 
-3 305 354 306 
-3 354 355 306 
-3 306 355 307 
-3 355 356 307 
-3 307 356 308 
-3 356 357 308 
-3 308 357 309 
-3 357 358 309 
-3 309 358 310 
-3 358 359 310 
-3 310 359 311 
-3 359 360 311 
-3 311 360 312 
-3 360 361 312 
-3 312 361 313 
-3 361 362 313 
-3 313 362 314 
-3 362 363 314 
-3 314 363 315 
-3 363 364 315 
-3 315 364 316 
-3 364 365 316 
-3 316 365 317 
-3 365 366 317 
-3 317 366 318 
-3 366 367 318 
-3 318 367 319 
-3 367 368 319 
-3 319 368 320 
-3 368 369 320 
-3 320 369 321 
-3 369 370 321 
-3 321 370 322 
-3 370 371 322 
-3 322 371 323 
-3 371 372 323 
-3 323 372 324 
-3 372 373 324 
-3 324 373 325 
-3 373 374 325 
-3 325 374 326 
-3 374 375 326 
-3 326 375 327 
-3 375 376 327 
-3 327 376 328 
-3 376 377 328 
-3 328 377 329 
-3 377 378 329 
-3 329 378 330 
-3 378 379 330 
-3 330 379 331 
-3 379 380 331 
-3 331 380 332 
-3 380 381 332 
-3 332 381 333 
-3 381 382 333 
-3 333 382 334 
-3 382 383 334 
-3 334 383 335 
-3 383 384 335 
-3 335 384 336 
-3 384 385 336 
-3 336 385 337 
-3 385 386 337 
-3 337 386 338 
-3 386 387 338 
-3 338 387 339 
-3 387 388 339 
-3 339 388 340 
-3 388 389 340 
-3 340 389 341 
-3 389 390 341 
-3 341 390 342 
-3 390 391 342 
-3 343 392 344 
-3 392 393 344 
-3 344 393 345 
-3 393 394 345 
-3 345 394 346 
-3 394 395 346 
-3 346 395 347 
-3 395 396 347 
-3 347 396 348 
-3 396 397 348 
-3 348 397 349 
-3 397 398 349 
-3 349 398 350 
-3 398 399 350 
-3 350 399 351 
-3 399 400 351 
-3 351 400 352 
-3 400 401 352 
-3 352 401 353 
-3 401 402 353 
-3 353 402 354 
-3 402 403 354 
-3 354 403 355 
-3 403 404 355 
-3 355 404 356 
-3 404 405 356 
-3 356 405 357 
-3 405 406 357 
-3 357 406 358 
-3 406 407 358 
-3 358 407 359 
-3 407 408 359 
-3 359 408 360 
-3 408 409 360 
-3 360 409 361 
-3 409 410 361 
-3 361 410 362 
-3 410 411 362 
-3 362 411 363 
-3 411 412 363 
-3 363 412 364 
-3 412 413 364 
-3 364 413 365 
-3 413 414 365 
-3 365 414 366 
-3 414 415 366 
-3 366 415 367 
-3 415 416 367 
-3 367 416 368 
-3 416 417 368 
-3 368 417 369 
-3 417 418 369 
-3 369 418 370 
-3 418 419 370 
-3 370 419 371 
-3 419 420 371 
-3 371 420 372 
-3 420 421 372 
-3 372 421 373 
-3 421 422 373 
-3 373 422 374 
-3 422 423 374 
-3 374 423 375 
-3 423 424 375 
-3 375 424 376 
-3 424 425 376 
-3 376 425 377 
-3 425 426 377 
-3 377 426 378 
-3 426 427 378 
-3 378 427 379 
-3 427 428 379 
-3 379 428 380 
-3 428 429 380 
-3 380 429 381 
-3 429 430 381 
-3 381 430 382 
-3 430 431 382 
-3 382 431 383 
-3 431 432 383 
-3 383 432 384 
-3 432 433 384 
-3 384 433 385 
-3 433 434 385 
-3 385 434 386 
-3 434 435 386 
-3 386 435 387 
-3 435 436 387 
-3 387 436 388 
-3 436 437 388 
-3 388 437 389 
-3 437 438 389 
-3 389 438 390 
-3 438 439 390 
-3 390 439 391 
-3 439 440 391 
-3 392 441 393 
-3 441 442 393 
-3 393 442 394 
-3 442 443 394 
-3 394 443 395 
-3 443 444 395 
-3 395 444 396 
-3 444 445 396 
-3 396 445 397 
-3 445 446 397 
-3 397 446 398 
-3 446 447 398 
-3 398 447 399 
-3 447 448 399 
-3 399 448 400 
-3 448 449 400 
-3 400 449 401 
-3 449 450 401 
-3 401 450 402 
-3 450 451 402 
-3 402 451 403 
-3 451 452 403 
-3 403 452 404 
-3 452 453 404 
-3 404 453 405 
-3 453 454 405 
-3 405 454 406 
-3 454 455 406 
-3 406 455 407 
-3 455 456 407 
-3 407 456 408 
-3 456 457 408 
-3 408 457 409 
-3 457 458 409 
-3 409 458 410 
-3 458 459 410 
-3 410 459 411 
-3 459 460 411 
-3 411 460 412 
-3 460 461 412 
-3 412 461 413 
-3 461 462 413 
-3 413 462 414 
-3 462 463 414 
-3 414 463 415 
-3 463 464 415 
-3 415 464 416 
-3 464 465 416 
-3 416 465 417 
-3 465 466 417 
-3 417 466 418 
-3 466 467 418 
-3 418 467 419 
-3 467 468 419 
-3 419 468 420 
-3 468 469 420 
-3 420 469 421 
-3 469 470 421 
-3 421 470 422 
-3 470 471 422 
-3 422 471 423 
-3 471 472 423 
-3 423 472 424 
-3 472 473 424 
-3 424 473 425 
-3 473 474 425 
-3 425 474 426 
-3 474 475 426 
-3 426 475 427 
-3 475 476 427 
-3 427 476 428 
-3 476 477 428 
-3 428 477 429 
-3 477 478 429 
-3 429 478 430 
-3 478 479 430 
-3 430 479 431 
-3 479 480 431 
-3 431 480 432 
-3 480 481 432 
-3 432 481 433 
-3 481 482 433 
-3 433 482 434 
-3 482 483 434 
-3 434 483 435 
-3 483 484 435 
-3 435 484 436 
-3 484 485 436 
-3 436 485 437 
-3 485 486 437 
-3 437 486 438 
-3 486 487 438 
-3 438 487 439 
-3 487 488 439 
-3 439 488 440 
-3 488 489 440 
-3 441 490 442 
-3 490 491 442 
-3 442 491 443 
-3 491 492 443 
-3 443 492 444 
-3 492 493 444 
-3 444 493 445 
-3 493 494 445 
-3 445 494 446 
-3 494 495 446 
-3 446 495 447 
-3 495 496 447 
-3 447 496 448 
-3 496 497 448 
-3 448 497 449 
-3 497 498 449 
-3 449 498 450 
-3 498 499 450 
-3 450 499 451 
-3 499 500 451 
-3 451 500 452 
-3 500 501 452 
-3 452 501 453 
-3 501 502 453 
-3 453 502 454 
-3 502 503 454 
-3 454 503 455 
-3 503 504 455 
-3 455 504 456 
-3 504 505 456 
-3 456 505 457 
-3 505 506 457 
-3 457 506 458 
-3 506 507 458 
-3 458 507 459 
-3 507 508 459 
-3 459 508 460 
-3 508 509 460 
-3 460 509 461 
-3 509 510 461 
-3 461 510 462 
-3 510 511 462 
-3 462 511 463 
-3 511 512 463 
-3 463 512 464 
-3 512 513 464 
-3 464 513 465 
-3 513 514 465 
-3 465 514 466 
-3 514 515 466 
-3 466 515 467 
-3 515 516 467 
-3 467 516 468 
-3 516 517 468 
-3 468 517 469 
-3 517 518 469 
-3 469 518 470 
-3 518 519 470 
-3 470 519 471 
-3 519 520 471 
-3 471 520 472 
-3 520 521 472 
-3 472 521 473 
-3 521 522 473 
-3 473 522 474 
-3 522 523 474 
-3 474 523 475 
-3 523 524 475 
-3 475 524 476 
-3 524 525 476 
-3 476 525 477 
-3 525 526 477 
-3 477 526 478 
-3 526 527 478 
-3 478 527 479 
-3 527 528 479 
-3 479 528 480 
-3 528 529 480 
-3 480 529 481 
-3 529 530 481 
-3 481 530 482 
-3 530 531 482 
-3 482 531 483 
-3 531 532 483 
-3 483 532 484 
-3 532 533 484 
-3 484 533 485 
-3 533 534 485 
-3 485 534 486 
-3 534 535 486 
-3 486 535 487 
-3 535 536 487 
-3 487 536 488 
-3 536 537 488 
-3 488 537 489 
-3 537 538 489 
-3 490 539 491 
-3 539 540 491 
-3 491 540 492 
-3 540 541 492 
-3 492 541 493 
-3 541 542 493 
-3 493 542 494 
-3 542 543 494 
-3 494 543 495 
-3 543 544 495 
-3 495 544 496 
-3 544 545 496 
-3 496 545 497 
-3 545 546 497 
-3 497 546 498 
-3 546 547 498 
-3 498 547 499 
-3 547 548 499 
-3 499 548 500 
-3 548 549 500 
-3 500 549 501 
-3 549 550 501 
-3 501 550 502 
-3 550 551 502 
-3 502 551 503 
-3 551 552 503 
-3 503 552 504 
-3 552 553 504 
-3 504 553 505 
-3 553 554 505 
-3 505 554 506 
-3 554 555 506 
-3 506 555 507 
-3 555 556 507 
-3 507 556 508 
-3 556 557 508 
-3 508 557 509 
-3 557 558 509 
-3 509 558 510 
-3 558 559 510 
-3 510 559 511 
-3 559 560 511 
-3 511 560 512 
-3 560 561 512 
-3 512 561 513 
-3 561 562 513 
-3 513 562 514 
-3 562 563 514 
-3 514 563 515 
-3 563 564 515 
-3 515 564 516 
-3 564 565 516 
-3 516 565 517 
-3 565 566 517 
-3 517 566 518 
-3 566 567 518 
-3 518 567 519 
-3 567 568 519 
-3 519 568 520 
-3 568 569 520 
-3 520 569 521 
-3 569 570 521 
-3 521 570 522 
-3 570 571 522 
-3 522 571 523 
-3 571 572 523 
-3 523 572 524 
-3 572 573 524 
-3 524 573 525 
-3 573 574 525 
-3 525 574 526 
-3 574 575 526 
-3 526 575 527 
-3 575 576 527 
-3 527 576 528 
-3 576 577 528 
-3 528 577 529 
-3 577 578 529 
-3 529 578 530 
-3 578 579 530 
-3 530 579 531 
-3 579 580 531 
-3 531 580 532 
-3 580 581 532 
-3 532 581 533 
-3 581 582 533 
-3 533 582 534 
-3 582 583 534 
-3 534 583 535 
-3 583 584 535 
-3 535 584 536 
-3 584 585 536 
-3 536 585 537 
-3 585 586 537 
-3 537 586 538 
-3 586 587 538 
-3 539 588 540 
-3 588 589 540 
-3 540 589 541 
-3 589 590 541 
-3 541 590 542 
-3 590 591 542 
-3 542 591 543 
-3 591 592 543 
-3 543 592 544 
-3 592 593 544 
-3 544 593 545 
-3 593 594 545 
-3 545 594 546 
-3 594 595 546 
-3 546 595 547 
-3 595 596 547 
-3 547 596 548 
-3 596 597 548 
-3 548 597 549 
-3 597 598 549 
-3 549 598 550 
-3 598 599 550 
-3 550 599 551 
-3 599 600 551 
-3 551 600 552 
-3 600 601 552 
-3 552 601 553 
-3 601 602 553 
-3 553 602 554 
-3 602 603 554 
-3 554 603 555 
-3 603 604 555 
-3 555 604 556 
-3 604 605 556 
-3 556 605 557 
-3 605 606 557 
-3 557 606 558 
-3 606 607 558 
-3 558 607 559 
-3 607 608 559 
-3 559 608 560 
-3 608 609 560 
-3 560 609 561 
-3 609 610 561 
-3 561 610 562 
-3 610 611 562 
-3 562 611 563 
-3 611 612 563 
-3 563 612 564 
-3 612 613 564 
-3 564 613 565 
-3 613 614 565 
-3 565 614 566 
-3 614 615 566 
-3 566 615 567 
-3 615 616 567 
-3 567 616 568 
-3 616 617 568 
-3 568 617 569 
-3 617 618 569 
-3 569 618 570 
-3 618 619 570 
-3 570 619 571 
-3 619 620 571 
-3 571 620 572 
-3 620 621 572 
-3 572 621 573 
-3 621 622 573 
-3 573 622 574 
-3 622 623 574 
-3 574 623 575 
-3 623 624 575 
-3 575 624 576 
-3 624 625 576 
-3 576 625 577 
-3 625 626 577 
-3 577 626 578 
-3 626 627 578 
-3 578 627 579 
-3 627 628 579 
-3 579 628 580 
-3 628 629 580 
-3 580 629 581 
-3 629 630 581 
-3 581 630 582 
-3 630 631 582 
-3 582 631 583 
-3 631 632 583 
-3 583 632 584 
-3 632 633 584 
-3 584 633 585 
-3 633 634 585 
-3 585 634 586 
-3 634 635 586 
-3 586 635 587 
-3 635 636 587 
-3 588 637 589 
-3 637 638 589 
-3 589 638 590 
-3 638 639 590 
-3 590 639 591 
-3 639 640 591 
-3 591 640 592 
-3 640 641 592 
-3 592 641 593 
-3 641 642 593 
-3 593 642 594 
-3 642 643 594 
-3 594 643 595 
-3 643 644 595 
-3 595 644 596 
-3 644 645 596 
-3 596 645 597 
-3 645 646 597 
-3 597 646 598 
-3 646 647 598 
-3 598 647 599 
-3 647 648 599 
-3 599 648 600 
-3 648 649 600 
-3 600 649 601 
-3 649 650 601 
-3 601 650 602 
-3 650 651 602 
-3 602 651 603 
-3 651 652 603 
-3 603 652 604 
-3 652 653 604 
-3 604 653 605 
-3 653 654 605 
-3 605 654 606 
-3 654 655 606 
-3 606 655 607 
-3 655 656 607 
-3 607 656 608 
-3 656 657 608 
-3 608 657 609 
-3 657 658 609 
-3 609 658 610 
-3 658 659 610 
-3 610 659 611 
-3 659 660 611 
-3 611 660 612 
-3 660 661 612 
-3 612 661 613 
-3 661 662 613 
-3 613 662 614 
-3 662 663 614 
-3 614 663 615 
-3 663 664 615 
-3 615 664 616 
-3 664 665 616 
-3 616 665 617 
-3 665 666 617 
-3 617 666 618 
-3 666 667 618 
-3 618 667 619 
-3 667 668 619 
-3 619 668 620 
-3 668 669 620 
-3 620 669 621 
-3 669 670 621 
-3 621 670 622 
-3 670 671 622 
-3 622 671 623 
-3 671 672 623 
-3 623 672 624 
-3 672 673 624 
-3 624 673 625 
-3 673 674 625 
-3 625 674 626 
-3 674 675 626 
-3 626 675 627 
-3 675 676 627 
-3 627 676 628 
-3 676 677 628 
-3 628 677 629 
-3 677 678 629 
-3 629 678 630 
-3 678 679 630 
-3 630 679 631 
-3 679 680 631 
-3 631 680 632 
-3 680 681 632 
-3 632 681 633 
-3 681 682 633 
-3 633 682 634 
-3 682 683 634 
-3 634 683 635 
-3 683 684 635 
-3 635 684 636 
-3 684 685 636 
-3 637 686 638 
-3 686 687 638 
-3 638 687 639 
-3 687 688 639 
-3 639 688 640 
-3 688 689 640 
-3 640 689 641 
-3 689 690 641 
-3 641 690 642 
-3 690 691 642 
-3 642 691 643 
-3 691 692 643 
-3 643 692 644 
-3 692 693 644 
-3 644 693 645 
-3 693 694 645 
-3 645 694 646 
-3 694 695 646 
-3 646 695 647 
-3 695 696 647 
-3 647 696 648 
-3 696 697 648 
-3 648 697 649 
-3 697 698 649 
-3 649 698 650 
-3 698 699 650 
-3 650 699 651 
-3 699 700 651 
-3 651 700 652 
-3 700 701 652 
-3 652 701 653 
-3 701 702 653 
-3 653 702 654 
-3 702 703 654 
-3 654 703 655 
-3 703 704 655 
-3 655 704 656 
-3 704 705 656 
-3 656 705 657 
-3 705 706 657 
-3 657 706 658 
-3 706 707 658 
-3 658 707 659 
-3 707 708 659 
-3 659 708 660 
-3 708 709 660 
-3 660 709 661 
-3 709 710 661 
-3 661 710 662 
-3 710 711 662 
-3 662 711 663 
-3 711 712 663 
-3 663 712 664 
-3 712 713 664 
-3 664 713 665 
-3 713 714 665 
-3 665 714 666 
-3 714 715 666 
-3 666 715 667 
-3 715 716 667 
-3 667 716 668 
-3 716 717 668 
-3 668 717 669 
-3 717 718 669 
-3 669 718 670 
-3 718 719 670 
-3 670 719 671 
-3 719 720 671 
-3 671 720 672 
-3 720 721 672 
-3 672 721 673 
-3 721 722 673 
-3 673 722 674 
-3 722 723 674 
-3 674 723 675 
-3 723 724 675 
-3 675 724 676 
-3 724 725 676 
-3 676 725 677 
-3 725 726 677 
-3 677 726 678 
-3 726 727 678 
-3 678 727 679 
-3 727 728 679 
-3 679 728 680 
-3 728 729 680 
-3 680 729 681 
-3 729 730 681 
-3 681 730 682 
-3 730 731 682 
-3 682 731 683 
-3 731 732 683 
-3 683 732 684 
-3 732 733 684 
-3 684 733 685 
-3 733 734 685 
-3 686 735 687 
-3 735 736 687 
-3 687 736 688 
-3 736 737 688 
-3 688 737 689 
-3 737 738 689 
-3 689 738 690 
-3 738 739 690 
-3 690 739 691 
-3 739 740 691 
-3 691 740 692 
-3 740 741 692 
-3 692 741 693 
-3 741 742 693 
-3 693 742 694 
-3 742 743 694 
-3 694 743 695 
-3 743 744 695 
-3 695 744 696 
-3 744 745 696 
-3 696 745 697 
-3 745 746 697 
-3 697 746 698 
-3 746 747 698 
-3 698 747 699 
-3 747 748 699 
-3 699 748 700 
-3 748 749 700 
-3 700 749 701 
-3 749 750 701 
-3 701 750 702 
-3 750 751 702 
-3 702 751 703 
-3 751 752 703 
-3 703 752 704 
-3 752 753 704 
-3 704 753 705 
-3 753 754 705 
-3 705 754 706 
-3 754 755 706 
-3 706 755 707 
-3 755 756 707 
-3 707 756 708 
-3 756 757 708 
-3 708 757 709 
-3 757 758 709 
-3 709 758 710 
-3 758 759 710 
-3 710 759 711 
-3 759 760 711 
-3 711 760 712 
-3 760 761 712 
-3 712 761 713 
-3 761 762 713 
-3 713 762 714 
-3 762 763 714 
-3 714 763 715 
-3 763 764 715 
-3 715 764 716 
-3 764 765 716 
-3 716 765 717 
-3 765 766 717 
-3 717 766 718 
-3 766 767 718 
-3 718 767 719 
-3 767 768 719 
-3 719 768 720 
-3 768 769 720 
-3 720 769 721 
-3 769 770 721 
-3 721 770 722 
-3 770 771 722 
-3 722 771 723 
-3 771 772 723 
-3 723 772 724 
-3 772 773 724 
-3 724 773 725 
-3 773 774 725 
-3 725 774 726 
-3 774 775 726 
-3 726 775 727 
-3 775 776 727 
-3 727 776 728 
-3 776 777 728 
-3 728 777 729 
-3 777 778 729 
-3 729 778 730 
-3 778 779 730 
-3 730 779 731 
-3 779 780 731 
-3 731 780 732 
-3 780 781 732 
-3 732 781 733 
-3 781 782 733 
-3 733 782 734 
-3 782 783 734 
-3 735 784 736 
-3 784 785 736 
-3 736 785 737 
-3 785 786 737 
-3 737 786 738 
-3 786 787 738 
-3 738 787 739 
-3 787 788 739 
-3 739 788 740 
-3 788 789 740 
-3 740 789 741 
-3 789 790 741 
-3 741 790 742 
-3 790 791 742 
-3 742 791 743 
-3 791 792 743 
-3 743 792 744 
-3 792 793 744 
-3 744 793 745 
-3 793 794 745 
-3 745 794 746 
-3 794 795 746 
-3 746 795 747 
-3 795 796 747 
-3 747 796 748 
-3 796 797 748 
-3 748 797 749 
-3 797 798 749 
-3 749 798 750 
-3 798 799 750 
-3 750 799 751 
-3 799 800 751 
-3 751 800 752 
-3 800 801 752 
-3 752 801 753 
-3 801 802 753 
-3 753 802 754 
-3 802 803 754 
-3 754 803 755 
-3 803 804 755 
-3 755 804 756 
-3 804 805 756 
-3 756 805 757 
-3 805 806 757 
-3 757 806 758 
-3 806 807 758 
-3 758 807 759 
-3 807 808 759 
-3 759 808 760 
-3 808 809 760 
-3 760 809 761 
-3 809 810 761 
-3 761 810 762 
-3 810 811 762 
-3 762 811 763 
-3 811 812 763 
-3 763 812 764 
-3 812 813 764 
-3 764 813 765 
-3 813 814 765 
-3 765 814 766 
-3 814 815 766 
-3 766 815 767 
-3 815 816 767 
-3 767 816 768 
-3 816 817 768 
-3 768 817 769 
-3 817 818 769 
-3 769 818 770 
-3 818 819 770 
-3 770 819 771 
-3 819 820 771 
-3 771 820 772 
-3 820 821 772 
-3 772 821 773 
-3 821 822 773 
-3 773 822 774 
-3 822 823 774 
-3 774 823 775 
-3 823 824 775 
-3 775 824 776 
-3 824 825 776 
-3 776 825 777 
-3 825 826 777 
-3 777 826 778 
-3 826 827 778 
-3 778 827 779 
-3 827 828 779 
-3 779 828 780 
-3 828 829 780 
-3 780 829 781 
-3 829 830 781 
-3 781 830 782 
-3 830 831 782 
-3 782 831 783 
-3 831 832 783 
-3 784 833 785 
-3 833 834 785 
-3 785 834 786 
-3 834 835 786 
-3 786 835 787 
-3 835 836 787 
-3 787 836 788 
-3 836 837 788 
-3 788 837 789 
-3 837 838 789 
-3 789 838 790 
-3 838 839 790 
-3 790 839 791 
-3 839 840 791 
-3 791 840 792 
-3 840 841 792 
-3 792 841 793 
-3 841 842 793 
-3 793 842 794 
-3 842 843 794 
-3 794 843 795 
-3 843 844 795 
-3 795 844 796 
-3 844 845 796 
-3 796 845 797 
-3 845 846 797 
-3 797 846 798 
-3 846 847 798 
-3 798 847 799 
-3 847 848 799 
-3 799 848 800 
-3 848 849 800 
-3 800 849 801 
-3 849 850 801 
-3 801 850 802 
-3 850 851 802 
-3 802 851 803 
-3 851 852 803 
-3 803 852 804 
-3 852 853 804 
-3 804 853 805 
-3 853 854 805 
-3 805 854 806 
-3 854 855 806 
-3 806 855 807 
-3 855 856 807 
-3 807 856 808 
-3 856 857 808 
-3 808 857 809 
-3 857 858 809 
-3 809 858 810 
-3 858 859 810 
-3 810 859 811 
-3 859 860 811 
-3 811 860 812 
-3 860 861 812 
-3 812 861 813 
-3 861 862 813 
-3 813 862 814 
-3 862 863 814 
-3 814 863 815 
-3 863 864 815 
-3 815 864 816 
-3 864 865 816 
-3 816 865 817 
-3 865 866 817 
-3 817 866 818 
-3 866 867 818 
-3 818 867 819 
-3 867 868 819 
-3 819 868 820 
-3 868 869 820 
-3 820 869 821 
-3 869 870 821 
-3 821 870 822 
-3 870 871 822 
-3 822 871 823 
-3 871 872 823 
-3 823 872 824 
-3 872 873 824 
-3 824 873 825 
-3 873 874 825 
-3 825 874 826 
-3 874 875 826 
-3 826 875 827 
-3 875 876 827 
-3 827 876 828 
-3 876 877 828 
-3 828 877 829 
-3 877 878 829 
-3 829 878 830 
-3 878 879 830 
-3 830 879 831 
-3 879 880 831 
-3 831 880 832 
-3 880 881 832 
-3 833 882 834 
-3 882 883 834 
-3 834 883 835 
-3 883 884 835 
-3 835 884 836 
-3 884 885 836 
-3 836 885 837 
-3 885 886 837 
-3 837 886 838 
-3 886 887 838 
-3 838 887 839 
-3 887 888 839 
-3 839 888 840 
-3 888 889 840 
-3 840 889 841 
-3 889 890 841 
-3 841 890 842 
-3 890 891 842 
-3 842 891 843 
-3 891 892 843 
-3 843 892 844 
-3 892 893 844 
-3 844 893 845 
-3 893 894 845 
-3 845 894 846 
-3 894 895 846 
-3 846 895 847 
-3 895 896 847 
-3 847 896 848 
-3 896 897 848 
-3 848 897 849 
-3 897 898 849 
-3 849 898 850 
-3 898 899 850 
-3 850 899 851 
-3 899 900 851 
-3 851 900 852 
-3 900 901 852 
-3 852 901 853 
-3 901 902 853 
-3 853 902 854 
-3 902 903 854 
-3 854 903 855 
-3 903 904 855 
-3 855 904 856 
-3 904 905 856 
-3 856 905 857 
-3 905 906 857 
-3 857 906 858 
-3 906 907 858 
-3 858 907 859 
-3 907 908 859 
-3 859 908 860 
-3 908 909 860 
-3 860 909 861 
-3 909 910 861 
-3 861 910 862 
-3 910 911 862 
-3 862 911 863 
-3 911 912 863 
-3 863 912 864 
-3 912 913 864 
-3 864 913 865 
-3 913 914 865 
-3 865 914 866 
-3 914 915 866 
-3 866 915 867 
-3 915 916 867 
-3 867 916 868 
-3 916 917 868 
-3 868 917 869 
-3 917 918 869 
-3 869 918 870 
-3 918 919 870 
-3 870 919 871 
-3 919 920 871 
-3 871 920 872 
-3 920 921 872 
-3 872 921 873 
-3 921 922 873 
-3 873 922 874 
-3 922 923 874 
-3 874 923 875 
-3 923 924 875 
-3 875 924 876 
-3 924 925 876 
-3 876 925 877 
-3 925 926 877 
-3 877 926 878 
-3 926 927 878 
-3 878 927 879 
-3 927 928 879 
-3 879 928 880 
-3 928 929 880 
-3 880 929 881 
-3 929 930 881 
-3 882 931 883 
-3 931 932 883 
-3 883 932 884 
-3 932 933 884 
-3 884 933 885 
-3 933 934 885 
-3 885 934 886 
-3 934 935 886 
-3 886 935 887 
-3 935 936 887 
-3 887 936 888 
-3 936 937 888 
-3 888 937 889 
-3 937 938 889 
-3 889 938 890 
-3 938 939 890 
-3 890 939 891 
-3 939 940 891 
-3 891 940 892 
-3 940 941 892 
-3 892 941 893 
-3 941 942 893 
-3 893 942 894 
-3 942 943 894 
-3 894 943 895 
-3 943 944 895 
-3 895 944 896 
-3 944 945 896 
-3 896 945 897 
-3 945 946 897 
-3 897 946 898 
-3 946 947 898 
-3 898 947 899 
-3 947 948 899 
-3 899 948 900 
-3 948 949 900 
-3 900 949 901 
-3 949 950 901 
-3 901 950 902 
-3 950 951 902 
-3 902 951 903 
-3 951 952 903 
-3 903 952 904 
-3 952 953 904 
-3 904 953 905 
-3 953 954 905 
-3 905 954 906 
-3 954 955 906 
-3 906 955 907 
-3 955 956 907 
-3 907 956 908 
-3 956 957 908 
-3 908 957 909 
-3 957 958 909 
-3 909 958 910 
-3 958 959 910 
-3 910 959 911 
-3 959 960 911 
-3 911 960 912 
-3 960 961 912 
-3 912 961 913 
-3 961 962 913 
-3 913 962 914 
-3 962 963 914 
-3 914 963 915 
-3 963 964 915 
-3 915 964 916 
-3 964 965 916 
-3 916 965 917 
-3 965 966 917 
-3 917 966 918 
-3 966 967 918 
-3 918 967 919 
-3 967 968 919 
-3 919 968 920 
-3 968 969 920 
-3 920 969 921 
-3 969 970 921 
-3 921 970 922 
-3 970 971 922 
-3 922 971 923 
-3 971 972 923 
-3 923 972 924 
-3 972 973 924 
-3 924 973 925 
-3 973 974 925 
-3 925 974 926 
-3 974 975 926 
-3 926 975 927 
-3 975 976 927 
-3 927 976 928 
-3 976 977 928 
-3 928 977 929 
-3 977 978 929 
-3 929 978 930 
-3 978 979 930 
-3 931 980 932 
-3 980 981 932 
-3 932 981 933 
-3 981 982 933 
-3 933 982 934 
-3 982 983 934 
-3 934 983 935 
-3 983 984 935 
-3 935 984 936 
-3 984 985 936 
-3 936 985 937 
-3 985 986 937 
-3 937 986 938 
-3 986 987 938 
-3 938 987 939 
-3 987 988 939 
-3 939 988 940 
-3 988 989 940 
-3 940 989 941 
-3 989 990 941 
-3 941 990 942 
-3 990 991 942 
-3 942 991 943 
-3 991 992 943 
-3 943 992 944 
-3 992 993 944 
-3 944 993 945 
-3 993 994 945 
-3 945 994 946 
-3 994 995 946 
-3 946 995 947 
-3 995 996 947 
-3 947 996 948 
-3 996 997 948 
-3 948 997 949 
-3 997 998 949 
-3 949 998 950 
-3 998 999 950 
-3 950 999 951 
-3 999 1000 951 
-3 951 1000 952 
-3 1000 1001 952 
-3 952 1001 953 
-3 1001 1002 953 
-3 953 1002 954 
-3 1002 1003 954 
-3 954 1003 955 
-3 1003 1004 955 
-3 955 1004 956 
-3 1004 1005 956 
-3 956 1005 957 
-3 1005 1006 957 
-3 957 1006 958 
-3 1006 1007 958 
-3 958 1007 959 
-3 1007 1008 959 
-3 959 1008 960 
-3 1008 1009 960 
-3 960 1009 961 
-3 1009 1010 961 
-3 961 1010 962 
-3 1010 1011 962 
-3 962 1011 963 
-3 1011 1012 963 
-3 963 1012 964 
-3 1012 1013 964 
-3 964 1013 965 
-3 1013 1014 965 
-3 965 1014 966 
-3 1014 1015 966 
-3 966 1015 967 
-3 1015 1016 967 
-3 967 1016 968 
-3 1016 1017 968 
-3 968 1017 969 
-3 1017 1018 969 
-3 969 1018 970 
-3 1018 1019 970 
-3 970 1019 971 
-3 1019 1020 971 
-3 971 1020 972 
-3 1020 1021 972 
-3 972 1021 973 
-3 1021 1022 973 
-3 973 1022 974 
-3 1022 1023 974 
-3 974 1023 975 
-3 1023 1024 975 
-3 975 1024 976 
-3 1024 1025 976 
-3 976 1025 977 
-3 1025 1026 977 
-3 977 1026 978 
-3 1026 1027 978 
-3 978 1027 979 
-3 1027 1028 979 
-3 980 1029 981 
-3 1029 1030 981 
-3 981 1030 982 
-3 1030 1031 982 
-3 982 1031 983 
-3 1031 1032 983 
-3 983 1032 984 
-3 1032 1033 984 
-3 984 1033 985 
-3 1033 1034 985 
-3 985 1034 986 
-3 1034 1035 986 
-3 986 1035 987 
-3 1035 1036 987 
-3 987 1036 988 
-3 1036 1037 988 
-3 988 1037 989 
-3 1037 1038 989 
-3 989 1038 990 
-3 1038 1039 990 
-3 990 1039 991 
-3 1039 1040 991 
-3 991 1040 992 
-3 1040 1041 992 
-3 992 1041 993 
-3 1041 1042 993 
-3 993 1042 994 
-3 1042 1043 994 
-3 994 1043 995 
-3 1043 1044 995 
-3 995 1044 996 
-3 1044 1045 996 
-3 996 1045 997 
-3 1045 1046 997 
-3 997 1046 998 
-3 1046 1047 998 
-3 998 1047 999 
-3 1047 1048 999 
-3 999 1048 1000 
-3 1048 1049 1000 
-3 1000 1049 1001 
-3 1049 1050 1001 
-3 1001 1050 1002 
-3 1050 1051 1002 
-3 1002 1051 1003 
-3 1051 1052 1003 
-3 1003 1052 1004 
-3 1052 1053 1004 
-3 1004 1053 1005 
-3 1053 1054 1005 
-3 1005 1054 1006 
-3 1054 1055 1006 
-3 1006 1055 1007 
-3 1055 1056 1007 
-3 1007 1056 1008 
-3 1056 1057 1008 
-3 1008 1057 1009 
-3 1057 1058 1009 
-3 1009 1058 1010 
-3 1058 1059 1010 
-3 1010 1059 1011 
-3 1059 1060 1011 
-3 1011 1060 1012 
-3 1060 1061 1012 
-3 1012 1061 1013 
-3 1061 1062 1013 
-3 1013 1062 1014 
-3 1062 1063 1014 
-3 1014 1063 1015 
-3 1063 1064 1015 
-3 1015 1064 1016 
-3 1064 1065 1016 
-3 1016 1065 1017 
-3 1065 1066 1017 
-3 1017 1066 1018 
-3 1066 1067 1018 
-3 1018 1067 1019 
-3 1067 1068 1019 
-3 1019 1068 1020 
-3 1068 1069 1020 
-3 1020 1069 1021 
-3 1069 1070 1021 
-3 1021 1070 1022 
-3 1070 1071 1022 
-3 1022 1071 1023 
-3 1071 1072 1023 
-3 1023 1072 1024 
-3 1072 1073 1024 
-3 1024 1073 1025 
-3 1073 1074 1025 
-3 1025 1074 1026 
-3 1074 1075 1026 
-3 1026 1075 1027 
-3 1075 1076 1027 
-3 1027 1076 1028 
-3 1076 1077 1028 
-3 1029 1078 1030 
-3 1078 1079 1030 
-3 1030 1079 1031 
-3 1079 1080 1031 
-3 1031 1080 1032 
-3 1080 1081 1032 
-3 1032 1081 1033 
-3 1081 1082 1033 
-3 1033 1082 1034 
-3 1082 1083 1034 
-3 1034 1083 1035 
-3 1083 1084 1035 
-3 1035 1084 1036 
-3 1084 1085 1036 
-3 1036 1085 1037 
-3 1085 1086 1037 
-3 1037 1086 1038 
-3 1086 1087 1038 
-3 1038 1087 1039 
-3 1087 1088 1039 
-3 1039 1088 1040 
-3 1088 1089 1040 
-3 1040 1089 1041 
-3 1089 1090 1041 
-3 1041 1090 1042 
-3 1090 1091 1042 
-3 1042 1091 1043 
-3 1091 1092 1043 
-3 1043 1092 1044 
-3 1092 1093 1044 
-3 1044 1093 1045 
-3 1093 1094 1045 
-3 1045 1094 1046 
-3 1094 1095 1046 
-3 1046 1095 1047 
-3 1095 1096 1047 
-3 1047 1096 1048 
-3 1096 1097 1048 
-3 1048 1097 1049 
-3 1097 1098 1049 
-3 1049 1098 1050 
-3 1098 1099 1050 
-3 1050 1099 1051 
-3 1099 1100 1051 
-3 1051 1100 1052 
-3 1100 1101 1052 
-3 1052 1101 1053 
-3 1101 1102 1053 
-3 1053 1102 1054 
-3 1102 1103 1054 
-3 1054 1103 1055 
-3 1103 1104 1055 
-3 1055 1104 1056 
-3 1104 1105 1056 
-3 1056 1105 1057 
-3 1105 1106 1057 
-3 1057 1106 1058 
-3 1106 1107 1058 
-3 1058 1107 1059 
-3 1107 1108 1059 
-3 1059 1108 1060 
-3 1108 1109 1060 
-3 1060 1109 1061 
-3 1109 1110 1061 
-3 1061 1110 1062 
-3 1110 1111 1062 
-3 1062 1111 1063 
-3 1111 1112 1063 
-3 1063 1112 1064 
-3 1112 1113 1064 
-3 1064 1113 1065 
-3 1113 1114 1065 
-3 1065 1114 1066 
-3 1114 1115 1066 
-3 1066 1115 1067 
-3 1115 1116 1067 
-3 1067 1116 1068 
-3 1116 1117 1068 
-3 1068 1117 1069 
-3 1117 1118 1069 
-3 1069 1118 1070 
-3 1118 1119 1070 
-3 1070 1119 1071 
-3 1119 1120 1071 
-3 1071 1120 1072 
-3 1120 1121 1072 
-3 1072 1121 1073 
-3 1121 1122 1073 
-3 1073 1122 1074 
-3 1122 1123 1074 
-3 1074 1123 1075 
-3 1123 1124 1075 
-3 1075 1124 1076 
-3 1124 1125 1076 
-3 1076 1125 1077 
-3 1125 1126 1077 
-3 1078 1127 1079 
-3 1127 1128 1079 
-3 1079 1128 1080 
-3 1128 1129 1080 
-3 1080 1129 1081 
-3 1129 1130 1081 
-3 1081 1130 1082 
-3 1130 1131 1082 
-3 1082 1131 1083 
-3 1131 1132 1083 
-3 1083 1132 1084 
-3 1132 1133 1084 
-3 1084 1133 1085 
-3 1133 1134 1085 
-3 1085 1134 1086 
-3 1134 1135 1086 
-3 1086 1135 1087 
-3 1135 1136 1087 
-3 1087 1136 1088 
-3 1136 1137 1088 
-3 1088 1137 1089 
-3 1137 1138 1089 
-3 1089 1138 1090 
-3 1138 1139 1090 
-3 1090 1139 1091 
-3 1139 1140 1091 
-3 1091 1140 1092 
-3 1140 1141 1092 
-3 1092 1141 1093 
-3 1141 1142 1093 
-3 1093 1142 1094 
-3 1142 1143 1094 
-3 1094 1143 1095 
-3 1143 1144 1095 
-3 1095 1144 1096 
-3 1144 1145 1096 
-3 1096 1145 1097 
-3 1145 1146 1097 
-3 1097 1146 1098 
-3 1146 1147 1098 
-3 1098 1147 1099 
-3 1147 1148 1099 
-3 1099 1148 1100 
-3 1148 1149 1100 
-3 1100 1149 1101 
-3 1149 1150 1101 
-3 1101 1150 1102 
-3 1150 1151 1102 
-3 1102 1151 1103 
-3 1151 1152 1103 
-3 1103 1152 1104 
-3 1152 1153 1104 
-3 1104 1153 1105 
-3 1153 1154 1105 
-3 1105 1154 1106 
-3 1154 1155 1106 
-3 1106 1155 1107 
-3 1155 1156 1107 
-3 1107 1156 1108 
-3 1156 1157 1108 
-3 1108 1157 1109 
-3 1157 1158 1109 
-3 1109 1158 1110 
-3 1158 1159 1110 
-3 1110 1159 1111 
-3 1159 1160 1111 
-3 1111 1160 1112 
-3 1160 1161 1112 
-3 1112 1161 1113 
-3 1161 1162 1113 
-3 1113 1162 1114 
-3 1162 1163 1114 
-3 1114 1163 1115 
-3 1163 1164 1115 
-3 1115 1164 1116 
-3 1164 1165 1116 
-3 1116 1165 1117 
-3 1165 1166 1117 
-3 1117 1166 1118 
-3 1166 1167 1118 
-3 1118 1167 1119 
-3 1167 1168 1119 
-3 1119 1168 1120 
-3 1168 1169 1120 
-3 1120 1169 1121 
-3 1169 1170 1121 
-3 1121 1170 1122 
-3 1170 1171 1122 
-3 1122 1171 1123 
-3 1171 1172 1123 
-3 1123 1172 1124 
-3 1172 1173 1124 
-3 1124 1173 1125 
-3 1173 1174 1125 
-3 1125 1174 1126 
-3 1174 1175 1126 
-3 1127 1176 1128 
-3 1176 1177 1128 
-3 1128 1177 1129 
-3 1177 1178 1129 
-3 1129 1178 1130 
-3 1178 1179 1130 
-3 1130 1179 1131 
-3 1179 1180 1131 
-3 1131 1180 1132 
-3 1180 1181 1132 
-3 1132 1181 1133 
-3 1181 1182 1133 
-3 1133 1182 1134 
-3 1182 1183 1134 
-3 1134 1183 1135 
-3 1183 1184 1135 
-3 1135 1184 1136 
-3 1184 1185 1136 
-3 1136 1185 1137 
-3 1185 1186 1137 
-3 1137 1186 1138 
-3 1186 1187 1138 
-3 1138 1187 1139 
-3 1187 1188 1139 
-3 1139 1188 1140 
-3 1188 1189 1140 
-3 1140 1189 1141 
-3 1189 1190 1141 
-3 1141 1190 1142 
-3 1190 1191 1142 
-3 1142 1191 1143 
-3 1191 1192 1143 
-3 1143 1192 1144 
-3 1192 1193 1144 
-3 1144 1193 1145 
-3 1193 1194 1145 
-3 1145 1194 1146 
-3 1194 1195 1146 
-3 1146 1195 1147 
-3 1195 1196 1147 
-3 1147 1196 1148 
-3 1196 1197 1148 
-3 1148 1197 1149 
-3 1197 1198 1149 
-3 1149 1198 1150 
-3 1198 1199 1150 
-3 1150 1199 1151 
-3 1199 1200 1151 
-3 1151 1200 1152 
-3 1200 1201 1152 
-3 1152 1201 1153 
-3 1201 1202 1153 
-3 1153 1202 1154 
-3 1202 1203 1154 
-3 1154 1203 1155 
-3 1203 1204 1155 
-3 1155 1204 1156 
-3 1204 1205 1156 
-3 1156 1205 1157 
-3 1205 1206 1157 
-3 1157 1206 1158 
-3 1206 1207 1158 
-3 1158 1207 1159 
-3 1207 1208 1159 
-3 1159 1208 1160 
-3 1208 1209 1160 
-3 1160 1209 1161 
-3 1209 1210 1161 
-3 1161 1210 1162 
-3 1210 1211 1162 
-3 1162 1211 1163 
-3 1211 1212 1163 
-3 1163 1212 1164 
-3 1212 1213 1164 
-3 1164 1213 1165 
-3 1213 1214 1165 
-3 1165 1214 1166 
-3 1214 1215 1166 
-3 1166 1215 1167 
-3 1215 1216 1167 
-3 1167 1216 1168 
-3 1216 1217 1168 
-3 1168 1217 1169 
-3 1217 1218 1169 
-3 1169 1218 1170 
-3 1218 1219 1170 
-3 1170 1219 1171 
-3 1219 1220 1171 
-3 1171 1220 1172 
-3 1220 1221 1172 
-3 1172 1221 1173 
-3 1221 1222 1173 
-3 1173 1222 1174 
-3 1222 1223 1174 
-3 1174 1223 1175 
-3 1223 1224 1175 
-3 1176 1225 1177 
-3 1225 1226 1177 
-3 1177 1226 1178 
-3 1226 1227 1178 
-3 1178 1227 1179 
-3 1227 1228 1179 
-3 1179 1228 1180 
-3 1228 1229 1180 
-3 1180 1229 1181 
-3 1229 1230 1181 
-3 1181 1230 1182 
-3 1230 1231 1182 
-3 1182 1231 1183 
-3 1231 1232 1183 
-3 1183 1232 1184 
-3 1232 1233 1184 
-3 1184 1233 1185 
-3 1233 1234 1185 
-3 1185 1234 1186 
-3 1234 1235 1186 
-3 1186 1235 1187 
-3 1235 1236 1187 
-3 1187 1236 1188 
-3 1236 1237 1188 
-3 1188 1237 1189 
-3 1237 1238 1189 
-3 1189 1238 1190 
-3 1238 1239 1190 
-3 1190 1239 1191 
-3 1239 1240 1191 
-3 1191 1240 1192 
-3 1240 1241 1192 
-3 1192 1241 1193 
-3 1241 1242 1193 
-3 1193 1242 1194 
-3 1242 1243 1194 
-3 1194 1243 1195 
-3 1243 1244 1195 
-3 1195 1244 1196 
-3 1244 1245 1196 
-3 1196 1245 1197 
-3 1245 1246 1197 
-3 1197 1246 1198 
-3 1246 1247 1198 
-3 1198 1247 1199 
-3 1247 1248 1199 
-3 1199 1248 1200 
-3 1248 1249 1200 
-3 1200 1249 1201 
-3 1249 1250 1201 
-3 1201 1250 1202 
-3 1250 1251 1202 
-3 1202 1251 1203 
-3 1251 1252 1203 
-3 1203 1252 1204 
-3 1252 1253 1204 
-3 1204 1253 1205 
-3 1253 1254 1205 
-3 1205 1254 1206 
-3 1254 1255 1206 
-3 1206 1255 1207 
-3 1255 1256 1207 
-3 1207 1256 1208 
-3 1256 1257 1208 
-3 1208 1257 1209 
-3 1257 1258 1209 
-3 1209 1258 1210 
-3 1258 1259 1210 
-3 1210 1259 1211 
-3 1259 1260 1211 
-3 1211 1260 1212 
-3 1260 1261 1212 
-3 1212 1261 1213 
-3 1261 1262 1213 
-3 1213 1262 1214 
-3 1262 1263 1214 
-3 1214 1263 1215 
-3 1263 1264 1215 
-3 1215 1264 1216 
-3 1264 1265 1216 
-3 1216 1265 1217 
-3 1265 1266 1217 
-3 1217 1266 1218 
-3 1266 1267 1218 
-3 1218 1267 1219 
-3 1267 1268 1219 
-3 1219 1268 1220 
-3 1268 1269 1220 
-3 1220 1269 1221 
-3 1269 1270 1221 
-3 1221 1270 1222 
-3 1270 1271 1222 
-3 1222 1271 1223 
-3 1271 1272 1223 
-3 1223 1272 1224 
-3 1272 1273 1224 
-3 1225 1274 1226 
-3 1274 1275 1226 
-3 1226 1275 1227 
-3 1275 1276 1227 
-3 1227 1276 1228 
-3 1276 1277 1228 
-3 1228 1277 1229 
-3 1277 1278 1229 
-3 1229 1278 1230 
-3 1278 1279 1230 
-3 1230 1279 1231 
-3 1279 1280 1231 
-3 1231 1280 1232 
-3 1280 1281 1232 
-3 1232 1281 1233 
-3 1281 1282 1233 
-3 1233 1282 1234 
-3 1282 1283 1234 
-3 1234 1283 1235 
-3 1283 1284 1235 
-3 1235 1284 1236 
-3 1284 1285 1236 
-3 1236 1285 1237 
-3 1285 1286 1237 
-3 1237 1286 1238 
-3 1286 1287 1238 
-3 1238 1287 1239 
-3 1287 1288 1239 
-3 1239 1288 1240 
-3 1288 1289 1240 
-3 1240 1289 1241 
-3 1289 1290 1241 
-3 1241 1290 1242 
-3 1290 1291 1242 
-3 1242 1291 1243 
-3 1291 1292 1243 
-3 1243 1292 1244 
-3 1292 1293 1244 
-3 1244 1293 1245 
-3 1293 1294 1245 
-3 1245 1294 1246 
-3 1294 1295 1246 
-3 1246 1295 1247 
-3 1295 1296 1247 
-3 1247 1296 1248 
-3 1296 1297 1248 
-3 1248 1297 1249 
-3 1297 1298 1249 
-3 1249 1298 1250 
-3 1298 1299 1250 
-3 1250 1299 1251 
-3 1299 1300 1251 
-3 1251 1300 1252 
-3 1300 1301 1252 
-3 1252 1301 1253 
-3 1301 1302 1253 
-3 1253 1302 1254 
-3 1302 1303 1254 
-3 1254 1303 1255 
-3 1303 1304 1255 
-3 1255 1304 1256 
-3 1304 1305 1256 
-3 1256 1305 1257 
-3 1305 1306 1257 
-3 1257 1306 1258 
-3 1306 1307 1258 
-3 1258 1307 1259 
-3 1307 1308 1259 
-3 1259 1308 1260 
-3 1308 1309 1260 
-3 1260 1309 1261 
-3 1309 1310 1261 
-3 1261 1310 1262 
-3 1310 1311 1262 
-3 1262 1311 1263 
-3 1311 1312 1263 
-3 1263 1312 1264 
-3 1312 1313 1264 
-3 1264 1313 1265 
-3 1313 1314 1265 
-3 1265 1314 1266 
-3 1314 1315 1266 
-3 1266 1315 1267 
-3 1315 1316 1267 
-3 1267 1316 1268 
-3 1316 1317 1268 
-3 1268 1317 1269 
-3 1317 1318 1269 
-3 1269 1318 1270 
-3 1318 1319 1270 
-3 1270 1319 1271 
-3 1319 1320 1271 
-3 1271 1320 1272 
-3 1320 1321 1272 
-3 1272 1321 1273 
-3 1321 1322 1273 
-3 1274 1323 1275 
-3 1323 1324 1275 
-3 1275 1324 1276 
-3 1324 1325 1276 
-3 1276 1325 1277 
-3 1325 1326 1277 
-3 1277 1326 1278 
-3 1326 1327 1278 
-3 1278 1327 1279 
-3 1327 1328 1279 
-3 1279 1328 1280 
-3 1328 1329 1280 
-3 1280 1329 1281 
-3 1329 1330 1281 
-3 1281 1330 1282 
-3 1330 1331 1282 
-3 1282 1331 1283 
-3 1331 1332 1283 
-3 1283 1332 1284 
-3 1332 1333 1284 
-3 1284 1333 1285 
-3 1333 1334 1285 
-3 1285 1334 1286 
-3 1334 1335 1286 
-3 1286 1335 1287 
-3 1335 1336 1287 
-3 1287 1336 1288 
-3 1336 1337 1288 
-3 1288 1337 1289 
-3 1337 1338 1289 
-3 1289 1338 1290 
-3 1338 1339 1290 
-3 1290 1339 1291 
-3 1339 1340 1291 
-3 1291 1340 1292 
-3 1340 1341 1292 
-3 1292 1341 1293 
-3 1341 1342 1293 
-3 1293 1342 1294 
-3 1342 1343 1294 
-3 1294 1343 1295 
-3 1343 1344 1295 
-3 1295 1344 1296 
-3 1344 1345 1296 
-3 1296 1345 1297 
-3 1345 1346 1297 
-3 1297 1346 1298 
-3 1346 1347 1298 
-3 1298 1347 1299 
-3 1347 1348 1299 
-3 1299 1348 1300 
-3 1348 1349 1300 
-3 1300 1349 1301 
-3 1349 1350 1301 
-3 1301 1350 1302 
-3 1350 1351 1302 
-3 1302 1351 1303 
-3 1351 1352 1303 
-3 1303 1352 1304 
-3 1352 1353 1304 
-3 1304 1353 1305 
-3 1353 1354 1305 
-3 1305 1354 1306 
-3 1354 1355 1306 
-3 1306 1355 1307 
-3 1355 1356 1307 
-3 1307 1356 1308 
-3 1356 1357 1308 
-3 1308 1357 1309 
-3 1357 1358 1309 
-3 1309 1358 1310 
-3 1358 1359 1310 
-3 1310 1359 1311 
-3 1359 1360 1311 
-3 1311 1360 1312 
-3 1360 1361 1312 
-3 1312 1361 1313 
-3 1361 1362 1313 
-3 1313 1362 1314 
-3 1362 1363 1314 
-3 1314 1363 1315 
-3 1363 1364 1315 
-3 1315 1364 1316 
-3 1364 1365 1316 
-3 1316 1365 1317 
-3 1365 1366 1317 
-3 1317 1366 1318 
-3 1366 1367 1318 
-3 1318 1367 1319 
-3 1367 1368 1319 
-3 1319 1368 1320 
-3 1368 1369 1320 
-3 1320 1369 1321 
-3 1369 1370 1321 
-3 1321 1370 1322 
-3 1370 1371 1322 
-3 1323 1372 1324 
-3 1372 1373 1324 
-3 1324 1373 1325 
-3 1373 1374 1325 
-3 1325 1374 1326 
-3 1374 1375 1326 
-3 1326 1375 1327 
-3 1375 1376 1327 
-3 1327 1376 1328 
-3 1376 1377 1328 
-3 1328 1377 1329 
-3 1377 1378 1329 
-3 1329 1378 1330 
-3 1378 1379 1330 
-3 1330 1379 1331 
-3 1379 1380 1331 
-3 1331 1380 1332 
-3 1380 1381 1332 
-3 1332 1381 1333 
-3 1381 1382 1333 
-3 1333 1382 1334 
-3 1382 1383 1334 
-3 1334 1383 1335 
-3 1383 1384 1335 
-3 1335 1384 1336 
-3 1384 1385 1336 
-3 1336 1385 1337 
-3 1385 1386 1337 
-3 1337 1386 1338 
-3 1386 1387 1338 
-3 1338 1387 1339 
-3 1387 1388 1339 
-3 1339 1388 1340 
-3 1388 1389 1340 
-3 1340 1389 1341 
-3 1389 1390 1341 
-3 1341 1390 1342 
-3 1390 1391 1342 
-3 1342 1391 1343 
-3 1391 1392 1343 
-3 1343 1392 1344 
-3 1392 1393 1344 
-3 1344 1393 1345 
-3 1393 1394 1345 
-3 1345 1394 1346 
-3 1394 1395 1346 
-3 1346 1395 1347 
-3 1395 1396 1347 
-3 1347 1396 1348 
-3 1396 1397 1348 
-3 1348 1397 1349 
-3 1397 1398 1349 
-3 1349 1398 1350 
-3 1398 1399 1350 
-3 1350 1399 1351 
-3 1399 1400 1351 
-3 1351 1400 1352 
-3 1400 1401 1352 
-3 1352 1401 1353 
-3 1401 1402 1353 
-3 1353 1402 1354 
-3 1402 1403 1354 
-3 1354 1403 1355 
-3 1403 1404 1355 
-3 1355 1404 1356 
-3 1404 1405 1356 
-3 1356 1405 1357 
-3 1405 1406 1357 
-3 1357 1406 1358 
-3 1406 1407 1358 
-3 1358 1407 1359 
-3 1407 1408 1359 
-3 1359 1408 1360 
-3 1408 1409 1360 
-3 1360 1409 1361 
-3 1409 1410 1361 
-3 1361 1410 1362 
-3 1410 1411 1362 
-3 1362 1411 1363 
-3 1411 1412 1363 
-3 1363 1412 1364 
-3 1412 1413 1364 
-3 1364 1413 1365 
-3 1413 1414 1365 
-3 1365 1414 1366 
-3 1414 1415 1366 
-3 1366 1415 1367 
-3 1415 1416 1367 
-3 1367 1416 1368 
-3 1416 1417 1368 
-3 1368 1417 1369 
-3 1417 1418 1369 
-3 1369 1418 1370 
-3 1418 1419 1370 
-3 1370 1419 1371 
-3 1419 1420 1371 
-3 1372 1421 1373 
-3 1421 1422 1373 
-3 1373 1422 1374 
-3 1422 1423 1374 
-3 1374 1423 1375 
-3 1423 1424 1375 
-3 1375 1424 1376 
-3 1424 1425 1376 
-3 1376 1425 1377 
-3 1425 1426 1377 
-3 1377 1426 1378 
-3 1426 1427 1378 
-3 1378 1427 1379 
-3 1427 1428 1379 
-3 1379 1428 1380 
-3 1428 1429 1380 
-3 1380 1429 1381 
-3 1429 1430 1381 
-3 1381 1430 1382 
-3 1430 1431 1382 
-3 1382 1431 1383 
-3 1431 1432 1383 
-3 1383 1432 1384 
-3 1432 1433 1384 
-3 1384 1433 1385 
-3 1433 1434 1385 
-3 1385 1434 1386 
-3 1434 1435 1386 
-3 1386 1435 1387 
-3 1435 1436 1387 
-3 1387 1436 1388 
-3 1436 1437 1388 
-3 1388 1437 1389 
-3 1437 1438 1389 
-3 1389 1438 1390 
-3 1438 1439 1390 
-3 1390 1439 1391 
-3 1439 1440 1391 
-3 1391 1440 1392 
-3 1440 1441 1392 
-3 1392 1441 1393 
-3 1441 1442 1393 
-3 1393 1442 1394 
-3 1442 1443 1394 
-3 1394 1443 1395 
-3 1443 1444 1395 
-3 1395 1444 1396 
-3 1444 1445 1396 
-3 1396 1445 1397 
-3 1445 1446 1397 
-3 1397 1446 1398 
-3 1446 1447 1398 
-3 1398 1447 1399 
-3 1447 1448 1399 
-3 1399 1448 1400 
-3 1448 1449 1400 
-3 1400 1449 1401 
-3 1449 1450 1401 
-3 1401 1450 1402 
-3 1450 1451 1402 
-3 1402 1451 1403 
-3 1451 1452 1403 
-3 1403 1452 1404 
-3 1452 1453 1404 
-3 1404 1453 1405 
-3 1453 1454 1405 
-3 1405 1454 1406 
-3 1454 1455 1406 
-3 1406 1455 1407 
-3 1455 1456 1407 
-3 1407 1456 1408 
-3 1456 1457 1408 
-3 1408 1457 1409 
-3 1457 1458 1409 
-3 1409 1458 1410 
-3 1458 1459 1410 
-3 1410 1459 1411 
-3 1459 1460 1411 
-3 1411 1460 1412 
-3 1460 1461 1412 
-3 1412 1461 1413 
-3 1461 1462 1413 
-3 1413 1462 1414 
-3 1462 1463 1414 
-3 1414 1463 1415 
-3 1463 1464 1415 
-3 1415 1464 1416 
-3 1464 1465 1416 
-3 1416 1465 1417 
-3 1465 1466 1417 
-3 1417 1466 1418 
-3 1466 1467 1418 
-3 1418 1467 1419 
-3 1467 1468 1419 
-3 1419 1468 1420 
-3 1468 1469 1420 
-3 1421 1470 1422 
-3 1470 1471 1422 
-3 1422 1471 1423 
-3 1471 1472 1423 
-3 1423 1472 1424 
-3 1472 1473 1424 
-3 1424 1473 1425 
-3 1473 1474 1425 
-3 1425 1474 1426 
-3 1474 1475 1426 
-3 1426 1475 1427 
-3 1475 1476 1427 
-3 1427 1476 1428 
-3 1476 1477 1428 
-3 1428 1477 1429 
-3 1477 1478 1429 
-3 1429 1478 1430 
-3 1478 1479 1430 
-3 1430 1479 1431 
-3 1479 1480 1431 
-3 1431 1480 1432 
-3 1480 1481 1432 
-3 1432 1481 1433 
-3 1481 1482 1433 
-3 1433 1482 1434 
-3 1482 1483 1434 
-3 1434 1483 1435 
-3 1483 1484 1435 
-3 1435 1484 1436 
-3 1484 1485 1436 
-3 1436 1485 1437 
-3 1485 1486 1437 
-3 1437 1486 1438 
-3 1486 1487 1438 
-3 1438 1487 1439 
-3 1487 1488 1439 
-3 1439 1488 1440 
-3 1488 1489 1440 
-3 1440 1489 1441 
-3 1489 1490 1441 
-3 1441 1490 1442 
-3 1490 1491 1442 
-3 1442 1491 1443 
-3 1491 1492 1443 
-3 1443 1492 1444 
-3 1492 1493 1444 
-3 1444 1493 1445 
-3 1493 1494 1445 
-3 1445 1494 1446 
-3 1494 1495 1446 
-3 1446 1495 1447 
-3 1495 1496 1447 
-3 1447 1496 1448 
-3 1496 1497 1448 
-3 1448 1497 1449 
-3 1497 1498 1449 
-3 1449 1498 1450 
-3 1498 1499 1450 
-3 1450 1499 1451 
-3 1499 1500 1451 
-3 1451 1500 1452 
-3 1500 1501 1452 
-3 1452 1501 1453 
-3 1501 1502 1453 
-3 1453 1502 1454 
-3 1502 1503 1454 
-3 1454 1503 1455 
-3 1503 1504 1455 
-3 1455 1504 1456 
-3 1504 1505 1456 
-3 1456 1505 1457 
-3 1505 1506 1457 
-3 1457 1506 1458 
-3 1506 1507 1458 
-3 1458 1507 1459 
-3 1507 1508 1459 
-3 1459 1508 1460 
-3 1508 1509 1460 
-3 1460 1509 1461 
-3 1509 1510 1461 
-3 1461 1510 1462 
-3 1510 1511 1462 
-3 1462 1511 1463 
-3 1511 1512 1463 
-3 1463 1512 1464 
-3 1512 1513 1464 
-3 1464 1513 1465 
-3 1513 1514 1465 
-3 1465 1514 1466 
-3 1514 1515 1466 
-3 1466 1515 1467 
-3 1515 1516 1467 
-3 1467 1516 1468 
-3 1516 1517 1468 
-3 1468 1517 1469 
-3 1517 1518 1469 
-3 1470 1519 1471 
-3 1519 1520 1471 
-3 1471 1520 1472 
-3 1520 1521 1472 
-3 1472 1521 1473 
-3 1521 1522 1473 
-3 1473 1522 1474 
-3 1522 1523 1474 
-3 1474 1523 1475 
-3 1523 1524 1475 
-3 1475 1524 1476 
-3 1524 1525 1476 
-3 1476 1525 1477 
-3 1525 1526 1477 
-3 1477 1526 1478 
-3 1526 1527 1478 
-3 1478 1527 1479 
-3 1527 1528 1479 
-3 1479 1528 1480 
-3 1528 1529 1480 
-3 1480 1529 1481 
-3 1529 1530 1481 
-3 1481 1530 1482 
-3 1530 1531 1482 
-3 1482 1531 1483 
-3 1531 1532 1483 
-3 1483 1532 1484 
-3 1532 1533 1484 
-3 1484 1533 1485 
-3 1533 1534 1485 
-3 1485 1534 1486 
-3 1534 1535 1486 
-3 1486 1535 1487 
-3 1535 1536 1487 
-3 1487 1536 1488 
-3 1536 1537 1488 
-3 1488 1537 1489 
-3 1537 1538 1489 
-3 1489 1538 1490 
-3 1538 1539 1490 
-3 1490 1539 1491 
-3 1539 1540 1491 
-3 1491 1540 1492 
-3 1540 1541 1492 
-3 1492 1541 1493 
-3 1541 1542 1493 
-3 1493 1542 1494 
-3 1542 1543 1494 
-3 1494 1543 1495 
-3 1543 1544 1495 
-3 1495 1544 1496 
-3 1544 1545 1496 
-3 1496 1545 1497 
-3 1545 1546 1497 
-3 1497 1546 1498 
-3 1546 1547 1498 
-3 1498 1547 1499 
-3 1547 1548 1499 
-3 1499 1548 1500 
-3 1548 1549 1500 
-3 1500 1549 1501 
-3 1549 1550 1501 
-3 1501 1550 1502 
-3 1550 1551 1502 
-3 1502 1551 1503 
-3 1551 1552 1503 
-3 1503 1552 1504 
-3 1552 1553 1504 
-3 1504 1553 1505 
-3 1553 1554 1505 
-3 1505 1554 1506 
-3 1554 1555 1506 
-3 1506 1555 1507 
-3 1555 1556 1507 
-3 1507 1556 1508 
-3 1556 1557 1508 
-3 1508 1557 1509 
-3 1557 1558 1509 
-3 1509 1558 1510 
-3 1558 1559 1510 
-3 1510 1559 1511 
-3 1559 1560 1511 
-3 1511 1560 1512 
-3 1560 1561 1512 
-3 1512 1561 1513 
-3 1561 1562 1513 
-3 1513 1562 1514 
-3 1562 1563 1514 
-3 1514 1563 1515 
-3 1563 1564 1515 
-3 1515 1564 1516 
-3 1564 1565 1516 
-3 1516 1565 1517 
-3 1565 1566 1517 
-3 1517 1566 1518 
-3 1566 1567 1518 
-3 1519 1568 1520 
-3 1568 1569 1520 
-3 1520 1569 1521 
-3 1569 1570 1521 
-3 1521 1570 1522 
-3 1570 1571 1522 
-3 1522 1571 1523 
-3 1571 1572 1523 
-3 1523 1572 1524 
-3 1572 1573 1524 
-3 1524 1573 1525 
-3 1573 1574 1525 
-3 1525 1574 1526 
-3 1574 1575 1526 
-3 1526 1575 1527 
-3 1575 1576 1527 
-3 1527 1576 1528 
-3 1576 1577 1528 
-3 1528 1577 1529 
-3 1577 1578 1529 
-3 1529 1578 1530 
-3 1578 1579 1530 
-3 1530 1579 1531 
-3 1579 1580 1531 
-3 1531 1580 1532 
-3 1580 1581 1532 
-3 1532 1581 1533 
-3 1581 1582 1533 
-3 1533 1582 1534 
-3 1582 1583 1534 
-3 1534 1583 1535 
-3 1583 1584 1535 
-3 1535 1584 1536 
-3 1584 1585 1536 
-3 1536 1585 1537 
-3 1585 1586 1537 
-3 1537 1586 1538 
-3 1586 1587 1538 
-3 1538 1587 1539 
-3 1587 1588 1539 
-3 1539 1588 1540 
-3 1588 1589 1540 
-3 1540 1589 1541 
-3 1589 1590 1541 
-3 1541 1590 1542 
-3 1590 1591 1542 
-3 1542 1591 1543 
-3 1591 1592 1543 
-3 1543 1592 1544 
-3 1592 1593 1544 
-3 1544 1593 1545 
-3 1593 1594 1545 
-3 1545 1594 1546 
-3 1594 1595 1546 
-3 1546 1595 1547 
-3 1595 1596 1547 
-3 1547 1596 1548 
-3 1596 1597 1548 
-3 1548 1597 1549 
-3 1597 1598 1549 
-3 1549 1598 1550 
-3 1598 1599 1550 
-3 1550 1599 1551 
-3 1599 1600 1551 
-3 1551 1600 1552 
-3 1600 1601 1552 
-3 1552 1601 1553 
-3 1601 1602 1553 
-3 1553 1602 1554 
-3 1602 1603 1554 
-3 1554 1603 1555 
-3 1603 1604 1555 
-3 1555 1604 1556 
-3 1604 1605 1556 
-3 1556 1605 1557 
-3 1605 1606 1557 
-3 1557 1606 1558 
-3 1606 1607 1558 
-3 1558 1607 1559 
-3 1607 1608 1559 
-3 1559 1608 1560 
-3 1608 1609 1560 
-3 1560 1609 1561 
-3 1609 1610 1561 
-3 1561 1610 1562 
-3 1610 1611 1562 
-3 1562 1611 1563 
-3 1611 1612 1563 
-3 1563 1612 1564 
-3 1612 1613 1564 
-3 1564 1613 1565 
-3 1613 1614 1565 
-3 1565 1614 1566 
-3 1614 1615 1566 
-3 1566 1615 1567 
-3 1615 1616 1567 
-3 1568 1617 1569 
-3 1617 1618 1569 
-3 1569 1618 1570 
-3 1618 1619 1570 
-3 1570 1619 1571 
-3 1619 1620 1571 
-3 1571 1620 1572 
-3 1620 1621 1572 
-3 1572 1621 1573 
-3 1621 1622 1573 
-3 1573 1622 1574 
-3 1622 1623 1574 
-3 1574 1623 1575 
-3 1623 1624 1575 
-3 1575 1624 1576 
-3 1624 1625 1576 
-3 1576 1625 1577 
-3 1625 1626 1577 
-3 1577 1626 1578 
-3 1626 1627 1578 
-3 1578 1627 1579 
-3 1627 1628 1579 
-3 1579 1628 1580 
-3 1628 1629 1580 
-3 1580 1629 1581 
-3 1629 1630 1581 
-3 1581 1630 1582 
-3 1630 1631 1582 
-3 1582 1631 1583 
-3 1631 1632 1583 
-3 1583 1632 1584 
-3 1632 1633 1584 
-3 1584 1633 1585 
-3 1633 1634 1585 
-3 1585 1634 1586 
-3 1634 1635 1586 
-3 1586 1635 1587 
-3 1635 1636 1587 
-3 1587 1636 1588 
-3 1636 1637 1588 
-3 1588 1637 1589 
-3 1637 1638 1589 
-3 1589 1638 1590 
-3 1638 1639 1590 
-3 1590 1639 1591 
-3 1639 1640 1591 
-3 1591 1640 1592 
-3 1640 1641 1592 
-3 1592 1641 1593 
-3 1641 1642 1593 
-3 1593 1642 1594 
-3 1642 1643 1594 
-3 1594 1643 1595 
-3 1643 1644 1595 
-3 1595 1644 1596 
-3 1644 1645 1596 
-3 1596 1645 1597 
-3 1645 1646 1597 
-3 1597 1646 1598 
-3 1646 1647 1598 
-3 1598 1647 1599 
-3 1647 1648 1599 
-3 1599 1648 1600 
-3 1648 1649 1600 
-3 1600 1649 1601 
-3 1649 1650 1601 
-3 1601 1650 1602 
-3 1650 1651 1602 
-3 1602 1651 1603 
-3 1651 1652 1603 
-3 1603 1652 1604 
-3 1652 1653 1604 
-3 1604 1653 1605 
-3 1653 1654 1605 
-3 1605 1654 1606 
-3 1654 1655 1606 
-3 1606 1655 1607 
-3 1655 1656 1607 
-3 1607 1656 1608 
-3 1656 1657 1608 
-3 1608 1657 1609 
-3 1657 1658 1609 
-3 1609 1658 1610 
-3 1658 1659 1610 
-3 1610 1659 1611 
-3 1659 1660 1611 
-3 1611 1660 1612 
-3 1660 1661 1612 
-3 1612 1661 1613 
-3 1661 1662 1613 
-3 1613 1662 1614 
-3 1662 1663 1614 
-3 1614 1663 1615 
-3 1663 1664 1615 
-3 1615 1664 1616 
-3 1664 1665 1616 
-3 1617 1666 1618 
-3 1666 1667 1618 
-3 1618 1667 1619 
-3 1667 1668 1619 
-3 1619 1668 1620 
-3 1668 1669 1620 
-3 1620 1669 1621 
-3 1669 1670 1621 
-3 1621 1670 1622 
-3 1670 1671 1622 
-3 1622 1671 1623 
-3 1671 1672 1623 
-3 1623 1672 1624 
-3 1672 1673 1624 
-3 1624 1673 1625 
-3 1673 1674 1625 
-3 1625 1674 1626 
-3 1674 1675 1626 
-3 1626 1675 1627 
-3 1675 1676 1627 
-3 1627 1676 1628 
-3 1676 1677 1628 
-3 1628 1677 1629 
-3 1677 1678 1629 
-3 1629 1678 1630 
-3 1678 1679 1630 
-3 1630 1679 1631 
-3 1679 1680 1631 
-3 1631 1680 1632 
-3 1680 1681 1632 
-3 1632 1681 1633 
-3 1681 1682 1633 
-3 1633 1682 1634 
-3 1682 1683 1634 
-3 1634 1683 1635 
-3 1683 1684 1635 
-3 1635 1684 1636 
-3 1684 1685 1636 
-3 1636 1685 1637 
-3 1685 1686 1637 
-3 1637 1686 1638 
-3 1686 1687 1638 
-3 1638 1687 1639 
-3 1687 1688 1639 
-3 1639 1688 1640 
-3 1688 1689 1640 
-3 1640 1689 1641 
-3 1689 1690 1641 
-3 1641 1690 1642 
-3 1690 1691 1642 
-3 1642 1691 1643 
-3 1691 1692 1643 
-3 1643 1692 1644 
-3 1692 1693 1644 
-3 1644 1693 1645 
-3 1693 1694 1645 
-3 1645 1694 1646 
-3 1694 1695 1646 
-3 1646 1695 1647 
-3 1695 1696 1647 
-3 1647 1696 1648 
-3 1696 1697 1648 
-3 1648 1697 1649 
-3 1697 1698 1649 
-3 1649 1698 1650 
-3 1698 1699 1650 
-3 1650 1699 1651 
-3 1699 1700 1651 
-3 1651 1700 1652 
-3 1700 1701 1652 
-3 1652 1701 1653 
-3 1701 1702 1653 
-3 1653 1702 1654 
-3 1702 1703 1654 
-3 1654 1703 1655 
-3 1703 1704 1655 
-3 1655 1704 1656 
-3 1704 1705 1656 
-3 1656 1705 1657 
-3 1705 1706 1657 
-3 1657 1706 1658 
-3 1706 1707 1658 
-3 1658 1707 1659 
-3 1707 1708 1659 
-3 1659 1708 1660 
-3 1708 1709 1660 
-3 1660 1709 1661 
-3 1709 1710 1661 
-3 1661 1710 1662 
-3 1710 1711 1662 
-3 1662 1711 1663 
-3 1711 1712 1663 
-3 1663 1712 1664 
-3 1712 1713 1664 
-3 1664 1713 1665 
-3 1713 1714 1665 
-3 1666 1715 1667 
-3 1715 1716 1667 
-3 1667 1716 1668 
-3 1716 1717 1668 
-3 1668 1717 1669 
-3 1717 1718 1669 
-3 1669 1718 1670 
-3 1718 1719 1670 
-3 1670 1719 1671 
-3 1719 1720 1671 
-3 1671 1720 1672 
-3 1720 1721 1672 
-3 1672 1721 1673 
-3 1721 1722 1673 
-3 1673 1722 1674 
-3 1722 1723 1674 
-3 1674 1723 1675 
-3 1723 1724 1675 
-3 1675 1724 1676 
-3 1724 1725 1676 
-3 1676 1725 1677 
-3 1725 1726 1677 
-3 1677 1726 1678 
-3 1726 1727 1678 
-3 1678 1727 1679 
-3 1727 1728 1679 
-3 1679 1728 1680 
-3 1728 1729 1680 
-3 1680 1729 1681 
-3 1729 1730 1681 
-3 1681 1730 1682 
-3 1730 1731 1682 
-3 1682 1731 1683 
-3 1731 1732 1683 
-3 1683 1732 1684 
-3 1732 1733 1684 
-3 1684 1733 1685 
-3 1733 1734 1685 
-3 1685 1734 1686 
-3 1734 1735 1686 
-3 1686 1735 1687 
-3 1735 1736 1687 
-3 1687 1736 1688 
-3 1736 1737 1688 
-3 1688 1737 1689 
-3 1737 1738 1689 
-3 1689 1738 1690 
-3 1738 1739 1690 
-3 1690 1739 1691 
-3 1739 1740 1691 
-3 1691 1740 1692 
-3 1740 1741 1692 
-3 1692 1741 1693 
-3 1741 1742 1693 
-3 1693 1742 1694 
-3 1742 1743 1694 
-3 1694 1743 1695 
-3 1743 1744 1695 
-3 1695 1744 1696 
-3 1744 1745 1696 
-3 1696 1745 1697 
-3 1745 1746 1697 
-3 1697 1746 1698 
-3 1746 1747 1698 
-3 1698 1747 1699 
-3 1747 1748 1699 
-3 1699 1748 1700 
-3 1748 1749 1700 
-3 1700 1749 1701 
-3 1749 1750 1701 
-3 1701 1750 1702 
-3 1750 1751 1702 
-3 1702 1751 1703 
-3 1751 1752 1703 
-3 1703 1752 1704 
-3 1752 1753 1704 
-3 1704 1753 1705 
-3 1753 1754 1705 
-3 1705 1754 1706 
-3 1754 1755 1706 
-3 1706 1755 1707 
-3 1755 1756 1707 
-3 1707 1756 1708 
-3 1756 1757 1708 
-3 1708 1757 1709 
-3 1757 1758 1709 
-3 1709 1758 1710 
-3 1758 1759 1710 
-3 1710 1759 1711 
-3 1759 1760 1711 
-3 1711 1760 1712 
-3 1760 1761 1712 
-3 1712 1761 1713 
-3 1761 1762 1713 
-3 1713 1762 1714 
-3 1762 1763 1714 
-3 1715 1764 1716 
-3 1764 1765 1716 
-3 1716 1765 1717 
-3 1765 1766 1717 
-3 1717 1766 1718 
-3 1766 1767 1718 
-3 1718 1767 1719 
-3 1767 1768 1719 
-3 1719 1768 1720 
-3 1768 1769 1720 
-3 1720 1769 1721 
-3 1769 1770 1721 
-3 1721 1770 1722 
-3 1770 1771 1722 
-3 1722 1771 1723 
-3 1771 1772 1723 
-3 1723 1772 1724 
-3 1772 1773 1724 
-3 1724 1773 1725 
-3 1773 1774 1725 
-3 1725 1774 1726 
-3 1774 1775 1726 
-3 1726 1775 1727 
-3 1775 1776 1727 
-3 1727 1776 1728 
-3 1776 1777 1728 
-3 1728 1777 1729 
-3 1777 1778 1729 
-3 1729 1778 1730 
-3 1778 1779 1730 
-3 1730 1779 1731 
-3 1779 1780 1731 
-3 1731 1780 1732 
-3 1780 1781 1732 
-3 1732 1781 1733 
-3 1781 1782 1733 
-3 1733 1782 1734 
-3 1782 1783 1734 
-3 1734 1783 1735 
-3 1783 1784 1735 
-3 1735 1784 1736 
-3 1784 1785 1736 
-3 1736 1785 1737 
-3 1785 1786 1737 
-3 1737 1786 1738 
-3 1786 1787 1738 
-3 1738 1787 1739 
-3 1787 1788 1739 
-3 1739 1788 1740 
-3 1788 1789 1740 
-3 1740 1789 1741 
-3 1789 1790 1741 
-3 1741 1790 1742 
-3 1790 1791 1742 
-3 1742 1791 1743 
-3 1791 1792 1743 
-3 1743 1792 1744 
-3 1792 1793 1744 
-3 1744 1793 1745 
-3 1793 1794 1745 
-3 1745 1794 1746 
-3 1794 1795 1746 
-3 1746 1795 1747 
-3 1795 1796 1747 
-3 1747 1796 1748 
-3 1796 1797 1748 
-3 1748 1797 1749 
-3 1797 1798 1749 
-3 1749 1798 1750 
-3 1798 1799 1750 
-3 1750 1799 1751 
-3 1799 1800 1751 
-3 1751 1800 1752 
-3 1800 1801 1752 
-3 1752 1801 1753 
-3 1801 1802 1753 
-3 1753 1802 1754 
-3 1802 1803 1754 
-3 1754 1803 1755 
-3 1803 1804 1755 
-3 1755 1804 1756 
-3 1804 1805 1756 
-3 1756 1805 1757 
-3 1805 1806 1757 
-3 1757 1806 1758 
-3 1806 1807 1758 
-3 1758 1807 1759 
-3 1807 1808 1759 
-3 1759 1808 1760 
-3 1808 1809 1760 
-3 1760 1809 1761 
-3 1809 1810 1761 
-3 1761 1810 1762 
-3 1810 1811 1762 
-3 1762 1811 1763 
-3 1811 1812 1763 
-3 1764 1813 1765 
-3 1813 1814 1765 
-3 1765 1814 1766 
-3 1814 1815 1766 
-3 1766 1815 1767 
-3 1815 1816 1767 
-3 1767 1816 1768 
-3 1816 1817 1768 
-3 1768 1817 1769 
-3 1817 1818 1769 
-3 1769 1818 1770 
-3 1818 1819 1770 
-3 1770 1819 1771 
-3 1819 1820 1771 
-3 1771 1820 1772 
-3 1820 1821 1772 
-3 1772 1821 1773 
-3 1821 1822 1773 
-3 1773 1822 1774 
-3 1822 1823 1774 
-3 1774 1823 1775 
-3 1823 1824 1775 
-3 1775 1824 1776 
-3 1824 1825 1776 
-3 1776 1825 1777 
-3 1825 1826 1777 
-3 1777 1826 1778 
-3 1826 1827 1778 
-3 1778 1827 1779 
-3 1827 1828 1779 
-3 1779 1828 1780 
-3 1828 1829 1780 
-3 1780 1829 1781 
-3 1829 1830 1781 
-3 1781 1830 1782 
-3 1830 1831 1782 
-3 1782 1831 1783 
-3 1831 1832 1783 
-3 1783 1832 1784 
-3 1832 1833 1784 
-3 1784 1833 1785 
-3 1833 1834 1785 
-3 1785 1834 1786 
-3 1834 1835 1786 
-3 1786 1835 1787 
-3 1835 1836 1787 
-3 1787 1836 1788 
-3 1836 1837 1788 
-3 1788 1837 1789 
-3 1837 1838 1789 
-3 1789 1838 1790 
-3 1838 1839 1790 
-3 1790 1839 1791 
-3 1839 1840 1791 
-3 1791 1840 1792 
-3 1840 1841 1792 
-3 1792 1841 1793 
-3 1841 1842 1793 
-3 1793 1842 1794 
-3 1842 1843 1794 
-3 1794 1843 1795 
-3 1843 1844 1795 
-3 1795 1844 1796 
-3 1844 1845 1796 
-3 1796 1845 1797 
-3 1845 1846 1797 
-3 1797 1846 1798 
-3 1846 1847 1798 
-3 1798 1847 1799 
-3 1847 1848 1799 
-3 1799 1848 1800 
-3 1848 1849 1800 
-3 1800 1849 1801 
-3 1849 1850 1801 
-3 1801 1850 1802 
-3 1850 1851 1802 
-3 1802 1851 1803 
-3 1851 1852 1803 
-3 1803 1852 1804 
-3 1852 1853 1804 
-3 1804 1853 1805 
-3 1853 1854 1805 
-3 1805 1854 1806 
-3 1854 1855 1806 
-3 1806 1855 1807 
-3 1855 1856 1807 
-3 1807 1856 1808 
-3 1856 1857 1808 
-3 1808 1857 1809 
-3 1857 1858 1809 
-3 1809 1858 1810 
-3 1858 1859 1810 
-3 1810 1859 1811 
-3 1859 1860 1811 
-3 1811 1860 1812 
-3 1860 1861 1812 
-3 1813 1862 1814 
-3 1862 1863 1814 
-3 1814 1863 1815 
-3 1863 1864 1815 
-3 1815 1864 1816 
-3 1864 1865 1816 
-3 1816 1865 1817 
-3 1865 1866 1817 
-3 1817 1866 1818 
-3 1866 1867 1818 
-3 1818 1867 1819 
-3 1867 1868 1819 
-3 1819 1868 1820 
-3 1868 1869 1820 
-3 1820 1869 1821 
-3 1869 1870 1821 
-3 1821 1870 1822 
-3 1870 1871 1822 
-3 1822 1871 1823 
-3 1871 1872 1823 
-3 1823 1872 1824 
-3 1872 1873 1824 
-3 1824 1873 1825 
-3 1873 1874 1825 
-3 1825 1874 1826 
-3 1874 1875 1826 
-3 1826 1875 1827 
-3 1875 1876 1827 
-3 1827 1876 1828 
-3 1876 1877 1828 
-3 1828 1877 1829 
-3 1877 1878 1829 
-3 1829 1878 1830 
-3 1878 1879 1830 
-3 1830 1879 1831 
-3 1879 1880 1831 
-3 1831 1880 1832 
-3 1880 1881 1832 
-3 1832 1881 1833 
-3 1881 1882 1833 
-3 1833 1882 1834 
-3 1882 1883 1834 
-3 1834 1883 1835 
-3 1883 1884 1835 
-3 1835 1884 1836 
-3 1884 1885 1836 
-3 1836 1885 1837 
-3 1885 1886 1837 
-3 1837 1886 1838 
-3 1886 1887 1838 
-3 1838 1887 1839 
-3 1887 1888 1839 
-3 1839 1888 1840 
-3 1888 1889 1840 
-3 1840 1889 1841 
-3 1889 1890 1841 
-3 1841 1890 1842 
-3 1890 1891 1842 
-3 1842 1891 1843 
-3 1891 1892 1843 
-3 1843 1892 1844 
-3 1892 1893 1844 
-3 1844 1893 1845 
-3 1893 1894 1845 
-3 1845 1894 1846 
-3 1894 1895 1846 
-3 1846 1895 1847 
-3 1895 1896 1847 
-3 1847 1896 1848 
-3 1896 1897 1848 
-3 1848 1897 1849 
-3 1897 1898 1849 
-3 1849 1898 1850 
-3 1898 1899 1850 
-3 1850 1899 1851 
-3 1899 1900 1851 
-3 1851 1900 1852 
-3 1900 1901 1852 
-3 1852 1901 1853 
-3 1901 1902 1853 
-3 1853 1902 1854 
-3 1902 1903 1854 
-3 1854 1903 1855 
-3 1903 1904 1855 
-3 1855 1904 1856 
-3 1904 1905 1856 
-3 1856 1905 1857 
-3 1905 1906 1857 
-3 1857 1906 1858 
-3 1906 1907 1858 
-3 1858 1907 1859 
-3 1907 1908 1859 
-3 1859 1908 1860 
-3 1908 1909 1860 
-3 1860 1909 1861 
-3 1909 1910 1861 
-3 1862 1911 1863 
-3 1911 1912 1863 
-3 1863 1912 1864 
-3 1912 1913 1864 
-3 1864 1913 1865 
-3 1913 1914 1865 
-3 1865 1914 1866 
-3 1914 1915 1866 
-3 1866 1915 1867 
-3 1915 1916 1867 
-3 1867 1916 1868 
-3 1916 1917 1868 
-3 1868 1917 1869 
-3 1917 1918 1869 
-3 1869 1918 1870 
-3 1918 1919 1870 
-3 1870 1919 1871 
-3 1919 1920 1871 
-3 1871 1920 1872 
-3 1920 1921 1872 
-3 1872 1921 1873 
-3 1921 1922 1873 
-3 1873 1922 1874 
-3 1922 1923 1874 
-3 1874 1923 1875 
-3 1923 1924 1875 
-3 1875 1924 1876 
-3 1924 1925 1876 
-3 1876 1925 1877 
-3 1925 1926 1877 
-3 1877 1926 1878 
-3 1926 1927 1878 
-3 1878 1927 1879 
-3 1927 1928 1879 
-3 1879 1928 1880 
-3 1928 1929 1880 
-3 1880 1929 1881 
-3 1929 1930 1881 
-3 1881 1930 1882 
-3 1930 1931 1882 
-3 1882 1931 1883 
-3 1931 1932 1883 
-3 1883 1932 1884 
-3 1932 1933 1884 
-3 1884 1933 1885 
-3 1933 1934 1885 
-3 1885 1934 1886 
-3 1934 1935 1886 
-3 1886 1935 1887 
-3 1935 1936 1887 
-3 1887 1936 1888 
-3 1936 1937 1888 
-3 1888 1937 1889 
-3 1937 1938 1889 
-3 1889 1938 1890 
-3 1938 1939 1890 
-3 1890 1939 1891 
-3 1939 1940 1891 
-3 1891 1940 1892 
-3 1940 1941 1892 
-3 1892 1941 1893 
-3 1941 1942 1893 
-3 1893 1942 1894 
-3 1942 1943 1894 
-3 1894 1943 1895 
-3 1943 1944 1895 
-3 1895 1944 1896 
-3 1944 1945 1896 
-3 1896 1945 1897 
-3 1945 1946 1897 
-3 1897 1946 1898 
-3 1946 1947 1898 
-3 1898 1947 1899 
-3 1947 1948 1899 
-3 1899 1948 1900 
-3 1948 1949 1900 
-3 1900 1949 1901 
-3 1949 1950 1901 
-3 1901 1950 1902 
-3 1950 1951 1902 
-3 1902 1951 1903 
-3 1951 1952 1903 
-3 1903 1952 1904 
-3 1952 1953 1904 
-3 1904 1953 1905 
-3 1953 1954 1905 
-3 1905 1954 1906 
-3 1954 1955 1906 
-3 1906 1955 1907 
-3 1955 1956 1907 
-3 1907 1956 1908 
-3 1956 1957 1908 
-3 1908 1957 1909 
-3 1957 1958 1909 
-3 1909 1958 1910 
-3 1958 1959 1910 
-3 1911 1960 1912 
-3 1960 1961 1912 
-3 1912 1961 1913 
-3 1961 1962 1913 
-3 1913 1962 1914 
-3 1962 1963 1914 
-3 1914 1963 1915 
-3 1963 1964 1915 
-3 1915 1964 1916 
-3 1964 1965 1916 
-3 1916 1965 1917 
-3 1965 1966 1917 
-3 1917 1966 1918 
-3 1966 1967 1918 
-3 1918 1967 1919 
-3 1967 1968 1919 
-3 1919 1968 1920 
-3 1968 1969 1920 
-3 1920 1969 1921 
-3 1969 1970 1921 
-3 1921 1970 1922 
-3 1970 1971 1922 
-3 1922 1971 1923 
-3 1971 1972 1923 
-3 1923 1972 1924 
-3 1972 1973 1924 
-3 1924 1973 1925 
-3 1973 1974 1925 
-3 1925 1974 1926 
-3 1974 1975 1926 
-3 1926 1975 1927 
-3 1975 1976 1927 
-3 1927 1976 1928 
-3 1976 1977 1928 
-3 1928 1977 1929 
-3 1977 1978 1929 
-3 1929 1978 1930 
-3 1978 1979 1930 
-3 1930 1979 1931 
-3 1979 1980 1931 
-3 1931 1980 1932 
-3 1980 1981 1932 
-3 1932 1981 1933 
-3 1981 1982 1933 
-3 1933 1982 1934 
-3 1982 1983 1934 
-3 1934 1983 1935 
-3 1983 1984 1935 
-3 1935 1984 1936 
-3 1984 1985 1936 
-3 1936 1985 1937 
-3 1985 1986 1937 
-3 1937 1986 1938 
-3 1986 1987 1938 
-3 1938 1987 1939 
-3 1987 1988 1939 
-3 1939 1988 1940 
-3 1988 1989 1940 
-3 1940 1989 1941 
-3 1989 1990 1941 
-3 1941 1990 1942 
-3 1990 1991 1942 
-3 1942 1991 1943 
-3 1991 1992 1943 
-3 1943 1992 1944 
-3 1992 1993 1944 
-3 1944 1993 1945 
-3 1993 1994 1945 
-3 1945 1994 1946 
-3 1994 1995 1946 
-3 1946 1995 1947 
-3 1995 1996 1947 
-3 1947 1996 1948 
-3 1996 1997 1948 
-3 1948 1997 1949 
-3 1997 1998 1949 
-3 1949 1998 1950 
-3 1998 1999 1950 
-3 1950 1999 1951 
-3 1999 2000 1951 
-3 1951 2000 1952 
-3 2000 2001 1952 
-3 1952 2001 1953 
-3 2001 2002 1953 
-3 1953 2002 1954 
-3 2002 2003 1954 
-3 1954 2003 1955 
-3 2003 2004 1955 
-3 1955 2004 1956 
-3 2004 2005 1956 
-3 1956 2005 1957 
-3 2005 2006 1957 
-3 1957 2006 1958 
-3 2006 2007 1958 
-3 1958 2007 1959 
-3 2007 2008 1959 
-3 1960 2009 1961 
-3 2009 2010 1961 
-3 1961 2010 1962 
-3 2010 2011 1962 
-3 1962 2011 1963 
-3 2011 2012 1963 
-3 1963 2012 1964 
-3 2012 2013 1964 
-3 1964 2013 1965 
-3 2013 2014 1965 
-3 1965 2014 1966 
-3 2014 2015 1966 
-3 1966 2015 1967 
-3 2015 2016 1967 
-3 1967 2016 1968 
-3 2016 2017 1968 
-3 1968 2017 1969 
-3 2017 2018 1969 
-3 1969 2018 1970 
-3 2018 2019 1970 
-3 1970 2019 1971 
-3 2019 2020 1971 
-3 1971 2020 1972 
-3 2020 2021 1972 
-3 1972 2021 1973 
-3 2021 2022 1973 
-3 1973 2022 1974 
-3 2022 2023 1974 
-3 1974 2023 1975 
-3 2023 2024 1975 
-3 1975 2024 1976 
-3 2024 2025 1976 
-3 1976 2025 1977 
-3 2025 2026 1977 
-3 1977 2026 1978 
-3 2026 2027 1978 
-3 1978 2027 1979 
-3 2027 2028 1979 
-3 1979 2028 1980 
-3 2028 2029 1980 
-3 1980 2029 1981 
-3 2029 2030 1981 
-3 1981 2030 1982 
-3 2030 2031 1982 
-3 1982 2031 1983 
-3 2031 2032 1983 
-3 1983 2032 1984 
-3 2032 2033 1984 
-3 1984 2033 1985 
-3 2033 2034 1985 
-3 1985 2034 1986 
-3 2034 2035 1986 
-3 1986 2035 1987 
-3 2035 2036 1987 
-3 1987 2036 1988 
-3 2036 2037 1988 
-3 1988 2037 1989 
-3 2037 2038 1989 
-3 1989 2038 1990 
-3 2038 2039 1990 
-3 1990 2039 1991 
-3 2039 2040 1991 
-3 1991 2040 1992 
-3 2040 2041 1992 
-3 1992 2041 1993 
-3 2041 2042 1993 
-3 1993 2042 1994 
-3 2042 2043 1994 
-3 1994 2043 1995 
-3 2043 2044 1995 
-3 1995 2044 1996 
-3 2044 2045 1996 
-3 1996 2045 1997 
-3 2045 2046 1997 
-3 1997 2046 1998 
-3 2046 2047 1998 
-3 1998 2047 1999 
-3 2047 2048 1999 
-3 1999 2048 2000 
-3 2048 2049 2000 
-3 2000 2049 2001 
-3 2049 2050 2001 
-3 2001 2050 2002 
-3 2050 2051 2002 
-3 2002 2051 2003 
-3 2051 2052 2003 
-3 2003 2052 2004 
-3 2052 2053 2004 
-3 2004 2053 2005 
-3 2053 2054 2005 
-3 2005 2054 2006 
-3 2054 2055 2006 
-3 2006 2055 2007 
-3 2055 2056 2007 
-3 2007 2056 2008 
-3 2056 2057 2008 
-3 2009 2058 2010 
-3 2058 2059 2010 
-3 2010 2059 2011 
-3 2059 2060 2011 
-3 2011 2060 2012 
-3 2060 2061 2012 
-3 2012 2061 2013 
-3 2061 2062 2013 
-3 2013 2062 2014 
-3 2062 2063 2014 
-3 2014 2063 2015 
-3 2063 2064 2015 
-3 2015 2064 2016 
-3 2064 2065 2016 
-3 2016 2065 2017 
-3 2065 2066 2017 
-3 2017 2066 2018 
-3 2066 2067 2018 
-3 2018 2067 2019 
-3 2067 2068 2019 
-3 2019 2068 2020 
-3 2068 2069 2020 
-3 2020 2069 2021 
-3 2069 2070 2021 
-3 2021 2070 2022 
-3 2070 2071 2022 
-3 2022 2071 2023 
-3 2071 2072 2023 
-3 2023 2072 2024 
-3 2072 2073 2024 
-3 2024 2073 2025 
-3 2073 2074 2025 
-3 2025 2074 2026 
-3 2074 2075 2026 
-3 2026 2075 2027 
-3 2075 2076 2027 
-3 2027 2076 2028 
-3 2076 2077 2028 
-3 2028 2077 2029 
-3 2077 2078 2029 
-3 2029 2078 2030 
-3 2078 2079 2030 
-3 2030 2079 2031 
-3 2079 2080 2031 
-3 2031 2080 2032 
-3 2080 2081 2032 
-3 2032 2081 2033 
-3 2081 2082 2033 
-3 2033 2082 2034 
-3 2082 2083 2034 
-3 2034 2083 2035 
-3 2083 2084 2035 
-3 2035 2084 2036 
-3 2084 2085 2036 
-3 2036 2085 2037 
-3 2085 2086 2037 
-3 2037 2086 2038 
-3 2086 2087 2038 
-3 2038 2087 2039 
-3 2087 2088 2039 
-3 2039 2088 2040 
-3 2088 2089 2040 
-3 2040 2089 2041 
-3 2089 2090 2041 
-3 2041 2090 2042 
-3 2090 2091 2042 
-3 2042 2091 2043 
-3 2091 2092 2043 
-3 2043 2092 2044 
-3 2092 2093 2044 
-3 2044 2093 2045 
-3 2093 2094 2045 
-3 2045 2094 2046 
-3 2094 2095 2046 
-3 2046 2095 2047 
-3 2095 2096 2047 
-3 2047 2096 2048 
-3 2096 2097 2048 
-3 2048 2097 2049 
-3 2097 2098 2049 
-3 2049 2098 2050 
-3 2098 2099 2050 
-3 2050 2099 2051 
-3 2099 2100 2051 
-3 2051 2100 2052 
-3 2100 2101 2052 
-3 2052 2101 2053 
-3 2101 2102 2053 
-3 2053 2102 2054 
-3 2102 2103 2054 
-3 2054 2103 2055 
-3 2103 2104 2055 
-3 2055 2104 2056 
-3 2104 2105 2056 
-3 2056 2105 2057 
-3 2105 2106 2057 
-3 2058 2107 2059 
-3 2107 2108 2059 
-3 2059 2108 2060 
-3 2108 2109 2060 
-3 2060 2109 2061 
-3 2109 2110 2061 
-3 2061 2110 2062 
-3 2110 2111 2062 
-3 2062 2111 2063 
-3 2111 2112 2063 
-3 2063 2112 2064 
-3 2112 2113 2064 
-3 2064 2113 2065 
-3 2113 2114 2065 
-3 2065 2114 2066 
-3 2114 2115 2066 
-3 2066 2115 2067 
-3 2115 2116 2067 
-3 2067 2116 2068 
-3 2116 2117 2068 
-3 2068 2117 2069 
-3 2117 2118 2069 
-3 2069 2118 2070 
-3 2118 2119 2070 
-3 2070 2119 2071 
-3 2119 2120 2071 
-3 2071 2120 2072 
-3 2120 2121 2072 
-3 2072 2121 2073 
-3 2121 2122 2073 
-3 2073 2122 2074 
-3 2122 2123 2074 
-3 2074 2123 2075 
-3 2123 2124 2075 
-3 2075 2124 2076 
-3 2124 2125 2076 
-3 2076 2125 2077 
-3 2125 2126 2077 
-3 2077 2126 2078 
-3 2126 2127 2078 
-3 2078 2127 2079 
-3 2127 2128 2079 
-3 2079 2128 2080 
-3 2128 2129 2080 
-3 2080 2129 2081 
-3 2129 2130 2081 
-3 2081 2130 2082 
-3 2130 2131 2082 
-3 2082 2131 2083 
-3 2131 2132 2083 
-3 2083 2132 2084 
-3 2132 2133 2084 
-3 2084 2133 2085 
-3 2133 2134 2085 
-3 2085 2134 2086 
-3 2134 2135 2086 
-3 2086 2135 2087 
-3 2135 2136 2087 
-3 2087 2136 2088 
-3 2136 2137 2088 
-3 2088 2137 2089 
-3 2137 2138 2089 
-3 2089 2138 2090 
-3 2138 2139 2090 
-3 2090 2139 2091 
-3 2139 2140 2091 
-3 2091 2140 2092 
-3 2140 2141 2092 
-3 2092 2141 2093 
-3 2141 2142 2093 
-3 2093 2142 2094 
-3 2142 2143 2094 
-3 2094 2143 2095 
-3 2143 2144 2095 
-3 2095 2144 2096 
-3 2144 2145 2096 
-3 2096 2145 2097 
-3 2145 2146 2097 
-3 2097 2146 2098 
-3 2146 2147 2098 
-3 2098 2147 2099 
-3 2147 2148 2099 
-3 2099 2148 2100 
-3 2148 2149 2100 
-3 2100 2149 2101 
-3 2149 2150 2101 
-3 2101 2150 2102 
-3 2150 2151 2102 
-3 2102 2151 2103 
-3 2151 2152 2103 
-3 2103 2152 2104 
-3 2152 2153 2104 
-3 2104 2153 2105 
-3 2153 2154 2105 
-3 2105 2154 2106 
-3 2154 2155 2106 
-3 2107 2156 2108 
-3 2156 2157 2108 
-3 2108 2157 2109 
-3 2157 2158 2109 
-3 2109 2158 2110 
-3 2158 2159 2110 
-3 2110 2159 2111 
-3 2159 2160 2111 
-3 2111 2160 2112 
-3 2160 2161 2112 
-3 2112 2161 2113 
-3 2161 2162 2113 
-3 2113 2162 2114 
-3 2162 2163 2114 
-3 2114 2163 2115 
-3 2163 2164 2115 
-3 2115 2164 2116 
-3 2164 2165 2116 
-3 2116 2165 2117 
-3 2165 2166 2117 
-3 2117 2166 2118 
-3 2166 2167 2118 
-3 2118 2167 2119 
-3 2167 2168 2119 
-3 2119 2168 2120 
-3 2168 2169 2120 
-3 2120 2169 2121 
-3 2169 2170 2121 
-3 2121 2170 2122 
-3 2170 2171 2122 
-3 2122 2171 2123 
-3 2171 2172 2123 
-3 2123 2172 2124 
-3 2172 2173 2124 
-3 2124 2173 2125 
-3 2173 2174 2125 
-3 2125 2174 2126 
-3 2174 2175 2126 
-3 2126 2175 2127 
-3 2175 2176 2127 
-3 2127 2176 2128 
-3 2176 2177 2128 
-3 2128 2177 2129 
-3 2177 2178 2129 
-3 2129 2178 2130 
-3 2178 2179 2130 
-3 2130 2179 2131 
-3 2179 2180 2131 
-3 2131 2180 2132 
-3 2180 2181 2132 
-3 2132 2181 2133 
-3 2181 2182 2133 
-3 2133 2182 2134 
-3 2182 2183 2134 
-3 2134 2183 2135 
-3 2183 2184 2135 
-3 2135 2184 2136 
-3 2184 2185 2136 
-3 2136 2185 2137 
-3 2185 2186 2137 
-3 2137 2186 2138 
-3 2186 2187 2138 
-3 2138 2187 2139 
-3 2187 2188 2139 
-3 2139 2188 2140 
-3 2188 2189 2140 
-3 2140 2189 2141 
-3 2189 2190 2141 
-3 2141 2190 2142 
-3 2190 2191 2142 
-3 2142 2191 2143 
-3 2191 2192 2143 
-3 2143 2192 2144 
-3 2192 2193 2144 
-3 2144 2193 2145 
-3 2193 2194 2145 
-3 2145 2194 2146 
-3 2194 2195 2146 
-3 2146 2195 2147 
-3 2195 2196 2147 
-3 2147 2196 2148 
-3 2196 2197 2148 
-3 2148 2197 2149 
-3 2197 2198 2149 
-3 2149 2198 2150 
-3 2198 2199 2150 
-3 2150 2199 2151 
-3 2199 2200 2151 
-3 2151 2200 2152 
-3 2200 2201 2152 
-3 2152 2201 2153 
-3 2201 2202 2153 
-3 2153 2202 2154 
-3 2202 2203 2154 
-3 2154 2203 2155 
-3 2203 2204 2155 
-
-CELL_DATA 4224
-POINT_DATA 2205
-TEXTURE_COORDINATES textureCoords 2 float
-0.232877 0.35225 0.240705 0.35225 0.248532 0.35225 0.25636 0.35225 0.264188 
-0.35225 0.272016 0.35225 0.279843 0.35225 0.287671 0.35225 0.295499 0.35225 
-0.303327 0.35225 0.311155 0.35225 0.318982 0.35225 0.32681 0.35225 0.334638 
-0.35225 0.342466 0.35225 0.350294 0.35225 0.358121 0.35225 0.365949 0.35225 
-0.373777 0.35225 0.381605 0.35225 0.389432 0.35225 0.39726 0.35225 0.405088 
-0.35225 0.412916 0.35225 0.420744 0.35225 0.428571 0.35225 0.436399 0.35225 
-0.444227 0.35225 0.452055 0.35225 0.459883 0.35225 0.46771 0.35225 0.475538 
-0.35225 0.483366 0.35225 0.491194 0.35225 0.499022 0.35225 0.506849 0.35225 
-0.514677 0.35225 0.522505 0.35225 0.530333 0.35225 0.53816 0.35225 0.545988 
-0.35225 0.553816 0.35225 0.561644 0.35225 0.569472 0.35225 0.577299 0.35225 
-0.585127 0.35225 0.592955 0.35225 0.600783 0.35225 0.608611 0.35225 0.232877 
-0.358121 0.240705 0.358121 0.248532 0.358121 0.25636 0.358121 0.264188 0.358121 
-0.272016 0.358121 0.279843 0.358121 0.287671 0.358121 0.295499 0.358121 0.303327 
-0.358121 0.311155 0.358121 0.318982 0.358121 0.32681 0.358121 0.334638 0.358121 
-0.342466 0.358121 0.350294 0.358121 0.358121 0.358121 0.365949 0.358121 0.373777 
-0.358121 0.381605 0.358121 0.389432 0.358121 0.39726 0.358121 0.405088 0.358121 
-0.412916 0.358121 0.420744 0.358121 0.428571 0.358121 0.436399 0.358121 0.444227 
-0.358121 0.452055 0.358121 0.459883 0.358121 0.46771 0.358121 0.475538 0.358121 
-0.483366 0.358121 0.491194 0.358121 0.499022 0.358121 0.506849 0.358121 0.514677 
-0.358121 0.522505 0.358121 0.530333 0.358121 0.53816 0.358121 0.545988 0.358121 
-0.553816 0.358121 0.561644 0.358121 0.569472 0.358121 0.577299 0.358121 0.585127 
-0.358121 0.592955 0.358121 0.600783 0.358121 0.608611 0.358121 0.232877 0.363992 
-0.240705 0.363992 0.248532 0.363992 0.25636 0.363992 0.264188 0.363992 0.272016 
-0.363992 0.279843 0.363992 0.287671 0.363992 0.295499 0.363992 0.303327 0.363992 
-0.311155 0.363992 0.318982 0.363992 0.32681 0.363992 0.334638 0.363992 0.342466 
-0.363992 0.350294 0.363992 0.358121 0.363992 0.365949 0.363992 0.373777 0.363992 
-0.381605 0.363992 0.389432 0.363992 0.39726 0.363992 0.405088 0.363992 0.412916 
-0.363992 0.420744 0.363992 0.428571 0.363992 0.436399 0.363992 0.444227 0.363992 
-0.452055 0.363992 0.459883 0.363992 0.46771 0.363992 0.475538 0.363992 0.483366 
-0.363992 0.491194 0.363992 0.499022 0.363992 0.506849 0.363992 0.514677 0.363992 
-0.522505 0.363992 0.530333 0.363992 0.53816 0.363992 0.545988 0.363992 0.553816 
-0.363992 0.561644 0.363992 0.569472 0.363992 0.577299 0.363992 0.585127 0.363992 
-0.592955 0.363992 0.600783 0.363992 0.608611 0.363992 0.232877 0.369863 0.240705 
-0.369863 0.248532 0.369863 0.25636 0.369863 0.264188 0.369863 0.272016 0.369863 
-0.279843 0.369863 0.287671 0.369863 0.295499 0.369863 0.303327 0.369863 0.311155 
-0.369863 0.318982 0.369863 0.32681 0.369863 0.334638 0.369863 0.342466 0.369863 
-0.350294 0.369863 0.358121 0.369863 0.365949 0.369863 0.373777 0.369863 0.381605 
-0.369863 0.389432 0.369863 0.39726 0.369863 0.405088 0.369863 0.412916 0.369863 
-0.420744 0.369863 0.428571 0.369863 0.436399 0.369863 0.444227 0.369863 0.452055 
-0.369863 0.459883 0.369863 0.46771 0.369863 0.475538 0.369863 0.483366 0.369863 
-0.491194 0.369863 0.499022 0.369863 0.506849 0.369863 0.514677 0.369863 0.522505 
-0.369863 0.530333 0.369863 0.53816 0.369863 0.545988 0.369863 0.553816 0.369863 
-0.561644 0.369863 0.569472 0.369863 0.577299 0.369863 0.585127 0.369863 0.592955 
-0.369863 0.600783 0.369863 0.608611 0.369863 0.232877 0.375734 0.240705 0.375734 
-0.248532 0.375734 0.25636 0.375734 0.264188 0.375734 0.272016 0.375734 0.279843 
-0.375734 0.287671 0.375734 0.295499 0.375734 0.303327 0.375734 0.311155 0.375734 
-0.318982 0.375734 0.32681 0.375734 0.334638 0.375734 0.342466 0.375734 0.350294 
-0.375734 0.358121 0.375734 0.365949 0.375734 0.373777 0.375734 0.381605 0.375734 
-0.389432 0.375734 0.39726 0.375734 0.405088 0.375734 0.412916 0.375734 0.420744 
-0.375734 0.428571 0.375734 0.436399 0.375734 0.444227 0.375734 0.452055 0.375734 
-0.459883 0.375734 0.46771 0.375734 0.475538 0.375734 0.483366 0.375734 0.491194 
-0.375734 0.499022 0.375734 0.506849 0.375734 0.514677 0.375734 0.522505 0.375734 
-0.530333 0.375734 0.53816 0.375734 0.545988 0.375734 0.553816 0.375734 0.561644 
-0.375734 0.569472 0.375734 0.577299 0.375734 0.585127 0.375734 0.592955 0.375734 
-0.600783 0.375734 0.608611 0.375734 0.232877 0.381605 0.240705 0.381605 0.248532 
-0.381605 0.25636 0.381605 0.264188 0.381605 0.272016 0.381605 0.279843 0.381605 
-0.287671 0.381605 0.295499 0.381605 0.303327 0.381605 0.311155 0.381605 0.318982 
-0.381605 0.32681 0.381605 0.334638 0.381605 0.342466 0.381605 0.350294 0.381605 
-0.358121 0.381605 0.365949 0.381605 0.373777 0.381605 0.381605 0.381605 0.389432 
-0.381605 0.39726 0.381605 0.405088 0.381605 0.412916 0.381605 0.420744 0.381605 
-0.428571 0.381605 0.436399 0.381605 0.444227 0.381605 0.452055 0.381605 0.459883 
-0.381605 0.46771 0.381605 0.475538 0.381605 0.483366 0.381605 0.491194 0.381605 
-0.499022 0.381605 0.506849 0.381605 0.514677 0.381605 0.522505 0.381605 0.530333 
-0.381605 0.53816 0.381605 0.545988 0.381605 0.553816 0.381605 0.561644 0.381605 
-0.569472 0.381605 0.577299 0.381605 0.585127 0.381605 0.592955 0.381605 0.600783 
-0.381605 0.608611 0.381605 0.232877 0.387476 0.240705 0.387476 0.248532 0.387476 
-0.25636 0.387476 0.264188 0.387476 0.272016 0.387476 0.279843 0.387476 0.287671 
-0.387476 0.295499 0.387476 0.303327 0.387476 0.311155 0.387476 0.318982 0.387476 
-0.32681 0.387476 0.334638 0.387476 0.342466 0.387476 0.350294 0.387476 0.358121 
-0.387476 0.365949 0.387476 0.373777 0.387476 0.381605 0.387476 0.389432 0.387476 
-0.39726 0.387476 0.405088 0.387476 0.412916 0.387476 0.420744 0.387476 0.428571 
-0.387476 0.436399 0.387476 0.444227 0.387476 0.452055 0.387476 0.459883 0.387476 
-0.46771 0.387476 0.475538 0.387476 0.483366 0.387476 0.491194 0.387476 0.499022 
-0.387476 0.506849 0.387476 0.514677 0.387476 0.522505 0.387476 0.530333 0.387476 
-0.53816 0.387476 0.545988 0.387476 0.553816 0.387476 0.561644 0.387476 0.569472 
-0.387476 0.577299 0.387476 0.585127 0.387476 0.592955 0.387476 0.600783 0.387476 
-0.608611 0.387476 0.232877 0.393346 0.240705 0.393346 0.248532 0.393346 0.25636 
-0.393346 0.264188 0.393346 0.272016 0.393346 0.279843 0.393346 0.287671 0.393346 
-0.295499 0.393346 0.303327 0.393346 0.311155 0.393346 0.318982 0.393346 0.32681 
-0.393346 0.334638 0.393346 0.342466 0.393346 0.350294 0.393346 0.358121 0.393346 
-0.365949 0.393346 0.373777 0.393346 0.381605 0.393346 0.389432 0.393346 0.39726 
-0.393346 0.405088 0.393346 0.412916 0.393346 0.420744 0.393346 0.428571 0.393346 
-0.436399 0.393346 0.444227 0.393346 0.452055 0.393346 0.459883 0.393346 0.46771 
-0.393346 0.475538 0.393346 0.483366 0.393346 0.491194 0.393346 0.499022 0.393346 
-0.506849 0.393346 0.514677 0.393346 0.522505 0.393346 0.530333 0.393346 0.53816 
-0.393346 0.545988 0.393346 0.553816 0.393346 0.561644 0.393346 0.569472 0.393346 
-0.577299 0.393346 0.585127 0.393346 0.592955 0.393346 0.600783 0.393346 0.608611 
-0.393346 0.232877 0.399217 0.240705 0.399217 0.248532 0.399217 0.25636 0.399217 
-0.264188 0.399217 0.272016 0.399217 0.279843 0.399217 0.287671 0.399217 0.295499 
-0.399217 0.303327 0.399217 0.311155 0.399217 0.318982 0.399217 0.32681 0.399217 
-0.334638 0.399217 0.342466 0.399217 0.350294 0.399217 0.358121 0.399217 0.365949 
-0.399217 0.373777 0.399217 0.381605 0.399217 0.389432 0.399217 0.39726 0.399217 
-0.405088 0.399217 0.412916 0.399217 0.420744 0.399217 0.428571 0.399217 0.436399 
-0.399217 0.444227 0.399217 0.452055 0.399217 0.459883 0.399217 0.46771 0.399217 
-0.475538 0.399217 0.483366 0.399217 0.491194 0.399217 0.499022 0.399217 0.506849 
-0.399217 0.514677 0.399217 0.522505 0.399217 0.530333 0.399217 0.53816 0.399217 
-0.545988 0.399217 0.553816 0.399217 0.561644 0.399217 0.569472 0.399217 0.577299 
-0.399217 0.585127 0.399217 0.592955 0.399217 0.600783 0.399217 0.608611 0.399217 
-0.232877 0.405088 0.240705 0.405088 0.248532 0.405088 0.25636 0.405088 0.264188 
-0.405088 0.272016 0.405088 0.279843 0.405088 0.287671 0.405088 0.295499 0.405088 
-0.303327 0.405088 0.311155 0.405088 0.318982 0.405088 0.32681 0.405088 0.334638 
-0.405088 0.342466 0.405088 0.350294 0.405088 0.358121 0.405088 0.365949 0.405088 
-0.373777 0.405088 0.381605 0.405088 0.389432 0.405088 0.39726 0.405088 0.405088 
-0.405088 0.412916 0.405088 0.420744 0.405088 0.428571 0.405088 0.436399 0.405088 
-0.444227 0.405088 0.452055 0.405088 0.459883 0.405088 0.46771 0.405088 0.475538 
-0.405088 0.483366 0.405088 0.491194 0.405088 0.499022 0.405088 0.506849 0.405088 
-0.514677 0.405088 0.522505 0.405088 0.530333 0.405088 0.53816 0.405088 0.545988 
-0.405088 0.553816 0.405088 0.561644 0.405088 0.569472 0.405088 0.577299 0.405088 
-0.585127 0.405088 0.592955 0.405088 0.600783 0.405088 0.608611 0.405088 0.232877 
-0.410959 0.240705 0.410959 0.248532 0.410959 0.25636 0.410959 0.264188 0.410959 
-0.272016 0.410959 0.279843 0.410959 0.287671 0.410959 0.295499 0.410959 0.303327 
-0.410959 0.311155 0.410959 0.318982 0.410959 0.32681 0.410959 0.334638 0.410959 
-0.342466 0.410959 0.350294 0.410959 0.358121 0.410959 0.365949 0.410959 0.373777 
-0.410959 0.381605 0.410959 0.389432 0.410959 0.39726 0.410959 0.405088 0.410959 
-0.412916 0.410959 0.420744 0.410959 0.428571 0.410959 0.436399 0.410959 0.444227 
-0.410959 0.452055 0.410959 0.459883 0.410959 0.46771 0.410959 0.475538 0.410959 
-0.483366 0.410959 0.491194 0.410959 0.499022 0.410959 0.506849 0.410959 0.514677 
-0.410959 0.522505 0.410959 0.530333 0.410959 0.53816 0.410959 0.545988 0.410959 
-0.553816 0.410959 0.561644 0.410959 0.569472 0.410959 0.577299 0.410959 0.585127 
-0.410959 0.592955 0.410959 0.600783 0.410959 0.608611 0.410959 0.232877 0.41683 
-0.240705 0.41683 0.248532 0.41683 0.25636 0.41683 0.264188 0.41683 0.272016 
-0.41683 0.279843 0.41683 0.287671 0.41683 0.295499 0.41683 0.303327 0.41683 
-0.311155 0.41683 0.318982 0.41683 0.32681 0.41683 0.334638 0.41683 0.342466 
-0.41683 0.350294 0.41683 0.358121 0.41683 0.365949 0.41683 0.373777 0.41683 
-0.381605 0.41683 0.389432 0.41683 0.39726 0.41683 0.405088 0.41683 0.412916 
-0.41683 0.420744 0.41683 0.428571 0.41683 0.436399 0.41683 0.444227 0.41683 
-0.452055 0.41683 0.459883 0.41683 0.46771 0.41683 0.475538 0.41683 0.483366 
-0.41683 0.491194 0.41683 0.499022 0.41683 0.506849 0.41683 0.514677 0.41683 
-0.522505 0.41683 0.530333 0.41683 0.53816 0.41683 0.545988 0.41683 0.553816 
-0.41683 0.561644 0.41683 0.569472 0.41683 0.577299 0.41683 0.585127 0.41683 
-0.592955 0.41683 0.600783 0.41683 0.608611 0.41683 0.232877 0.422701 0.240705 
-0.422701 0.248532 0.422701 0.25636 0.422701 0.264188 0.422701 0.272016 0.422701 
-0.279843 0.422701 0.287671 0.422701 0.295499 0.422701 0.303327 0.422701 0.311155 
-0.422701 0.318982 0.422701 0.32681 0.422701 0.334638 0.422701 0.342466 0.422701 
-0.350294 0.422701 0.358121 0.422701 0.365949 0.422701 0.373777 0.422701 0.381605 
-0.422701 0.389432 0.422701 0.39726 0.422701 0.405088 0.422701 0.412916 0.422701 
-0.420744 0.422701 0.428571 0.422701 0.436399 0.422701 0.444227 0.422701 0.452055 
-0.422701 0.459883 0.422701 0.46771 0.422701 0.475538 0.422701 0.483366 0.422701 
-0.491194 0.422701 0.499022 0.422701 0.506849 0.422701 0.514677 0.422701 0.522505 
-0.422701 0.530333 0.422701 0.53816 0.422701 0.545988 0.422701 0.553816 0.422701 
-0.561644 0.422701 0.569472 0.422701 0.577299 0.422701 0.585127 0.422701 0.592955 
-0.422701 0.600783 0.422701 0.608611 0.422701 0.232877 0.428571 0.240705 0.428571 
-0.248532 0.428571 0.25636 0.428571 0.264188 0.428571 0.272016 0.428571 0.279843 
-0.428571 0.287671 0.428571 0.295499 0.428571 0.303327 0.428571 0.311155 0.428571 
-0.318982 0.428571 0.32681 0.428571 0.334638 0.428571 0.342466 0.428571 0.350294 
-0.428571 0.358121 0.428571 0.365949 0.428571 0.373777 0.428571 0.381605 0.428571 
-0.389432 0.428571 0.39726 0.428571 0.405088 0.428571 0.412916 0.428571 0.420744 
-0.428571 0.428571 0.428571 0.436399 0.428571 0.444227 0.428571 0.452055 0.428571 
-0.459883 0.428571 0.46771 0.428571 0.475538 0.428571 0.483366 0.428571 0.491194 
-0.428571 0.499022 0.428571 0.506849 0.428571 0.514677 0.428571 0.522505 0.428571 
-0.530333 0.428571 0.53816 0.428571 0.545988 0.428571 0.553816 0.428571 0.561644 
-0.428571 0.569472 0.428571 0.577299 0.428571 0.585127 0.428571 0.592955 0.428571 
-0.600783 0.428571 0.608611 0.428571 0.232877 0.434442 0.240705 0.434442 0.248532 
-0.434442 0.25636 0.434442 0.264188 0.434442 0.272016 0.434442 0.279843 0.434442 
-0.287671 0.434442 0.295499 0.434442 0.303327 0.434442 0.311155 0.434442 0.318982 
-0.434442 0.32681 0.434442 0.334638 0.434442 0.342466 0.434442 0.350294 0.434442 
-0.358121 0.434442 0.365949 0.434442 0.373777 0.434442 0.381605 0.434442 0.389432 
-0.434442 0.39726 0.434442 0.405088 0.434442 0.412916 0.434442 0.420744 0.434442 
-0.428571 0.434442 0.436399 0.434442 0.444227 0.434442 0.452055 0.434442 0.459883 
-0.434442 0.46771 0.434442 0.475538 0.434442 0.483366 0.434442 0.491194 0.434442 
-0.499022 0.434442 0.506849 0.434442 0.514677 0.434442 0.522505 0.434442 0.530333 
-0.434442 0.53816 0.434442 0.545988 0.434442 0.553816 0.434442 0.561644 0.434442 
-0.569472 0.434442 0.577299 0.434442 0.585127 0.434442 0.592955 0.434442 0.600783 
-0.434442 0.608611 0.434442 0.232877 0.440313 0.240705 0.440313 0.248532 0.440313 
-0.25636 0.440313 0.264188 0.440313 0.272016 0.440313 0.279843 0.440313 0.287671 
-0.440313 0.295499 0.440313 0.303327 0.440313 0.311155 0.440313 0.318982 0.440313 
-0.32681 0.440313 0.334638 0.440313 0.342466 0.440313 0.350294 0.440313 0.358121 
-0.440313 0.365949 0.440313 0.373777 0.440313 0.381605 0.440313 0.389432 0.440313 
-0.39726 0.440313 0.405088 0.440313 0.412916 0.440313 0.420744 0.440313 0.428571 
-0.440313 0.436399 0.440313 0.444227 0.440313 0.452055 0.440313 0.459883 0.440313 
-0.46771 0.440313 0.475538 0.440313 0.483366 0.440313 0.491194 0.440313 0.499022 
-0.440313 0.506849 0.440313 0.514677 0.440313 0.522505 0.440313 0.530333 0.440313 
-0.53816 0.440313 0.545988 0.440313 0.553816 0.440313 0.561644 0.440313 0.569472 
-0.440313 0.577299 0.440313 0.585127 0.440313 0.592955 0.440313 0.600783 0.440313 
-0.608611 0.440313 0.232877 0.446184 0.240705 0.446184 0.248532 0.446184 0.25636 
-0.446184 0.264188 0.446184 0.272016 0.446184 0.279843 0.446184 0.287671 0.446184 
-0.295499 0.446184 0.303327 0.446184 0.311155 0.446184 0.318982 0.446184 0.32681 
-0.446184 0.334638 0.446184 0.342466 0.446184 0.350294 0.446184 0.358121 0.446184 
-0.365949 0.446184 0.373777 0.446184 0.381605 0.446184 0.389432 0.446184 0.39726 
-0.446184 0.405088 0.446184 0.412916 0.446184 0.420744 0.446184 0.428571 0.446184 
-0.436399 0.446184 0.444227 0.446184 0.452055 0.446184 0.459883 0.446184 0.46771 
-0.446184 0.475538 0.446184 0.483366 0.446184 0.491194 0.446184 0.499022 0.446184 
-0.506849 0.446184 0.514677 0.446184 0.522505 0.446184 0.530333 0.446184 0.53816 
-0.446184 0.545988 0.446184 0.553816 0.446184 0.561644 0.446184 0.569472 0.446184 
-0.577299 0.446184 0.585127 0.446184 0.592955 0.446184 0.600783 0.446184 0.608611 
-0.446184 0.232877 0.452055 0.240705 0.452055 0.248532 0.452055 0.25636 0.452055 
-0.264188 0.452055 0.272016 0.452055 0.279843 0.452055 0.287671 0.452055 0.295499 
-0.452055 0.303327 0.452055 0.311155 0.452055 0.318982 0.452055 0.32681 0.452055 
-0.334638 0.452055 0.342466 0.452055 0.350294 0.452055 0.358121 0.452055 0.365949 
-0.452055 0.373777 0.452055 0.381605 0.452055 0.389432 0.452055 0.39726 0.452055 
-0.405088 0.452055 0.412916 0.452055 0.420744 0.452055 0.428571 0.452055 0.436399 
-0.452055 0.444227 0.452055 0.452055 0.452055 0.459883 0.452055 0.46771 0.452055 
-0.475538 0.452055 0.483366 0.452055 0.491194 0.452055 0.499022 0.452055 0.506849 
-0.452055 0.514677 0.452055 0.522505 0.452055 0.530333 0.452055 0.53816 0.452055 
-0.545988 0.452055 0.553816 0.452055 0.561644 0.452055 0.569472 0.452055 0.577299 
-0.452055 0.585127 0.452055 0.592955 0.452055 0.600783 0.452055 0.608611 0.452055 
-0.232877 0.457926 0.240705 0.457926 0.248532 0.457926 0.25636 0.457926 0.264188 
-0.457926 0.272016 0.457926 0.279843 0.457926 0.287671 0.457926 0.295499 0.457926 
-0.303327 0.457926 0.311155 0.457926 0.318982 0.457926 0.32681 0.457926 0.334638 
-0.457926 0.342466 0.457926 0.350294 0.457926 0.358121 0.457926 0.365949 0.457926 
-0.373777 0.457926 0.381605 0.457926 0.389432 0.457926 0.39726 0.457926 0.405088 
-0.457926 0.412916 0.457926 0.420744 0.457926 0.428571 0.457926 0.436399 0.457926 
-0.444227 0.457926 0.452055 0.457926 0.459883 0.457926 0.46771 0.457926 0.475538 
-0.457926 0.483366 0.457926 0.491194 0.457926 0.499022 0.457926 0.506849 0.457926 
-0.514677 0.457926 0.522505 0.457926 0.530333 0.457926 0.53816 0.457926 0.545988 
-0.457926 0.553816 0.457926 0.561644 0.457926 0.569472 0.457926 0.577299 0.457926 
-0.585127 0.457926 0.592955 0.457926 0.600783 0.457926 0.608611 0.457926 0.232877 
-0.463796 0.240705 0.463796 0.248532 0.463796 0.25636 0.463796 0.264188 0.463796 
-0.272016 0.463796 0.279843 0.463796 0.287671 0.463796 0.295499 0.463796 0.303327 
-0.463796 0.311155 0.463796 0.318982 0.463796 0.32681 0.463796 0.334638 0.463796 
-0.342466 0.463796 0.350294 0.463796 0.358121 0.463796 0.365949 0.463796 0.373777 
-0.463796 0.381605 0.463796 0.389432 0.463796 0.39726 0.463796 0.405088 0.463796 
-0.412916 0.463796 0.420744 0.463796 0.428571 0.463796 0.436399 0.463796 0.444227 
-0.463796 0.452055 0.463796 0.459883 0.463796 0.46771 0.463796 0.475538 0.463796 
-0.483366 0.463796 0.491194 0.463796 0.499022 0.463796 0.506849 0.463796 0.514677 
-0.463796 0.522505 0.463796 0.530333 0.463796 0.53816 0.463796 0.545988 0.463796 
-0.553816 0.463796 0.561644 0.463796 0.569472 0.463796 0.577299 0.463796 0.585127 
-0.463796 0.592955 0.463796 0.600783 0.463796 0.608611 0.463796 0.232877 0.469667 
-0.240705 0.469667 0.248532 0.469667 0.25636 0.469667 0.264188 0.469667 0.272016 
-0.469667 0.279843 0.469667 0.287671 0.469667 0.295499 0.469667 0.303327 0.469667 
-0.311155 0.469667 0.318982 0.469667 0.32681 0.469667 0.334638 0.469667 0.342466 
-0.469667 0.350294 0.469667 0.358121 0.469667 0.365949 0.469667 0.373777 0.469667 
-0.381605 0.469667 0.389432 0.469667 0.39726 0.469667 0.405088 0.469667 0.412916 
-0.469667 0.420744 0.469667 0.428571 0.469667 0.436399 0.469667 0.444227 0.469667 
-0.452055 0.469667 0.459883 0.469667 0.46771 0.469667 0.475538 0.469667 0.483366 
-0.469667 0.491194 0.469667 0.499022 0.469667 0.506849 0.469667 0.514677 0.469667 
-0.522505 0.469667 0.530333 0.469667 0.53816 0.469667 0.545988 0.469667 0.553816 
-0.469667 0.561644 0.469667 0.569472 0.469667 0.577299 0.469667 0.585127 0.469667 
-0.592955 0.469667 0.600783 0.469667 0.608611 0.469667 0.232877 0.475538 0.240705 
-0.475538 0.248532 0.475538 0.25636 0.475538 0.264188 0.475538 0.272016 0.475538 
-0.279843 0.475538 0.287671 0.475538 0.295499 0.475538 0.303327 0.475538 0.311155 
-0.475538 0.318982 0.475538 0.32681 0.475538 0.334638 0.475538 0.342466 0.475538 
-0.350294 0.475538 0.358121 0.475538 0.365949 0.475538 0.373777 0.475538 0.381605 
-0.475538 0.389432 0.475538 0.39726 0.475538 0.405088 0.475538 0.412916 0.475538 
-0.420744 0.475538 0.428571 0.475538 0.436399 0.475538 0.444227 0.475538 0.452055 
-0.475538 0.459883 0.475538 0.46771 0.475538 0.475538 0.475538 0.483366 0.475538 
-0.491194 0.475538 0.499022 0.475538 0.506849 0.475538 0.514677 0.475538 0.522505 
-0.475538 0.530333 0.475538 0.53816 0.475538 0.545988 0.475538 0.553816 0.475538 
-0.561644 0.475538 0.569472 0.475538 0.577299 0.475538 0.585127 0.475538 0.592955 
-0.475538 0.600783 0.475538 0.608611 0.475538 0.232877 0.481409 0.240705 0.481409 
-0.248532 0.481409 0.25636 0.481409 0.264188 0.481409 0.272016 0.481409 0.279843 
-0.481409 0.287671 0.481409 0.295499 0.481409 0.303327 0.481409 0.311155 0.481409 
-0.318982 0.481409 0.32681 0.481409 0.334638 0.481409 0.342466 0.481409 0.350294 
-0.481409 0.358121 0.481409 0.365949 0.481409 0.373777 0.481409 0.381605 0.481409 
-0.389432 0.481409 0.39726 0.481409 0.405088 0.481409 0.412916 0.481409 0.420744 
-0.481409 0.428571 0.481409 0.436399 0.481409 0.444227 0.481409 0.452055 0.481409 
-0.459883 0.481409 0.46771 0.481409 0.475538 0.481409 0.483366 0.481409 0.491194 
-0.481409 0.499022 0.481409 0.506849 0.481409 0.514677 0.481409 0.522505 0.481409 
-0.530333 0.481409 0.53816 0.481409 0.545988 0.481409 0.553816 0.481409 0.561644 
-0.481409 0.569472 0.481409 0.577299 0.481409 0.585127 0.481409 0.592955 0.481409 
-0.600783 0.481409 0.608611 0.481409 0.232877 0.48728 0.240705 0.48728 0.248532 
-0.48728 0.25636 0.48728 0.264188 0.48728 0.272016 0.48728 0.279843 0.48728 
-0.287671 0.48728 0.295499 0.48728 0.303327 0.48728 0.311155 0.48728 0.318982 
-0.48728 0.32681 0.48728 0.334638 0.48728 0.342466 0.48728 0.350294 0.48728 
-0.358121 0.48728 0.365949 0.48728 0.373777 0.48728 0.381605 0.48728 0.389432 
-0.48728 0.39726 0.48728 0.405088 0.48728 0.412916 0.48728 0.420744 0.48728 
-0.428571 0.48728 0.436399 0.48728 0.444227 0.48728 0.452055 0.48728 0.459883 
-0.48728 0.46771 0.48728 0.475538 0.48728 0.483366 0.48728 0.491194 0.48728 
-0.499022 0.48728 0.506849 0.48728 0.514677 0.48728 0.522505 0.48728 0.530333 
-0.48728 0.53816 0.48728 0.545988 0.48728 0.553816 0.48728 0.561644 0.48728 
-0.569472 0.48728 0.577299 0.48728 0.585127 0.48728 0.592955 0.48728 0.600783 
-0.48728 0.608611 0.48728 0.232877 0.493151 0.240705 0.493151 0.248532 0.493151 
-0.25636 0.493151 0.264188 0.493151 0.272016 0.493151 0.279843 0.493151 0.287671 
-0.493151 0.295499 0.493151 0.303327 0.493151 0.311155 0.493151 0.318982 0.493151 
-0.32681 0.493151 0.334638 0.493151 0.342466 0.493151 0.350294 0.493151 0.358121 
-0.493151 0.365949 0.493151 0.373777 0.493151 0.381605 0.493151 0.389432 0.493151 
-0.39726 0.493151 0.405088 0.493151 0.412916 0.493151 0.420744 0.493151 0.428571 
-0.493151 0.436399 0.493151 0.444227 0.493151 0.452055 0.493151 0.459883 0.493151 
-0.46771 0.493151 0.475538 0.493151 0.483366 0.493151 0.491194 0.493151 0.499022 
-0.493151 0.506849 0.493151 0.514677 0.493151 0.522505 0.493151 0.530333 0.493151 
-0.53816 0.493151 0.545988 0.493151 0.553816 0.493151 0.561644 0.493151 0.569472 
-0.493151 0.577299 0.493151 0.585127 0.493151 0.592955 0.493151 0.600783 0.493151 
-0.608611 0.493151 0.232877 0.499022 0.240705 0.499022 0.248532 0.499022 0.25636 
-0.499022 0.264188 0.499022 0.272016 0.499022 0.279843 0.499022 0.287671 0.499022 
-0.295499 0.499022 0.303327 0.499022 0.311155 0.499022 0.318982 0.499022 0.32681 
-0.499022 0.334638 0.499022 0.342466 0.499022 0.350294 0.499022 0.358121 0.499022 
-0.365949 0.499022 0.373777 0.499022 0.381605 0.499022 0.389432 0.499022 0.39726 
-0.499022 0.405088 0.499022 0.412916 0.499022 0.420744 0.499022 0.428571 0.499022 
-0.436399 0.499022 0.444227 0.499022 0.452055 0.499022 0.459883 0.499022 0.46771 
-0.499022 0.475538 0.499022 0.483366 0.499022 0.491194 0.499022 0.499022 0.499022 
-0.506849 0.499022 0.514677 0.499022 0.522505 0.499022 0.530333 0.499022 0.53816 
-0.499022 0.545988 0.499022 0.553816 0.499022 0.561644 0.499022 0.569472 0.499022 
-0.577299 0.499022 0.585127 0.499022 0.592955 0.499022 0.600783 0.499022 0.608611 
-0.499022 0.232877 0.504892 0.240705 0.504892 0.248532 0.504892 0.25636 0.504892 
-0.264188 0.504892 0.272016 0.504892 0.279843 0.504892 0.287671 0.504892 0.295499 
-0.504892 0.303327 0.504892 0.311155 0.504892 0.318982 0.504892 0.32681 0.504892 
-0.334638 0.504892 0.342466 0.504892 0.350294 0.504892 0.358121 0.504892 0.365949 
-0.504892 0.373777 0.504892 0.381605 0.504892 0.389432 0.504892 0.39726 0.504892 
-0.405088 0.504892 0.412916 0.504892 0.420744 0.504892 0.428571 0.504892 0.436399 
-0.504892 0.444227 0.504892 0.452055 0.504892 0.459883 0.504892 0.46771 0.504892 
-0.475538 0.504892 0.483366 0.504892 0.491194 0.504892 0.499022 0.504892 0.506849 
-0.504892 0.514677 0.504892 0.522505 0.504892 0.530333 0.504892 0.53816 0.504892 
-0.545988 0.504892 0.553816 0.504892 0.561644 0.504892 0.569472 0.504892 0.577299 
-0.504892 0.585127 0.504892 0.592955 0.504892 0.600783 0.504892 0.608611 0.504892 
-0.232877 0.510763 0.240705 0.510763 0.248532 0.510763 0.25636 0.510763 0.264188 
-0.510763 0.272016 0.510763 0.279843 0.510763 0.287671 0.510763 0.295499 0.510763 
-0.303327 0.510763 0.311155 0.510763 0.318982 0.510763 0.32681 0.510763 0.334638 
-0.510763 0.342466 0.510763 0.350294 0.510763 0.358121 0.510763 0.365949 0.510763 
-0.373777 0.510763 0.381605 0.510763 0.389432 0.510763 0.39726 0.510763 0.405088 
-0.510763 0.412916 0.510763 0.420744 0.510763 0.428571 0.510763 0.436399 0.510763 
-0.444227 0.510763 0.452055 0.510763 0.459883 0.510763 0.46771 0.510763 0.475538 
-0.510763 0.483366 0.510763 0.491194 0.510763 0.499022 0.510763 0.506849 0.510763 
-0.514677 0.510763 0.522505 0.510763 0.530333 0.510763 0.53816 0.510763 0.545988 
-0.510763 0.553816 0.510763 0.561644 0.510763 0.569472 0.510763 0.577299 0.510763 
-0.585127 0.510763 0.592955 0.510763 0.600783 0.510763 0.608611 0.510763 0.232877 
-0.516634 0.240705 0.516634 0.248532 0.516634 0.25636 0.516634 0.264188 0.516634 
-0.272016 0.516634 0.279843 0.516634 0.287671 0.516634 0.295499 0.516634 0.303327 
-0.516634 0.311155 0.516634 0.318982 0.516634 0.32681 0.516634 0.334638 0.516634 
-0.342466 0.516634 0.350294 0.516634 0.358121 0.516634 0.365949 0.516634 0.373777 
-0.516634 0.381605 0.516634 0.389432 0.516634 0.39726 0.516634 0.405088 0.516634 
-0.412916 0.516634 0.420744 0.516634 0.428571 0.516634 0.436399 0.516634 0.444227 
-0.516634 0.452055 0.516634 0.459883 0.516634 0.46771 0.516634 0.475538 0.516634 
-0.483366 0.516634 0.491194 0.516634 0.499022 0.516634 0.506849 0.516634 0.514677 
-0.516634 0.522505 0.516634 0.530333 0.516634 0.53816 0.516634 0.545988 0.516634 
-0.553816 0.516634 0.561644 0.516634 0.569472 0.516634 0.577299 0.516634 0.585127 
-0.516634 0.592955 0.516634 0.600783 0.516634 0.608611 0.516634 0.232877 0.522505 
-0.240705 0.522505 0.248532 0.522505 0.25636 0.522505 0.264188 0.522505 0.272016 
-0.522505 0.279843 0.522505 0.287671 0.522505 0.295499 0.522505 0.303327 0.522505 
-0.311155 0.522505 0.318982 0.522505 0.32681 0.522505 0.334638 0.522505 0.342466 
-0.522505 0.350294 0.522505 0.358121 0.522505 0.365949 0.522505 0.373777 0.522505 
-0.381605 0.522505 0.389432 0.522505 0.39726 0.522505 0.405088 0.522505 0.412916 
-0.522505 0.420744 0.522505 0.428571 0.522505 0.436399 0.522505 0.444227 0.522505 
-0.452055 0.522505 0.459883 0.522505 0.46771 0.522505 0.475538 0.522505 0.483366 
-0.522505 0.491194 0.522505 0.499022 0.522505 0.506849 0.522505 0.514677 0.522505 
-0.522505 0.522505 0.530333 0.522505 0.53816 0.522505 0.545988 0.522505 0.553816 
-0.522505 0.561644 0.522505 0.569472 0.522505 0.577299 0.522505 0.585127 0.522505 
-0.592955 0.522505 0.600783 0.522505 0.608611 0.522505 0.232877 0.528376 0.240705 
-0.528376 0.248532 0.528376 0.25636 0.528376 0.264188 0.528376 0.272016 0.528376 
-0.279843 0.528376 0.287671 0.528376 0.295499 0.528376 0.303327 0.528376 0.311155 
-0.528376 0.318982 0.528376 0.32681 0.528376 0.334638 0.528376 0.342466 0.528376 
-0.350294 0.528376 0.358121 0.528376 0.365949 0.528376 0.373777 0.528376 0.381605 
-0.528376 0.389432 0.528376 0.39726 0.528376 0.405088 0.528376 0.412916 0.528376 
-0.420744 0.528376 0.428571 0.528376 0.436399 0.528376 0.444227 0.528376 0.452055 
-0.528376 0.459883 0.528376 0.46771 0.528376 0.475538 0.528376 0.483366 0.528376 
-0.491194 0.528376 0.499022 0.528376 0.506849 0.528376 0.514677 0.528376 0.522505 
-0.528376 0.530333 0.528376 0.53816 0.528376 0.545988 0.528376 0.553816 0.528376 
-0.561644 0.528376 0.569472 0.528376 0.577299 0.528376 0.585127 0.528376 0.592955 
-0.528376 0.600783 0.528376 0.608611 0.528376 0.232877 0.534247 0.240705 0.534247 
-0.248532 0.534247 0.25636 0.534247 0.264188 0.534247 0.272016 0.534247 0.279843 
-0.534247 0.287671 0.534247 0.295499 0.534247 0.303327 0.534247 0.311155 0.534247 
-0.318982 0.534247 0.32681 0.534247 0.334638 0.534247 0.342466 0.534247 0.350294 
-0.534247 0.358121 0.534247 0.365949 0.534247 0.373777 0.534247 0.381605 0.534247 
-0.389432 0.534247 0.39726 0.534247 0.405088 0.534247 0.412916 0.534247 0.420744 
-0.534247 0.428571 0.534247 0.436399 0.534247 0.444227 0.534247 0.452055 0.534247 
-0.459883 0.534247 0.46771 0.534247 0.475538 0.534247 0.483366 0.534247 0.491194 
-0.534247 0.499022 0.534247 0.506849 0.534247 0.514677 0.534247 0.522505 0.534247 
-0.530333 0.534247 0.53816 0.534247 0.545988 0.534247 0.553816 0.534247 0.561644 
-0.534247 0.569472 0.534247 0.577299 0.534247 0.585127 0.534247 0.592955 0.534247 
-0.600783 0.534247 0.608611 0.534247 0.232877 0.540117 0.240705 0.540117 0.248532 
-0.540117 0.25636 0.540117 0.264188 0.540117 0.272016 0.540117 0.279843 0.540117 
-0.287671 0.540117 0.295499 0.540117 0.303327 0.540117 0.311155 0.540117 0.318982 
-0.540117 0.32681 0.540117 0.334638 0.540117 0.342466 0.540117 0.350294 0.540117 
-0.358121 0.540117 0.365949 0.540117 0.373777 0.540117 0.381605 0.540117 0.389432 
-0.540117 0.39726 0.540117 0.405088 0.540117 0.412916 0.540117 0.420744 0.540117 
-0.428571 0.540117 0.436399 0.540117 0.444227 0.540117 0.452055 0.540117 0.459883 
-0.540117 0.46771 0.540117 0.475538 0.540117 0.483366 0.540117 0.491194 0.540117 
-0.499022 0.540117 0.506849 0.540117 0.514677 0.540117 0.522505 0.540117 0.530333 
-0.540117 0.53816 0.540117 0.545988 0.540117 0.553816 0.540117 0.561644 0.540117 
-0.569472 0.540117 0.577299 0.540117 0.585127 0.540117 0.592955 0.540117 0.600783 
-0.540117 0.608611 0.540117 0.232877 0.545988 0.240705 0.545988 0.248532 0.545988 
-0.25636 0.545988 0.264188 0.545988 0.272016 0.545988 0.279843 0.545988 0.287671 
-0.545988 0.295499 0.545988 0.303327 0.545988 0.311155 0.545988 0.318982 0.545988 
-0.32681 0.545988 0.334638 0.545988 0.342466 0.545988 0.350294 0.545988 0.358121 
-0.545988 0.365949 0.545988 0.373777 0.545988 0.381605 0.545988 0.389432 0.545988 
-0.39726 0.545988 0.405088 0.545988 0.412916 0.545988 0.420744 0.545988 0.428571 
-0.545988 0.436399 0.545988 0.444227 0.545988 0.452055 0.545988 0.459883 0.545988 
-0.46771 0.545988 0.475538 0.545988 0.483366 0.545988 0.491194 0.545988 0.499022 
-0.545988 0.506849 0.545988 0.514677 0.545988 0.522505 0.545988 0.530333 0.545988 
-0.53816 0.545988 0.545988 0.545988 0.553816 0.545988 0.561644 0.545988 0.569472 
-0.545988 0.577299 0.545988 0.585127 0.545988 0.592955 0.545988 0.600783 0.545988 
-0.608611 0.545988 0.232877 0.551859 0.240705 0.551859 0.248532 0.551859 0.25636 
-0.551859 0.264188 0.551859 0.272016 0.551859 0.279843 0.551859 0.287671 0.551859 
-0.295499 0.551859 0.303327 0.551859 0.311155 0.551859 0.318982 0.551859 0.32681 
-0.551859 0.334638 0.551859 0.342466 0.551859 0.350294 0.551859 0.358121 0.551859 
-0.365949 0.551859 0.373777 0.551859 0.381605 0.551859 0.389432 0.551859 0.39726 
-0.551859 0.405088 0.551859 0.412916 0.551859 0.420744 0.551859 0.428571 0.551859 
-0.436399 0.551859 0.444227 0.551859 0.452055 0.551859 0.459883 0.551859 0.46771 
-0.551859 0.475538 0.551859 0.483366 0.551859 0.491194 0.551859 0.499022 0.551859 
-0.506849 0.551859 0.514677 0.551859 0.522505 0.551859 0.530333 0.551859 0.53816 
-0.551859 0.545988 0.551859 0.553816 0.551859 0.561644 0.551859 0.569472 0.551859 
-0.577299 0.551859 0.585127 0.551859 0.592955 0.551859 0.600783 0.551859 0.608611 
-0.551859 0.232877 0.55773 0.240705 0.55773 0.248532 0.55773 0.25636 0.55773 
-0.264188 0.55773 0.272016 0.55773 0.279843 0.55773 0.287671 0.55773 0.295499 
-0.55773 0.303327 0.55773 0.311155 0.55773 0.318982 0.55773 0.32681 0.55773 
-0.334638 0.55773 0.342466 0.55773 0.350294 0.55773 0.358121 0.55773 0.365949 
-0.55773 0.373777 0.55773 0.381605 0.55773 0.389432 0.55773 0.39726 0.55773 
-0.405088 0.55773 0.412916 0.55773 0.420744 0.55773 0.428571 0.55773 0.436399 
-0.55773 0.444227 0.55773 0.452055 0.55773 0.459883 0.55773 0.46771 0.55773 
-0.475538 0.55773 0.483366 0.55773 0.491194 0.55773 0.499022 0.55773 0.506849 
-0.55773 0.514677 0.55773 0.522505 0.55773 0.530333 0.55773 0.53816 0.55773 
-0.545988 0.55773 0.553816 0.55773 0.561644 0.55773 0.569472 0.55773 0.577299 
-0.55773 0.585127 0.55773 0.592955 0.55773 0.600783 0.55773 0.608611 0.55773 
-0.232877 0.563601 0.240705 0.563601 0.248532 0.563601 0.25636 0.563601 0.264188 
-0.563601 0.272016 0.563601 0.279843 0.563601 0.287671 0.563601 0.295499 0.563601 
-0.303327 0.563601 0.311155 0.563601 0.318982 0.563601 0.32681 0.563601 0.334638 
-0.563601 0.342466 0.563601 0.350294 0.563601 0.358121 0.563601 0.365949 0.563601 
-0.373777 0.563601 0.381605 0.563601 0.389432 0.563601 0.39726 0.563601 0.405088 
-0.563601 0.412916 0.563601 0.420744 0.563601 0.428571 0.563601 0.436399 0.563601 
-0.444227 0.563601 0.452055 0.563601 0.459883 0.563601 0.46771 0.563601 0.475538 
-0.563601 0.483366 0.563601 0.491194 0.563601 0.499022 0.563601 0.506849 0.563601 
-0.514677 0.563601 0.522505 0.563601 0.530333 0.563601 0.53816 0.563601 0.545988 
-0.563601 0.553816 0.563601 0.561644 0.563601 0.569472 0.563601 0.577299 0.563601 
-0.585127 0.563601 0.592955 0.563601 0.600783 0.563601 0.608611 0.563601 0.232877 
-0.569472 0.240705 0.569472 0.248532 0.569472 0.25636 0.569472 0.264188 0.569472 
-0.272016 0.569472 0.279843 0.569472 0.287671 0.569472 0.295499 0.569472 0.303327 
-0.569472 0.311155 0.569472 0.318982 0.569472 0.32681 0.569472 0.334638 0.569472 
-0.342466 0.569472 0.350294 0.569472 0.358121 0.569472 0.365949 0.569472 0.373777 
-0.569472 0.381605 0.569472 0.389432 0.569472 0.39726 0.569472 0.405088 0.569472 
-0.412916 0.569472 0.420744 0.569472 0.428571 0.569472 0.436399 0.569472 0.444227 
-0.569472 0.452055 0.569472 0.459883 0.569472 0.46771 0.569472 0.475538 0.569472 
-0.483366 0.569472 0.491194 0.569472 0.499022 0.569472 0.506849 0.569472 0.514677 
-0.569472 0.522505 0.569472 0.530333 0.569472 0.53816 0.569472 0.545988 0.569472 
-0.553816 0.569472 0.561644 0.569472 0.569472 0.569472 0.577299 0.569472 0.585127 
-0.569472 0.592955 0.569472 0.600783 0.569472 0.608611 0.569472 0.232877 0.575342 
-0.240705 0.575342 0.248532 0.575342 0.25636 0.575342 0.264188 0.575342 0.272016 
-0.575342 0.279843 0.575342 0.287671 0.575342 0.295499 0.575342 0.303327 0.575342 
-0.311155 0.575342 0.318982 0.575342 0.32681 0.575342 0.334638 0.575342 0.342466 
-0.575342 0.350294 0.575342 0.358121 0.575342 0.365949 0.575342 0.373777 0.575342 
-0.381605 0.575342 0.389432 0.575342 0.39726 0.575342 0.405088 0.575342 0.412916 
-0.575342 0.420744 0.575342 0.428571 0.575342 0.436399 0.575342 0.444227 0.575342 
-0.452055 0.575342 0.459883 0.575342 0.46771 0.575342 0.475538 0.575342 0.483366 
-0.575342 0.491194 0.575342 0.499022 0.575342 0.506849 0.575342 0.514677 0.575342 
-0.522505 0.575342 0.530333 0.575342 0.53816 0.575342 0.545988 0.575342 0.553816 
-0.575342 0.561644 0.575342 0.569472 0.575342 0.577299 0.575342 0.585127 0.575342 
-0.592955 0.575342 0.600783 0.575342 0.608611 0.575342 0.232877 0.581213 0.240705 
-0.581213 0.248532 0.581213 0.25636 0.581213 0.264188 0.581213 0.272016 0.581213 
-0.279843 0.581213 0.287671 0.581213 0.295499 0.581213 0.303327 0.581213 0.311155 
-0.581213 0.318982 0.581213 0.32681 0.581213 0.334638 0.581213 0.342466 0.581213 
-0.350294 0.581213 0.358121 0.581213 0.365949 0.581213 0.373777 0.581213 0.381605 
-0.581213 0.389432 0.581213 0.39726 0.581213 0.405088 0.581213 0.412916 0.581213 
-0.420744 0.581213 0.428571 0.581213 0.436399 0.581213 0.444227 0.581213 0.452055 
-0.581213 0.459883 0.581213 0.46771 0.581213 0.475538 0.581213 0.483366 0.581213 
-0.491194 0.581213 0.499022 0.581213 0.506849 0.581213 0.514677 0.581213 0.522505 
-0.581213 0.530333 0.581213 0.53816 0.581213 0.545988 0.581213 0.553816 0.581213 
-0.561644 0.581213 0.569472 0.581213 0.577299 0.581213 0.585127 0.581213 0.592955 
-0.581213 0.600783 0.581213 0.608611 0.581213 0.232877 0.587084 0.240705 0.587084 
-0.248532 0.587084 0.25636 0.587084 0.264188 0.587084 0.272016 0.587084 0.279843 
-0.587084 0.287671 0.587084 0.295499 0.587084 0.303327 0.587084 0.311155 0.587084 
-0.318982 0.587084 0.32681 0.587084 0.334638 0.587084 0.342466 0.587084 0.350294 
-0.587084 0.358121 0.587084 0.365949 0.587084 0.373777 0.587084 0.381605 0.587084 
-0.389432 0.587084 0.39726 0.587084 0.405088 0.587084 0.412916 0.587084 0.420744 
-0.587084 0.428571 0.587084 0.436399 0.587084 0.444227 0.587084 0.452055 0.587084 
-0.459883 0.587084 0.46771 0.587084 0.475538 0.587084 0.483366 0.587084 0.491194 
-0.587084 0.499022 0.587084 0.506849 0.587084 0.514677 0.587084 0.522505 0.587084 
-0.530333 0.587084 0.53816 0.587084 0.545988 0.587084 0.553816 0.587084 0.561644 
-0.587084 0.569472 0.587084 0.577299 0.587084 0.585127 0.587084 0.592955 0.587084 
-0.600783 0.587084 0.608611 0.587084 0.232877 0.592955 0.240705 0.592955 0.248532 
-0.592955 0.25636 0.592955 0.264188 0.592955 0.272016 0.592955 0.279843 0.592955 
-0.287671 0.592955 0.295499 0.592955 0.303327 0.592955 0.311155 0.592955 0.318982 
-0.592955 0.32681 0.592955 0.334638 0.592955 0.342466 0.592955 0.350294 0.592955 
-0.358121 0.592955 0.365949 0.592955 0.373777 0.592955 0.381605 0.592955 0.389432 
-0.592955 0.39726 0.592955 0.405088 0.592955 0.412916 0.592955 0.420744 0.592955 
-0.428571 0.592955 0.436399 0.592955 0.444227 0.592955 0.452055 0.592955 0.459883 
-0.592955 0.46771 0.592955 0.475538 0.592955 0.483366 0.592955 0.491194 0.592955 
-0.499022 0.592955 0.506849 0.592955 0.514677 0.592955 0.522505 0.592955 0.530333 
-0.592955 0.53816 0.592955 0.545988 0.592955 0.553816 0.592955 0.561644 0.592955 
-0.569472 0.592955 0.577299 0.592955 0.585127 0.592955 0.592955 0.592955 0.600783 
-0.592955 0.608611 0.592955 0.232877 0.598826 0.240705 0.598826 0.248532 0.598826 
-0.25636 0.598826 0.264188 0.598826 0.272016 0.598826 0.279843 0.598826 0.287671 
-0.598826 0.295499 0.598826 0.303327 0.598826 0.311155 0.598826 0.318982 0.598826 
-0.32681 0.598826 0.334638 0.598826 0.342466 0.598826 0.350294 0.598826 0.358121 
-0.598826 0.365949 0.598826 0.373777 0.598826 0.381605 0.598826 0.389432 0.598826 
-0.39726 0.598826 0.405088 0.598826 0.412916 0.598826 0.420744 0.598826 0.428571 
-0.598826 0.436399 0.598826 0.444227 0.598826 0.452055 0.598826 0.459883 0.598826 
-0.46771 0.598826 0.475538 0.598826 0.483366 0.598826 0.491194 0.598826 0.499022 
-0.598826 0.506849 0.598826 0.514677 0.598826 0.522505 0.598826 0.530333 0.598826 
-0.53816 0.598826 0.545988 0.598826 0.553816 0.598826 0.561644 0.598826 0.569472 
-0.598826 0.577299 0.598826 0.585127 0.598826 0.592955 0.598826 0.600783 0.598826 
-0.608611 0.598826 0.232877 0.604697 0.240705 0.604697 0.248532 0.604697 0.25636 
-0.604697 0.264188 0.604697 0.272016 0.604697 0.279843 0.604697 0.287671 0.604697 
-0.295499 0.604697 0.303327 0.604697 0.311155 0.604697 0.318982 0.604697 0.32681 
-0.604697 0.334638 0.604697 0.342466 0.604697 0.350294 0.604697 0.358121 0.604697 
-0.365949 0.604697 0.373777 0.604697 0.381605 0.604697 0.389432 0.604697 0.39726 
-0.604697 0.405088 0.604697 0.412916 0.604697 0.420744 0.604697 0.428571 0.604697 
-0.436399 0.604697 0.444227 0.604697 0.452055 0.604697 0.459883 0.604697 0.46771 
-0.604697 0.475538 0.604697 0.483366 0.604697 0.491194 0.604697 0.499022 0.604697 
-0.506849 0.604697 0.514677 0.604697 0.522505 0.604697 0.530333 0.604697 0.53816 
-0.604697 0.545988 0.604697 0.553816 0.604697 0.561644 0.604697 0.569472 0.604697 
-0.577299 0.604697 0.585127 0.604697 0.592955 0.604697 0.600783 0.604697 0.608611 
-0.604697 0.232877 0.610568 0.240705 0.610568 0.248532 0.610568 0.25636 0.610568 
-0.264188 0.610568 0.272016 0.610568 0.279843 0.610568 0.287671 0.610568 0.295499 
-0.610568 0.303327 0.610568 0.311155 0.610568 0.318982 0.610568 0.32681 0.610568 
-0.334638 0.610568 0.342466 0.610568 0.350294 0.610568 0.358121 0.610568 0.365949 
-0.610568 0.373777 0.610568 0.381605 0.610568 0.389432 0.610568 0.39726 0.610568 
-0.405088 0.610568 0.412916 0.610568 0.420744 0.610568 0.428571 0.610568 0.436399 
-0.610568 0.444227 0.610568 0.452055 0.610568 0.459883 0.610568 0.46771 0.610568 
-0.475538 0.610568 0.483366 0.610568 0.491194 0.610568 0.499022 0.610568 0.506849 
-0.610568 0.514677 0.610568 0.522505 0.610568 0.530333 0.610568 0.53816 0.610568 
-0.545988 0.610568 0.553816 0.610568 0.561644 0.610568 0.569472 0.610568 0.577299 
-0.610568 0.585127 0.610568 0.592955 0.610568 0.600783 0.610568 0.608611 0.610568 
-
diff --git a/data/mesh_05.obj b/data/mesh_05.obj
deleted file mode 100644 (file)
index d8023e1..0000000
+++ /dev/null
@@ -1,8863 +0,0 @@
-#  Viewpoint Datalabs International, Inc.  Copyright 1996
-
-
-mtllib ./vp.mtl
-
-g
-v 0.000000 8.407028 0.000000
-v 0.000000 8.380042 -0.204985
-v 0.053054 8.380042 -0.198000
-v 0.102492 8.380042 -0.177522
-v 0.144946 8.380042 -0.144946
-v 0.177522 8.380042 -0.102492
-v 0.198000 8.380042 -0.053054
-v 0.204985 8.380042 0.000000
-v 0.198000 8.380042 0.053054
-v 0.177522 8.380042 0.102492
-v 0.144946 8.380042 0.144946
-v 0.102493 8.380042 0.177522
-v 0.053054 8.380042 0.198000
-v 0.000000 8.380042 0.204985
-v -0.053054 8.380042 0.198000
-v -0.102492 8.380042 0.177522
-v -0.144946 8.380042 0.144946
-v -0.177522 8.380042 0.102493
-v -0.198000 8.380042 0.053054
-v -0.204985 8.380042 0.000000
-v -0.198000 8.380042 -0.053054
-v -0.177522 8.380042 -0.102492
-v -0.144946 8.380042 -0.144946
-v -0.102493 8.380042 -0.177522
-v -0.053054 8.380042 -0.198000
-v 0.000000 8.300921 -0.396000
-v 0.102492 8.300921 -0.382507
-v 0.198000 8.300921 -0.342946
-v 0.280014 8.300921 -0.280014
-v 0.342946 8.300921 -0.198000
-v 0.382506 8.300921 -0.102493
-v 0.396000 8.300921 0.000000
-v 0.382507 8.300921 0.102492
-v 0.342946 8.300921 0.198000
-v 0.280015 8.300921 0.280014
-v 0.198000 8.300921 0.342946
-v 0.102493 8.300921 0.382506
-v 0.000000 8.300921 0.396000
-v -0.102492 8.300921 0.382507
-v -0.197999 8.300921 0.342946
-v -0.280014 8.300921 0.280015
-v -0.342946 8.300921 0.198000
-v -0.382506 8.300921 0.102493
-v -0.396000 8.300921 0.000000
-v -0.382507 8.300921 -0.102492
-v -0.342946 8.300921 -0.197999
-v -0.280015 8.300921 -0.280014
-v -0.198001 8.300921 -0.342946
-v -0.102493 8.300921 -0.382506
-v 0.000000 8.175057 -0.560028
-v 0.144946 8.175057 -0.540946
-v 0.280014 8.175057 -0.484999
-v 0.396000 8.175057 -0.396000
-v 0.484999 8.175057 -0.280015
-v 0.540946 8.175057 -0.144947
-v 0.560028 8.175057 0.000000
-v 0.540946 8.175057 0.144945
-v 0.484999 8.175057 0.280014
-v 0.396000 8.175057 0.395999
-v 0.280015 8.175057 0.484999
-v 0.144947 8.175057 0.540946
-v 0.000000 8.175057 0.560028
-v -0.144945 8.175057 0.540946
-v -0.280014 8.175057 0.484999
-v -0.395999 8.175057 0.396001
-v -0.484998 8.175057 0.280015
-v -0.540946 8.175057 0.144947
-v -0.560028 8.175057 0.000000
-v -0.540946 8.175057 -0.144945
-v -0.484999 8.175057 -0.280013
-v -0.396001 8.175057 -0.395999
-v -0.280015 8.175057 -0.484998
-v -0.144947 8.175057 -0.540946
-v 0.000000 8.011028 -0.685892
-v 0.177521 8.011028 -0.662521
-v 0.342946 8.011028 -0.594000
-v 0.484999 8.011028 -0.484999
-v 0.594000 8.011028 -0.342947
-v 0.662521 8.011028 -0.177523
-v 0.685892 8.011028 0.000000
-v 0.662521 8.011028 0.177521
-v 0.594000 8.011028 0.342945
-v 0.484999 8.011028 0.484998
-v 0.342947 8.011028 0.594000
-v 0.177523 8.011028 0.662521
-v 0.000000 8.011028 0.685892
-v -0.177521 8.011028 0.662521
-v -0.342945 8.011028 0.594000
-v -0.484998 8.011028 0.485000
-v -0.593999 8.011028 0.342947
-v -0.662521 8.011028 0.177523
-v -0.685892 8.011028 0.000001
-v -0.662521 8.011028 -0.177521
-v -0.594001 8.011028 -0.342945
-v -0.485000 8.011028 -0.484998
-v -0.342947 8.011028 -0.593999
-v -0.177523 8.011028 -0.662521
-v 0.000000 7.820013 -0.765013
-v 0.197999 7.820013 -0.738946
-v 0.382506 7.820013 -0.662521
-v 0.540946 7.820013 -0.540946
-v 0.662521 7.820013 -0.382507
-v 0.738946 7.820013 -0.198001
-v 0.765013 7.820013 0.000000
-v 0.738946 7.820013 0.197999
-v 0.662521 7.820013 0.382506
-v 0.540947 7.820013 0.540945
-v 0.382507 7.820013 0.662520
-v 0.198001 7.820013 0.738946
-v 0.000001 7.820013 0.765013
-v -0.197999 7.820013 0.738946
-v -0.382506 7.820013 0.662521
-v -0.540945 7.820013 0.540947
-v -0.662520 7.820013 0.382508
-v -0.738946 7.820013 0.198001
-v -0.765013 7.820013 0.000001
-v -0.738946 7.820013 -0.197999
-v -0.662522 7.820013 -0.382505
-v -0.540947 7.820013 -0.540945
-v -0.382508 7.820013 -0.662520
-v -0.198001 7.820013 -0.738946
-v 0.000000 7.615029 -0.792000
-v 0.204984 7.615029 -0.765013
-v 0.395999 7.615029 -0.685892
-v 0.560028 7.615029 -0.560029
-v 0.685892 7.615029 -0.396001
-v 0.765013 7.615029 -0.204985
-v 0.792000 7.615029 0.000000
-v 0.765013 7.615029 0.204984
-v 0.685893 7.615029 0.395999
-v 0.560029 7.615029 0.560028
-v 0.396001 7.615029 0.685892
-v 0.204986 7.615029 0.765013
-v 0.000001 7.615029 0.792000
-v -0.204984 7.615029 0.765014
-v -0.395999 7.615029 0.685893
-v -0.560028 7.615029 0.560029
-v -0.685892 7.615029 0.396001
-v -0.765013 7.615029 0.204986
-v -0.792000 7.615029 0.000001
-v -0.765014 7.615029 -0.204983
-v -0.685893 7.615029 -0.395999
-v -0.560030 7.615029 -0.560028
-v -0.396001 7.615029 -0.685891
-v -0.204986 7.615029 -0.765013
-v 0.000000 7.410044 -0.765013
-v 0.198000 7.410044 -0.738946
-v 0.382506 7.410044 -0.662521
-v 0.540946 7.410044 -0.540947
-v 0.662521 7.410044 -0.382507
-v 0.738946 7.410044 -0.198001
-v 0.765013 7.410044 0.000000
-v 0.738946 7.410044 0.197999
-v 0.662521 7.410044 0.382506
-v 0.540947 7.410044 0.540945
-v 0.382507 7.410044 0.662521
-v 0.198001 7.410044 0.738946
-v 0.000001 7.410044 0.765013
-v -0.197999 7.410044 0.738946
-v -0.382506 7.410044 0.662522
-v -0.540945 7.410044 0.540947
-v -0.662520 7.410044 0.382508
-v -0.738946 7.410044 0.198001
-v -0.765013 7.410044 0.000001
-v -0.738946 7.410044 -0.197999
-v -0.662522 7.410044 -0.382506
-v -0.540947 7.410044 -0.540945
-v -0.382508 7.410044 -0.662520
-v -0.198001 7.410044 -0.738946
-v 0.000000 7.219029 -0.685892
-v 0.177522 7.219029 -0.662521
-v 0.342946 7.219029 -0.594000
-v 0.484999 7.219029 -0.485000
-v 0.594000 7.219029 -0.342947
-v 0.662521 7.219029 -0.177523
-v 0.685892 7.219029 0.000000
-v 0.662521 7.219029 0.177521
-v 0.594001 7.219029 0.342946
-v 0.485000 7.219029 0.484999
-v 0.342947 7.219029 0.594000
-v 0.177523 7.219029 0.662521
-v 0.000000 7.219029 0.685892
-v -0.177521 7.219029 0.662521
-v -0.342945 7.219029 0.594001
-v -0.484998 7.219029 0.485000
-v -0.594000 7.219029 0.342947
-v -0.662521 7.219029 0.177523
-v -0.685892 7.219029 0.000001
-v -0.662521 7.219029 -0.177521
-v -0.594001 7.219029 -0.342945
-v -0.485000 7.219029 -0.484998
-v -0.342947 7.219029 -0.594000
-v -0.177523 7.219029 -0.662521
-v 0.000000 7.055001 -0.560029
-v 0.144946 7.055001 -0.540946
-v 0.280014 7.055001 -0.484999
-v 0.396000 7.055001 -0.396001
-v 0.484999 7.055001 -0.280015
-v 0.540946 7.055001 -0.144947
-v 0.560029 7.055001 0.000000
-v 0.540946 7.055001 0.144946
-v 0.485000 7.055001 0.280014
-v 0.396001 7.055001 0.396000
-v 0.280015 7.055001 0.484999
-v 0.144947 7.055001 0.540946
-v 0.000000 7.055001 0.560029
-v -0.144945 7.055001 0.540947
-v -0.280014 7.055001 0.485000
-v -0.396000 7.055001 0.396001
-v -0.484999 7.055001 0.280015
-v -0.540946 7.055001 0.144947
-v -0.560029 7.055001 0.000000
-v -0.540947 7.055001 -0.144945
-v -0.485000 7.055001 -0.280014
-v -0.396001 7.055001 -0.395999
-v -0.280015 7.055001 -0.484999
-v -0.144947 7.055001 -0.540946
-v 0.000000 6.929136 -0.396000
-v 0.102492 6.929136 -0.382507
-v 0.198000 6.929136 -0.342947
-v 0.280014 6.929136 -0.280015
-v 0.342946 6.929136 -0.198000
-v 0.382507 6.929136 -0.102493
-v 0.396000 6.929136 0.000000
-v 0.382507 6.929136 0.102492
-v 0.342947 6.929136 0.198000
-v 0.280015 6.929136 0.280014
-v 0.198001 6.929136 0.342946
-v 0.102493 6.929136 0.382507
-v 0.000000 6.929136 0.396000
-v -0.102492 6.929136 0.382507
-v -0.198000 6.929136 0.342947
-v -0.280014 6.929136 0.280015
-v -0.342946 6.929136 0.198001
-v -0.382507 6.929136 0.102493
-v -0.396000 6.929136 0.000000
-v -0.382507 6.929136 -0.102492
-v -0.342947 6.929136 -0.198000
-v -0.280015 6.929136 -0.280014
-v -0.198001 6.929136 -0.342946
-v -0.102493 6.929136 -0.382507
-v 0.000000 6.850015 -0.204985
-v 0.053054 6.850015 -0.198000
-v 0.102492 6.850015 -0.177522
-v 0.144946 6.850015 -0.144947
-v 0.177522 6.850015 -0.102493
-v 0.198000 6.850015 -0.053054
-v 0.204985 6.850015 0.000000
-v 0.198001 6.850015 0.053054
-v 0.177522 6.850015 0.102492
-v 0.144947 6.850015 0.144946
-v 0.102493 6.850015 0.177522
-v 0.053054 6.850015 0.198000
-v 0.000000 6.850015 0.204985
-v -0.053054 6.850015 0.198001
-v -0.102492 6.850015 0.177522
-v -0.144946 6.850015 0.144947
-v -0.177522 6.850015 0.102493
-v -0.198000 6.850015 0.053054
-v -0.204985 6.850015 0.000000
-v -0.198001 6.850015 -0.053054
-v -0.177523 6.850015 -0.102492
-v -0.144947 6.850015 -0.144946
-v -0.102493 6.850015 -0.177522
-v -0.053054 6.850015 -0.198000
-v 0.000000 6.823029 0.000000
-v 1.871946 7.231124 0.000000
-v 1.924999 7.204138 -0.198000
-v 1.871946 7.204138 -0.204985
-v 1.974438 7.204138 -0.177522
-v 2.016892 7.204138 -0.144946
-v 2.049468 7.204138 -0.102492
-v 2.069946 7.204138 -0.053054
-v 2.076930 7.204138 0.000000
-v 2.069946 7.204138 0.053054
-v 2.049468 7.204138 0.102492
-v 2.016892 7.204138 0.144946
-v 1.974438 7.204138 0.177522
-v 1.925000 7.204138 0.198000
-v 1.871946 7.204138 0.204985
-v 1.818892 7.204138 0.198000
-v 1.769454 7.204138 0.177522
-v 1.727000 7.204138 0.144946
-v 1.694424 7.204138 0.102493
-v 1.673946 7.204138 0.053054
-v 1.666961 7.204138 0.000000
-v 1.673946 7.204138 -0.053054
-v 1.694424 7.204138 -0.102492
-v 1.726999 7.204138 -0.144946
-v 1.769453 7.204138 -0.177522
-v 1.818891 7.204138 -0.198000
-v 1.974438 7.125016 -0.382507
-v 1.871946 7.125016 -0.396000
-v 2.069945 7.125016 -0.342946
-v 2.151960 7.125016 -0.280014
-v 2.214891 7.125016 -0.198000
-v 2.254452 7.125016 -0.102493
-v 2.267946 7.125016 0.000000
-v 2.254452 7.125016 0.102492
-v 2.214892 7.125016 0.198000
-v 2.151960 7.125016 0.280014
-v 2.069946 7.125016 0.342946
-v 1.974439 7.125016 0.382506
-v 1.871946 7.125016 0.396000
-v 1.769454 7.125016 0.382507
-v 1.673946 7.125016 0.342946
-v 1.591932 7.125016 0.280015
-v 1.529000 7.125016 0.198000
-v 1.489439 7.125016 0.102493
-v 1.475946 7.125016 0.000000
-v 1.489439 7.125016 -0.102492
-v 1.528999 7.125016 -0.197999
-v 1.591931 7.125016 -0.280014
-v 1.673945 7.125016 -0.342946
-v 1.769453 7.125016 -0.382506
-v 2.016891 6.999153 -0.540946
-v 1.871945 6.999153 -0.560028
-v 2.151960 6.999153 -0.484999
-v 2.267945 6.999153 -0.396000
-v 2.356944 6.999153 -0.280015
-v 2.412892 6.999153 -0.144947
-v 2.431974 6.999153 0.000000
-v 2.412892 6.999153 0.144945
-v 2.356945 6.999153 0.280014
-v 2.267946 6.999153 0.395999
-v 2.151961 6.999153 0.484999
-v 2.016892 6.999153 0.540946
-v 1.871946 6.999153 0.560028
-v 1.727000 6.999153 0.540946
-v 1.591932 6.999153 0.484999
-v 1.475946 6.999153 0.396001
-v 1.386947 6.999153 0.280015
-v 1.331000 6.999153 0.144947
-v 1.311917 6.999153 0.000000
-v 1.330999 6.999153 -0.144945
-v 1.386946 6.999153 -0.280013
-v 1.475945 6.999153 -0.395999
-v 1.591931 6.999153 -0.484998
-v 1.726999 6.999153 -0.540946
-v 2.049467 6.835124 -0.662521
-v 1.871945 6.835124 -0.685892
-v 2.214891 6.835124 -0.594000
-v 2.356944 6.835124 -0.484999
-v 2.465945 6.835124 -0.342947
-v 2.534467 6.835124 -0.177523
-v 2.557838 6.835124 0.000000
-v 2.534467 6.835124 0.177521
-v 2.465946 6.835124 0.342945
-v 2.356945 6.835124 0.484998
-v 2.214892 6.835124 0.594000
-v 2.049469 6.835124 0.662521
-v 1.871947 6.835124 0.685892
-v 1.694425 6.835124 0.662521
-v 1.529001 6.835124 0.594000
-v 1.386948 6.835124 0.485000
-v 1.277946 6.835124 0.342947
-v 1.209425 6.835124 0.177523
-v 1.186054 6.835124 0.000001
-v 1.209425 6.835124 -0.177521
-v 1.277945 6.835124 -0.342945
-v 1.386946 6.835124 -0.484998
-v 1.528999 6.835124 -0.593999
-v 1.694423 6.835124 -0.662521
-v 2.069945 6.644109 -0.738946
-v 1.871945 6.644109 -0.765013
-v 2.254452 6.644109 -0.662521
-v 2.412891 6.644109 -0.540946
-v 2.534466 6.644109 -0.382507
-v 2.610892 6.644109 -0.198001
-v 2.636959 6.644109 0.000000
-v 2.610892 6.644109 0.197999
-v 2.534467 6.644109 0.382506
-v 2.412892 6.644109 0.540945
-v 2.254453 6.644109 0.662520
-v 2.069947 6.644109 0.738946
-v 1.871947 6.644109 0.765013
-v 1.673947 6.644109 0.738946
-v 1.489440 6.644109 0.662521
-v 1.331001 6.644109 0.540947
-v 1.209425 6.644109 0.382508
-v 1.133000 6.644109 0.198001
-v 1.106933 6.644109 0.000001
-v 1.132999 6.644109 -0.197999
-v 1.209424 6.644109 -0.382505
-v 1.330999 6.644109 -0.540945
-v 1.489438 6.644109 -0.662520
-v 1.673944 6.644109 -0.738946
-v 2.076930 6.439125 -0.765013
-v 1.871945 6.439125 -0.792000
-v 2.267945 6.439125 -0.685892
-v 2.431974 6.439125 -0.560029
-v 2.557837 6.439125 -0.396001
-v 2.636959 6.439125 -0.204985
-v 2.663946 6.439125 0.000000
-v 2.636959 6.439125 0.204984
-v 2.557838 6.439125 0.395999
-v 2.431975 6.439125 0.560028
-v 2.267946 6.439125 0.685892
-v 2.076931 6.439125 0.765013
-v 1.871947 6.439125 0.792000
-v 1.666962 6.439125 0.765014
-v 1.475947 6.439125 0.685893
-v 1.311918 6.439125 0.560029
-v 1.186054 6.439125 0.396001
-v 1.106933 6.439125 0.204986
-v 1.079946 6.439125 0.000001
-v 1.106932 6.439125 -0.204983
-v 1.186053 6.439125 -0.395999
-v 1.311916 6.439125 -0.560028
-v 1.475945 6.439125 -0.685891
-v 1.666960 6.439125 -0.765013
-v 2.069945 6.234140 -0.738946
-v 1.871945 6.234140 -0.765013
-v 2.254452 6.234140 -0.662521
-v 2.412891 6.234140 -0.540947
-v 2.534466 6.234140 -0.382507
-v 2.610892 6.234140 -0.198001
-v 2.636959 6.234140 0.000000
-v 2.610892 6.234140 0.197999
-v 2.534467 6.234140 0.382506
-v 2.412892 6.234140 0.540945
-v 2.254453 6.234140 0.662521
-v 2.069947 6.234140 0.738946
-v 1.871947 6.234140 0.765013
-v 1.673947 6.234140 0.738946
-v 1.489440 6.234140 0.662522
-v 1.331000 6.234140 0.540947
-v 1.209425 6.234140 0.382508
-v 1.133000 6.234140 0.198001
-v 1.106932 6.234140 0.000001
-v 1.132999 6.234140 -0.197999
-v 1.209424 6.234140 -0.382506
-v 1.330999 6.234140 -0.540945
-v 1.489438 6.234140 -0.662520
-v 1.673944 6.234140 -0.738946
-v 2.049467 6.043124 -0.662521
-v 1.871945 6.043124 -0.685892
-v 2.214891 6.043124 -0.594000
-v 2.356945 6.043124 -0.485000
-v 2.465946 6.043124 -0.342947
-v 2.534467 6.043124 -0.177523
-v 2.557838 6.043124 0.000000
-v 2.534467 6.043124 0.177521
-v 2.465946 6.043124 0.342946
-v 2.356946 6.043124 0.484999
-v 2.214893 6.043124 0.594000
-v 2.049469 6.043124 0.662521
-v 1.871947 6.043124 0.685892
-v 1.694425 6.043124 0.662521
-v 1.529000 6.043124 0.594001
-v 1.386947 6.043124 0.485000
-v 1.277946 6.043124 0.342947
-v 1.209425 6.043124 0.177523
-v 1.186054 6.043124 0.000001
-v 1.209424 6.043124 -0.177521
-v 1.277945 6.043124 -0.342945
-v 1.386946 6.043124 -0.484998
-v 1.528998 6.043124 -0.594000
-v 1.694422 6.043124 -0.662521
-v 2.016891 5.879096 -0.540946
-v 1.871945 5.879096 -0.560029
-v 2.151960 5.879096 -0.484999
-v 2.267946 5.879096 -0.396001
-v 2.356945 5.879096 -0.280015
-v 2.412892 5.879096 -0.144947
-v 2.431975 5.879096 0.000000
-v 2.412892 5.879096 0.144946
-v 2.356945 5.879096 0.280014
-v 2.267946 5.879096 0.396000
-v 2.151961 5.879096 0.484999
-v 2.016892 5.879096 0.540946
-v 1.871946 5.879096 0.560029
-v 1.727000 5.879096 0.540947
-v 1.591932 5.879096 0.485000
-v 1.475946 5.879096 0.396001
-v 1.386947 5.879096 0.280015
-v 1.331000 5.879096 0.144947
-v 1.311917 5.879096 0.000000
-v 1.330999 5.879096 -0.144945
-v 1.386946 5.879096 -0.280014
-v 1.475945 5.879096 -0.395999
-v 1.591930 5.879096 -0.484999
-v 1.726999 5.879096 -0.540946
-v 1.974438 5.753232 -0.382507
-v 1.871946 5.753232 -0.396000
-v 2.069946 5.753232 -0.342947
-v 2.151960 5.753232 -0.280015
-v 2.214892 5.753232 -0.198000
-v 2.254453 5.753232 -0.102493
-v 2.267946 5.753232 0.000000
-v 2.254453 5.753232 0.102492
-v 2.214892 5.753232 0.198000
-v 2.151961 5.753232 0.280014
-v 2.069946 5.753232 0.342946
-v 1.974439 5.753232 0.382507
-v 1.871946 5.753232 0.396000
-v 1.769454 5.753232 0.382507
-v 1.673946 5.753232 0.342947
-v 1.591932 5.753232 0.280015
-v 1.529000 5.753232 0.198001
-v 1.489439 5.753232 0.102493
-v 1.475945 5.753232 0.000000
-v 1.489439 5.753232 -0.102492
-v 1.528999 5.753232 -0.198000
-v 1.591931 5.753232 -0.280014
-v 1.673945 5.753232 -0.342946
-v 1.769453 5.753232 -0.382507
-v 1.925000 5.674111 -0.198000
-v 1.871946 5.674111 -0.204985
-v 1.974438 5.674111 -0.177522
-v 2.016892 5.674111 -0.144947
-v 2.049468 5.674111 -0.102493
-v 2.069946 5.674111 -0.053054
-v 2.076931 5.674111 0.000000
-v 2.069946 5.674111 0.053054
-v 2.049468 5.674111 0.102492
-v 2.016892 5.674111 0.144946
-v 1.974439 5.674111 0.177522
-v 1.925000 5.674111 0.198000
-v 1.871946 5.674111 0.204985
-v 1.818892 5.674111 0.198001
-v 1.769453 5.674111 0.177522
-v 1.727000 5.674111 0.144947
-v 1.694424 5.674111 0.102493
-v 1.673945 5.674111 0.053054
-v 1.666961 5.674111 0.000000
-v 1.673945 5.674111 -0.053054
-v 1.694423 5.674111 -0.102492
-v 1.726999 5.674111 -0.144946
-v 1.769453 5.674111 -0.177522
-v 1.818891 5.674111 -0.198000
-v 1.871946 5.647125 0.000000
-v 0.309896 5.515944 -0.041455
-v 0.345870 5.486310 -0.041455
-v 0.424286 5.504072 -0.093361
-v 0.418141 5.501982 -0.113838
-v 0.396498 5.533141 -0.113838
-v 0.411730 5.534671 -0.093361
-v 0.454673 5.520028 -0.112858
-v 0.438094 5.507370 -0.092381
-v 0.425538 5.537968 -0.092381
-v 0.443761 5.538089 -0.112858
-v 0.453302 5.457216 -0.089738
-v 0.441317 5.475670 -0.110215
-v 0.481455 5.465744 -0.089738
-v 0.606229 5.515820 -0.123867
-v 0.602834 5.475719 -0.123867
-v 0.579542 5.483232 -0.123867
-v 0.582807 5.538704 -0.123867
-v 0.445729 5.233723 -0.123867
-v 0.821135 5.315813 -0.123867
-v 1.000863 5.651269 -0.123867
-v 0.998508 5.634236 -0.123867
-v 0.802170 5.613324 -0.123867
-v 0.877842 5.588543 -0.123867
-v 0.948260 5.556879 -0.123867
-v 0.919384 5.572126 -0.123867
-v 0.887220 5.368674 -0.123867
-v 0.394917 5.657471 -0.123867
-v 0.406946 5.503573 -0.123867
-v 0.381454 5.531240 -0.123867
-v 0.531150 5.719302 -0.123867
-v 0.736686 5.605947 -0.123867
-v 0.458223 5.412295 -0.113265
-v 0.428678 5.362868 -0.113265
-v 0.402774 5.356741 -0.092786
-v 0.439946 5.417790 -0.092786
-v 0.403944 5.274145 -0.113282
-v 0.376874 5.259162 -0.092804
-v 0.416054 5.201977 -0.113084
-v 0.399372 5.179461 -0.092606
-v 0.480014 5.144361 -0.113117
-v 0.478291 5.118040 -0.092638
-v 0.527722 5.136270 -0.113282
-v 0.573570 5.146466 -0.113282
-v 0.582210 5.122450 -0.092804
-v 0.525999 5.109948 -0.092804
-v 0.610153 5.170753 -0.112581
-v 0.623349 5.197310 -0.112581
-v 0.646468 5.194917 -0.092102
-v 0.618793 5.146736 -0.092102
-v 0.623135 5.227768 -0.112810
-v 0.606183 5.243670 -0.112810
-v 0.622495 5.253418 -0.092331
-v 0.646254 5.225375 -0.092331
-v 0.570921 5.255943 -0.114459
-v 0.513188 5.262099 -0.114459
-v 0.550742 5.267126 -0.093982
-v 0.587233 5.265692 -0.093982
-v 0.509146 5.282185 -0.114400
-v 0.560599 5.325606 -0.114400
-v 0.575304 5.316366 -0.093922
-v 0.546701 5.287212 -0.093922
-v 0.593234 5.371274 -0.113305
-v 0.607939 5.362035 -0.092826
-v 0.625473 5.470294 -0.113282
-v 0.628868 5.510393 -0.113282
-v 0.649330 5.520258 -0.092804
-v 0.645166 5.471096 -0.092804
-v 0.615937 5.547515 -0.112902
-v 0.592514 5.570402 -0.112902
-v 0.599770 5.592010 -0.092425
-v 0.636398 5.557381 -0.092425
-v 0.536419 5.601588 -0.113282
-v 0.537775 5.625658 -0.092804
-v 0.502804 5.605110 -0.112799
-v 0.504160 5.629180 -0.092322
-v 0.433839 5.604552 -0.091985
-v 0.450710 5.583147 -0.112462
-v 0.482219 5.499254 -0.114462
-v 0.530931 5.473194 -0.114462
-v 0.499634 5.474578 -0.093983
-v 0.465640 5.486594 -0.093983
-v 0.534608 5.457798 -0.114274
-v 0.493435 5.445159 -0.114274
-v 0.475158 5.450655 -0.093796
-v 0.503310 5.459183 -0.093796
-v 0.421121 5.612298 -0.093871
-v 0.418937 5.628274 -0.114350
-v 0.506708 5.666801 -0.113882
-v 0.501502 5.648447 -0.093404
-v 0.550349 5.662285 -0.114218
-v 0.545143 5.643930 -0.093740
-v 0.629492 5.612260 -0.113562
-v 0.664060 5.578382 -0.113562
-v 0.650154 5.569179 -0.093084
-v 0.613526 5.603806 -0.093084
-v 0.696662 5.549114 -0.114802
-v 0.682757 5.539909 -0.094323
-v 0.760234 5.486811 -0.113282
-v 0.730038 5.495645 -0.092804
-v 0.810358 5.424101 -0.113282
-v 0.786797 5.426218 -0.092804
-v 0.819314 5.365025 -0.113282
-v 0.797526 5.360498 -0.092804
-v 0.802562 5.320957 -0.113282
-v 0.788883 5.308403 -0.113282
-v 0.762682 5.295666 -0.092804
-v 0.779451 5.311057 -0.092804
-v 0.794186 5.297959 -0.111517
-v 0.804707 5.297311 -0.111517
-v 0.767983 5.285222 -0.091038
-v 0.836627 5.301105 -0.113282
-v 0.843061 5.281743 -0.092804
-v 0.896286 5.324542 -0.113282
-v 0.909790 5.306975 -0.092804
-v 0.928906 5.373504 -0.113282
-v 0.946826 5.360417 -0.092804
-v 0.926206 5.448348 -0.113700
-v 0.907602 5.497252 -0.113700
-v 0.930586 5.489536 -0.093222
-v 0.945004 5.442576 -0.093222
-v 0.919570 5.525727 -0.113282
-v 0.942554 5.518014 -0.092804
-v 0.984745 5.550106 -0.113325
-v 1.015682 5.544410 -0.092846
-v 1.023436 5.590175 -0.113106
-v 1.049458 5.591613 -0.092627
-v 1.029258 5.632510 -0.113424
-v 1.018718 5.655898 -0.113424
-v 1.039579 5.667114 -0.092946
-v 1.051585 5.640802 -0.092946
-v 1.005948 5.675226 -0.110215
-v 0.995631 5.701816 -0.089738
-v 1.026809 5.686442 -0.089738
-v 0.993280 5.668571 -0.114556
-v 0.978032 5.657892 -0.114556
-v 0.980578 5.679368 -0.094078
-v 0.982963 5.695159 -0.094078
-v 0.927556 5.636914 -0.113282
-v 0.923474 5.656149 -0.092804
-v 0.877212 5.640411 -0.113949
-v 0.802427 5.662618 -0.113949
-v 0.810786 5.676223 -0.093471
-v 0.873130 5.659646 -0.093471
-v 0.539941 5.773489 -0.113282
-v 0.526252 5.797686 -0.092804
-v 0.457298 5.767262 -0.113282
-v 0.434858 5.792035 -0.092804
-v 0.382350 5.721624 -0.113282
-v 0.350880 5.742265 -0.092804
-v 0.342812 5.652568 -0.113282
-v 0.306206 5.666270 -0.092804
-v 0.335251 5.577381 -0.113282
-v 0.296974 5.582496 -0.092804
-v 0.362685 5.519274 -0.113282
-v 0.392027 5.495102 -0.113282
-v 0.361985 5.488284 -0.092804
-v 0.326010 5.517920 -0.092804
-v 0.417923 5.476707 -0.110215
-v 0.429909 5.458251 -0.089737
-v 0.387881 5.469887 -0.089737
-v 0.439370 5.482518 -0.110215
-v 0.445514 5.484608 -0.089738
-v 0.479508 5.472592 -0.089738
-v 0.440389 5.273817 -0.123867
-v 0.802856 5.311946 -0.123867
-v 0.470522 5.538355 -0.123867
-v 0.479066 5.555797 -0.123867
-v 0.530146 5.494235 -0.123867
-v 0.481434 5.520294 -0.123867
-v 0.527090 5.570638 -0.123867
-v 0.549926 5.504280 -0.123867
-v 0.591474 5.219917 -0.123867
-v 0.547534 5.217666 -0.123867
-v 0.574522 5.235818 -0.123867
-v 0.510551 5.186327 -0.123867
-v 0.856916 5.339489 -0.123867
-v 0.785386 5.561415 -0.123867
-v 0.831140 5.511280 -0.123867
-v 0.970352 5.590698 -0.123867
-v 0.874926 5.424644 -0.123867
-v 0.861703 5.463790 -0.123867
-v 0.385730 5.608974 -0.123867
-v 0.490694 5.715039 -0.123867
-v 0.541191 5.438536 -0.123867
-v 0.564482 5.431025 -0.123867
-v 0.470473 5.376470 -0.123867
-v 0.500018 5.425898 -0.123867
-v 0.545513 5.349375 -0.123867
-v 0.494061 5.305954 -0.123867
-v 0.426899 5.454040 -0.000178
-v 0.384872 5.465675 -0.000178
-v 0.392157 5.356647 -0.000178
-v 0.429328 5.417697 -0.000178
-v 0.364079 5.254062 -0.000178
-v 0.389204 5.170083 -0.000178
-v 0.474331 5.106178 -0.000178
-v 0.583881 5.110291 -0.000178
-v 0.527670 5.097790 -0.000178
-v 0.653498 5.188813 -0.000178
-v 0.625824 5.140632 -0.000178
-v 0.631697 5.254966 -0.000178
-v 0.655456 5.226924 -0.000178
-v 0.565082 5.271138 -0.000178
-v 0.601572 5.269704 -0.000178
-v 0.589741 5.315586 -0.000178
-v 0.561138 5.286431 -0.000178
-v 0.616228 5.359894 -0.000178
-v 0.659029 5.522835 -0.000178
-v 0.654866 5.473672 -0.000178
-v 0.670598 5.539687 -0.000178
-v 0.717054 5.498289 -0.000178
-v 0.775843 5.425636 -0.000178
-v 0.786682 5.357014 -0.000178
-v 0.750770 5.290197 -0.000178
-v 0.767541 5.305588 -0.000178
-v 0.763965 5.278866 -0.000178
-v 0.847876 5.272824 -0.000178
-v 0.917379 5.299571 -0.000178
-v 0.955695 5.355863 -0.000178
-v 0.941216 5.485821 -0.000178
-v 0.955634 5.438861 -0.000178
-v 0.955578 5.514775 -0.000178
-v 1.029874 5.543750 -0.000178
-v 1.061003 5.594168 -0.000178
-v 1.050158 5.671900 -0.000178
-v 1.062163 5.645587 -0.000178
-v 0.997389 5.708117 -0.000178
-v 1.028566 5.692743 -0.000178
-v 0.978222 5.692117 -0.000178
-v 0.980607 5.707908 -0.000178
-v 0.923102 5.665982 -0.000178
-v 0.811612 5.684768 -0.000178
-v 0.873955 5.668191 -0.000178
-v 0.517526 5.809513 -0.000178
-v 0.421837 5.803005 -0.000178
-v 0.334437 5.750560 -0.000178
-v 0.288120 5.670815 -0.000178
-v 0.278871 5.583405 -0.000178
-v 0.345870 5.486310 -0.000178
-v 0.309896 5.515944 -0.000178
-v 0.494061 5.305954 0.123511
-v 0.545513 5.349375 0.123511
-v 0.500018 5.425898 0.123511
-v 0.470473 5.376470 0.123511
-v 0.564482 5.431025 0.123511
-v 0.541191 5.438536 0.123511
-v 0.490694 5.715039 0.123511
-v 0.385730 5.608974 0.123511
-v 0.861703 5.463790 0.123511
-v 0.874926 5.424644 0.123511
-v 0.970352 5.590698 0.123511
-v 0.831140 5.511280 0.123511
-v 0.785386 5.561415 0.123511
-v 0.856916 5.339489 0.123511
-v 0.510551 5.186327 0.123511
-v 0.574522 5.235818 0.123511
-v 0.547534 5.217666 0.123511
-v 0.591474 5.219917 0.123511
-v 0.549926 5.504280 0.123511
-v 0.527090 5.570638 0.123511
-v 0.481434 5.520294 0.123511
-v 0.530146 5.494235 0.123511
-v 0.479066 5.555797 0.123511
-v 0.470522 5.538355 0.123511
-v 0.802856 5.311946 0.123511
-v 0.440389 5.273817 0.123511
-v 0.479508 5.472592 0.089382
-v 0.445514 5.484608 0.089382
-v 0.439370 5.482518 0.109859
-v 0.387881 5.469887 0.089381
-v 0.429909 5.458251 0.089381
-v 0.417923 5.476707 0.109859
-v 0.326010 5.517920 0.092448
-v 0.361985 5.488284 0.092448
-v 0.392027 5.495102 0.112926
-v 0.362685 5.519274 0.112926
-v 0.296974 5.582496 0.092448
-v 0.335251 5.577381 0.112926
-v 0.306206 5.666270 0.092448
-v 0.342812 5.652568 0.112926
-v 0.350880 5.742265 0.092448
-v 0.382350 5.721624 0.112926
-v 0.434858 5.792035 0.092448
-v 0.457298 5.767262 0.112926
-v 0.526252 5.797686 0.092448
-v 0.539941 5.773489 0.112926
-v 0.873130 5.659646 0.093115
-v 0.810786 5.676223 0.093115
-v 0.802427 5.662618 0.113593
-v 0.877212 5.640411 0.113593
-v 0.923474 5.656149 0.092448
-v 0.927556 5.636914 0.112926
-v 0.982963 5.695159 0.093722
-v 0.980578 5.679368 0.093722
-v 0.978032 5.657892 0.114200
-v 0.993280 5.668571 0.114200
-v 1.026809 5.686442 0.089382
-v 0.995631 5.701816 0.089382
-v 1.005948 5.675226 0.109859
-v 1.051585 5.640802 0.092590
-v 1.039579 5.667114 0.092590
-v 1.018718 5.655898 0.113068
-v 1.029258 5.632510 0.113068
-v 1.049458 5.591613 0.092271
-v 1.023436 5.590175 0.112750
-v 1.015682 5.544410 0.092490
-v 0.984745 5.550106 0.112969
-v 0.942554 5.518014 0.092448
-v 0.919570 5.525727 0.112926
-v 0.945004 5.442576 0.092866
-v 0.930586 5.489536 0.092866
-v 0.907602 5.497252 0.113344
-v 0.926206 5.448348 0.113344
-v 0.946826 5.360417 0.092448
-v 0.928906 5.373504 0.112926
-v 0.909790 5.306975 0.092448
-v 0.896286 5.324542 0.112926
-v 0.843061 5.281743 0.092448
-v 0.836627 5.301105 0.112926
-v 0.767983 5.285222 0.090682
-v 0.804707 5.297311 0.111161
-v 0.794186 5.297959 0.111161
-v 0.779451 5.311057 0.092448
-v 0.762682 5.295666 0.092448
-v 0.788883 5.308403 0.112926
-v 0.802562 5.320957 0.112926
-v 0.797526 5.360498 0.092448
-v 0.819314 5.365025 0.112926
-v 0.786797 5.426218 0.092448
-v 0.810358 5.424101 0.112926
-v 0.730038 5.495645 0.092448
-v 0.760234 5.486811 0.112926
-v 0.682757 5.539909 0.093967
-v 0.696662 5.549114 0.114446
-v 0.613526 5.603806 0.092728
-v 0.650154 5.569179 0.092728
-v 0.664060 5.578382 0.113206
-v 0.629492 5.612260 0.113206
-v 0.545143 5.643930 0.093384
-v 0.550349 5.662285 0.113862
-v 0.501502 5.648447 0.093048
-v 0.506708 5.666801 0.113526
-v 0.418937 5.628274 0.113994
-v 0.421121 5.612298 0.093515
-v 0.503310 5.459183 0.093440
-v 0.475158 5.450655 0.093440
-v 0.493435 5.445159 0.113918
-v 0.534608 5.457798 0.113918
-v 0.465640 5.486594 0.093627
-v 0.499634 5.474578 0.093627
-v 0.530931 5.473194 0.114106
-v 0.482219 5.499254 0.114106
-v 0.450710 5.583147 0.112106
-v 0.433839 5.604552 0.091629
-v 0.504160 5.629180 0.091966
-v 0.502804 5.605110 0.112443
-v 0.537775 5.625658 0.092448
-v 0.536419 5.601588 0.112926
-v 0.636398 5.557381 0.092069
-v 0.599770 5.592010 0.092069
-v 0.592514 5.570402 0.112546
-v 0.615937 5.547515 0.112546
-v 0.645166 5.471096 0.092448
-v 0.649330 5.520258 0.092448
-v 0.628868 5.510393 0.112926
-v 0.625473 5.470294 0.112926
-v 0.607939 5.362035 0.092470
-v 0.593234 5.371274 0.112949
-v 0.546701 5.287212 0.093566
-v 0.575304 5.316366 0.093566
-v 0.560599 5.325606 0.114044
-v 0.509146 5.282185 0.114044
-v 0.587233 5.265692 0.093626
-v 0.550742 5.267126 0.093626
-v 0.513188 5.262099 0.114103
-v 0.570921 5.255943 0.114103
-v 0.646254 5.225375 0.091975
-v 0.622495 5.253418 0.091975
-v 0.606183 5.243670 0.112454
-v 0.623135 5.227768 0.112454
-v 0.618793 5.146736 0.091746
-v 0.646468 5.194917 0.091746
-v 0.623349 5.197310 0.112225
-v 0.610153 5.170753 0.112225
-v 0.525999 5.109948 0.092448
-v 0.582210 5.122450 0.092448
-v 0.573570 5.146466 0.112926
-v 0.527722 5.136270 0.112926
-v 0.478291 5.118040 0.092282
-v 0.480014 5.144361 0.112761
-v 0.399372 5.179461 0.092250
-v 0.416054 5.201977 0.112728
-v 0.376874 5.259162 0.092448
-v 0.403944 5.274145 0.112926
-v 0.439946 5.417790 0.092430
-v 0.402774 5.356741 0.092430
-v 0.428678 5.362868 0.112909
-v 0.458223 5.412295 0.112909
-v 0.736686 5.605947 0.123511
-v 0.531150 5.719302 0.123511
-v 0.381454 5.531240 0.123511
-v 0.406946 5.503573 0.123511
-v 0.394917 5.657471 0.123511
-v 0.887220 5.368674 0.123511
-v 0.919384 5.572126 0.123511
-v 0.948260 5.556879 0.123511
-v 0.877842 5.588543 0.123511
-v 0.802170 5.613324 0.123511
-v 0.998508 5.634236 0.123511
-v 1.000863 5.651269 0.123511
-v 0.821135 5.315813 0.123511
-v 0.445729 5.233723 0.123511
-v 0.582807 5.538704 0.123511
-v 0.579542 5.483232 0.123511
-v 0.602834 5.475719 0.123511
-v 0.606229 5.515820 0.123511
-v 0.481455 5.465744 0.089382
-v 0.441317 5.475670 0.109859
-v 0.453302 5.457216 0.089382
-v 0.443761 5.538089 0.112502
-v 0.425538 5.537968 0.092025
-v 0.438094 5.507370 0.092025
-v 0.454673 5.520028 0.112502
-v 0.411730 5.534671 0.093005
-v 0.396498 5.533141 0.113482
-v 0.418141 5.501982 0.113482
-v 0.424286 5.504072 0.093005
-v 0.345870 5.486310 0.041099
-v 0.309896 5.515944 0.041099
-v 2.041447 5.441407 0.000016
-v 1.902422 5.157276 0.000038
-v 2.000598 5.267411 -0.000016
-v 0.827715 5.464243 -0.018954
-v 1.649046 5.069851 -0.032847
-v 1.776509 5.091953 -0.036823
-v 1.898296 5.160740 -0.040898
-v 1.994962 5.269464 -0.045596
-v 2.035121 5.441407 -0.048052
-v 2.109306 5.441407 -0.067926
-v 2.146399 5.479807 -0.077862
-v 2.084578 5.531006 -0.061302
-v 1.991847 5.569407 -0.036460
-v 2.041304 5.595008 -0.049708
-v 2.096942 5.665406 -0.064614
-v 2.127852 5.665406 -0.072894
-v 2.127852 5.697407 -0.072894
-v 0.830914 5.470578 -0.036093
-v 0.836005 5.480661 -0.050811
-v 1.643436 5.101691 -0.088847
-v 1.758191 5.123687 -0.100293
-v 1.866940 5.187052 -0.111804
-v 1.952135 5.285051 -0.124545
-v 1.987059 5.441407 -0.131312
-v 2.041368 5.441407 -0.185614
-v 2.068523 5.479807 -0.212766
-v 2.023265 5.531006 -0.167514
-v 1.955379 5.569407 -0.099636
-v 1.991585 5.595008 -0.135838
-v 2.032317 5.665406 -0.176565
-v 2.054945 5.665406 -0.199190
-v 2.054945 5.697407 -0.199190
-v 0.850366 5.509098 -0.069204
-v 1.633711 5.156838 -0.121179
-v 1.726459 5.178650 -0.136939
-v 1.812627 5.232628 -0.152744
-v 1.877953 5.312052 -0.170130
-v 1.903806 5.441407 -0.179386
-v 1.923689 5.441407 -0.253568
-v 1.933629 5.479807 -0.290659
-v 1.917061 5.531006 -0.228842
-v 1.892206 5.569407 -0.136114
-v 1.905463 5.595008 -0.185568
-v 1.920375 5.665406 -0.241205
-v 1.928659 5.665406 -0.272114
-v 1.928659 5.697407 -0.272114
-v 0.866946 5.541935 -0.069204
-v 1.622482 5.220516 -0.121182
-v 1.689813 5.242119 -0.136943
-v 1.749908 5.285254 -0.152750
-v 1.792290 5.343229 -0.170137
-v 1.807669 5.441407 -0.179394
-v 1.787799 5.441407 -0.253579
-v 1.777863 5.479807 -0.290672
-v 1.794421 5.531006 -0.228851
-v 1.819260 5.569407 -0.136119
-v 1.806012 5.595008 -0.185577
-v 1.791109 5.665406 -0.241215
-v 1.782831 5.665406 -0.272125
-v 1.782831 5.697407 -0.272125
-v 0.881305 5.570374 -0.050811
-v 1.612755 5.275664 -0.088854
-v 1.658075 5.297085 -0.100303
-v 1.695589 5.330832 -0.111818
-v 1.718102 5.370231 -0.124564
-v 1.724408 5.441407 -0.131333
-v 1.670107 5.441407 -0.185643
-v 1.642957 5.479807 -0.212799
-v 1.688207 5.531006 -0.167541
-v 1.756084 5.569407 -0.099651
-v 1.719882 5.595008 -0.135859
-v 1.679158 5.665406 -0.176592
-v 1.656531 5.665406 -0.199222
-v 1.656531 5.697407 -0.199222
-v 1.733685 5.569407 -0.070469
-v 0.889594 5.586796 -0.018954
-v 1.607137 5.307508 -0.032856
-v 1.639748 5.328821 -0.036838
-v 1.664223 5.357145 -0.040918
-v 1.675264 5.385822 -0.045622
-v 1.676331 5.441407 -0.048081
-v 1.602150 5.441407 -0.067966
-v 1.565059 5.479807 -0.077909
-v 1.626877 5.531006 -0.061338
-v 1.719603 5.569407 -0.036482
-v 1.670149 5.595008 -0.049738
-v 1.614513 5.665406 -0.064651
-v 1.583606 5.665406 -0.072936
-v 1.583606 5.697407 -0.072936
-v 0.889594 5.586796 0.017833
-v 1.607132 5.307511 0.031806
-v 1.639743 5.328824 0.036450
-v 1.664215 5.357148 0.040955
-v 1.675255 5.385825 0.045538
-v 1.676321 5.441407 0.048057
-v 1.602136 5.441407 0.067926
-v 1.565044 5.479807 0.077860
-v 1.626865 5.531006 0.061302
-v 1.719597 5.569407 0.036466
-v 1.670139 5.595008 0.049711
-v 1.614500 5.665406 0.064614
-v 1.583589 5.665406 0.072893
-v 1.583589 5.697407 0.072893
-v 1.691782 5.379807 0.088014
-v 0.881302 5.570380 0.049690
-v 1.612743 5.275675 0.087806
-v 1.658060 5.297095 0.099922
-v 1.695569 5.330838 0.111863
-v 1.718076 5.370237 0.124489
-v 1.724379 5.441407 0.131318
-v 1.670067 5.441407 0.185618
-v 1.642911 5.479807 0.212767
-v 1.688171 5.531006 0.167518
-v 1.756062 5.569407 0.099644
-v 1.719855 5.595008 0.135843
-v 1.679120 5.665406 0.176567
-v 1.656490 5.665406 0.199191
-v 1.656490 5.697407 0.199191
-v 0.866942 5.541945 0.068085
-v 1.622465 5.220531 0.120141
-v 1.689792 5.242130 0.136571
-v 1.749879 5.285265 0.152806
-v 1.792256 5.343235 0.170078
-v 1.807631 5.441407 0.179396
-v 1.787743 5.441407 0.253577
-v 1.777802 5.479807 0.290667
-v 1.794373 5.531006 0.228850
-v 1.819231 5.569407 0.136125
-v 1.805974 5.595008 0.185578
-v 1.791058 5.665406 0.241213
-v 1.782773 5.665406 0.272123
-v 1.782773 5.697407 0.272123
-v 0.850362 5.509104 0.068087
-v 1.633698 5.156850 0.120147
-v 1.726436 5.178664 0.136579
-v 1.812598 5.232639 0.152818
-v 1.877919 5.312058 0.170090
-v 1.903767 5.441407 0.179410
-v 1.923634 5.441407 0.253595
-v 1.933568 5.479807 0.290689
-v 1.917012 5.531006 0.228866
-v 1.892178 5.569407 0.136134
-v 1.905423 5.595008 0.185592
-v 1.920323 5.665406 0.241231
-v 1.928601 5.665406 0.272141
-v 1.928601 5.697407 0.272141
-v 0.836002 5.480664 0.049696
-v 1.643425 5.101700 0.087822
-v 1.758174 5.123696 0.099943
-v 1.866919 5.187061 0.111890
-v 1.952110 5.285056 0.124521
-v 1.987030 5.441407 0.131352
-v 2.041330 5.441407 0.185667
-v 2.068478 5.479807 0.212822
-v 2.023230 5.531006 0.167562
-v 1.955357 5.569407 0.099670
-v 1.991556 5.595008 0.135879
-v 2.032280 5.665406 0.176614
-v 2.054904 5.665406 0.199245
-v 2.054904 5.697407 0.199245
-v 1.977757 5.569407 0.070487
-v 0.827713 5.464243 0.017841
-v 1.649043 5.069855 0.031826
-v 1.776505 5.091958 0.036479
-v 1.898288 5.160743 0.040991
-v 1.994951 5.269464 0.045582
-v 2.035112 5.441407 0.048103
-v 2.109293 5.441407 0.067991
-v 2.146382 5.479807 0.077937
-v 2.084566 5.531006 0.061362
-v 1.991841 5.569407 0.036501
-v 2.041295 5.595008 0.049761
-v 2.096928 5.665406 0.064676
-v 2.127837 5.665406 0.072964
-v 2.127837 5.697407 0.072964
-v 1.480159 5.243531 -0.106571
-v 1.502341 5.287462 -0.078158
-v 1.454546 5.192803 -0.106571
-v 1.432361 5.148871 -0.078157
-v 1.515146 5.312833 0.027885
-v 1.502338 5.287472 0.077100
-v 1.480153 5.243540 0.105516
-v 1.454540 5.192812 0.105519
-v 1.432358 5.148880 0.077109
-v 1.419550 5.123511 0.027896
-v 1.516179 5.312378 -0.028960
-v 1.419042 5.123801 -0.028934
-v 1.563461 5.304673 0.030392
-v 1.564023 5.304605 -0.031455
-v 1.558218 5.274195 -0.084999
-v 1.549126 5.221419 -0.115918
-v 1.529535 5.107703 -0.084997
-v 1.538628 5.160480 -0.115917
-v 1.558211 5.274205 0.083947
-v 1.549116 5.221431 0.114869
-v 1.538617 5.160491 0.114874
-v 1.529527 5.107712 0.083959
-v 1.523994 5.077298 -0.031438
-v 1.524280 5.077236 0.030408
-v -0.935916 7.231124 1.621186
-v -0.790965 7.204138 1.766126
-v -0.758390 7.204138 1.723672
-v -0.833417 7.204138 1.798704
-v -0.882855 7.204138 1.819184
-v -0.935909 7.204138 1.826170
-v -0.988963 7.204138 1.819188
-v -1.038402 7.204138 1.798711
-v -1.080857 7.204138 1.766137
-v -1.113434 7.204138 1.723684
-v -1.133914 7.204138 1.674246
-v -1.140901 7.204138 1.621192
-v -1.133918 7.204138 1.568139
-v -1.113442 7.204138 1.518699
-v -1.080867 7.204138 1.476245
-v -1.038415 7.204138 1.443668
-v -0.988977 7.204138 1.423187
-v -0.935924 7.204138 1.416201
-v -0.882869 7.204138 1.423184
-v -0.833430 7.204138 1.443660
-v -0.790975 7.204138 1.476234
-v -0.758398 7.204138 1.518687
-v -0.737918 7.204138 1.568124
-v -0.730931 7.204138 1.621178
-v -0.737914 7.204138 1.674232
-v -0.655892 7.125016 1.901190
-v -0.592963 7.125016 1.819174
-v -0.737904 7.125016 1.964124
-v -0.833411 7.125016 2.003688
-v -0.935902 7.125016 2.017184
-v -1.038394 7.125016 2.003695
-v -1.133904 7.125016 1.964139
-v -1.215920 7.125016 1.901209
-v -1.278855 7.125016 1.819197
-v -1.318419 7.125016 1.723691
-v -1.331916 7.125016 1.621200
-v -1.318426 7.125016 1.518708
-v -1.278869 7.125016 1.423198
-v -1.215941 7.125016 1.341181
-v -1.133928 7.125016 1.278246
-v -1.038423 7.125016 1.238682
-v -0.935930 7.125016 1.225186
-v -0.833438 7.125016 1.238675
-v -0.737928 7.125016 1.278233
-v -0.655912 7.125016 1.341161
-v -0.592978 7.125016 1.423172
-v -0.553413 7.125016 1.518679
-v -0.539916 7.125016 1.621171
-v -0.553406 7.125016 1.723664
-v -0.539902 6.999153 2.017171
-v -0.450907 6.999153 1.901182
-v -0.655885 6.999153 2.106174
-v -0.790951 6.999153 2.162126
-v -0.935896 6.999153 2.181214
-v -1.080843 6.999153 2.162137
-v -1.215913 6.999153 2.106194
-v -1.331902 6.999153 2.017200
-v -1.420905 6.999153 1.901217
-v -1.476856 6.999153 1.766151
-v -1.495945 6.999153 1.621206
-v -1.476867 6.999153 1.476258
-v -1.420925 6.999153 1.341189
-v -1.331930 6.999153 1.225199
-v -1.215948 6.999153 1.136197
-v -1.080882 6.999153 1.080244
-v -0.935937 6.999153 1.061157
-v -0.790990 6.999153 1.080234
-v -0.655919 6.999153 1.136176
-v -0.539931 6.999153 1.225170
-v -0.450928 6.999153 1.341153
-v -0.394976 6.999153 1.476219
-v -0.375888 6.999153 1.621165
-v -0.394965 6.999153 1.766112
-v -0.450900 6.835124 2.106167
-v -0.341904 6.835124 1.964110
-v -0.592949 6.835124 2.215173
-v -0.758371 6.835124 2.283700
-v -0.935891 6.835124 2.307077
-v -1.113414 6.835124 2.283713
-v -1.278841 6.835124 2.215197
-v -1.420897 6.835124 2.106202
-v -1.529903 6.835124 1.964153
-v -1.598430 6.835124 1.798731
-v -1.621808 6.835124 1.621209
-v -1.598444 6.835124 1.443688
-v -1.529929 6.835124 1.278261
-v -1.420933 6.835124 1.136204
-v -1.278884 6.835124 1.027199
-v -1.113463 6.835124 0.958671
-v -0.935941 6.835124 0.935293
-v -0.758418 6.835124 0.958658
-v -0.592992 6.835124 1.027173
-v -0.450935 6.835124 1.136169
-v -0.341929 6.835124 1.278217
-v -0.273402 6.835124 1.443639
-v -0.250024 6.835124 1.621160
-v -0.273389 6.835124 1.798683
-v -0.394951 6.644109 2.162112
-v -0.273382 6.644109 2.003668
-v -0.553386 6.644109 2.283693
-v -0.737890 6.644109 2.360124
-v -0.935889 6.644109 2.386198
-v -1.133890 6.644109 2.360139
-v -1.318400 6.644109 2.283720
-v -1.476843 6.644109 2.162151
-v -1.598423 6.644109 2.003716
-v -1.674855 6.644109 1.819212
-v -1.700929 6.644109 1.621213
-v -1.674870 6.644109 1.423212
-v -1.598451 6.644109 1.238703
-v -1.476882 6.644109 1.080259
-v -1.318446 6.644109 0.958678
-v -1.133944 6.644109 0.882247
-v -0.935944 6.644109 0.856172
-v -0.737943 6.644109 0.882232
-v -0.553434 6.644109 0.958651
-v -0.394989 6.644109 1.080219
-v -0.273410 6.644109 1.238654
-v -0.196978 6.644109 1.423158
-v -0.170903 6.644109 1.621157
-v -0.196962 6.644109 1.819158
-v -0.375868 6.439125 2.181194
-v -0.250010 6.439125 2.017161
-v -0.539892 6.439125 2.307063
-v -0.730904 6.439125 2.386191
-v -0.935887 6.439125 2.413185
-v -1.140874 6.439125 2.386206
-v -1.331892 6.439125 2.307091
-v -1.495925 6.439125 2.181234
-v -1.621794 6.439125 2.017210
-v -1.700922 6.439125 1.826198
-v -1.727916 6.439125 1.621213
-v -1.700937 6.439125 1.416228
-v -1.621823 6.439125 1.225210
-v -1.495965 6.439125 1.061177
-v -1.331942 6.439125 0.935308
-v -1.140928 6.439125 0.856180
-v -0.935945 6.439125 0.829185
-v -0.730960 6.439125 0.856165
-v -0.539941 6.439125 0.935279
-v -0.375908 6.439125 1.061136
-v -0.250038 6.439125 1.225160
-v -0.170910 6.439125 1.416173
-v -0.143917 6.439125 1.621156
-v -0.170895 6.439125 1.826142
-v -0.394951 6.234140 2.162112
-v -0.273382 6.234140 2.003668
-v -0.553386 6.234140 2.283693
-v -0.737889 6.234140 2.360124
-v -0.935889 6.234140 2.386198
-v -1.133890 6.234140 2.360139
-v -1.318400 6.234140 2.283720
-v -1.476843 6.234140 2.162151
-v -1.598423 6.234140 2.003716
-v -1.674855 6.234140 1.819212
-v -1.700930 6.234140 1.621213
-v -1.674870 6.234140 1.423212
-v -1.598451 6.234140 1.238703
-v -1.476882 6.234140 1.080259
-v -1.318447 6.234140 0.958678
-v -1.133943 6.234140 0.882246
-v -0.935944 6.234140 0.856172
-v -0.737943 6.234140 0.882232
-v -0.553433 6.234140 0.958650
-v -0.394989 6.234140 1.080219
-v -0.273409 6.234140 1.238654
-v -0.196978 6.234140 1.423158
-v -0.170903 6.234140 1.621157
-v -0.196962 6.234140 1.819158
-v -0.450900 6.043124 2.106167
-v -0.341904 6.043124 1.964110
-v -0.592949 6.043124 2.215173
-v -0.758370 6.043124 2.283701
-v -0.935891 6.043124 2.307078
-v -1.113414 6.043124 2.283713
-v -1.278841 6.043124 2.215197
-v -1.420897 6.043124 2.106202
-v -1.529904 6.043124 1.964153
-v -1.598432 6.043124 1.798732
-v -1.621809 6.043124 1.621211
-v -1.598444 6.043124 1.443688
-v -1.529929 6.043124 1.278261
-v -1.420933 6.043124 1.136204
-v -1.278884 6.043124 1.027197
-v -1.113462 6.043124 0.958670
-v -0.935941 6.043124 0.935293
-v -0.758418 6.043124 0.958658
-v -0.592992 6.043124 1.027173
-v -0.450935 6.043124 1.136168
-v -0.341929 6.043124 1.278217
-v -0.273402 6.043124 1.443639
-v -0.250023 6.043124 1.621160
-v -0.273388 6.043124 1.798683
-v -0.539902 5.879096 2.017171
-v -0.450907 5.879096 1.901182
-v -0.655885 5.879096 2.106174
-v -0.790950 5.879096 2.162127
-v -0.935896 5.879096 2.181215
-v -1.080843 5.879096 2.162137
-v -1.215914 5.879096 2.106194
-v -1.331902 5.879096 2.017200
-v -1.420905 5.879096 1.901217
-v -1.476857 5.879096 1.766150
-v -1.495945 5.879096 1.621206
-v -1.476867 5.879096 1.476258
-v -1.420925 5.879096 1.341188
-v -1.331931 5.879096 1.225199
-v -1.215949 5.879096 1.136196
-v -1.080882 5.879096 1.080244
-v -0.935937 5.879096 1.061157
-v -0.790990 5.879096 1.080234
-v -0.655919 5.879096 1.136176
-v -0.539931 5.879096 1.225170
-v -0.450927 5.879096 1.341153
-v -0.394976 5.879096 1.476219
-v -0.375887 5.879096 1.621165
-v -0.394965 5.879096 1.766112
-v -0.655892 5.753232 1.901190
-v -0.592963 5.753232 1.819174
-v -0.737903 5.753232 1.964125
-v -0.833410 5.753232 2.003689
-v -0.935902 5.753232 2.017185
-v -1.038395 5.753232 2.003696
-v -1.133904 5.753232 1.964139
-v -1.215921 5.753232 1.901210
-v -1.278855 5.753232 1.819197
-v -1.318419 5.753232 1.723692
-v -1.331916 5.753232 1.621200
-v -1.318427 5.753232 1.518707
-v -1.278869 5.753232 1.423198
-v -1.215941 5.753232 1.341181
-v -1.133929 5.753232 1.278246
-v -1.038423 5.753232 1.238682
-v -0.935931 5.753232 1.225185
-v -0.833438 5.753232 1.238675
-v -0.737928 5.753232 1.278232
-v -0.655912 5.753232 1.341161
-v -0.592977 5.753232 1.423173
-v -0.553413 5.753232 1.518679
-v -0.539916 5.753232 1.621171
-v -0.553405 5.753232 1.723664
-v -0.790965 5.674111 1.766127
-v -0.758390 5.674111 1.723672
-v -0.833417 5.674111 1.798704
-v -0.882854 5.674111 1.819184
-v -0.935909 5.674111 1.826171
-v -0.988963 5.674111 1.819188
-v -1.038403 5.674111 1.798711
-v -1.080857 5.674111 1.766137
-v -1.113434 5.674111 1.723684
-v -1.133914 5.674111 1.674246
-v -1.140901 5.674111 1.621193
-v -1.133918 5.674111 1.568139
-v -1.113442 5.674111 1.518699
-v -1.080868 5.674111 1.476244
-v -1.038415 5.674111 1.443667
-v -0.988978 5.674111 1.423187
-v -0.935924 5.674111 1.416201
-v -0.882869 5.674111 1.423183
-v -0.833430 5.674111 1.443660
-v -0.790975 5.674111 1.476233
-v -0.758398 5.674111 1.518686
-v -0.737918 5.674111 1.568124
-v -0.730931 5.674111 1.621178
-v -0.737914 5.674111 1.674232
-v -0.935916 5.647125 1.621186
-v -0.935916 7.231124 -1.621186
-v -1.133918 7.204138 -1.568138
-v -1.113442 7.204138 -1.518699
-v -1.140901 7.204138 -1.621192
-v -1.133914 7.204138 -1.674246
-v -1.113434 7.204138 -1.723684
-v -1.080857 7.204138 -1.766137
-v -1.038402 7.204138 -1.798711
-v -0.988963 7.204138 -1.819188
-v -0.935909 7.204138 -1.826170
-v -0.882855 7.204138 -1.819184
-v -0.833417 7.204138 -1.798704
-v -0.790965 7.204138 -1.766127
-v -0.758390 7.204138 -1.723672
-v -0.737914 7.204138 -1.674233
-v -0.730932 7.204138 -1.621179
-v -0.737918 7.204138 -1.568125
-v -0.758397 7.204138 -1.518687
-v -0.790975 7.204138 -1.476234
-v -0.833430 7.204138 -1.443660
-v -0.882869 7.204138 -1.423184
-v -0.935923 7.204138 -1.416201
-v -0.988977 7.204138 -1.423187
-v -1.038415 7.204138 -1.443667
-v -1.080867 7.204138 -1.476244
-v -1.318427 7.125016 -1.518706
-v -1.278869 7.125016 -1.423198
-v -1.331916 7.125016 -1.621199
-v -1.318419 7.125016 -1.723691
-v -1.278855 7.125016 -1.819197
-v -1.215921 7.125016 -1.901209
-v -1.133904 7.125016 -1.964139
-v -1.038395 7.125016 -2.003695
-v -0.935902 7.125016 -2.017185
-v -0.833411 7.125016 -2.003688
-v -0.737904 7.125016 -1.964125
-v -0.655893 7.125016 -1.901190
-v -0.592963 7.125016 -1.819174
-v -0.553406 7.125016 -1.723665
-v -0.539916 7.125016 -1.621172
-v -0.553413 7.125016 -1.518680
-v -0.592977 7.125016 -1.423174
-v -0.655911 7.125016 -1.341161
-v -0.737928 7.125016 -1.278233
-v -0.833437 7.125016 -1.238675
-v -0.935929 7.125016 -1.225185
-v -1.038421 7.125016 -1.238682
-v -1.133928 7.125016 -1.278245
-v -1.215940 7.125016 -1.341181
-v -1.476867 6.999153 -1.476258
-v -1.420924 6.999153 -1.341188
-v -1.495945 6.999153 -1.621205
-v -1.476857 6.999153 -1.766150
-v -1.420906 6.999153 -1.901216
-v -1.331903 6.999153 -2.017199
-v -1.215913 6.999153 -2.106194
-v -1.080844 6.999153 -2.162136
-v -0.935897 6.999153 -2.181214
-v -0.790952 6.999153 -2.162126
-v -0.655885 6.999153 -2.106175
-v -0.539902 6.999153 -2.017172
-v -0.450908 6.999153 -1.901183
-v -0.394965 6.999153 -1.766113
-v -0.375888 6.999153 -1.621166
-v -0.394974 6.999153 -1.476221
-v -0.450926 6.999153 -1.341155
-v -0.539929 6.999153 -1.225172
-v -0.655919 6.999153 -1.136176
-v -0.790988 6.999153 -1.080234
-v -0.935934 6.999153 -1.061157
-v -1.080880 6.999153 -1.080244
-v -1.215946 6.999153 -1.136196
-v -1.331930 6.999153 -1.225199
-v -1.598443 6.835124 -1.443686
-v -1.529928 6.835124 -1.278260
-v -1.621808 6.835124 -1.621209
-v -1.598431 6.835124 -1.798730
-v -1.529905 6.835124 -1.964151
-v -1.420899 6.835124 -2.106201
-v -1.278841 6.835124 -2.215197
-v -1.113416 6.835124 -2.283712
-v -0.935893 6.835124 -2.307077
-v -0.758372 6.835124 -2.283700
-v -0.592949 6.835124 -2.215173
-v -0.450901 6.835124 -2.106169
-v -0.341905 6.835124 -1.964112
-v -0.273390 6.835124 -1.798685
-v -0.250025 6.835124 -1.621162
-v -0.273401 6.835124 -1.443642
-v -0.341927 6.835124 -1.278219
-v -0.450933 6.835124 -1.136170
-v -0.592990 6.835124 -1.027174
-v -0.758417 6.835124 -0.958659
-v -0.935939 6.835124 -0.935293
-v -1.113460 6.835124 -0.958670
-v -1.278882 6.835124 -1.027197
-v -1.420932 6.835124 -1.136203
-v -1.674869 6.644109 -1.423211
-v -1.598450 6.644109 -1.238701
-v -1.700929 6.644109 -1.621212
-v -1.674855 6.644109 -1.819211
-v -1.598424 6.644109 -2.003714
-v -1.476844 6.644109 -2.162150
-v -1.318400 6.644109 -2.283720
-v -1.133891 6.644109 -2.360138
-v -0.935890 6.644109 -2.386199
-v -0.737891 6.644109 -2.360124
-v -0.553387 6.644109 -2.283693
-v -0.394952 6.644109 -2.162114
-v -0.273383 6.644109 -2.003670
-v -0.196964 6.644109 -1.819160
-v -0.170903 6.644109 -1.621159
-v -0.196977 6.644109 -1.423161
-v -0.273407 6.644109 -1.238656
-v -0.394988 6.644109 -1.080221
-v -0.553432 6.644109 -0.958652
-v -0.737941 6.644109 -0.882232
-v -0.935941 6.644109 -0.856172
-v -1.133941 6.644109 -0.882246
-v -1.318445 6.644109 -0.958677
-v -1.476880 6.644109 -1.080257
-v -1.700936 6.439125 -1.416227
-v -1.621822 6.439125 -1.225209
-v -1.727916 6.439125 -1.621213
-v -1.700922 6.439125 -1.826196
-v -1.621795 6.439125 -2.017208
-v -1.495925 6.439125 -2.181233
-v -1.331892 6.439125 -2.307091
-v -1.140875 6.439125 -2.386206
-v -0.935889 6.439125 -2.413185
-v -0.730905 6.439125 -2.386192
-v -0.539892 6.439125 -2.307064
-v -0.375868 6.439125 -2.181195
-v -0.250011 6.439125 -2.017163
-v -0.170896 6.439125 -1.826144
-v -0.143916 6.439125 -1.621159
-v -0.170910 6.439125 -1.416175
-v -0.250037 6.439125 -1.225162
-v -0.375906 6.439125 -1.061138
-v -0.539939 6.439125 -0.935280
-v -0.730957 6.439125 -0.856165
-v -0.935943 6.439125 -0.829185
-v -1.140927 6.439125 -0.856179
-v -1.331939 6.439125 -0.935307
-v -1.495964 6.439125 -1.061176
-v -1.674869 6.234140 -1.423211
-v -1.598450 6.234140 -1.238701
-v -1.700929 6.234140 -1.621212
-v -1.674856 6.234140 -1.819210
-v -1.598424 6.234140 -2.003714
-v -1.476844 6.234140 -2.162150
-v -1.318400 6.234140 -2.283720
-v -1.133891 6.234140 -2.360138
-v -0.935890 6.234140 -2.386199
-v -0.737891 6.234140 -2.360124
-v -0.553387 6.234140 -2.283693
-v -0.394952 6.234140 -2.162114
-v -0.273383 6.234140 -2.003670
-v -0.196964 6.234140 -1.819160
-v -0.170902 6.234140 -1.621160
-v -0.196976 6.234140 -1.423160
-v -0.273407 6.234140 -1.238656
-v -0.394988 6.234140 -1.080221
-v -0.553432 6.234140 -0.958651
-v -0.737941 6.234140 -0.882232
-v -0.935942 6.234140 -0.856172
-v -1.133941 6.234140 -0.882246
-v -1.318445 6.234140 -0.958677
-v -1.476880 6.234140 -1.080257
-v -1.598443 6.043124 -1.443686
-v -1.529928 6.043124 -1.278260
-v -1.621808 6.043124 -1.621209
-v -1.598432 6.043124 -1.798730
-v -1.529905 6.043124 -1.964152
-v -1.420899 6.043124 -2.106201
-v -1.278841 6.043124 -2.215197
-v -1.113416 6.043124 -2.283712
-v -0.935892 6.043124 -2.307078
-v -0.758372 6.043124 -2.283701
-v -0.592950 6.043124 -2.215174
-v -0.450901 6.043124 -2.106169
-v -0.341905 6.043124 -1.964112
-v -0.273390 6.043124 -1.798685
-v -0.250023 6.043124 -1.621162
-v -0.273401 6.043124 -1.443641
-v -0.341927 6.043124 -1.278219
-v -0.450933 6.043124 -1.136170
-v -0.592990 6.043124 -1.027174
-v -0.758416 6.043124 -0.958658
-v -0.935939 6.043124 -0.935293
-v -1.113460 6.043124 -0.958670
-v -1.278882 6.043124 -1.027196
-v -1.420931 6.043124 -1.136202
-v -1.476867 5.879096 -1.476258
-v -1.420925 5.879096 -1.341187
-v -1.495945 5.879096 -1.621205
-v -1.476858 5.879096 -1.766150
-v -1.420906 5.879096 -1.901217
-v -1.331903 5.879096 -2.017199
-v -1.215914 5.879096 -2.106194
-v -1.080844 5.879096 -2.162137
-v -0.935897 5.879096 -2.181214
-v -0.790951 5.879096 -2.162127
-v -0.655885 5.879096 -2.106175
-v -0.539902 5.879096 -2.017172
-v -0.450907 5.879096 -1.901183
-v -0.394964 5.879096 -1.766113
-v -0.375887 5.879096 -1.621167
-v -0.394974 5.879096 -1.476221
-v -0.450926 5.879096 -1.341155
-v -0.539929 5.879096 -1.225172
-v -0.655919 5.879096 -1.136176
-v -0.790988 5.879096 -1.080234
-v -0.935935 5.879096 -1.061156
-v -1.080880 5.879096 -1.080244
-v -1.215947 5.879096 -1.136195
-v -1.331930 5.879096 -1.225199
-v -1.318427 5.753232 -1.518706
-v -1.278869 5.753232 -1.423198
-v -1.331917 5.753232 -1.621199
-v -1.318420 5.753232 -1.723691
-v -1.278855 5.753232 -1.819197
-v -1.215922 5.753232 -1.901210
-v -1.133904 5.753232 -1.964139
-v -1.038396 5.753232 -2.003696
-v -0.935902 5.753232 -2.017185
-v -0.833411 5.753232 -2.003689
-v -0.737904 5.753232 -1.964125
-v -0.655892 5.753232 -1.901191
-v -0.592963 5.753232 -1.819174
-v -0.553406 5.753232 -1.723665
-v -0.539915 5.753232 -1.621172
-v -0.553413 5.753232 -1.518680
-v -0.592976 5.753232 -1.423174
-v -0.655911 5.753232 -1.341161
-v -0.737928 5.753232 -1.278232
-v -0.833437 5.753232 -1.238675
-v -0.935930 5.753232 -1.225185
-v -1.038421 5.753232 -1.238682
-v -1.133928 5.753232 -1.278245
-v -1.215940 5.753232 -1.341180
-v -1.133918 5.674111 -1.568139
-v -1.113442 5.674111 -1.518699
-v -1.140901 5.674111 -1.621192
-v -1.133915 5.674111 -1.674246
-v -1.113435 5.674111 -1.723684
-v -1.080857 5.674111 -1.766137
-v -1.038403 5.674111 -1.798711
-v -0.988963 5.674111 -1.819188
-v -0.935909 5.674111 -1.826170
-v -0.882855 5.674111 -1.819184
-v -0.833418 5.674111 -1.798705
-v -0.790965 5.674111 -1.766127
-v -0.758390 5.674111 -1.723672
-v -0.737913 5.674111 -1.674233
-v -0.730931 5.674111 -1.621178
-v -0.737917 5.674111 -1.568125
-v -0.758397 5.674111 -1.518687
-v -0.790975 5.674111 -1.476233
-v -0.833430 5.674111 -1.443660
-v -0.882869 5.674111 -1.423183
-v -0.935923 5.674111 -1.416200
-v -0.988977 5.674111 -1.423187
-v -1.038415 5.674111 -1.443667
-v -1.080867 5.674111 -1.476244
-v -0.935916 5.647125 -1.621186
-v -0.190840 5.515944 -0.247657
-v -0.243367 5.517920 -0.235939
-v -0.261354 5.488284 -0.267095
-v -0.208826 5.486310 -0.278812
-v -0.173079 5.486310 -0.299449
-v -0.155093 5.515944 -0.268294
-v -0.228850 5.582496 -0.210793
-v -0.139581 5.583405 -0.241425
-v -0.233466 5.666270 -0.218788
-v -0.144205 5.670815 -0.249435
-v -0.255802 5.742265 -0.257478
-v -0.167363 5.750560 -0.289548
-v -0.297788 5.792035 -0.330207
-v -0.211060 5.803005 -0.365240
-v -0.343482 5.797686 -0.409358
-v -0.258901 5.809513 -0.448111
-v -0.486318 5.676223 -0.655443
-v -0.405936 5.684768 -0.702802
-v -0.517488 5.659646 -0.709435
-v -0.437105 5.668191 -0.756794
-v -0.571735 5.679368 -0.802186
-v -0.542081 5.656149 -0.753369
-v -0.461677 5.665982 -0.799357
-v -0.489236 5.692117 -0.847093
-v -0.572927 5.695159 -0.804252
-v -0.490428 5.707908 -0.849159
-v -0.591090 5.686442 -0.844394
-v -0.575502 5.701816 -0.817393
-v -0.498818 5.708117 -0.863693
-v -0.514406 5.692743 -0.890693
-v -0.606256 5.640802 -0.864248
-v -0.600253 5.667114 -0.853850
-v -0.525201 5.671900 -0.909393
-v -0.531203 5.645587 -0.919790
-v -0.604916 5.591613 -0.862565
-v -0.530623 5.594168 -0.918785
-v -0.588219 5.544410 -0.833204
-v -0.515060 5.543750 -0.891826
-v -0.551621 5.518014 -0.769893
-v -0.477914 5.514775 -0.827483
-v -0.553208 5.442576 -0.771806
-v -0.545999 5.489536 -0.759319
-v -0.470734 5.485821 -0.815044
-v -0.477942 5.438861 -0.827531
-v -0.553757 5.360417 -0.773593
-v -0.477973 5.355863 -0.827584
-v -0.535240 5.306975 -0.741518
-v -0.458816 5.299571 -0.794401
-v -0.501877 5.281743 -0.683728
-v -0.424066 5.272824 -0.734208
-v -0.462811 5.285222 -0.619590
-v -0.382114 5.278866 -0.661537
-v -0.470074 5.311057 -0.628639
-v -0.461690 5.295666 -0.614116
-v -0.375516 5.290197 -0.650110
-v -0.383901 5.305588 -0.664634
-v -0.479111 5.360498 -0.644293
-v -0.393471 5.357014 -0.681211
-v -0.473747 5.426218 -0.635001
-v -0.388052 5.425636 -0.671824
-v -0.445369 5.495645 -0.585845
-v -0.358659 5.498289 -0.620911
-v -0.423046 5.539909 -0.544138
-v -0.335433 5.539687 -0.580678
-v -0.402936 5.471096 -0.512342
-v -0.405018 5.520258 -0.515948
-v -0.329649 5.522835 -0.570658
-v -0.327567 5.473672 -0.567053
-v -0.384342 5.362035 -0.480091
-v -0.308249 5.359894 -0.533591
-v -0.354674 5.287212 -0.426508
-v -0.368975 5.316366 -0.451280
-v -0.295007 5.315586 -0.510652
-v -0.280706 5.286431 -0.485881
-v -0.374991 5.265692 -0.461581
-v -0.356747 5.267126 -0.429978
-v -0.282678 5.271138 -0.489296
-v -0.300922 5.269704 -0.520898
-v -0.403070 5.225375 -0.513521
-v -0.391191 5.253418 -0.492945
-v -0.315984 5.254966 -0.546988
-v -0.327862 5.226924 -0.567564
-v -0.389142 5.146736 -0.489853
-v -0.402979 5.194917 -0.513821
-v -0.326883 5.188813 -0.565868
-v -0.313047 5.140632 -0.541901
-v -0.343356 5.109948 -0.409139
-v -0.371460 5.122450 -0.457820
-v -0.292077 5.110291 -0.505577
-v -0.263973 5.097790 -0.456896
-v -0.279875 5.179461 -0.299573
-v -0.319359 5.118040 -0.367904
-v -0.237305 5.106178 -0.410702
-v -0.194744 5.170083 -0.336978
-v -0.268798 5.259162 -0.279990
-v -0.182183 5.254062 -0.315219
-v -0.281731 5.356741 -0.302429
-v -0.196221 5.356647 -0.339536
-v -0.300316 5.417790 -0.334622
-v -0.214805 5.417697 -0.371727
-v -0.271645 5.469887 -0.291056
-v -0.292658 5.458251 -0.327454
-v -0.213591 5.454040 -0.369624
-v -0.192578 5.465675 -0.333227
-v -0.296826 5.533141 -0.286469
-v -0.286707 5.534671 -0.309898
-v -0.292985 5.504072 -0.320772
-v -0.307646 5.501982 -0.305212
-v -0.292762 5.537968 -0.322346
-v -0.319607 5.538089 -0.327890
-v -0.325063 5.520028 -0.337341
-v -0.299040 5.507370 -0.333220
-v -0.318430 5.465744 -0.372094
-v -0.304354 5.457216 -0.347713
-v -0.316096 5.475670 -0.327095
-v -0.397028 5.483232 -0.439979
-v -0.398660 5.538704 -0.442806
-v -0.410370 5.515820 -0.463091
-v -0.408673 5.475719 -0.460150
-v -0.381025 5.217666 -0.412258
-v -0.362534 5.186327 -0.380229
-v -0.330125 5.233723 -0.324091
-v -0.355705 5.262099 -0.387217
-v -0.546223 5.324542 -0.719585
-v -0.516395 5.301105 -0.667917
-v -0.517817 5.315813 -0.649208
-v -0.535706 5.339489 -0.680196
-v -0.588197 5.657892 -0.789743
-v -0.595820 5.668571 -0.802949
-v -0.607675 5.651269 -0.804861
-v -0.606498 5.634236 -0.802821
-v -0.522819 5.511280 -0.657873
-v -0.499943 5.561415 -0.618248
-v -0.508335 5.613324 -0.632784
-v -0.546169 5.588543 -0.698319
-v -0.592421 5.590698 -0.778437
-v -0.581375 5.556879 -0.759304
-v -0.566938 5.572126 -0.734296
-v -0.561544 5.448348 -0.745288
-v -0.562532 5.373504 -0.747835
-v -0.550857 5.368674 -0.706441
-v -0.544711 5.424644 -0.695794
-v -0.300127 5.608974 -0.272129
-v -0.265722 5.577381 -0.233704
-v -0.269503 5.652568 -0.240252
-v -0.304721 5.657471 -0.280085
-v -0.310735 5.503573 -0.290503
-v -0.297990 5.531240 -0.268426
-v -0.374076 5.662285 -0.419520
-v -0.351965 5.666801 -0.381893
-v -0.352606 5.715039 -0.363032
-v -0.372833 5.719302 -0.398069
-v -0.327190 5.412295 -0.340212
-v -0.312418 5.362868 -0.314624
-v -0.300067 5.274145 -0.293195
-v -0.305950 5.201977 -0.303782
-v -0.337957 5.144361 -0.359158
-v -0.361952 5.136270 -0.400392
-v -0.384875 5.146466 -0.440099
-v -0.402558 5.170753 -0.472132
-v -0.409156 5.197310 -0.483560
-v -0.409247 5.227768 -0.483260
-v -0.400771 5.243670 -0.468579
-v -0.384570 5.255943 -0.437216
-v -0.353633 5.282185 -0.383746
-v -0.379358 5.325606 -0.428306
-v -0.394726 5.371274 -0.457117
-v -0.410825 5.470294 -0.485049
-v -0.412522 5.510393 -0.487989
-v -0.379911 5.592010 -0.473217
-v -0.398224 5.557381 -0.504938
-v -0.405728 5.547515 -0.476980
-v -0.394017 5.570402 -0.456695
-v -0.349243 5.625658 -0.419337
-v -0.366300 5.601588 -0.407924
-v -0.296569 5.604552 -0.329733
-v -0.332020 5.629180 -0.390466
-v -0.349076 5.605110 -0.379054
-v -0.322738 5.583147 -0.334107
-v -0.331195 5.474578 -0.385716
-v -0.314199 5.486594 -0.356276
-v -0.340224 5.499254 -0.360395
-v -0.364578 5.473194 -0.402582
-v -0.318796 5.450655 -0.364612
-v -0.332871 5.459183 -0.388993
-v -0.366254 5.457798 -0.405860
-v -0.345669 5.445159 -0.370202
-v -0.308488 5.628274 -0.305646
-v -0.291844 5.612298 -0.317776
-v -0.331628 5.648447 -0.387623
-v -0.387359 5.603806 -0.484801
-v -0.353738 5.643930 -0.425250
-v -0.413076 5.612260 -0.488390
-v -0.405672 5.569179 -0.516522
-v -0.430359 5.578382 -0.518327
-v -0.447733 5.549114 -0.545942
-v -0.478201 5.486811 -0.601758
-v -0.503262 5.424101 -0.645167
-v -0.507739 5.365025 -0.652924
-v -0.499364 5.320957 -0.638416
-v -0.492525 5.308403 -0.626569
-v -0.493647 5.297959 -0.632044
-v -0.498908 5.297311 -0.641156
-v -0.552243 5.497252 -0.729176
-v -0.557864 5.525727 -0.739749
-v -0.590487 5.550106 -0.796172
-v -0.609642 5.590175 -0.829790
-v -0.612828 5.632510 -0.834673
-v -0.607558 5.655898 -0.825545
-v -0.598394 5.675226 -0.816090
-v -0.561857 5.636914 -0.746666
-v -0.537264 5.640411 -0.702732
-v -0.499874 5.662618 -0.637965
-v -0.368061 5.773489 -0.410975
-v -0.326742 5.767262 -0.339402
-v -0.289270 5.721624 -0.274494
-v -0.279439 5.519274 -0.257463
-v -0.294109 5.495102 -0.282875
-v -0.304400 5.476707 -0.306835
-v -0.317456 5.472592 -0.370408
-v -0.315123 5.482518 -0.325409
-v -0.300460 5.484608 -0.340968
-v -0.508678 5.311946 -0.633378
-v -0.372331 5.494235 -0.397199
-v -0.347977 5.520294 -0.355013
-v -0.342521 5.538355 -0.345562
-v -0.346793 5.555797 -0.352962
-v -0.370803 5.570638 -0.394553
-v -0.382220 5.504280 -0.414330
-v -0.394518 5.235818 -0.435631
-v -0.402993 5.219917 -0.450312
-v -0.538100 5.463790 -0.684342
-v -0.342496 5.376470 -0.345520
-v -0.357268 5.425898 -0.371107
-v -0.377853 5.438536 -0.406765
-v -0.389498 5.431025 -0.426936
-v -0.380014 5.349375 -0.410508
-v -0.354290 5.305954 -0.365948
-v -0.327455 5.273817 -0.319466
-v -0.475595 5.605947 -0.576072
-v -0.155791 5.282185 -0.497961
-v -0.140050 5.305954 -0.489630
-v -0.113215 5.273817 -0.443148
-v -0.115885 5.233723 -0.447772
-v -0.157760 5.262099 -0.501491
-v -0.233969 5.578382 -0.631704
-v -0.249195 5.549114 -0.660559
-v -0.261355 5.605947 -0.699753
-v -0.244751 5.569179 -0.609422
-v -0.238444 5.557381 -0.597180
-v -0.244581 5.520258 -0.608569
-v -0.259978 5.539909 -0.638278
-v -0.303458 5.320957 -0.751513
-v -0.321466 5.339489 -0.803878
-v -0.311833 5.365025 -0.766021
-v -0.216686 5.612260 -0.601767
-v -0.158593 5.719302 -0.521750
-v -0.176548 5.662285 -0.533553
-v -0.167981 5.504280 -0.538011
-v -0.184420 5.538704 -0.566488
-v -0.156563 5.570638 -0.518234
-v -0.285703 5.561415 -0.741930
-v -0.294095 5.613324 -0.756465
-v -0.294438 5.311946 -0.757060
-v -0.296619 5.308403 -0.739666
-v -0.300799 5.297959 -0.743376
-v -0.323860 5.463790 -0.808024
-v -0.308579 5.511280 -0.781555
-v -0.307356 5.424101 -0.758264
-v -0.191680 5.643930 -0.518806
-v -0.170152 5.648447 -0.480843
-v -0.172418 5.629180 -0.482604
-v -0.188807 5.625658 -0.511957
-v -0.170394 5.601588 -0.521021
-v -0.154006 5.605110 -0.491668
-v -0.165774 5.349375 -0.534189
-v -0.181516 5.325606 -0.542521
-v -0.198780 5.371274 -0.570237
-v -0.180278 5.235818 -0.559312
-v -0.205683 5.243670 -0.581204
-v -0.186625 5.255943 -0.551490
-v -0.188753 5.219917 -0.573994
-v -0.214464 5.197310 -0.595956
-v -0.214159 5.227768 -0.595885
-v -0.148294 5.186327 -0.503911
-v -0.188969 5.146466 -0.553196
-v -0.207866 5.170753 -0.584528
-v -0.166785 5.217666 -0.535940
-v -0.142337 5.144361 -0.472090
-v -0.166046 5.136270 -0.513489
-v -0.143028 5.425898 -0.494789
-v -0.148045 5.445159 -0.484291
-v -0.131314 5.412295 -0.453292
-v -0.397708 5.668571 -0.917320
-v -0.393435 5.651269 -0.928542
-v -0.411406 5.655898 -0.938784
-v -0.407801 5.675226 -0.926120
-v -0.163613 5.438536 -0.530446
-v -0.182788 5.483232 -0.563660
-v -0.158091 5.494235 -0.520881
-v -0.166629 5.473194 -0.516859
-v -0.168630 5.457798 -0.519949
-v -0.210480 5.547515 -0.589697
-v -0.196130 5.515820 -0.586772
-v -0.216616 5.510393 -0.601086
-v -0.162331 5.472592 -0.459963
-v -0.163304 5.465744 -0.461649
-v -0.170717 5.459183 -0.482605
-v -0.168717 5.474578 -0.479515
-v -0.133737 5.520294 -0.478694
-v -0.129891 5.520028 -0.450014
-v -0.142274 5.499254 -0.474672
-v -0.124529 5.482518 -0.435439
-v -0.110778 5.501982 -0.418866
-v -0.096495 5.503573 -0.414184
-v -0.098203 5.495102 -0.395972
-v -0.113806 5.476707 -0.416865
-v -0.125503 5.475670 -0.437126
-v -0.145335 5.484608 -0.430523
-v -0.151721 5.486594 -0.450075
-v -0.139336 5.507370 -0.425418
-v -0.131584 5.504072 -0.413950
-v -0.355613 5.497252 -0.842691
-v -0.361958 5.525727 -0.852847
-v -0.352698 5.572126 -0.857978
-v -0.331929 5.588543 -0.822001
-v -0.116542 5.362868 -0.427705
-v -0.128256 5.376470 -0.469202
-v -0.100918 5.488284 -0.359716
-v -0.116521 5.469887 -0.380609
-v -0.365951 5.636914 -0.859763
-v -0.381645 5.656149 -0.845989
-v -0.355897 5.659646 -0.802723
-v -0.340203 5.640411 -0.816496
-v -0.420377 5.701816 -0.906947
-v -0.410284 5.695159 -0.898146
-v -0.439571 5.667114 -0.946612
-v -0.435965 5.686442 -0.933949
-v -0.384839 5.489536 -0.852358
-v -0.391184 5.518014 -0.862513
-v -0.350317 5.324542 -0.832682
-v -0.366626 5.373504 -0.860932
-v -0.336617 5.368674 -0.830122
-v -0.301254 5.295666 -0.706737
-v -0.305434 5.285222 -0.710445
-v -0.303577 5.315813 -0.772890
-v -0.155020 5.666801 -0.495590
-v -0.128253 5.583147 -0.446384
-v -0.124435 5.538089 -0.440564
-v -0.128281 5.538355 -0.469244
-v -0.132553 5.555797 -0.476643
-v -0.133059 5.537968 -0.414544
-v -0.137552 5.604552 -0.421535
-v -0.129560 5.612298 -0.411464
-v -0.125306 5.534671 -0.403076
-v -0.198769 5.570402 -0.569412
-v -0.220131 5.592010 -0.565458
-v -0.226438 5.603806 -0.577701
-v -0.214919 5.470294 -0.598146
-v -0.194433 5.475719 -0.583832
-v -0.175258 5.431025 -0.550617
-v -0.206602 5.316366 -0.545018
-v -0.223868 5.362035 -0.572733
-v -0.194270 5.267126 -0.523776
-v -0.192302 5.287212 -0.520247
-v -0.231574 5.253418 -0.585092
-v -0.212515 5.265692 -0.555379
-v -0.243758 5.194917 -0.605739
-v -0.243453 5.225375 -0.605668
-v -0.211023 5.122450 -0.550440
-v -0.229922 5.146736 -0.581772
-v -0.159211 5.118040 -0.460359
-v -0.182920 5.109948 -0.501759
-v -0.110387 5.201977 -0.416681
-v -0.104161 5.274145 -0.406292
-v -0.139911 5.417790 -0.427224
-v -0.156642 5.450655 -0.458224
-v -0.282295 5.486811 -0.714855
-v -0.302813 5.662618 -0.751729
-v -0.172155 5.773489 -0.524072
-v -0.138366 5.715039 -0.486714
-v -0.130836 5.767262 -0.452499
-v -0.083750 5.531240 -0.392107
-v -0.083533 5.519274 -0.370560
-v -0.110732 5.628274 -0.419811
-v -0.085887 5.608974 -0.395810
-v -0.099957 5.533141 -0.400122
-v -0.090481 5.657471 -0.403767
-v -0.093365 5.721624 -0.387591
-v -0.073597 5.652568 -0.353349
-v -0.330471 5.424644 -0.819475
-v -0.367135 5.556879 -0.882986
-v -0.394507 5.550106 -0.909312
-v -0.378181 5.590698 -0.902118
-v -0.414041 5.590175 -0.942711
-v -0.392258 5.634236 -0.926503
-v -0.416676 5.632510 -0.947912
-v -0.390084 5.657892 -0.904114
-v -0.149229 5.457216 -0.437267
-v -0.137534 5.458251 -0.417007
-v -0.137331 5.486310 -0.320087
-v -0.069817 5.577381 -0.346801
-v -0.364914 5.448348 -0.858803
-v -0.306059 5.297311 -0.752488
-v -0.320489 5.301105 -0.781014
-v -0.082931 5.517920 -0.328560
-v -0.068414 5.582496 -0.303413
-v -0.073030 5.666270 -0.311409
-v -0.095365 5.742265 -0.350098
-v -0.137352 5.792035 -0.422827
-v -0.183046 5.797686 -0.501978
-v -0.324727 5.676223 -0.748730
-v -0.409092 5.679368 -0.896081
-v -0.445574 5.640802 -0.957010
-v -0.444787 5.591613 -0.955008
-v -0.427710 5.544410 -0.925866
-v -0.392047 5.442576 -0.864844
-v -0.393320 5.360417 -0.866213
-v -0.374803 5.306975 -0.834138
-v -0.341441 5.281743 -0.776348
-v -0.309638 5.311057 -0.721259
-v -0.318675 5.360498 -0.736913
-v -0.313311 5.426218 -0.727621
-v -0.284933 5.495645 -0.678465
-v -0.242500 5.471096 -0.604963
-v -0.119781 5.179461 -0.391995
-v -0.108362 5.259162 -0.372610
-v -0.121326 5.356741 -0.395032
-v -0.119345 5.515944 -0.288931
-v -0.398380 5.464243 -0.725755
-v -0.430247 5.464243 -0.707360
-v -0.734536 5.123801 -1.214485
-v -0.685573 5.123511 -1.243338
-v -0.796909 5.069855 -1.444054
-v -0.852920 5.069851 -1.411722
-v -0.920091 5.091953 -1.520123
-v -0.856606 5.091958 -1.556768
-v -0.913586 5.160743 -1.664493
-v -0.984510 5.160740 -1.623558
-v -0.951120 5.157276 -1.647598
-v -0.957939 5.269464 -1.750503
-v -1.036909 5.269464 -1.704926
-v -1.000252 5.267411 -1.732596
-v -0.975835 5.441407 -1.786544
-v -1.059114 5.441407 -1.738478
-v -1.020648 5.441407 -1.767989
-v -1.113416 5.441407 -1.792789
-v -0.995699 5.441407 -1.860732
-v -1.140566 5.479807 -1.819945
-v -1.005629 5.479807 -1.897825
-v -1.095316 5.531006 -1.774685
-v -0.989078 5.531006 -1.836003
-v -1.027439 5.569407 -1.706796
-v -0.964249 5.569407 -1.743269
-v -1.063639 5.595008 -1.743004
-v -0.977490 5.595008 -1.792728
-v -1.104366 5.665406 -1.783737
-v -0.992388 5.665406 -1.848366
-v -1.126991 5.665406 -1.806366
-v -1.000664 5.665406 -1.879278
-v -1.126991 5.697407 -1.806366
-v -1.000664 5.697407 -1.879278
-v -0.446690 5.470578 -0.701562
-v -0.461982 5.480661 -0.698612
-v -0.783824 5.148871 -1.201410
-v -0.898613 5.101691 -1.378865
-v -0.965900 5.123687 -1.472525
-v -1.030241 5.187052 -1.560951
-v -1.083870 5.285051 -1.628364
-v -1.107191 5.441407 -1.655226
-v -1.181372 5.441407 -1.675111
-v -1.218463 5.479807 -1.685053
-v -1.156646 5.531006 -1.668482
-v -1.063919 5.569407 -1.643627
-v -1.113374 5.595008 -1.656883
-v -1.169010 5.665406 -1.671797
-v -1.199917 5.665406 -1.680082
-v -1.199917 5.697407 -1.680082
-v -0.789177 5.077298 -1.304126
-v -0.838332 5.107703 -1.282147
-v -0.869656 5.160480 -1.274563
-v -0.921752 5.156838 -1.354278
-v -0.981772 5.178650 -1.426722
-v -1.038541 5.232628 -1.493445
-v -1.086259 5.312052 -1.541328
-v -1.107201 5.441407 -1.559090
-v -1.181387 5.441407 -1.539221
-v -1.218479 5.479807 -1.529285
-v -1.156659 5.531006 -1.545843
-v -1.063926 5.569407 -1.570679
-v -1.113384 5.595008 -1.557434
-v -1.169023 5.665406 -1.542532
-v -1.199933 5.665406 -1.534253
-v -1.199933 5.697407 -1.534253
-v -0.874906 5.221419 -1.283654
-v -0.916141 5.220516 -1.344552
-v -0.963454 5.242119 -1.394983
-v -1.007189 5.285254 -1.439125
-v -1.043437 5.343229 -1.467137
-v -1.059143 5.441407 -1.475827
-v -1.113456 5.441407 -1.421529
-v -1.140612 5.479807 -1.394378
-v -1.095351 5.531006 -1.439627
-v -1.027460 5.569407 -1.507502
-v -1.063669 5.595008 -1.471301
-v -1.104403 5.665406 -1.430577
-v -1.127033 5.665406 -1.407954
-v -1.127033 5.697407 -1.407954
-v -0.852675 5.274195 -1.306987
-v -0.883280 5.275664 -1.352291
-v -0.915854 5.297085 -1.385816
-v -0.944582 5.330832 -1.412547
-v -0.966877 5.370231 -1.425672
-v -0.975892 5.441407 -1.427749
-v -0.995778 5.441407 -1.353568
-v -1.005722 5.479807 -1.316478
-v -0.989150 5.531006 -1.378294
-v -0.964291 5.569407 -1.471022
-v -0.977549 5.595008 -1.421566
-v -0.992464 5.665406 -1.365932
-v -1.000750 5.665406 -1.335022
-v -1.000750 5.697407 -1.335022
-v -0.809206 5.304605 -1.338784
-v -0.831975 5.307508 -1.375422
-v -0.851728 5.328821 -1.401674
-v -0.867498 5.357145 -1.420831
-v -0.877092 5.385822 -1.428041
-v -0.879755 5.441407 -1.427736
-v -0.859888 5.441407 -1.353550
-v -0.849955 5.479807 -1.316456
-v -0.866511 5.531006 -1.378278
-v -0.891344 5.569407 -1.471010
-v -0.927819 5.569407 -1.466213
-v -0.878099 5.595008 -1.421553
-v -0.863198 5.665406 -1.365914
-v -0.854921 5.665406 -1.335005
-v -0.854921 5.697407 -1.335005
-v -0.755362 5.304673 -1.369219
-v -0.775972 5.307511 -1.407747
-v -0.788254 5.328824 -1.438312
-v -0.796588 5.357148 -1.461758
-v -0.798139 5.385825 -1.473610
-v -0.796490 5.441407 -1.475793
-v -0.742193 5.441407 -1.421479
-v -0.715044 5.479807 -1.394323
-v -0.760293 5.531006 -1.439584
-v -0.828165 5.569407 -1.507477
-v -0.791967 5.595008 -1.471266
-v -0.751243 5.665406 -1.430531
-v -0.728618 5.665406 -1.407900
-v -0.728618 5.697407 -1.407900
-v -0.706357 5.274205 -1.391448
-v -0.730279 5.275675 -1.440605
-v -0.742443 5.297095 -1.485909
-v -0.750855 5.330838 -1.524364
-v -0.751173 5.370237 -1.550168
-v -0.769616 5.379807 -1.509160
-v -0.748410 5.441407 -1.559041
-v -0.674230 5.441407 -1.539153
-v -0.637140 5.479807 -1.529208
-v -0.698957 5.531006 -1.545782
-v -0.791682 5.569407 -1.570644
-v -0.742229 5.595008 -1.557386
-v -0.686594 5.665406 -1.542468
-v -0.655687 5.665406 -1.534181
-v -0.655687 5.697407 -1.534181
-v -0.429326 5.586796 -0.779343
-v -0.397591 5.570380 -0.788089
-v -0.684352 5.287472 -1.339637
-v -0.733378 5.312833 -1.326123
-v -0.648650 5.243540 -1.334631
-v -0.675030 5.221431 -1.399032
-v -0.707136 5.220531 -1.465191
-v -0.726568 5.242130 -1.531714
-v -0.742550 5.285265 -1.591869
-v -0.748779 5.343235 -1.637205
-v -0.748396 5.441407 -1.655179
-v -0.674209 5.441407 -1.675043
-v -0.637117 5.479807 -1.684978
-v -0.698938 5.531006 -1.668422
-v -0.791670 5.569407 -1.643591
-v -0.742214 5.595008 -1.656834
-v -0.686574 5.665406 -1.671732
-v -0.655662 5.665406 -1.680011
-v -0.655662 5.697407 -1.680011
-v -0.635842 5.192812 -1.312450
-v -0.669776 5.160491 -1.389942
-v -0.712747 5.156850 -1.474922
-v -0.744882 5.178664 -1.563453
-v -0.773897 5.232639 -1.646192
-v -0.791597 5.312058 -1.711398
-v -0.796449 5.441407 -1.738443
-v -0.742135 5.441407 -1.792739
-v -0.714976 5.479807 -1.819889
-v -0.760240 5.531006 -1.774641
-v -0.828134 5.569407 -1.706770
-v -0.791923 5.595008 -1.742968
-v -0.751187 5.665406 -1.783690
-v -0.728556 5.665406 -1.806314
-v -0.728556 5.697407 -1.806314
-v -0.649356 5.148880 -1.279036
-v -0.692005 5.107712 -1.366613
-v -0.745605 5.101700 -1.467185
-v -0.792479 5.123696 -1.572623
-v -0.836501 5.187061 -1.672774
-v -0.868155 5.285056 -1.752868
-v -0.879698 5.441407 -1.786525
-v -0.859808 5.441407 -1.860707
-v -0.849863 5.479807 -1.897795
-v -0.866438 5.531006 -1.835980
-v -0.891301 5.569407 -1.743255
-v -0.878041 5.595008 -1.792708
-v -0.863123 5.665406 -1.848343
-v -0.854835 5.665406 -1.879251
-v -0.854835 5.697407 -1.879251
-v -0.735759 5.077236 -1.335295
-v -0.927774 5.569407 -1.748064
-v -0.374937 5.480664 -0.748860
-v -0.366189 5.509104 -0.770491
-v -0.374480 5.541945 -0.784849
-v -0.783124 5.312378 -1.298597
-v -0.461185 5.586796 -0.760950
-v -0.818813 5.287462 -1.262015
-v -0.484630 5.570374 -0.737844
-v -0.832330 5.243531 -1.228599
-v -0.493380 5.541935 -0.716213
-v -0.819524 5.192803 -1.206417
-v -0.485091 5.509098 -0.701854
-v -0.119037 5.515944 0.289109
-v -0.082623 5.517920 0.328738
-v -0.100609 5.488284 0.359894
-v -0.137023 5.486310 0.320264
-v -0.172770 5.486310 0.299627
-v -0.154784 5.515944 0.268472
-v -0.068106 5.582496 0.303591
-v -0.139273 5.583405 0.241603
-v -0.072721 5.666270 0.311587
-v -0.143897 5.670815 0.249613
-v -0.095057 5.742265 0.350276
-v -0.167054 5.750560 0.289726
-v -0.137044 5.792035 0.423005
-v -0.210752 5.803005 0.365418
-v -0.182738 5.797686 0.502156
-v -0.258593 5.809513 0.448289
-v -0.324419 5.676223 0.748908
-v -0.405627 5.684768 0.702980
-v -0.355589 5.659646 0.802901
-v -0.436797 5.668191 0.756972
-v -0.408784 5.679368 0.896259
-v -0.381337 5.656149 0.846167
-v -0.461369 5.665982 0.799535
-v -0.488927 5.692117 0.847271
-v -0.409976 5.695159 0.898324
-v -0.490120 5.707908 0.849337
-v -0.435656 5.686442 0.934127
-v -0.420068 5.701816 0.907125
-v -0.498510 5.708117 0.863871
-v -0.514098 5.692743 0.890871
-v -0.445265 5.640802 0.957188
-v -0.439263 5.667114 0.946790
-v -0.524893 5.671900 0.909571
-v -0.530895 5.645587 0.919968
-v -0.444478 5.591613 0.955186
-v -0.530315 5.594168 0.918963
-v -0.427402 5.544410 0.926044
-v -0.514752 5.543750 0.892004
-v -0.390876 5.518014 0.862691
-v -0.477606 5.514775 0.827661
-v -0.391739 5.442576 0.865022
-v -0.384531 5.489536 0.852536
-v -0.470425 5.485821 0.815222
-v -0.477634 5.438861 0.827709
-v -0.393012 5.360417 0.866391
-v -0.477664 5.355863 0.827762
-v -0.374495 5.306975 0.834316
-v -0.458508 5.299571 0.794579
-v -0.341133 5.281743 0.776526
-v -0.423758 5.272824 0.734386
-v -0.305125 5.285222 0.710622
-v -0.381805 5.278866 0.661715
-v -0.309330 5.311057 0.721437
-v -0.300946 5.295666 0.706915
-v -0.375208 5.290197 0.650288
-v -0.383593 5.305588 0.664812
-v -0.318367 5.360498 0.737091
-v -0.393163 5.357014 0.681389
-v -0.313002 5.426218 0.727799
-v -0.387744 5.425636 0.672002
-v -0.284625 5.495645 0.678643
-v -0.358351 5.498289 0.621089
-v -0.259670 5.539909 0.638456
-v -0.335124 5.539687 0.580856
-v -0.242191 5.471096 0.605141
-v -0.244273 5.520258 0.608747
-v -0.329340 5.522835 0.570836
-v -0.327259 5.473672 0.567231
-v -0.223560 5.362035 0.572911
-v -0.307941 5.359894 0.533769
-v -0.191993 5.287212 0.520425
-v -0.206294 5.316366 0.545196
-v -0.294698 5.315586 0.510830
-v -0.280398 5.286431 0.486059
-v -0.212206 5.265692 0.555557
-v -0.193962 5.267126 0.523954
-v -0.282370 5.271138 0.489474
-v -0.300614 5.269704 0.521076
-v -0.243145 5.225375 0.605846
-v -0.231266 5.253418 0.585270
-v -0.315675 5.254966 0.547166
-v -0.327554 5.226924 0.567742
-v -0.229613 5.146736 0.581950
-v -0.243450 5.194917 0.605917
-v -0.326575 5.188813 0.566046
-v -0.312739 5.140632 0.542079
-v -0.182611 5.109948 0.501937
-v -0.210715 5.122450 0.550618
-v -0.291769 5.110291 0.505755
-v -0.263665 5.097790 0.457074
-v -0.119473 5.179461 0.392173
-v -0.158903 5.118040 0.460537
-v -0.236997 5.106178 0.410880
-v -0.194436 5.170083 0.337156
-v -0.108053 5.259162 0.372788
-v -0.181874 5.254062 0.315397
-v -0.121018 5.356741 0.395210
-v -0.195912 5.356647 0.339714
-v -0.139603 5.417790 0.427402
-v -0.214497 5.417697 0.371905
-v -0.116213 5.469887 0.380787
-v -0.137225 5.458251 0.417185
-v -0.213282 5.454040 0.369802
-v -0.192270 5.465675 0.333405
-v -0.099648 5.533141 0.400300
-v -0.124998 5.534671 0.403254
-v -0.131276 5.504072 0.414128
-v -0.110469 5.501982 0.419044
-v -0.132750 5.537968 0.414722
-v -0.124127 5.538089 0.440742
-v -0.129583 5.520028 0.450192
-v -0.139028 5.507370 0.425596
-v -0.162996 5.465744 0.461827
-v -0.148920 5.457216 0.437445
-v -0.125194 5.475670 0.437304
-v -0.182479 5.483232 0.563838
-v -0.184112 5.538704 0.566666
-v -0.195822 5.515820 0.586950
-v -0.194125 5.475719 0.584010
-v -0.166476 5.217666 0.536118
-v -0.147986 5.186327 0.504089
-v -0.115577 5.233723 0.447950
-v -0.157452 5.262099 0.501669
-v -0.350009 5.324542 0.832860
-v -0.320181 5.301105 0.781192
-v -0.303268 5.315813 0.773068
-v -0.321158 5.339489 0.804056
-v -0.389776 5.657892 0.904292
-v -0.397399 5.668571 0.917498
-v -0.393127 5.651269 0.928720
-v -0.391950 5.634236 0.926681
-v -0.308271 5.511280 0.781733
-v -0.285395 5.561415 0.742108
-v -0.293787 5.613324 0.756643
-v -0.331620 5.588543 0.822179
-v -0.377872 5.590698 0.902296
-v -0.366827 5.556879 0.883164
-v -0.352390 5.572126 0.858156
-v -0.364606 5.448348 0.858981
-v -0.366318 5.373504 0.861110
-v -0.336309 5.368674 0.830300
-v -0.330162 5.424644 0.819653
-v -0.085579 5.608974 0.395988
-v -0.069508 5.577381 0.346979
-v -0.073289 5.652568 0.353527
-v -0.090172 5.657471 0.403945
-v -0.096187 5.503573 0.414362
-v -0.083441 5.531240 0.392285
-v -0.176240 5.662285 0.533731
-v -0.154712 5.666801 0.495768
-v -0.138058 5.715039 0.486892
-v -0.158285 5.719302 0.521928
-v -0.131005 5.412295 0.453470
-v -0.116234 5.362868 0.427883
-v -0.103853 5.274145 0.406470
-v -0.110079 5.201977 0.416859
-v -0.142028 5.144361 0.472268
-v -0.165738 5.136270 0.513667
-v -0.188661 5.146466 0.553374
-v -0.207558 5.170753 0.584706
-v -0.214156 5.197310 0.596134
-v -0.213850 5.227768 0.596063
-v -0.205375 5.243670 0.581382
-v -0.186317 5.255943 0.551668
-v -0.155482 5.282185 0.498139
-v -0.181207 5.325606 0.542699
-v -0.198472 5.371274 0.570415
-v -0.214610 5.470294 0.598324
-v -0.216308 5.510393 0.601264
-v -0.219823 5.592010 0.565636
-v -0.238136 5.557381 0.597358
-v -0.210172 5.547515 0.589875
-v -0.198461 5.570402 0.569590
-v -0.188499 5.625658 0.512135
-v -0.170086 5.601588 0.521199
-v -0.137243 5.604552 0.421713
-v -0.172110 5.629180 0.482782
-v -0.153698 5.605110 0.491846
-v -0.127944 5.583147 0.446562
-v -0.168409 5.474578 0.479693
-v -0.151413 5.486594 0.450253
-v -0.141966 5.499254 0.474850
-v -0.166320 5.473194 0.517037
-v -0.156333 5.450655 0.458402
-v -0.170408 5.459183 0.482783
-v -0.168322 5.457798 0.520127
-v -0.147736 5.445159 0.484469
-v -0.110424 5.628274 0.419989
-v -0.129251 5.612298 0.411642
-v -0.169844 5.648447 0.481021
-v -0.226130 5.603806 0.577879
-v -0.191372 5.643930 0.518984
-v -0.216377 5.612260 0.601945
-v -0.244443 5.569179 0.609600
-v -0.233660 5.578382 0.631882
-v -0.248886 5.549114 0.660737
-v -0.281987 5.486811 0.715033
-v -0.307047 5.424101 0.758442
-v -0.311525 5.365025 0.766199
-v -0.303150 5.320957 0.751691
-v -0.296311 5.308403 0.739844
-v -0.300490 5.297959 0.743554
-v -0.305751 5.297311 0.752666
-v -0.355304 5.497252 0.842869
-v -0.361650 5.525727 0.853025
-v -0.394198 5.550106 0.909490
-v -0.413732 5.590175 0.942889
-v -0.416368 5.632510 0.948090
-v -0.411098 5.655898 0.938962
-v -0.407493 5.675226 0.926298
-v -0.365643 5.636914 0.859941
-v -0.339895 5.640411 0.816674
-v -0.302504 5.662618 0.751907
-v -0.171847 5.773489 0.524250
-v -0.130528 5.767262 0.452677
-v -0.093056 5.721624 0.387769
-v -0.083224 5.519274 0.370738
-v -0.097895 5.495102 0.396150
-v -0.113498 5.476707 0.417043
-v -0.162023 5.472592 0.460141
-v -0.124221 5.482518 0.435617
-v -0.145027 5.484608 0.430701
-v -0.294130 5.311946 0.757238
-v -0.157783 5.494235 0.521059
-v -0.133428 5.520294 0.478872
-v -0.127973 5.538355 0.469422
-v -0.132244 5.555797 0.476821
-v -0.156255 5.570638 0.518412
-v -0.167672 5.504280 0.538189
-v -0.179969 5.235818 0.559490
-v -0.188445 5.219917 0.574172
-v -0.323551 5.463790 0.808201
-v -0.127948 5.376470 0.469380
-v -0.142720 5.425898 0.494967
-v -0.163305 5.438536 0.530624
-v -0.174950 5.431025 0.550795
-v -0.165466 5.349375 0.534367
-v -0.139741 5.305954 0.489808
-v -0.112907 5.273817 0.443326
-v -0.261047 5.605947 0.699931
-v -0.353325 5.282185 0.383924
-v -0.353981 5.305954 0.366126
-v -0.327147 5.273817 0.319644
-v -0.329817 5.233723 0.324269
-v -0.355397 5.262099 0.387395
-v -0.430051 5.578382 0.518505
-v -0.447425 5.549114 0.546120
-v -0.475286 5.605947 0.576250
-v -0.405364 5.569179 0.516700
-v -0.397915 5.557381 0.505116
-v -0.404709 5.520258 0.516126
-v -0.422737 5.539909 0.544316
-v -0.499055 5.320957 0.638594
-v -0.535398 5.339489 0.680374
-v -0.507431 5.365025 0.653102
-v -0.412768 5.612260 0.488568
-v -0.372525 5.719302 0.398247
-v -0.373767 5.662285 0.419698
-v -0.381912 5.504280 0.414508
-v -0.398352 5.538704 0.442984
-v -0.370495 5.570638 0.394731
-v -0.499635 5.561415 0.618426
-v -0.508026 5.613324 0.632962
-v -0.508370 5.311946 0.633556
-v -0.492216 5.308403 0.626747
-v -0.493339 5.297959 0.632222
-v -0.537791 5.463790 0.684520
-v -0.522511 5.511280 0.658051
-v -0.502953 5.424101 0.645345
-v -0.353430 5.643930 0.425428
-v -0.331319 5.648447 0.387801
-v -0.331711 5.629180 0.390644
-v -0.348935 5.625658 0.419515
-v -0.365992 5.601588 0.408102
-v -0.348767 5.605110 0.379232
-v -0.379706 5.349375 0.410686
-v -0.379050 5.325606 0.428484
-v -0.394418 5.371274 0.457295
-v -0.394209 5.235818 0.435809
-v -0.400463 5.243670 0.468757
-v -0.384261 5.255943 0.437394
-v -0.402685 5.219917 0.450490
-v -0.408847 5.197310 0.483738
-v -0.408939 5.227768 0.483438
-v -0.362226 5.186327 0.380407
-v -0.384566 5.146466 0.440277
-v -0.402250 5.170753 0.472310
-v -0.380716 5.217666 0.412436
-v -0.337648 5.144361 0.359336
-v -0.361644 5.136270 0.400570
-v -0.356960 5.425898 0.371285
-v -0.345360 5.445159 0.370380
-v -0.326882 5.412295 0.340390
-v -0.595512 5.668571 0.803127
-v -0.607367 5.651269 0.805039
-v -0.607250 5.655898 0.825723
-v -0.598086 5.675226 0.816268
-v -0.377545 5.438536 0.406943
-v -0.396719 5.483232 0.440156
-v -0.372023 5.494235 0.397377
-v -0.364270 5.473194 0.402759
-v -0.365946 5.457798 0.406038
-v -0.405419 5.547515 0.477158
-v -0.410062 5.515820 0.463269
-v -0.412214 5.510393 0.488167
-v -0.317148 5.472592 0.370586
-v -0.318122 5.465744 0.372272
-v -0.332563 5.459183 0.389171
-v -0.330887 5.474578 0.385894
-v -0.347668 5.520294 0.355191
-v -0.324754 5.520028 0.337519
-v -0.339916 5.499254 0.360573
-v -0.314814 5.482518 0.325587
-v -0.307338 5.501982 0.305390
-v -0.310426 5.503573 0.290681
-v -0.293800 5.495102 0.283053
-v -0.304091 5.476707 0.307013
-v -0.315788 5.475670 0.327273
-v -0.300152 5.484608 0.341146
-v -0.313891 5.486594 0.356454
-v -0.298731 5.507370 0.333398
-v -0.292676 5.504072 0.320950
-v -0.551934 5.497252 0.729354
-v -0.557556 5.525727 0.739928
-v -0.566630 5.572126 0.734474
-v -0.545860 5.588543 0.698497
-v -0.312110 5.362868 0.314802
-v -0.342188 5.376470 0.345698
-v -0.261045 5.488284 0.267273
-v -0.271337 5.469887 0.291234
-v -0.561549 5.636914 0.746844
-v -0.541773 5.656149 0.753547
-v -0.517180 5.659646 0.709613
-v -0.536956 5.640411 0.702910
-v -0.575194 5.701816 0.817571
-v -0.572619 5.695159 0.804430
-v -0.599945 5.667114 0.854028
-v -0.590782 5.686442 0.844572
-v -0.545691 5.489536 0.759497
-v -0.551312 5.518014 0.770071
-v -0.545915 5.324542 0.719763
-v -0.562224 5.373504 0.748013
-v -0.550549 5.368674 0.706619
-v -0.461382 5.295666 0.614294
-v -0.462503 5.285222 0.619768
-v -0.517508 5.315813 0.649386
-v -0.351657 5.666801 0.382071
-v -0.322430 5.583147 0.334285
-v -0.319299 5.538089 0.328068
-v -0.342213 5.538355 0.345740
-v -0.346484 5.555797 0.353140
-v -0.292454 5.537968 0.322524
-v -0.296261 5.604552 0.329911
-v -0.291536 5.612298 0.317954
-v -0.286399 5.534671 0.310076
-v -0.393709 5.570402 0.456873
-v -0.379603 5.592010 0.473395
-v -0.387051 5.603806 0.484979
-v -0.410516 5.470294 0.485227
-v -0.408365 5.475719 0.460328
-v -0.389190 5.431025 0.427114
-v -0.368667 5.316366 0.451458
-v -0.384034 5.362035 0.480269
-v -0.356438 5.267126 0.430156
-v -0.354366 5.287212 0.426686
-v -0.390883 5.253418 0.493123
-v -0.374683 5.265692 0.461759
-v -0.402670 5.194917 0.513999
-v -0.402762 5.225375 0.513699
-v -0.371151 5.122450 0.457998
-v -0.388834 5.146736 0.490031
-v -0.319051 5.118040 0.368082
-v -0.343047 5.109948 0.409317
-v -0.305642 5.201977 0.303960
-v -0.299758 5.274145 0.293373
-v -0.300008 5.417790 0.334800
-v -0.318488 5.450655 0.364790
-v -0.477893 5.486811 0.601936
-v -0.499566 5.662618 0.638143
-v -0.367753 5.773489 0.411153
-v -0.352298 5.715039 0.363210
-v -0.326434 5.767262 0.339580
-v -0.297681 5.531240 0.268604
-v -0.279130 5.519274 0.257641
-v -0.308179 5.628274 0.305824
-v -0.299819 5.608974 0.272307
-v -0.296517 5.533141 0.286647
-v -0.304412 5.657471 0.280263
-v -0.288962 5.721624 0.274672
-v -0.269194 5.652568 0.240430
-v -0.544402 5.424644 0.695972
-v -0.581067 5.556879 0.759482
-v -0.590179 5.550106 0.796350
-v -0.592112 5.590698 0.778615
-v -0.609333 5.590175 0.829968
-v -0.606190 5.634236 0.802999
-v -0.612520 5.632510 0.834851
-v -0.587888 5.657892 0.789921
-v -0.304046 5.457216 0.347891
-v -0.292349 5.458251 0.327632
-v -0.208518 5.486310 0.278990
-v -0.265414 5.577381 0.233882
-v -0.561236 5.448348 0.745466
-v -0.498599 5.297311 0.641334
-v -0.516087 5.301105 0.668095
-v -0.243059 5.517920 0.236117
-v -0.228542 5.582496 0.210971
-v -0.233158 5.666270 0.218966
-v -0.255493 5.742265 0.257656
-v -0.297480 5.792035 0.330384
-v -0.343174 5.797686 0.409536
-v -0.486010 5.676223 0.655621
-v -0.571427 5.679368 0.802365
-v -0.605947 5.640802 0.864426
-v -0.604608 5.591613 0.862743
-v -0.587911 5.544410 0.833382
-v -0.552899 5.442576 0.771984
-v -0.553448 5.360417 0.773771
-v -0.534931 5.306975 0.741696
-v -0.501569 5.281743 0.683906
-v -0.469766 5.311057 0.628817
-v -0.478803 5.360498 0.644471
-v -0.473439 5.426218 0.635179
-v -0.445061 5.495645 0.586023
-v -0.402627 5.471096 0.512520
-v -0.279566 5.179461 0.299751
-v -0.268490 5.259162 0.280168
-v -0.281423 5.356741 0.302607
-v -0.190532 5.515944 0.247835
-v -0.429282 5.464243 0.707915
-v -0.397417 5.464243 0.726313
-v -0.684420 5.123801 1.243417
-v -0.733891 5.123511 1.215444
-v -0.852034 5.069855 1.412230
-v -0.796026 5.069851 1.444567
-v -0.856310 5.091953 1.556943
-v -0.919791 5.091958 1.520291
-v -0.984586 5.160743 1.623505
-v -0.913671 5.160740 1.664454
-v -0.951186 5.157276 1.647560
-v -1.036891 5.269464 1.704924
-v -0.957932 5.269464 1.750519
-v -1.000224 5.267411 1.732612
-v -1.059154 5.441407 1.738444
-v -0.975884 5.441407 1.786527
-v -1.020675 5.441407 1.767973
-v -0.995762 5.441407 1.860711
-v -1.113466 5.441407 1.792745
-v -1.005703 5.479807 1.897802
-v -1.140623 5.479807 1.819893
-v -0.989136 5.531006 1.835983
-v -1.095362 5.531006 1.774645
-v -0.964287 5.569407 1.743254
-v -1.027472 5.569407 1.706770
-v -0.977541 5.595008 1.792709
-v -1.063681 5.595008 1.742970
-v -0.992449 5.665406 1.848347
-v -1.104413 5.665406 1.783694
-v -1.000732 5.665406 1.879256
-v -1.127044 5.665406 1.806318
-v -1.000732 5.697407 1.879256
-v -1.127044 5.697407 1.806318
-v -0.384174 5.470578 0.737653
-v -0.373973 5.480661 0.749420
-v -0.648450 5.148871 1.279562
-v -0.744723 5.101691 1.467707
-v -0.792184 5.123687 1.572812
-v -0.836586 5.187052 1.672749
-v -0.868147 5.285051 1.752901
-v -0.879747 5.441407 1.786530
-v -0.859872 5.441407 1.860714
-v -0.849934 5.479807 1.897806
-v -0.866497 5.531006 1.835986
-v -0.891341 5.569407 1.743257
-v -0.878091 5.595008 1.792713
-v -0.863184 5.665406 1.848351
-v -0.854903 5.665406 1.879260
-v -0.854903 5.697407 1.879260
-v -0.734724 5.077298 1.335562
-v -0.691110 5.107703 1.367139
-v -0.668878 5.160480 1.390473
-v -0.711860 5.156838 1.475450
-v -0.744582 5.178650 1.563653
-v -0.773976 5.232628 1.646180
-v -0.791580 5.312052 1.711448
-v -0.796489 5.441407 1.738465
-v -0.742185 5.441407 1.792774
-v -0.715033 5.479807 1.819926
-v -0.760285 5.531006 1.774671
-v -0.828165 5.569407 1.706784
-v -0.791964 5.595008 1.742991
-v -0.751235 5.665406 1.783722
-v -0.728609 5.665406 1.806350
-v -0.728609 5.697407 1.806350
-v -0.674126 5.221419 1.399565
-v -0.706243 5.220516 1.465726
-v -0.726257 5.242119 1.531918
-v -0.742613 5.285254 1.591866
-v -0.748745 5.343229 1.637263
-v -0.748417 5.441407 1.655210
-v -0.674235 5.441407 1.675092
-v -0.637143 5.479807 1.685033
-v -0.698961 5.531006 1.668464
-v -0.791690 5.569407 1.643613
-v -0.742234 5.595008 1.656867
-v -0.686598 5.665406 1.671777
-v -0.655689 5.665406 1.680062
-v -0.655689 5.697407 1.680062
-v -0.705449 5.274195 1.391981
-v -0.729377 5.275664 1.441139
-v -0.742121 5.297085 1.486113
-v -0.750904 5.330832 1.524358
-v -0.751121 5.370231 1.550228
-v -0.748412 5.441407 1.559074
-v -0.674228 5.441407 1.539200
-v -0.637136 5.479807 1.529264
-v -0.698955 5.531006 1.545825
-v -0.791687 5.569407 1.570667
-v -0.742229 5.595008 1.557417
-v -0.686592 5.665406 1.542514
-v -0.655681 5.665406 1.534232
-v -0.655681 5.697407 1.534232
-v -0.754723 5.304605 1.370238
-v -0.775065 5.307508 1.408277
-v -0.787921 5.328821 1.438510
-v -0.796624 5.357145 1.461746
-v -0.798071 5.385822 1.473660
-v -0.796475 5.441407 1.475814
-v -0.742165 5.441407 1.421512
-v -0.715010 5.479807 1.394360
-v -0.760268 5.531006 1.439612
-v -0.828154 5.569407 1.507490
-v -0.805761 5.569407 1.536678
-v -0.791949 5.595008 1.471288
-v -0.751217 5.665406 1.430561
-v -0.728589 5.665406 1.407937
-v -0.728589 5.697407 1.407937
-v -0.808004 5.304673 1.338829
-v -0.831063 5.307511 1.375943
-v -0.851389 5.328824 1.401864
-v -0.867526 5.357148 1.420805
-v -0.877015 5.385825 1.428075
-v -0.879729 5.441407 1.427739
-v -0.859846 5.441407 1.353558
-v -0.849905 5.479807 1.316468
-v -0.866473 5.531006 1.378286
-v -0.891328 5.569407 1.471013
-v -0.878071 5.595008 1.421558
-v -0.863160 5.665406 1.365921
-v -0.854875 5.665406 1.335012
-v -0.854875 5.697407 1.335012
-v -0.851760 5.274205 1.307507
-v -0.882366 5.275675 1.352804
-v -0.915516 5.297095 1.385993
-v -0.944611 5.330838 1.412507
-v -0.966799 5.370237 1.425687
-v -0.922064 5.379807 1.421152
-v -0.975864 5.441407 1.427731
-v -0.995736 5.441407 1.353546
-v -1.005671 5.479807 1.316454
-v -0.989112 5.531006 1.378275
-v -0.964274 5.569407 1.471006
-v -0.977521 5.595008 1.421551
-v -0.992424 5.665406 1.365912
-v -1.000703 5.665406 1.335002
-v -1.000703 5.697407 1.335002
-v -0.460214 5.586796 0.761511
-v -0.483658 5.570380 0.738402
-v -0.817895 5.287472 1.262542
-v -0.781677 5.312833 1.298240
-v -0.831413 5.243540 1.229121
-v -0.873993 5.221431 1.284170
-v -0.915231 5.220531 1.345057
-v -0.963121 5.242130 1.395151
-v -1.007223 5.285265 1.439072
-v -1.043369 5.343235 1.467137
-v -1.059125 5.441407 1.475793
-v -1.113426 5.441407 1.421481
-v -1.140577 5.479807 1.394328
-v -1.095326 5.531006 1.439586
-v -1.027450 5.569407 1.507474
-v -1.063651 5.595008 1.471268
-v -1.104375 5.665406 1.430534
-v -1.127003 5.665406 1.407905
-v -1.127003 5.697407 1.407905
-v -0.818610 5.192812 1.206938
-v -0.868748 5.160491 1.275075
-v -0.920852 5.156850 1.354783
-v -0.981449 5.178664 1.426882
-v -1.038591 5.232639 1.493383
-v -1.086208 5.312058 1.541319
-v -1.107203 5.441407 1.559044
-v -1.181383 5.441407 1.539160
-v -1.218475 5.479807 1.529217
-v -1.156656 5.531006 1.545789
-v -1.063930 5.569407 1.570644
-v -1.113384 5.595008 1.557388
-v -1.169020 5.665406 1.542474
-v -1.199928 5.665406 1.534189
-v -1.199928 5.697407 1.534189
-v -0.782915 5.148880 1.201931
-v -0.837429 5.107712 1.282659
-v -0.897720 5.101700 1.379368
-v -0.965589 5.123696 1.472686
-v -1.030305 5.187061 1.560890
-v -1.083836 5.285056 1.628354
-v -1.107211 5.441407 1.655181
-v -1.181399 5.441407 1.675052
-v -1.218489 5.479807 1.684986
-v -1.156670 5.531006 1.668428
-v -1.063938 5.569407 1.643591
-v -1.113395 5.595008 1.656838
-v -1.169034 5.665406 1.671740
-v -1.199944 5.665406 1.680019
-v -1.199944 5.697407 1.680019
-v -0.788428 5.077236 1.304889
-v -1.049863 5.569407 1.677581
-v -0.461015 5.480664 0.699167
-v -0.484121 5.509104 0.702409
-v -0.492409 5.541945 0.716769
-v -0.732963 5.312378 1.327555
-v -0.428355 5.586796 0.779903
-v -0.683437 5.287462 1.340168
-v -0.396621 5.570374 0.788652
-v -0.647740 5.243531 1.335163
-v -0.373513 5.541935 0.785412
-v -0.634934 5.192803 1.312981
-v -0.365224 5.509098 0.771053
-v -0.255882 6.871280 0.000000
-v -0.255882 6.823281 0.000000
-v -0.207882 6.815281 0.000000
-v -0.175883 6.775281 0.000000
-v -0.111882 6.751280 0.000000
-v -0.143882 6.727280 0.000000
-v -0.135882 6.671281 0.000000
-v -0.143882 6.607280 0.000000
-v -0.175883 6.535279 0.000000
-v -0.239882 6.479280 0.000000
-v -0.239882 6.439281 0.000000
-v -0.307844 6.439281 0.000000
-v -0.331844 6.391280 0.000000
-v -0.283844 6.359281 0.000000
-v -0.227844 6.287280 0.000000
-v -0.179844 6.135281 0.000000
-v -0.171844 5.991281 0.000000
-v -0.243844 5.991281 0.000000
-v -0.243844 5.927280 0.000000
-v -0.187844 5.927280 0.000000
-v -0.187844 5.847281 0.000000
-v -0.239774 5.847281 0.000000
-v -0.295774 5.791280 0.000000
-v -0.295774 5.023280 0.000000
-v -0.351774 5.023280 0.000000
-v -0.399774 4.967279 0.000000
-v -0.401771 4.865267 0.000000
-v -0.355758 4.767281 0.000000
-v -0.411919 -0.855625 0.000000
-v -0.525026 -0.855625 0.000000
-v -0.581026 -0.903625 0.000000
-v -0.581026 -1.079625 0.000000
-v -0.541026 -1.127625 0.000000
-v -0.449117 -1.127625 0.000000
-v -0.425117 -1.183625 0.000000
-v -0.441708 -1.365037 0.000000
-v -0.511333 -1.530860 0.000000
-v -0.564391 -1.673745 0.000000
-v -0.660251 -1.819721 0.000000
-v -0.932420 -1.996708 0.000000
-v -1.076103 -2.040090 0.000000
-v -1.100103 -2.072090 0.000000
-v -1.100103 -2.128090 0.000000
-v -1.076103 -2.160089 0.000000
-v -1.012103 -2.192089 0.000000
-v -1.004103 -2.256090 0.000000
-v -1.028103 -2.356090 0.000000
-v -1.108103 -2.524090 0.000000
-v -1.192103 -2.600090 0.000000
-v -1.256103 -2.602085 0.000000
-v -1.304103 -2.642078 0.000000
-v -1.304103 -2.728091 0.000000
-v -1.272103 -2.760090 0.000000
-v -1.224103 -2.760090 0.000000
-v -1.224103 -3.284090 0.000000
-v -1.182394 -3.284090 0.316816
-v -1.182394 -2.760090 0.316816
-v -1.228759 -2.760090 0.329239
-v -1.259668 -2.728091 0.337521
-v -1.259668 -2.642078 0.337521
-v -1.213304 -2.602085 0.325098
-v -1.151484 -2.600090 0.308534
-v -1.070347 -2.524090 0.286793
-v -0.993072 -2.356090 0.266088
-v -0.969890 -2.256090 0.259877
-v -0.977618 -2.192089 0.261947
-v -1.039437 -2.160089 0.278511
-v -1.062619 -2.128090 0.284723
-v -1.062619 -2.072090 0.284723
-v -1.039437 -2.040090 0.278511
-v -0.900649 -1.996708 0.241324
-v -0.637754 -1.819721 0.170883
-v -0.545161 -1.673745 0.146073
-v -0.493910 -1.530860 0.132340
-v -0.426657 -1.365037 0.114321
-v -0.410632 -1.183625 0.110027
-v -0.433814 -1.127625 0.116238
-v -0.522592 -1.127625 0.140026
-v -0.561229 -1.079625 0.150378
-v -0.561229 -0.903625 0.150378
-v -0.507137 -0.855625 0.135884
-v -0.397884 -0.855625 0.106611
-v -0.386152 4.967279 0.103467
-v -0.131252 6.671281 0.035168
-v -0.108070 6.751280 0.028957
-v -1.060110 -3.284090 0.612042
-v -1.060110 -2.760090 0.612042
-v -1.101679 -2.760090 0.636042
-v -1.129392 -2.728091 0.652042
-v -1.129392 -2.642078 0.652042
-v -1.087823 -2.602085 0.628042
-v -1.032397 -2.600090 0.596043
-v -0.959650 -2.524090 0.554043
-v -0.890368 -2.356090 0.514044
-v -0.869583 -2.256090 0.502044
-v -0.876511 -2.192089 0.506044
-v -0.931937 -2.160089 0.538043
-v -0.952722 -2.128090 0.550043
-v -0.952722 -2.072090 0.550043
-v -0.931937 -2.040090 0.538043
-v -0.807503 -1.996708 0.466203
-v -0.571797 -1.819721 0.330120
-v -0.488780 -1.673745 0.282191
-v -0.442829 -1.530860 0.255662
-v -0.382532 -1.365037 0.220851
-v -0.368164 -1.183625 0.212555
-v -0.388949 -1.127625 0.224555
-v -0.468545 -1.127625 0.270509
-v -0.503186 -1.079625 0.290509
-v -0.503186 -0.903625 0.290509
-v -0.454688 -0.855625 0.262509
-v -0.356734 -0.855625 0.205956
-v -0.308097 4.767281 0.177876
-v -0.347946 4.865267 0.200882
-v -0.346216 4.967279 0.199884
-v -0.304647 5.023280 0.175884
-v -0.256149 5.023280 0.147885
-v -0.256149 5.791280 0.147885
-v -0.207651 5.847281 0.119885
-v -0.162678 5.847281 0.093921
-v -0.162678 5.927280 0.093921
-v -0.211176 5.927280 0.121920
-v -0.211176 5.991281 0.121920
-v -0.148822 5.991281 0.085921
-v -0.155750 6.135281 0.089921
-v -0.197320 6.287280 0.113920
-v -0.245817 6.359281 0.141920
-v -0.287387 6.391280 0.165919
-v -0.266602 6.439281 0.153920
-v -0.207745 6.439281 0.119939
-v -0.207745 6.479280 0.119939
-v -0.152320 6.535279 0.087940
-v -0.124606 6.607280 0.071940
-v -0.117678 6.671281 0.067940
-v -0.124606 6.727280 0.071940
-v -0.096893 6.751280 0.055940
-v -0.152320 6.775281 0.087940
-v -0.180032 6.815281 0.103939
-v -0.221601 6.823281 0.127939
-v -0.221601 6.871280 0.127939
-v -0.865583 -3.284090 0.865560
-v -0.865583 -2.760090 0.865560
-v -0.899524 -2.760090 0.899501
-v -0.922152 -2.728091 0.922128
-v -0.922152 -2.642078 0.922128
-v -0.888211 -2.602085 0.888187
-v -0.842955 -2.600090 0.842933
-v -0.783557 -2.524090 0.783537
-v -0.726988 -2.356090 0.726969
-v -0.710017 -2.256090 0.709999
-v -0.715674 -2.192089 0.715655
-v -0.760930 -2.160089 0.760910
-v -0.777901 -2.128090 0.777880
-v -0.777901 -2.072090 0.777880
-v -0.760930 -2.040090 0.760910
-v -0.659329 -1.996708 0.659312
-v -0.466874 -1.819721 0.466862
-v -0.399090 -1.673745 0.399080
-v -0.361571 -1.530860 0.361562
-v -0.312339 -1.365037 0.312330
-v -0.300607 -1.183625 0.300599
-v -0.317578 -1.127625 0.317569
-v -0.382568 -1.127625 0.382558
-v -0.410853 -1.079625 0.410842
-v -0.410853 -0.903625 0.410842
-v -0.371254 -0.855625 0.371245
-v -0.291275 -0.855625 0.291267
-v -0.132827 5.927280 0.132824
-v -0.172426 5.927280 0.172421
-v -0.161112 6.287280 0.161108
-v -0.200711 6.359281 0.200705
-v -0.234652 6.391280 0.234646
-v -0.101741 6.727280 0.101739
-v -0.079114 6.751280 0.079111
-v -0.612070 -3.284090 1.060094
-v -0.612070 -2.760090 1.060094
-v -0.636071 -2.760090 1.101662
-v -0.652071 -2.728091 1.129375
-v -0.652071 -2.642078 1.129375
-v -0.628071 -2.602085 1.087806
-v -0.596070 -2.600090 1.032381
-v -0.554068 -2.524090 0.959636
-v -0.514067 -2.356090 0.890354
-v -0.502067 -2.256090 0.869570
-v -0.506067 -2.192089 0.876498
-v -0.538068 -2.160089 0.931923
-v -0.550068 -2.128090 0.952708
-v -0.550068 -2.072090 0.952708
-v -0.538068 -2.040090 0.931923
-v -0.466224 -1.996708 0.807491
-v -0.330135 -1.819721 0.571788
-v -0.282204 -1.673745 0.488772
-v -0.255674 -1.530860 0.442823
-v -0.220861 -1.365037 0.382526
-v -0.212565 -1.183625 0.368158
-v -0.224565 -1.127625 0.388943
-v -0.270521 -1.127625 0.468538
-v -0.290522 -1.079625 0.503178
-v -0.290522 -0.903625 0.503178
-v -0.262521 -0.855625 0.454681
-v -0.205966 -0.855625 0.356729
-v -0.177884 4.767281 0.308092
-v -0.200892 4.865267 0.347940
-v -0.199893 4.967279 0.346211
-v -0.175892 5.023280 0.304642
-v -0.147891 5.023280 0.256145
-v -0.147891 5.791280 0.256145
-v -0.119891 5.847281 0.207648
-v -0.093925 5.847281 0.162676
-v -0.093925 5.927280 0.162676
-v -0.121926 5.927280 0.211173
-v -0.121926 5.991281 0.211173
-v -0.085925 5.991281 0.148820
-v -0.089925 6.135281 0.155748
-v -0.113925 6.287280 0.197317
-v -0.141926 6.359281 0.245814
-v -0.165927 6.391280 0.287382
-v -0.153927 6.439281 0.266598
-v -0.119945 6.439281 0.207742
-v -0.119945 6.479280 0.207742
-v -0.087944 6.535279 0.152318
-v -0.071943 6.607280 0.124604
-v -0.067943 6.671281 0.117676
-v -0.071943 6.727280 0.124604
-v -0.055943 6.751280 0.096892
-v -0.087944 6.775281 0.152318
-v -0.103944 6.815281 0.180029
-v -0.127945 6.823281 0.221598
-v -0.127945 6.871280 0.221598
-v -0.316847 -3.284090 1.182386
-v -0.316847 -2.760090 1.182386
-v -0.329271 -2.760090 1.228750
-v -0.337554 -2.728091 1.259659
-v -0.337554 -2.642078 1.259659
-v -0.325130 -2.602085 1.213295
-v -0.308564 -2.600090 1.151476
-v -0.286822 -2.524090 1.070339
-v -0.266114 -2.356090 0.993065
-v -0.259902 -2.256090 0.969883
-v -0.261973 -2.192089 0.977611
-v -0.278539 -2.160089 1.039430
-v -0.284751 -2.128090 1.062612
-v -0.284751 -2.072090 1.062612
-v -0.278539 -2.040090 1.039430
-v -0.241348 -1.996708 0.900643
-v -0.170899 -1.819721 0.637750
-v -0.146087 -1.673745 0.545157
-v -0.132353 -1.530860 0.493906
-v -0.114332 -1.365037 0.426654
-v -0.110037 -1.183625 0.410629
-v -0.116250 -1.127625 0.433811
-v -0.140039 -1.127625 0.522588
-v -0.150393 -1.079625 0.561225
-v -0.150393 -0.903625 0.561225
-v -0.135898 -0.855625 0.507133
-v -0.106621 -0.855625 0.397881
-v -0.092084 4.767281 0.343634
-v -0.091053 5.023280 0.339786
-v -0.037242 6.727280 0.138978
-v -0.028960 6.751280 0.108069
-v -0.000032 -3.284090 1.224103
-v -0.000032 -2.760090 1.224103
-v -0.000033 -2.760090 1.272103
-v -0.000034 -2.728091 1.304103
-v -0.000034 -2.642078 1.304103
-v -0.000033 -2.602085 1.256103
-v -0.000031 -2.600090 1.192103
-v -0.000029 -2.524090 1.108103
-v -0.000027 -2.356090 1.028103
-v -0.000026 -2.256090 1.004103
-v -0.000027 -2.192089 1.012103
-v -0.000028 -2.160089 1.076103
-v -0.000029 -2.128090 1.100103
-v -0.000029 -2.072090 1.100103
-v -0.000028 -2.040090 1.076103
-v -0.000025 -1.996708 0.932420
-v -0.000017 -1.819721 0.660251
-v -0.000015 -1.673745 0.564391
-v -0.000013 -1.530860 0.511333
-v -0.000012 -1.365037 0.441708
-v -0.000011 -1.183625 0.425117
-v -0.000012 -1.127625 0.449117
-v -0.000014 -1.127625 0.541026
-v -0.000015 -1.079625 0.581026
-v -0.000015 -0.903625 0.581026
-v -0.000014 -0.855625 0.525026
-v -0.000011 -0.855625 0.411919
-v -0.000009 4.767281 0.355758
-v -0.000011 4.865267 0.401771
-v -0.000011 4.967279 0.399774
-v -0.000009 5.023280 0.351774
-v -0.000008 5.023280 0.295774
-v -0.000008 5.791280 0.295774
-v -0.000006 5.847281 0.239774
-v -0.000005 5.847281 0.187844
-v -0.000005 5.927280 0.187844
-v -0.000006 5.927280 0.243844
-v -0.000006 5.991281 0.243844
-v -0.000005 5.991281 0.171844
-v -0.000005 6.135281 0.179844
-v -0.000006 6.287280 0.227844
-v -0.000007 6.359281 0.283844
-v -0.000009 6.391280 0.331844
-v -0.000008 6.439281 0.307844
-v -0.000006 6.439281 0.239882
-v -0.000006 6.479280 0.239882
-v -0.000005 6.535279 0.175883
-v -0.000004 6.607280 0.143882
-v -0.000004 6.671281 0.135882
-v -0.000004 6.727280 0.143882
-v -0.000003 6.751280 0.111882
-v -0.000005 6.775281 0.175883
-v -0.000005 6.815281 0.207882
-v -0.000007 6.823281 0.255882
-v -0.000007 6.871280 0.255882
-v 0.316785 -3.284090 1.182402
-v 0.316785 -2.760090 1.182402
-v 0.329207 -2.760090 1.228767
-v 0.337488 -2.728091 1.259677
-v 0.337488 -2.642078 1.259677
-v 0.325066 -2.602085 1.213312
-v 0.308504 -2.600090 1.151493
-v 0.286765 -2.524090 1.070354
-v 0.266062 -2.356090 0.993079
-v 0.259851 -2.256090 0.969897
-v 0.261921 -2.192089 0.977624
-v 0.278484 -2.160089 1.039444
-v 0.284695 -2.128090 1.062627
-v 0.284695 -2.072090 1.062627
-v 0.278484 -2.040090 1.039444
-v 0.241300 -1.996708 0.900656
-v 0.170866 -1.819721 0.637759
-v 0.146058 -1.673745 0.545165
-v 0.132327 -1.530860 0.493913
-v 0.114309 -1.365037 0.426660
-v 0.110016 -1.183625 0.410635
-v 0.116227 -1.127625 0.433817
-v 0.140012 -1.127625 0.522595
-v 0.150363 -1.079625 0.561233
-v 0.150363 -0.903625 0.561233
-v 0.135871 -0.855625 0.507140
-v 0.106600 -0.855625 0.397886
-v 0.092066 4.767281 0.343639
-v 0.612014 -3.284090 1.060126
-v 0.612014 -2.760090 1.060126
-v 0.636013 -2.760090 1.101696
-v 0.652012 -2.728091 1.129409
-v 0.652012 -2.642078 1.129409
-v 0.628013 -2.602085 1.087839
-v 0.596015 -2.600090 1.032412
-v 0.554018 -2.524090 0.959665
-v 0.514020 -2.356090 0.890381
-v 0.502021 -2.256090 0.869596
-v 0.506021 -2.192089 0.876525
-v 0.538019 -2.160089 0.931951
-v 0.550018 -2.128090 0.952736
-v 0.550018 -2.072090 0.952736
-v 0.538019 -2.040090 0.931951
-v 0.466182 -1.996708 0.807515
-v 0.330105 -1.819721 0.571806
-v 0.282179 -1.673745 0.488787
-v 0.255651 -1.530860 0.442836
-v 0.220840 -1.365037 0.382538
-v 0.212546 -1.183625 0.368170
-v 0.224545 -1.127625 0.388955
-v 0.270497 -1.127625 0.468552
-v 0.290495 -1.079625 0.503193
-v 0.290495 -0.903625 0.503193
-v 0.262497 -0.855625 0.454695
-v 0.205947 -0.855625 0.356740
-v 0.177868 4.767281 0.308102
-v 0.200873 4.865267 0.347951
-v 0.199875 4.967279 0.346221
-v 0.175876 5.023280 0.304651
-v 0.147878 5.023280 0.256153
-v 0.147878 5.791280 0.256153
-v 0.119880 5.847281 0.207655
-v 0.093916 5.847281 0.162681
-v 0.093916 5.927280 0.162681
-v 0.121915 5.927280 0.211179
-v 0.121915 5.991281 0.211179
-v 0.085917 5.991281 0.148824
-v 0.089917 6.135281 0.155753
-v 0.113915 6.287280 0.197323
-v 0.141913 6.359281 0.245821
-v 0.165912 6.391280 0.287391
-v 0.153913 6.439281 0.266606
-v 0.119934 6.439281 0.207748
-v 0.119934 6.479280 0.207748
-v 0.087936 6.535279 0.152322
-v 0.071937 6.607280 0.124608
-v 0.067937 6.671281 0.117680
-v 0.071937 6.727280 0.124608
-v 0.055938 6.751280 0.096895
-v 0.087936 6.775281 0.152322
-v 0.103935 6.815281 0.180035
-v 0.127933 6.823281 0.221605
-v 0.127933 6.871280 0.221605
-v 0.865537 -3.284090 0.865606
-v 0.865537 -2.760090 0.865606
-v 0.899477 -2.760090 0.899548
-v 0.922104 -2.728091 0.922177
-v 0.922104 -2.642078 0.922177
-v 0.888164 -2.602085 0.888234
-v 0.842911 -2.600090 0.842978
-v 0.783516 -2.524090 0.783578
-v 0.726950 -2.356090 0.727007
-v 0.709980 -2.256090 0.710036
-v 0.715637 -2.192089 0.715693
-v 0.760890 -2.160089 0.760950
-v 0.777860 -2.128090 0.777921
-v 0.777860 -2.072090 0.777921
-v 0.760890 -2.040090 0.760950
-v 0.659294 -1.996708 0.659346
-v 0.466849 -1.819721 0.466886
-v 0.399069 -1.673745 0.399101
-v 0.361552 -1.530860 0.361581
-v 0.312322 -1.365037 0.312347
-v 0.300591 -1.183625 0.300615
-v 0.317561 -1.127625 0.317586
-v 0.382548 -1.127625 0.382578
-v 0.410831 -1.079625 0.410864
-v 0.410831 -0.903625 0.410864
-v 0.371235 -0.855625 0.371264
-v 0.291259 -0.855625 0.291282
-v 0.132821 5.927280 0.132831
-v 0.172417 5.927280 0.172431
-v 0.172417 5.991281 0.172431
-v 0.121507 5.991281 0.121517
-v 0.127164 6.135281 0.127174
-v 0.161104 6.287280 0.161116
-v 0.096079 6.671281 0.096087
-v 0.101736 6.727280 0.101744
-v 0.079109 6.751280 0.079116
-v 1.060077 -3.284090 0.612098
-v 1.060077 -2.760090 0.612098
-v 1.101646 -2.760090 0.636100
-v 1.129358 -2.728091 0.652101
-v 1.129358 -2.642078 0.652101
-v 1.087790 -2.602085 0.628099
-v 1.032365 -2.600090 0.596097
-v 0.959621 -2.524090 0.554094
-v 0.890341 -2.356090 0.514091
-v 0.869557 -2.256090 0.502090
-v 0.876485 -2.192089 0.506090
-v 0.931909 -2.160089 0.538092
-v 0.952693 -2.128090 0.550093
-v 0.952693 -2.072090 0.550093
-v 0.931909 -2.040090 0.538092
-v 0.807479 -1.996708 0.466245
-v 0.571779 -1.819721 0.330150
-v 0.488765 -1.673745 0.282217
-v 0.442816 -1.530860 0.255686
-v 0.382520 -1.365037 0.220871
-v 0.368153 -1.183625 0.212575
-v 0.388937 -1.127625 0.224576
-v 0.468530 -1.127625 0.270534
-v 0.503170 -1.079625 0.290535
-v 0.503170 -0.903625 0.290535
-v 0.454674 -0.855625 0.262533
-v 0.356723 -0.855625 0.205975
-v 0.308088 4.767281 0.177893
-v 0.347935 4.865267 0.200901
-v 0.346206 4.967279 0.199902
-v 0.304637 5.023280 0.175900
-v 0.256141 5.023280 0.147898
-v 0.256141 5.791280 0.147898
-v 0.207645 5.847281 0.119896
-v 0.162674 5.847281 0.093929
-v 0.162674 5.927280 0.093929
-v 0.211170 5.927280 0.121931
-v 0.211170 5.991281 0.121931
-v 0.148817 5.991281 0.085929
-v 0.155746 6.135281 0.089929
-v 0.197314 6.287280 0.113931
-v 0.245810 6.359281 0.141933
-v 0.287378 6.391280 0.165935
-v 0.266594 6.439281 0.153934
-v 0.207739 6.439281 0.119950
-v 0.207739 6.479280 0.119950
-v 0.152315 6.535279 0.087948
-v 0.124602 6.607280 0.071946
-v 0.117674 6.671281 0.067946
-v 0.124602 6.727280 0.071946
-v 0.096890 6.751280 0.055945
-v 0.152315 6.775281 0.087948
-v 0.180027 6.815281 0.103949
-v 0.221595 6.823281 0.127951
-v 0.221595 6.871280 0.127951
-v 1.182377 -3.284090 0.316878
-v 1.182377 -2.760090 0.316878
-v 1.228741 -2.760090 0.329304
-v 1.259650 -2.728091 0.337587
-v 1.259650 -2.642078 0.337587
-v 1.213287 -2.602085 0.325162
-v 1.151468 -2.600090 0.308595
-v 1.070332 -2.524090 0.286850
-v 0.993058 -2.356090 0.266141
-v 0.969876 -2.256090 0.259928
-v 0.977604 -2.192089 0.261999
-v 1.039422 -2.160089 0.278566
-v 1.062604 -2.128090 0.284779
-v 1.062604 -2.072090 0.284779
-v 1.039422 -2.040090 0.278566
-v 0.900637 -1.996708 0.241371
-v 0.637745 -1.819721 0.170916
-v 0.545153 -1.673745 0.146102
-v 0.493903 -1.530860 0.132366
-v 0.426651 -1.365037 0.114343
-v 0.410626 -1.183625 0.110048
-v 0.433808 -1.127625 0.116261
-v 0.522584 -1.127625 0.140053
-v 0.561221 -1.079625 0.150408
-v 0.561221 -0.903625 0.150408
-v 0.507130 -0.855625 0.135911
-v 0.397878 -0.855625 0.106632
-v 0.131250 6.671281 0.035175
-v 0.108068 6.751280 0.028962
-v 1.224103 -3.284090 0.000064
-v 1.224103 -2.760090 0.000064
-v 1.272103 -2.760090 0.000067
-v 1.304103 -2.728091 0.000069
-v 1.304103 -2.642078 0.000069
-v 1.256103 -2.602085 0.000066
-v 1.192103 -2.600090 0.000063
-v 1.108103 -2.524090 0.000058
-v 1.028103 -2.356090 0.000054
-v 1.004103 -2.256090 0.000053
-v 1.012103 -2.192089 0.000053
-v 1.076103 -2.160089 0.000057
-v 1.100103 -2.128090 0.000058
-v 1.100103 -2.072090 0.000058
-v 1.076103 -2.040090 0.000057
-v 0.932420 -1.996708 0.000049
-v 0.660251 -1.819721 0.000035
-v 0.564391 -1.673745 0.000030
-v 0.511333 -1.530860 0.000027
-v 0.441708 -1.365037 0.000023
-v 0.425117 -1.183625 0.000022
-v 0.449117 -1.127625 0.000024
-v 0.541026 -1.127625 0.000028
-v 0.581026 -1.079625 0.000031
-v 0.581026 -0.903625 0.000031
-v 0.525026 -0.855625 0.000028
-v 0.411919 -0.855625 0.000022
-v 0.355758 4.767281 0.000019
-v 0.401771 4.865267 0.000021
-v 0.399774 4.967279 0.000021
-v 0.351774 5.023280 0.000019
-v 0.295774 5.023280 0.000016
-v 0.295774 5.791280 0.000016
-v 0.239774 5.847281 0.000013
-v 0.187844 5.847281 0.000010
-v 0.187844 5.927280 0.000010
-v 0.243844 5.927280 0.000013
-v 0.243844 5.991281 0.000013
-v 0.171844 5.991281 0.000009
-v 0.179844 6.135281 0.000009
-v 0.227844 6.287280 0.000012
-v 0.283844 6.359281 0.000015
-v 0.331844 6.391280 0.000017
-v 0.307844 6.439281 0.000016
-v 0.239882 6.439281 0.000013
-v 0.239882 6.479280 0.000013
-v 0.175883 6.535279 0.000009
-v 0.143882 6.607280 0.000008
-v 0.135882 6.671281 0.000007
-v 0.143882 6.727280 0.000008
-v 0.111882 6.751280 0.000006
-v 0.175883 6.775281 0.000009
-v 0.207882 6.815281 0.000011
-v 0.255882 6.823281 0.000013
-v 0.255882 6.871280 0.000013
-v 1.182411 -3.284090 -0.316754
-v 1.182411 -2.760090 -0.316754
-v 1.228776 -2.760090 -0.329174
-v 1.259686 -2.728091 -0.337455
-v 1.259686 -2.642078 -0.337455
-v 1.213321 -2.602085 -0.325034
-v 1.151501 -2.600090 -0.308473
-v 1.070362 -2.524090 -0.286737
-v 0.993086 -2.356090 -0.266036
-v 0.969904 -2.256090 -0.259826
-v 0.977631 -2.192089 -0.261896
-v 1.039451 -2.160089 -0.278457
-v 1.062634 -2.128090 -0.284667
-v 1.062634 -2.072090 -0.284667
-v 1.039451 -2.040090 -0.278457
-v 0.900662 -1.996708 -0.241277
-v 0.637763 -1.819721 -0.170849
-v 0.545169 -1.673745 -0.146044
-v 0.493917 -1.530860 -0.132314
-v 0.426663 -1.365037 -0.114298
-v 0.410638 -1.183625 -0.110005
-v 0.433820 -1.127625 -0.116215
-v 0.522599 -1.127625 -0.139998
-v 0.561237 -1.079625 -0.150349
-v 0.561237 -0.903625 -0.150349
-v 0.507144 -0.855625 -0.135858
-v 0.397889 -0.855625 -0.106590
-v 0.138981 6.727280 -0.037231
-v 1.060142 -3.284090 -0.611986
-v 1.060142 -2.760090 -0.611986
-v 1.101713 -2.760090 -0.635984
-v 1.129426 -2.728091 -0.651982
-v 1.129426 -2.642078 -0.651982
-v 1.087856 -2.602085 -0.627985
-v 1.032428 -2.600090 -0.595988
-v 0.959679 -2.524090 -0.553992
-v 0.890395 -2.356090 -0.513997
-v 0.869610 -2.256090 -0.501998
-v 0.876538 -2.192089 -0.505998
-v 0.931966 -2.160089 -0.537994
-v 0.952751 -2.128090 -0.549993
-v 0.952751 -2.072090 -0.549993
-v 0.931966 -2.040090 -0.537994
-v 0.807528 -1.996708 -0.466160
-v 0.571814 -1.819721 -0.330090
-v 0.488795 -1.673745 -0.282166
-v 0.442843 -1.530860 -0.255639
-v 0.382544 -1.365037 -0.220830
-v 0.368175 -1.183625 -0.212536
-v 0.388961 -1.127625 -0.224535
-v 0.468559 -1.127625 -0.270484
-v 0.503201 -1.079625 -0.290482
-v 0.503201 -0.903625 -0.290482
-v 0.454702 -0.855625 -0.262485
-v 0.356745 -0.855625 -0.205938
-v 0.308106 4.767281 -0.177860
-v 0.347956 4.865267 -0.200864
-v 0.346227 4.967279 -0.199866
-v 0.304656 5.023280 -0.175868
-v 0.256157 5.023280 -0.147871
-v 0.256157 5.791280 -0.147871
-v 0.207658 5.847281 -0.119874
-v 0.162683 5.847281 -0.093912
-v 0.162683 5.927280 -0.093912
-v 0.211183 5.927280 -0.121909
-v 0.211183 5.991281 -0.121909
-v 0.148827 5.991281 -0.085913
-v 0.155755 6.135281 -0.089912
-v 0.197326 6.287280 -0.113910
-v 0.245825 6.359281 -0.141907
-v 0.287396 6.391280 -0.165904
-v 0.266610 6.439281 -0.153906
-v 0.207751 6.439281 -0.119928
-v 0.207751 6.479280 -0.119928
-v 0.152325 6.535279 -0.087932
-v 0.124610 6.607280 -0.071933
-v 0.117681 6.671281 -0.067934
-v 0.124610 6.727280 -0.071933
-v 0.096896 6.751280 -0.055935
-v 0.152325 6.775281 -0.087932
-v 0.180037 6.815281 -0.103930
-v 0.221608 6.823281 -0.127927
-v 0.221608 6.871280 -0.127927
-v 0.865629 -3.284090 -0.865515
-v 0.865629 -2.760090 -0.865515
-v 0.899572 -2.760090 -0.899453
-v 0.922201 -2.728091 -0.922079
-v 0.922201 -2.642078 -0.922079
-v 0.888258 -2.602085 -0.888140
-v 0.843000 -2.600090 -0.842889
-v 0.783599 -2.524090 -0.783496
-v 0.727027 -2.356090 -0.726931
-v 0.710055 -2.256090 -0.709961
-v 0.715712 -2.192089 -0.715618
-v 0.760970 -2.160089 -0.760870
-v 0.777942 -2.128090 -0.777839
-v 0.777942 -2.072090 -0.777839
-v 0.760970 -2.040090 -0.760870
-v 0.659364 -1.996708 -0.659277
-v 0.466899 -1.819721 -0.466837
-v 0.399111 -1.673745 -0.399059
-v 0.361591 -1.530860 -0.361543
-v 0.312355 -1.365037 -0.312314
-v 0.300623 -1.183625 -0.300583
-v 0.317595 -1.127625 -0.317553
-v 0.382588 -1.127625 -0.382538
-v 0.410874 -1.079625 -0.410820
-v 0.410874 -0.903625 -0.410820
-v 0.371274 -0.855625 -0.371225
-v 0.291290 -0.855625 -0.291252
-v 0.132835 5.927280 -0.132817
-v 0.101747 6.607280 -0.101733
-v 0.180948 6.823281 -0.180924
-v 0.612126 -3.284090 -1.060061
-v 0.612126 -2.760090 -1.060061
-v 0.636129 -2.760090 -1.101629
-v 0.652131 -2.728091 -1.129341
-v 0.652131 -2.642078 -1.129341
-v 0.628128 -2.602085 -1.087773
-v 0.596124 -2.600090 -1.032350
-v 0.554119 -2.524090 -0.959607
-v 0.514114 -2.356090 -0.890327
-v 0.502112 -2.256090 -0.869543
-v 0.506113 -2.192089 -0.876471
-v 0.538117 -2.160089 -0.931895
-v 0.550118 -2.128090 -0.952679
-v 0.550118 -2.072090 -0.952679
-v 0.538117 -2.040090 -0.931895
-v 0.466266 -1.996708 -0.807466
-v 0.330165 -1.819721 -0.571771
-v 0.282230 -1.673745 -0.488758
-v 0.255697 -1.530860 -0.442809
-v 0.220881 -1.365037 -0.382515
-v 0.212584 -1.183625 -0.368147
-v 0.224586 -1.127625 -0.388931
-v 0.270546 -1.127625 -0.468523
-v 0.290548 -1.079625 -0.503163
-v 0.290548 -0.903625 -0.503163
-v 0.262545 -0.855625 -0.454667
-v 0.205984 -0.855625 -0.356718
-v 0.177901 4.767281 -0.308083
-v 0.200910 4.865267 -0.347930
-v 0.199911 4.967279 -0.346200
-v 0.175908 5.023280 -0.304633
-v 0.147905 5.023280 -0.256137
-v 0.147905 5.791280 -0.256137
-v 0.119902 5.847281 -0.207642
-v 0.093933 5.847281 -0.162671
-v 0.093933 5.927280 -0.162671
-v 0.121937 5.927280 -0.211167
-v 0.121937 5.991281 -0.211167
-v 0.085932 5.991281 -0.148815
-v 0.089933 6.135281 -0.155743
-v 0.113936 6.287280 -0.197311
-v 0.141939 6.359281 -0.245806
-v 0.165942 6.391280 -0.287374
-v 0.153941 6.439281 -0.266590
-v 0.119956 6.439281 -0.207736
-v 0.119956 6.479280 -0.207736
-v 0.087952 6.535279 -0.152313
-v 0.071950 6.607280 -0.124600
-v 0.067949 6.671281 -0.117672
-v 0.071950 6.727280 -0.124600
-v 0.055948 6.751280 -0.096889
-v 0.087952 6.775281 -0.152313
-v 0.103954 6.815281 -0.180024
-v 0.127956 6.823281 -0.221591
-v 0.127956 6.871280 -0.221591
-v 0.316910 -3.284090 -1.182369
-v 0.316910 -2.760090 -1.182369
-v 0.329336 -2.760090 -1.228732
-v 0.337621 -2.728091 -1.259642
-v 0.337621 -2.642078 -1.259642
-v 0.325194 -2.602085 -1.213278
-v 0.308625 -2.600090 -1.151460
-v 0.286878 -2.524090 -1.070324
-v 0.266167 -2.356090 -0.993051
-v 0.259953 -2.256090 -0.969869
-v 0.262025 -2.192089 -0.977597
-v 0.278594 -2.160089 -1.039415
-v 0.284807 -2.128090 -1.062597
-v 0.284807 -2.072090 -1.062597
-v 0.278594 -2.040090 -1.039415
-v 0.241395 -1.996708 -0.900630
-v 0.170933 -1.819721 -0.637740
-v 0.146116 -1.673745 -0.545149
-v 0.132380 -1.530860 -0.493899
-v 0.114354 -1.365037 -0.426648
-v 0.110059 -1.183625 -0.410623
-v 0.116272 -1.127625 -0.433805
-v 0.140067 -1.127625 -0.522581
-v 0.150423 -1.079625 -0.561217
-v 0.150423 -0.903625 -0.561217
-v 0.135925 -0.855625 -0.507126
-v 0.106642 -0.855625 -0.397875
-v 0.000097 -3.284090 -1.224103
-v 0.000097 -2.760090 -1.224103
-v 0.000101 -2.760090 -1.272103
-v 0.000103 -2.728091 -1.304103
-v 0.000103 -2.642078 -1.304103
-v 0.000099 -2.602085 -1.256103
-v 0.000094 -2.600090 -1.192103
-v 0.000088 -2.524090 -1.108103
-v 0.000081 -2.356090 -1.028103
-v 0.000079 -2.256090 -1.004103
-v 0.000080 -2.192089 -1.012103
-v 0.000085 -2.160089 -1.076103
-v 0.000087 -2.128090 -1.100103
-v 0.000087 -2.072090 -1.100103
-v 0.000085 -2.040090 -1.076103
-v 0.000074 -1.996708 -0.932420
-v 0.000052 -1.819721 -0.660251
-v 0.000045 -1.673745 -0.564391
-v 0.000040 -1.530860 -0.511333
-v 0.000035 -1.365037 -0.441708
-v 0.000034 -1.183625 -0.425117
-v 0.000036 -1.127625 -0.449117
-v 0.000043 -1.127625 -0.541026
-v 0.000046 -1.079625 -0.581026
-v 0.000046 -0.903625 -0.581026
-v 0.000042 -0.855625 -0.525026
-v 0.000033 -0.855625 -0.411919
-v 0.000028 4.767281 -0.355758
-v 0.000032 4.865267 -0.401771
-v 0.000032 4.967279 -0.399774
-v 0.000028 5.023280 -0.351774
-v 0.000023 5.023280 -0.295774
-v 0.000023 5.791280 -0.295774
-v 0.000019 5.847281 -0.239774
-v 0.000015 5.847281 -0.187844
-v 0.000015 5.927280 -0.187844
-v 0.000019 5.927280 -0.243844
-v 0.000019 5.991281 -0.243844
-v 0.000014 5.991281 -0.171844
-v 0.000014 6.135281 -0.179844
-v 0.000018 6.287280 -0.227844
-v 0.000022 6.359281 -0.283844
-v 0.000026 6.391280 -0.331844
-v 0.000024 6.439281 -0.307844
-v 0.000019 6.439281 -0.239882
-v 0.000019 6.479280 -0.239882
-v 0.000014 6.535279 -0.175883
-v 0.000011 6.607280 -0.143882
-v 0.000011 6.671281 -0.135882
-v 0.000011 6.727280 -0.143882
-v 0.000009 6.751280 -0.111882
-v 0.000014 6.775281 -0.175883
-v 0.000016 6.815281 -0.207882
-v 0.000020 6.823281 -0.255882
-v 0.000020 6.871280 -0.255882
-v -0.316722 -3.284090 -1.182419
-v -0.316722 -2.760090 -1.182419
-v -0.329142 -2.760090 -1.228785
-v -0.337422 -2.728091 -1.259695
-v -0.337422 -2.642078 -1.259695
-v -0.325002 -2.602085 -1.213330
-v -0.308443 -2.600090 -1.151509
-v -0.286709 -2.524090 -1.070369
-v -0.266010 -2.356090 -0.993093
-v -0.259800 -2.256090 -0.969911
-v -0.261870 -2.192089 -0.977638
-v -0.278429 -2.160089 -1.039459
-v -0.284639 -2.128090 -1.062642
-v -0.284639 -2.072090 -1.062642
-v -0.278429 -2.040090 -1.039459
-v -0.241253 -1.996708 -0.900668
-v -0.170832 -1.819721 -0.637768
-v -0.146030 -1.673745 -0.545173
-v -0.132301 -1.530860 -0.493920
-v -0.114287 -1.365037 -0.426666
-v -0.109994 -1.183625 -0.410641
-v -0.116204 -1.127625 -0.433823
-v -0.139984 -1.127625 -0.522603
-v -0.150334 -1.079625 -0.561241
-v -0.150334 -0.903625 -0.561241
-v -0.135844 -0.855625 -0.507147
-v -0.106579 -0.855625 -0.397892
-v -0.037228 6.727280 -0.138982
-v -0.028948 6.751280 -0.108072
-v -0.611958 -3.284090 -1.060158
-v -0.611958 -2.760090 -1.060158
-v -0.635955 -2.760090 -1.101729
-v -0.651952 -2.728091 -1.129444
-v -0.651952 -2.642078 -1.129444
-v -0.627956 -2.602085 -1.087872
-v -0.595961 -2.600090 -1.032444
-v -0.553967 -2.524090 -0.959694
-v -0.513973 -2.356090 -0.890408
-v -0.501975 -2.256090 -0.869623
-v -0.505975 -2.192089 -0.876551
-v -0.537970 -2.160089 -0.931980
-v -0.549968 -2.128090 -0.952765
-v -0.549968 -2.072090 -0.952765
-v -0.537970 -2.040090 -0.931980
-v -0.466139 -1.996708 -0.807540
-v -0.330075 -1.819721 -0.571823
-v -0.282153 -1.673745 -0.488802
-v -0.255627 -1.530860 -0.442849
-v -0.220820 -1.365037 -0.382550
-v -0.212526 -1.183625 -0.368181
-v -0.224524 -1.127625 -0.388966
-v -0.270472 -1.127625 -0.468566
-v -0.290469 -1.079625 -0.503209
-v -0.290469 -0.903625 -0.503209
-v -0.262473 -0.855625 -0.454709
-v -0.205928 -0.855625 -0.356750
-v -0.177852 4.767281 -0.308111
-v -0.200855 4.865267 -0.347962
-v -0.199857 4.967279 -0.346232
-v -0.175860 5.023280 -0.304661
-v -0.147864 5.023280 -0.256161
-v -0.147864 5.791280 -0.256161
-v -0.119869 5.847281 -0.207661
-v -0.093908 5.847281 -0.162686
-v -0.093908 5.927280 -0.162686
-v -0.121903 5.927280 -0.211186
-v -0.121903 5.991281 -0.211186
-v -0.085909 5.991281 -0.148829
-v -0.089908 6.135281 -0.155757
-v -0.113905 6.287280 -0.197329
-v -0.141900 6.359281 -0.245829
-v -0.165897 6.391280 -0.287400
-v -0.153899 6.439281 -0.266614
-v -0.119923 6.439281 -0.207754
-v -0.119923 6.479280 -0.207754
-v -0.087928 6.535279 -0.152327
-v -0.071930 6.607280 -0.124612
-v -0.067931 6.671281 -0.117683
-v -0.071930 6.727280 -0.124612
-v -0.055932 6.751280 -0.096898
-v -0.087928 6.775281 -0.152327
-v -0.103925 6.815281 -0.180040
-v -0.127922 6.823281 -0.221612
-v -0.127922 6.871280 -0.221612
-v -0.865492 -3.284090 -0.865651
-v -0.865492 -2.760090 -0.865651
-v -0.899430 -2.760090 -0.899596
-v -0.922055 -2.728091 -0.922225
-v -0.922055 -2.642078 -0.922225
-v -0.888117 -2.602085 -0.888281
-v -0.842866 -2.600090 -0.843022
-v -0.783475 -2.524090 -0.783619
-v -0.726912 -2.356090 -0.727046
-v -0.709943 -2.256090 -0.710073
-v -0.715599 -2.192089 -0.715731
-v -0.760850 -2.160089 -0.760990
-v -0.777819 -2.128090 -0.777962
-v -0.777819 -2.072090 -0.777962
-v -0.760850 -2.040090 -0.760990
-v -0.659259 -1.996708 -0.659381
-v -0.466825 -1.819721 -0.466911
-v -0.399048 -1.673745 -0.399122
-v -0.361533 -1.530860 -0.361600
-v -0.312306 -1.365037 -0.312363
-v -0.300575 -1.183625 -0.300631
-v -0.317544 -1.127625 -0.317603
-v -0.382528 -1.127625 -0.382598
-v -0.410810 -1.079625 -0.410885
-v -0.410810 -0.903625 -0.410885
-v -0.371215 -0.855625 -0.371284
-v -0.291244 -0.855625 -0.291298
-v -0.251536 4.767281 -0.251582
-v -0.284069 4.865267 -0.284121
-v -0.132814 5.847281 -0.132838
-v -0.132814 5.927280 -0.132838
-v -0.172408 5.927280 -0.172440
-v -0.121501 5.991281 -0.121523
-v -0.127157 6.135281 -0.127181
-v -0.161095 6.287280 -0.161125
-v -0.200690 6.359281 -0.200727
-v -0.169607 6.439281 -0.169638
-v -0.124357 6.535279 -0.124380
-v -0.101731 6.607280 -0.101749
-v -0.096074 6.671281 -0.096092
-v -0.101731 6.727280 -0.101749
-v -0.079105 6.751280 -0.079120
-v -0.124357 6.775281 -0.124380
-v -0.146981 6.815281 -0.147008
-v -0.180919 6.871280 -0.180953
-v -1.060045 -3.284090 -0.612154
-v -1.060045 -2.760090 -0.612154
-v -1.101612 -2.760090 -0.636158
-v -1.129323 -2.728091 -0.652160
-v -1.129323 -2.642078 -0.652160
-v -1.087757 -2.602085 -0.628156
-v -1.032334 -2.600090 -0.596151
-v -0.959592 -2.524090 -0.554144
-v -0.890314 -2.356090 -0.514137
-v -0.869530 -2.256090 -0.502135
-v -0.876458 -2.192089 -0.506136
-v -0.931881 -2.160089 -0.538141
-v -0.952664 -2.128090 -0.550143
-v -0.952664 -2.072090 -0.550143
-v -0.931881 -2.040090 -0.538141
-v -0.807454 -1.996708 -0.466288
-v -0.571762 -1.819721 -0.330181
-v -0.488750 -1.673745 -0.282243
-v -0.442802 -1.530860 -0.255709
-v -0.382509 -1.365037 -0.220891
-v -0.368142 -1.183625 -0.212594
-v -0.388925 -1.127625 -0.224596
-v -0.468516 -1.127625 -0.270558
-v -0.503155 -1.079625 -0.290562
-v -0.503155 -0.903625 -0.290562
-v -0.454661 -0.855625 -0.262557
-v -0.356712 -0.855625 -0.205994
-v -0.308078 4.767281 -0.177909
-v -0.347925 4.865267 -0.200919
-v -0.346195 4.967279 -0.199920
-v -0.304628 5.023280 -0.175916
-v -0.256134 5.023280 -0.147912
-v -0.256134 5.791280 -0.147912
-v -0.207639 5.847281 -0.119907
-v -0.162669 5.847281 -0.093938
-v -0.162669 5.927280 -0.093938
-v -0.211163 5.927280 -0.121942
-v -0.211163 5.991281 -0.121942
-v -0.148813 5.991281 -0.085936
-v -0.155741 6.135281 -0.089937
-v -0.197308 6.287280 -0.113941
-v -0.245802 6.359281 -0.141946
-v -0.287369 6.391280 -0.165950
-v -0.266586 6.439281 -0.153948
-v -0.207732 6.439281 -0.119961
-v -0.207732 6.479280 -0.119961
-v -0.152311 6.535279 -0.087956
-v -0.124599 6.607280 -0.071953
-v -0.117671 6.671281 -0.067952
-v -0.124599 6.727280 -0.071953
-v -0.096887 6.751280 -0.055950
-v -0.152311 6.775281 -0.087956
-v -0.180021 6.815281 -0.103958
-v -0.221588 6.823281 -0.127962
-v -0.221588 6.871280 -0.127962
-v -1.182361 -3.284090 -0.316940
-v -1.182361 -2.760090 -0.316940
-v -1.228724 -2.760090 -0.329368
-v -1.259633 -2.728091 -0.337654
-v -1.259633 -2.642078 -0.337654
-v -1.213270 -2.602085 -0.325226
-v -1.151452 -2.600090 -0.308655
-v -1.070316 -2.524090 -0.286906
-v -0.993044 -2.356090 -0.266193
-v -0.969863 -2.256090 -0.259979
-v -0.977590 -2.192089 -0.262050
-v -1.039407 -2.160089 -0.278621
-v -1.062589 -2.128090 -0.284835
-v -1.062589 -2.072090 -0.284835
-v -1.039407 -2.040090 -0.278621
-v -0.900624 -1.996708 -0.241419
-v -0.637736 -1.819721 -0.170950
-v -0.545146 -1.673745 -0.146130
-v -0.493896 -1.530860 -0.132392
-v -0.426645 -1.365037 -0.114365
-v -0.410620 -1.183625 -0.110070
-v -0.433802 -1.127625 -0.116284
-v -0.522577 -1.127625 -0.140081
-v -0.561213 -1.079625 -0.150437
-v -0.561213 -0.903625 -0.150437
-v -0.507122 -0.855625 -0.135938
-v -0.397872 -0.855625 -0.106653
-v -0.343627 4.767281 -0.092112
-v -0.138976 6.727280 -0.037253
-v -0.215708 4.671280 0.000000
-v -0.271708 4.671280 0.000000
-v -0.303708 4.639273 0.000000
-v -0.303708 4.591273 0.000000
-v -0.275705 4.561275 0.000000
-v -0.331920 0.793487 0.000000
-v -0.403919 0.779474 0.000000
-v -0.419919 0.707474 0.000000
-v -0.403919 0.641487 0.000000
-v -0.363919 0.601487 0.000000
-v -0.403919 -0.543625 0.000000
-v -0.451919 -0.543625 0.000000
-v -0.483920 -0.583625 0.000000
-v -0.483920 -0.665634 0.000000
-v -0.453928 -0.695625 0.000000
-v -0.411927 -0.695618 0.000000
-v -0.397891 -0.695618 0.106613
-v -0.438461 -0.695625 0.117483
-v -0.467431 -0.665634 0.125246
-v -0.467431 -0.583625 0.125246
-v -0.436521 -0.543625 0.116963
-v -0.390156 -0.543625 0.104540
-v -0.351519 0.601487 0.094188
-v -0.390156 0.641487 0.104540
-v -0.405611 0.707474 0.108681
-v -0.390156 0.779474 0.104540
-v -0.320610 0.793487 0.085906
-v -0.231540 4.559279 0.062040
-v -0.356741 -0.695618 0.205960
-v -0.393115 -0.695625 0.226961
-v -0.419089 -0.665634 0.241956
-v -0.419089 -0.583625 0.241956
-v -0.391375 -0.543625 0.225956
-v -0.349806 -0.543625 0.201956
-v -0.315165 0.601487 0.181957
-v -0.349806 0.641487 0.201956
-v -0.363662 0.707474 0.209956
-v -0.349806 0.779474 0.201956
-v -0.287453 0.793487 0.165957
-v -0.207594 4.559279 0.119852
-v -0.238769 4.561275 0.137850
-v -0.263020 4.591273 0.151852
-v -0.263020 4.639273 0.151852
-v -0.235307 4.671280 0.135852
-v -0.186810 4.671280 0.107852
-v -0.291280 -0.695618 0.291273
-v -0.320980 -0.695625 0.320971
-v -0.342188 -0.665634 0.342179
-v -0.342188 -0.583625 0.342179
-v -0.319559 -0.543625 0.319551
-v -0.285618 -0.543625 0.285610
-v -0.257333 0.601487 0.257326
-v -0.285618 0.641487 0.285610
-v -0.296931 0.707474 0.296924
-v -0.285618 0.779474 0.285610
-v -0.234706 0.793487 0.234700
-v -0.169501 4.559279 0.169497
-v -0.205970 -0.695618 0.356736
-v -0.226971 -0.695625 0.393109
-v -0.241967 -0.665634 0.419083
-v -0.241967 -0.583625 0.419083
-v -0.225966 -0.543625 0.391369
-v -0.201966 -0.543625 0.349801
-v -0.181965 0.601487 0.315160
-v -0.201966 0.641487 0.349801
-v -0.209966 0.707474 0.363657
-v -0.201966 0.779474 0.349801
-v -0.165965 0.793487 0.287448
-v -0.119858 4.559279 0.207591
-v -0.137857 4.561275 0.238765
-v -0.151859 4.591273 0.263016
-v -0.151859 4.639273 0.263016
-v -0.135858 4.671280 0.235304
-v -0.107857 4.671280 0.186807
-v -0.106623 -0.695618 0.397889
-v -0.117495 -0.695625 0.438458
-v -0.125258 -0.665634 0.467428
-v -0.125258 -0.583625 0.467428
-v -0.116975 -0.543625 0.436518
-v -0.104550 -0.543625 0.390153
-v -0.094197 0.601487 0.351517
-v -0.104550 0.641487 0.390153
-v -0.108692 0.707474 0.405608
-v -0.104550 0.779474 0.390153
-v -0.085914 0.793487 0.320608
-v -0.062046 4.559279 0.231539
-v -0.078612 4.639273 0.293358
-v -0.070329 4.671280 0.262448
-v -0.055834 4.671280 0.208357
-v -0.000011 -0.695618 0.411927
-v -0.000012 -0.695625 0.453928
-v -0.000013 -0.665634 0.483920
-v -0.000013 -0.583625 0.483920
-v -0.000012 -0.543625 0.451919
-v -0.000011 -0.543625 0.403919
-v -0.000010 0.601487 0.363919
-v -0.000011 0.641487 0.403919
-v -0.000011 0.707474 0.419919
-v -0.000011 0.779474 0.403919
-v -0.000009 0.793487 0.331920
-v -0.000006 4.559279 0.239708
-v -0.000007 4.561275 0.275705
-v -0.000008 4.591273 0.303708
-v -0.000008 4.639273 0.303708
-v -0.000007 4.671280 0.271708
-v -0.000006 4.671280 0.215708
-v 0.106602 -0.695618 0.397894
-v 0.117472 -0.695625 0.438464
-v 0.125233 -0.665634 0.467435
-v 0.125233 -0.583625 0.467435
-v 0.116952 -0.543625 0.436524
-v 0.104530 -0.543625 0.390159
-v 0.094178 0.601487 0.351522
-v 0.104530 0.641487 0.390159
-v 0.108671 0.707474 0.405614
-v 0.104530 0.779474 0.390159
-v 0.085897 0.793487 0.320613
-v 0.062034 4.559279 0.231542
-v 0.078596 4.591273 0.293362
-v 0.078596 4.639273 0.293362
-v 0.055823 4.671280 0.208360
-v 0.205951 -0.695618 0.356746
-v 0.226950 -0.695625 0.393121
-v 0.241945 -0.665634 0.419095
-v 0.241945 -0.583625 0.419095
-v 0.225946 -0.543625 0.391381
-v 0.201947 -0.543625 0.349811
-v 0.181948 0.601487 0.315169
-v 0.201947 0.641487 0.349811
-v 0.209947 0.707474 0.363668
-v 0.201947 0.779474 0.349811
-v 0.165950 0.793487 0.287457
-v 0.119847 4.559279 0.207597
-v 0.137844 4.561275 0.238772
-v 0.151845 4.591273 0.263024
-v 0.151845 4.639273 0.263024
-v 0.135846 4.671280 0.235311
-v 0.107847 4.671280 0.186812
-v 0.291265 -0.695618 0.291288
-v 0.320963 -0.695625 0.320988
-v 0.342170 -0.665634 0.342197
-v 0.342170 -0.583625 0.342197
-v 0.319542 -0.543625 0.319568
-v 0.285603 -0.543625 0.285625
-v 0.257319 0.601487 0.257340
-v 0.285603 0.641487 0.285625
-v 0.296916 0.707474 0.296939
-v 0.285603 0.779474 0.285625
-v 0.234694 0.793487 0.234712
-v 0.169492 4.559279 0.169506
-v 0.214745 4.591273 0.214762
-v 0.356730 -0.695618 0.205979
-v 0.393103 -0.695625 0.226981
-v 0.419076 -0.665634 0.241978
-v 0.419076 -0.583625 0.241978
-v 0.391363 -0.543625 0.225977
-v 0.349795 -0.543625 0.201975
-v 0.315155 0.601487 0.181973
-v 0.349795 0.641487 0.201975
-v 0.363651 0.707474 0.209975
-v 0.349795 0.779474 0.201975
-v 0.287444 0.793487 0.165973
-v 0.207588 4.559279 0.119863
-v 0.238761 4.561275 0.137863
-v 0.263012 4.591273 0.151866
-v 0.263012 4.639273 0.151866
-v 0.235300 4.671280 0.135864
-v 0.186804 4.671280 0.107862
-v 0.397886 -0.695618 0.106634
-v 0.438455 -0.695625 0.117506
-v 0.467425 -0.665634 0.125270
-v 0.467425 -0.583625 0.125270
-v 0.436515 -0.543625 0.116986
-v 0.390151 -0.543625 0.104561
-v 0.351514 0.601487 0.094206
-v 0.390151 0.641487 0.104561
-v 0.405605 0.707474 0.108703
-v 0.390151 0.779474 0.104561
-v 0.320606 0.793487 0.085923
-v 0.231537 4.559279 0.062052
-v 0.208355 4.671280 0.055839
-v 0.411927 -0.695618 0.000022
-v 0.453928 -0.695625 0.000024
-v 0.483920 -0.665634 0.000025
-v 0.483920 -0.583625 0.000025
-v 0.451919 -0.543625 0.000024
-v 0.403919 -0.543625 0.000021
-v 0.363919 0.601487 0.000019
-v 0.403919 0.641487 0.000021
-v 0.419919 0.707474 0.000022
-v 0.403919 0.779474 0.000021
-v 0.331920 0.793487 0.000017
-v 0.239708 4.559279 0.000013
-v 0.275705 4.561275 0.000015
-v 0.303708 4.591273 0.000016
-v 0.303708 4.639273 0.000016
-v 0.271708 4.671280 0.000014
-v 0.215708 4.671280 0.000011
-v 0.397897 -0.695618 -0.106592
-v 0.438467 -0.695625 -0.117460
-v 0.467438 -0.665634 -0.125221
-v 0.467438 -0.583625 -0.125221
-v 0.436527 -0.543625 -0.116940
-v 0.390162 -0.543625 -0.104520
-v 0.351524 0.601487 -0.094169
-v 0.390162 0.641487 -0.104520
-v 0.405617 0.707474 -0.108660
-v 0.390162 0.779474 -0.104520
-v 0.320615 0.793487 -0.085889
-v 0.231544 4.559279 -0.062028
-v 0.356752 -0.695618 -0.205942
-v 0.393127 -0.695625 -0.226940
-v 0.419102 -0.665634 -0.241934
-v 0.419102 -0.583625 -0.241934
-v 0.391387 -0.543625 -0.225935
-v 0.349817 -0.543625 -0.201938
-v 0.315174 0.601487 -0.181940
-v 0.349817 0.641487 -0.201938
-v 0.363673 0.707474 -0.209937
-v 0.349817 0.779474 -0.201938
-v 0.287461 0.793487 -0.165942
-v 0.207601 4.559279 -0.119841
-v 0.238776 4.561275 -0.137838
-v 0.263028 4.591273 -0.151838
-v 0.263028 4.639273 -0.151838
-v 0.235314 4.671280 -0.135840
-v 0.186815 4.671280 -0.107842
-v 0.291296 -0.695618 -0.291257
-v 0.320997 -0.695625 -0.320954
-v 0.342206 -0.665634 -0.342161
-v 0.342206 -0.583625 -0.342161
-v 0.319576 -0.543625 -0.319534
-v 0.285633 -0.543625 -0.285595
-v 0.257347 0.601487 -0.257313
-v 0.285633 0.641487 -0.285595
-v 0.296947 0.707474 -0.296908
-v 0.285633 0.779474 -0.285595
-v 0.234718 0.793487 -0.234687
-v 0.169510 4.559279 -0.169488
-v 0.205988 -0.695618 -0.356725
-v 0.226992 -0.695625 -0.393097
-v 0.241989 -0.665634 -0.419070
-v 0.241989 -0.583625 -0.419070
-v 0.225987 -0.543625 -0.391358
-v 0.201984 -0.543625 -0.349790
-v 0.181982 0.601487 -0.315150
-v 0.201984 0.641487 -0.349790
-v 0.209985 0.707474 -0.363646
-v 0.201984 0.779474 -0.349790
-v 0.165980 0.793487 -0.287440
-v 0.119869 4.559279 -0.207585
-v 0.137869 4.561275 -0.238758
-v 0.151872 4.591273 -0.263008
-v 0.151872 4.639273 -0.263008
-v 0.135870 4.671280 -0.235297
-v 0.107867 4.671280 -0.186801
-v 0.106644 -0.695618 -0.397883
-v 0.117518 -0.695625 -0.438452
-v 0.125283 -0.665634 -0.467421
-v 0.125283 -0.583625 -0.467421
-v 0.116998 -0.543625 -0.436511
-v 0.104571 -0.543625 -0.390148
-v 0.094215 0.601487 -0.351512
-v 0.104571 0.641487 -0.390148
-v 0.108713 0.707474 -0.405602
-v 0.104571 0.779474 -0.390148
-v 0.085931 0.793487 -0.320604
-v 0.062058 4.559279 -0.231535
-v 0.070343 4.671280 -0.262444
-v 0.000033 -0.695618 -0.411927
-v 0.000036 -0.695625 -0.453928
-v 0.000038 -0.665634 -0.483920
-v 0.000038 -0.583625 -0.483920
-v 0.000036 -0.543625 -0.451919
-v 0.000032 -0.543625 -0.403919
-v 0.000029 0.601487 -0.363919
-v 0.000032 0.641487 -0.403919
-v 0.000033 0.707474 -0.419919
-v 0.000032 0.779474 -0.403919
-v 0.000026 0.793487 -0.331920
-v 0.000019 4.559279 -0.239708
-v 0.000022 4.561275 -0.275705
-v 0.000024 4.591273 -0.303708
-v 0.000024 4.639273 -0.303708
-v 0.000022 4.671280 -0.271708
-v 0.000017 4.671280 -0.215708
-v -0.106581 -0.695618 -0.397900
-v -0.117449 -0.695625 -0.438471
-v -0.125209 -0.665634 -0.467441
-v -0.125209 -0.583625 -0.467441
-v -0.116929 -0.543625 -0.436530
-v -0.104509 -0.543625 -0.390165
-v -0.094160 0.601487 -0.351527
-v -0.104509 0.641487 -0.390165
-v -0.108649 0.707474 -0.405620
-v -0.104509 0.779474 -0.390165
-v -0.085880 0.793487 -0.320617
-v -0.062022 4.559279 -0.231545
-v -0.078581 4.591273 -0.293366
-v -0.205932 -0.695618 -0.356757
-v -0.226929 -0.695625 -0.393133
-v -0.241923 -0.665634 -0.419108
-v -0.241923 -0.583625 -0.419108
-v -0.225925 -0.543625 -0.391393
-v -0.201929 -0.543625 -0.349822
-v -0.181932 0.601487 -0.315179
-v -0.201929 0.641487 -0.349822
-v -0.209928 0.707474 -0.363679
-v -0.201929 0.779474 -0.349822
-v -0.165935 0.793487 -0.287466
-v -0.119836 4.559279 -0.207604
-v -0.137832 4.561275 -0.238780
-v -0.151831 4.591273 -0.263032
-v -0.151831 4.639273 -0.263032
-v -0.135833 4.671280 -0.235318
-v -0.107838 4.671280 -0.186818
-v -0.291250 -0.695618 -0.291303
-v -0.320946 -0.695625 -0.321005
-v -0.342152 -0.665634 -0.342215
-v -0.342152 -0.583625 -0.342215
-v -0.319526 -0.543625 -0.319584
-v -0.285588 -0.543625 -0.285640
-v -0.257306 0.601487 -0.257353
-v -0.285588 0.641487 -0.285640
-v -0.296900 0.707474 -0.296955
-v -0.285588 0.779474 -0.285640
-v -0.234681 0.793487 -0.234725
-v -0.169484 4.559279 -0.169515
-v -0.152515 4.671280 -0.152543
-v -0.356719 -0.695618 -0.205998
-v -0.393091 -0.695625 -0.227002
-v -0.419064 -0.665634 -0.242000
-v -0.419064 -0.583625 -0.242000
-v -0.391352 -0.543625 -0.225997
-v -0.349785 -0.543625 -0.201993
-v -0.315146 0.601487 -0.181990
-v -0.349785 0.641487 -0.201993
-v -0.363640 0.707474 -0.209995
-v -0.349785 0.779474 -0.201993
-v -0.287435 0.793487 -0.165988
-v -0.207582 4.559279 -0.119874
-v -0.238754 4.561275 -0.137876
-v -0.263004 4.591273 -0.151879
-v -0.263004 4.639273 -0.151879
-v -0.235293 4.671280 -0.135877
-v -0.186798 4.671280 -0.107872
-v -0.397880 -0.695618 -0.106655
-v -0.438449 -0.695625 -0.117529
-v -0.467418 -0.665634 -0.125295
-v -0.467418 -0.583625 -0.125295
-v -0.436508 -0.543625 -0.117009
-v -0.390145 -0.543625 -0.104581
-v -0.351509 0.601487 -0.094225
-v -0.390145 0.641487 -0.104581
-v -0.405600 0.707474 -0.108724
-v -0.390145 0.779474 -0.104581
-v -0.320601 0.793487 -0.085940
-v -0.231534 4.559279 -0.062064
-v -0.208352 4.671280 -0.055850
-v 0.042099 0.760516 0.319849
-v 0.049195 0.755443 0.373756
-v 0.049945 0.707794 0.379455
-v 0.048430 0.657846 0.367941
-v 0.043001 0.613739 0.326701
-v 0.047878 -0.544789 0.363746
-v -0.140407 -0.544789 0.338953
-v -0.291071 -0.544789 0.223341
-v -0.363745 -0.544789 0.047887
-v 0.223334 -0.544789 0.291076
-v 0.200588 0.613739 0.261432
-v 0.225910 0.657846 0.294434
-v 0.232979 0.707794 0.303647
-v 0.229480 0.755443 0.299087
-v 0.196382 0.760516 0.255949
-v -0.123463 0.760516 0.298048
-v -0.255945 0.760516 0.196388
-v -0.319848 0.760516 0.042108
-v -0.373755 0.755443 0.049205
-v -0.299081 0.755444 0.229487
-v -0.144271 0.755443 0.348281
-v -0.142026 0.657846 0.342863
-v -0.126108 0.613739 0.304434
-v -0.146471 0.707794 0.353592
-v -0.303641 0.707794 0.232987
-v -0.261427 0.613739 0.200596
-v -0.294428 0.657846 0.225917
-v -0.379454 0.707794 0.049955
-v -0.367940 0.657846 0.048439
-v -0.326700 0.613739 0.043010
-v -0.298039 0.760516 -0.123487
-v -0.196368 0.760516 -0.255960
-v -0.042083 0.760516 -0.319851
-v -0.049175 0.755443 -0.373759
-v -0.049925 0.707794 -0.379458
-v -0.048410 0.657846 -0.367944
-v -0.042984 0.613739 -0.326704
-v -0.200575 0.613739 -0.261443
-v -0.225894 0.657846 -0.294446
-v -0.232963 0.707794 -0.303660
-v -0.229464 0.755443 -0.299099
-v -0.348270 0.755443 -0.144298
-v -0.353580 0.707794 -0.146499
-v -0.342852 0.657846 -0.142053
-v -0.304424 0.613739 -0.126132
-v -0.338942 -0.544789 -0.140434
-v -0.223319 -0.544789 -0.291089
-v -0.047858 -0.544789 -0.363749
-v 0.140425 -0.544789 -0.338946
-v 0.291083 -0.544789 -0.223326
-v 0.363748 -0.544789 -0.047868
-v 0.123478 0.760516 -0.298043
-v 0.144289 0.755444 -0.348273
-v 0.146489 0.707794 -0.353584
-v 0.142044 0.657846 -0.342855
-v 0.126124 0.613739 -0.304427
-v 0.261438 0.613739 -0.200582
-v 0.294440 0.657846 -0.225902
-v 0.303653 0.707794 -0.232971
-v 0.299093 0.755444 -0.229471
-v 0.255955 0.760516 -0.196375
-v 0.319851 0.760516 -0.042092
-v 0.373758 0.755443 -0.049186
-v 0.379457 0.707794 -0.049935
-v 0.367943 0.657846 -0.048420
-v 0.326702 0.613739 -0.042993
-v 0.298045 0.760516 0.123471
-v 0.348277 0.755444 0.144280
-v 0.353588 0.707794 0.146480
-v 0.342859 0.657846 0.142035
-v 0.304430 0.613739 0.126115
-v 0.338950 -0.544789 0.140416
-v -0.026067 4.543957 0.197960
-v -0.038002 0.778164 0.288601
-v -0.121553 4.543957 0.158406
-v -0.177209 0.778164 0.230936
-v -0.184470 4.543957 0.076408
-v -0.268934 0.778164 0.111395
-v -0.197958 4.543957 -0.026072
-v -0.288597 0.778165 -0.038010
-v 0.184475 4.543957 -0.076399
-v 0.268941 0.778164 -0.111380
-v 0.121561 4.543957 -0.158400
-v 0.177221 0.778164 -0.230926
-v 0.026077 4.543957 -0.197959
-v 0.038017 0.778164 -0.288599
-v -0.076395 4.543957 -0.184476
-v -0.111373 0.778164 -0.268943
-v -0.158396 4.543957 -0.121565
-v -0.230922 0.778164 -0.177227
-v 0.197959 4.543957 0.026072
-v 0.288599 0.778164 0.038010
-v 0.158403 4.543957 0.121557
-v 0.230932 0.778164 0.177215
-v 0.076404 4.543957 0.184472
-v 0.111387 0.778164 0.268937
-v -0.231537 4.559279 -0.000012
-# 4440 vertices
-
-# 0 vertex parms
-
-# 0 texture vertices
-
-# 0 normals
-
-g globes
-f 1669 1692 1691
-f 1688 1692 1687
-f 1684 1692 1683
-f 1680 1692 1679
-f 1676 1692 1675
-f 1672 1692 1671
-f 1645 1669 1691 1667
-f 1664 1688 1687 1663
-f 1660 1684 1683 1659
-f 1656 1680 1679 1655
-f 1652 1676 1675 1651
-f 1648 1672 1671 1647
-f 1621 1645 1667 1643
-f 1640 1664 1663 1639
-f 1636 1660 1659 1635
-f 1632 1656 1655 1631
-f 1628 1652 1651 1627
-f 1624 1648 1647 1623
-f 1597 1621 1643 1619
-f 1616 1640 1639 1615
-f 1612 1636 1635 1611
-f 1608 1632 1631 1607
-f 1604 1628 1627 1603
-f 1600 1624 1623 1599
-f 1573 1597 1619 1595
-f 1592 1616 1615 1591
-f 1588 1612 1611 1587
-f 1584 1608 1607 1583
-f 1580 1604 1603 1579
-f 1576 1600 1599 1575
-f 1549 1573 1595 1571
-f 1568 1592 1591 1567
-f 1564 1588 1587 1563
-f 1560 1584 1583 1559
-f 1556 1580 1579 1555
-f 1552 1576 1575 1551
-f 1525 1549 1571 1547
-f 1544 1568 1567 1543
-f 1540 1564 1563 1539
-f 1536 1560 1559 1535
-f 1532 1556 1555 1531
-f 1528 1552 1551 1527
-f 1501 1525 1547 1523
-f 1520 1544 1543 1519
-f 1516 1540 1539 1515
-f 1512 1536 1535 1511
-f 1508 1532 1531 1507
-f 1504 1528 1527 1503
-f 1477 1501 1523 1499
-f 1496 1520 1519 1495
-f 1492 1516 1515 1491
-f 1488 1512 1511 1487
-f 1484 1508 1507 1483
-f 1480 1504 1503 1479
-f 1453 1477 1499 1475
-f 1472 1496 1495 1471
-f 1468 1492 1491 1467
-f 1464 1488 1487 1463
-f 1460 1484 1483 1459
-f 1456 1480 1479 1455
-f 1429 1453 1475 1451
-f 1448 1472 1471 1447
-f 1444 1468 1467 1443
-f 1440 1464 1463 1439
-f 1436 1460 1459 1435
-f 1432 1456 1455 1431
-f 1427 1429 1451
-f 1427 1448 1447
-f 1427 1444 1443
-f 1427 1440 1439
-f 1427 1436 1435
-f 1427 1432 1431
-f 1403 1426 1425
-f 1422 1426 1421
-f 1418 1426 1417
-f 1414 1426 1413
-f 1410 1426 1409
-f 1406 1426 1405
-f 1379 1403 1425 1401
-f 1398 1422 1421 1397
-f 1394 1418 1417 1393
-f 1390 1414 1413 1389
-f 1386 1410 1409 1385
-f 1382 1406 1405 1381
-f 1355 1379 1401 1377
-f 1374 1398 1397 1373
-f 1370 1394 1393 1369
-f 1366 1390 1389 1365
-f 1362 1386 1385 1361
-f 1358 1382 1381 1357
-f 1331 1355 1377 1353
-f 1350 1374 1373 1349
-f 1346 1370 1369 1345
-f 1342 1366 1365 1341
-f 1338 1362 1361 1337
-f 1334 1358 1357 1333
-f 1307 1331 1353 1329
-f 1326 1350 1349 1325
-f 1322 1346 1345 1321
-f 1318 1342 1341 1317
-f 1314 1338 1337 1313
-f 1310 1334 1333 1309
-f 1283 1307 1329 1305
-f 1302 1326 1325 1301
-f 1298 1322 1321 1297
-f 1294 1318 1317 1293
-f 1290 1314 1313 1289
-f 1286 1310 1309 1285
-f 1259 1283 1305 1281
-f 1278 1302 1301 1277
-f 1274 1298 1297 1273
-f 1270 1294 1293 1269
-f 1266 1290 1289 1265
-f 1262 1286 1285 1261
-f 1235 1259 1281 1257
-f 1254 1278 1277 1253
-f 1250 1274 1273 1249
-f 1246 1270 1269 1245
-f 1242 1266 1265 1241
-f 1238 1262 1261 1237
-f 1211 1235 1257 1233
-f 1230 1254 1253 1229
-f 1226 1250 1249 1225
-f 1222 1246 1245 1221
-f 1218 1242 1241 1217
-f 1214 1238 1237 1213
-f 1187 1211 1233 1209
-f 1206 1230 1229 1205
-f 1202 1226 1225 1201
-f 1198 1222 1221 1197
-f 1194 1218 1217 1193
-f 1190 1214 1213 1189
-f 1163 1187 1209 1185
-f 1182 1206 1205 1181
-f 1178 1202 1201 1177
-f 1174 1198 1197 1173
-f 1170 1194 1193 1169
-f 1166 1190 1189 1165
-f 1161 1163 1185
-f 1161 1182 1181
-f 1161 1178 1177
-f 1161 1174 1173
-f 1161 1170 1169
-f 1161 1166 1165
-f 531 532 530
-f 527 532 526
-f 523 532 522
-f 519 532 518
-f 515 532 514
-f 511 532 510
-f 507 531 530 506
-f 503 527 526 502
-f 499 523 522 498
-f 495 519 518 494
-f 491 515 514 490
-f 487 511 510 486
-f 483 507 506 482
-f 479 503 502 478
-f 475 499 498 474
-f 471 495 494 470
-f 467 491 490 466
-f 463 487 486 462
-f 459 483 482 458
-f 455 479 478 454
-f 451 475 474 450
-f 447 471 470 446
-f 443 467 466 442
-f 439 463 462 438
-f 435 459 458 434
-f 431 455 454 430
-f 427 451 450 426
-f 423 447 446 422
-f 419 443 442 418
-f 415 439 438 414
-f 411 435 434 410
-f 407 431 430 406
-f 403 427 426 402
-f 399 423 422 398
-f 395 419 418 394
-f 391 415 414 390
-f 387 411 410 386
-f 383 407 406 382
-f 379 403 402 378
-f 375 399 398 374
-f 371 395 394 370
-f 367 391 390 366
-f 363 387 386 362
-f 359 383 382 358
-f 355 379 378 354
-f 351 375 374 350
-f 347 371 370 346
-f 343 367 366 342
-f 339 363 362 338
-f 335 359 358 334
-f 331 355 354 330
-f 327 351 350 326
-f 323 347 346 322
-f 319 343 342 318
-f 315 339 338 314
-f 311 335 334 310
-f 307 331 330 306
-f 303 327 326 302
-f 299 323 322 298
-f 295 319 318 294
-f 291 315 314 290
-f 287 311 310 286
-f 283 307 306 282
-f 279 303 302 278
-f 275 299 298 274
-f 271 295 294 270
-f 267 291 290
-f 267 287 286
-f 267 283 282
-f 267 279 278
-f 267 275 274
-f 267 271 270
-f 265 266 264
-f 261 266 260
-f 257 266 256
-f 253 266 252
-f 249 266 248
-f 245 266 244
-f 241 265 264 240
-f 237 261 260 236
-f 233 257 256 232
-f 229 253 252 228
-f 225 249 248 224
-f 221 245 244 220
-f 217 241 240 216
-f 213 237 236 212
-f 209 233 232 208
-f 205 229 228 204
-f 201 225 224 200
-f 197 221 220 196
-f 193 217 216 192
-f 189 213 212 188
-f 185 209 208 184
-f 181 205 204 180
-f 177 201 200 176
-f 173 197 196 172
-f 169 193 192 168
-f 165 189 188 164
-f 161 185 184 160
-f 157 181 180 156
-f 153 177 176 152
-f 149 173 172 148
-f 145 169 168 144
-f 141 165 164 140
-f 137 161 160 136
-f 133 157 156 132
-f 129 153 152 128
-f 125 149 148 124
-f 121 145 144 120
-f 117 141 140 116
-f 113 137 136 112
-f 109 133 132 108
-f 105 129 128 104
-f 101 125 124 100
-f 97 121 120 96
-f 93 117 116 92
-f 89 113 112 88
-f 85 109 108 84
-f 81 105 104 80
-f 77 101 100 76
-f 73 97 96 72
-f 69 93 92 68
-f 65 89 88 64
-f 61 85 84 60
-f 57 81 80 56
-f 53 77 76 52
-f 49 73 72 48
-f 45 69 68 44
-f 41 65 64 40
-f 37 61 60 36
-f 33 57 56 32
-f 29 53 52 28
-f 25 49 48 24
-f 21 45 44 20
-f 17 41 40 16
-f 13 37 36 12
-f 9 33 32 8
-f 5 29 28 4
-f 1 25 24
-f 1 21 20
-f 1 17 16
-f 1 13 12
-f 1 9 8
-f 1 5 4
-f 1 4 3
-f 1 8 7
-f 1 12 11
-f 1 16 15
-f 1 20 19
-f 1 24 23
-f 4 28 27 3
-f 8 32 31 7
-f 12 36 35 11
-f 16 40 39 15
-f 20 44 43 19
-f 24 48 47 23
-f 28 52 51 27
-f 32 56 55 31
-f 36 60 59 35
-f 40 64 63 39
-f 44 68 67 43
-f 48 72 71 47
-f 52 76 75 51
-f 56 80 79 55
-f 60 84 83 59
-f 64 88 87 63
-f 68 92 91 67
-f 72 96 95 71
-f 76 100 99 75
-f 80 104 103 79
-f 84 108 107 83
-f 88 112 111 87
-f 92 116 115 91
-f 96 120 119 95
-f 100 124 123 99
-f 104 128 127 103
-f 108 132 131 107
-f 112 136 135 111
-f 116 140 139 115
-f 120 144 143 119
-f 124 148 147 123
-f 128 152 151 127
-f 132 156 155 131
-f 136 160 159 135
-f 140 164 163 139
-f 144 168 167 143
-f 148 172 171 147
-f 152 176 175 151
-f 156 180 179 155
-f 160 184 183 159
-f 164 188 187 163
-f 168 192 191 167
-f 172 196 195 171
-f 176 200 199 175
-f 180 204 203 179
-f 184 208 207 183
-f 188 212 211 187
-f 192 216 215 191
-f 196 220 219 195
-f 200 224 223 199
-f 204 228 227 203
-f 208 232 231 207
-f 212 236 235 211
-f 216 240 239 215
-f 220 244 243 219
-f 224 248 247 223
-f 228 252 251 227
-f 232 256 255 231
-f 236 260 259 235
-f 240 264 263 239
-f 244 266 243
-f 248 266 247
-f 252 266 251
-f 256 266 255
-f 260 266 259
-f 264 266 263
-f 267 270 268
-f 267 274 273
-f 267 278 277
-f 267 282 281
-f 267 286 285
-f 267 290 289
-f 270 294 292 268
-f 274 298 297 273
-f 278 302 301 277
-f 282 306 305 281
-f 286 310 309 285
-f 290 314 313 289
-f 294 318 316 292
-f 298 322 321 297
-f 302 326 325 301
-f 306 330 329 305
-f 310 334 333 309
-f 314 338 337 313
-f 318 342 340 316
-f 322 346 345 321
-f 326 350 349 325
-f 330 354 353 329
-f 334 358 357 333
-f 338 362 361 337
-f 342 366 364 340
-f 346 370 369 345
-f 350 374 373 349
-f 354 378 377 353
-f 358 382 381 357
-f 362 386 385 361
-f 366 390 388 364
-f 370 394 393 369
-f 374 398 397 373
-f 378 402 401 377
-f 382 406 405 381
-f 386 410 409 385
-f 390 414 412 388
-f 394 418 417 393
-f 398 422 421 397
-f 402 426 425 401
-f 406 430 429 405
-f 410 434 433 409
-f 414 438 436 412
-f 418 442 441 417
-f 422 446 445 421
-f 426 450 449 425
-f 430 454 453 429
-f 434 458 457 433
-f 438 462 460 436
-f 442 466 465 441
-f 446 470 469 445
-f 450 474 473 449
-f 454 478 477 453
-f 458 482 481 457
-f 462 486 484 460
-f 466 490 489 465
-f 470 494 493 469
-f 474 498 497 473
-f 478 502 501 477
-f 482 506 505 481
-f 486 510 508 484
-f 490 514 513 489
-f 494 518 517 493
-f 498 522 521 497
-f 502 526 525 501
-f 506 530 529 505
-f 510 532 508
-f 514 532 513
-f 518 532 517
-f 522 532 521
-f 526 532 525
-f 530 532 529
-f 1161 1162 1163
-f 1161 1167 1166
-f 1161 1171 1170
-f 1161 1175 1174
-f 1161 1179 1178
-f 1161 1183 1182
-f 1162 1186 1187 1163
-f 1167 1191 1190 1166
-f 1171 1195 1194 1170
-f 1175 1199 1198 1174
-f 1179 1203 1202 1178
-f 1183 1207 1206 1182
-f 1186 1210 1211 1187
-f 1191 1215 1214 1190
-f 1195 1219 1218 1194
-f 1199 1223 1222 1198
-f 1203 1227 1226 1202
-f 1207 1231 1230 1206
-f 1210 1234 1235 1211
-f 1215 1239 1238 1214
-f 1219 1243 1242 1218
-f 1223 1247 1246 1222
-f 1227 1251 1250 1226
-f 1231 1255 1254 1230
-f 1234 1258 1259 1235
-f 1239 1263 1262 1238
-f 1243 1267 1266 1242
-f 1247 1271 1270 1246
-f 1251 1275 1274 1250
-f 1255 1279 1278 1254
-f 1258 1282 1283 1259
-f 1263 1287 1286 1262
-f 1267 1291 1290 1266
-f 1271 1295 1294 1270
-f 1275 1299 1298 1274
-f 1279 1303 1302 1278
-f 1282 1306 1307 1283
-f 1287 1311 1310 1286
-f 1291 1315 1314 1290
-f 1295 1319 1318 1294
-f 1299 1323 1322 1298
-f 1303 1327 1326 1302
-f 1306 1330 1331 1307
-f 1311 1335 1334 1310
-f 1315 1339 1338 1314
-f 1319 1343 1342 1318
-f 1323 1347 1346 1322
-f 1327 1351 1350 1326
-f 1330 1354 1355 1331
-f 1335 1359 1358 1334
-f 1339 1363 1362 1338
-f 1343 1367 1366 1342
-f 1347 1371 1370 1346
-f 1351 1375 1374 1350
-f 1354 1378 1379 1355
-f 1359 1383 1382 1358
-f 1363 1387 1386 1362
-f 1367 1391 1390 1366
-f 1371 1395 1394 1370
-f 1375 1399 1398 1374
-f 1378 1402 1403 1379
-f 1383 1407 1406 1382
-f 1387 1411 1410 1386
-f 1391 1415 1414 1390
-f 1395 1419 1418 1394
-f 1399 1423 1422 1398
-f 1402 1426 1403
-f 1407 1426 1406
-f 1411 1426 1410
-f 1415 1426 1414
-f 1419 1426 1418
-f 1423 1426 1422
-f 1427 1428 1429
-f 1427 1433 1432
-f 1427 1437 1436
-f 1427 1441 1440
-f 1427 1445 1444
-f 1427 1449 1448
-f 1428 1452 1453 1429
-f 1433 1457 1456 1432
-f 1437 1461 1460 1436
-f 1441 1465 1464 1440
-f 1445 1469 1468 1444
-f 1449 1473 1472 1448
-f 1452 1476 1477 1453
-f 1457 1481 1480 1456
-f 1461 1485 1484 1460
-f 1465 1489 1488 1464
-f 1469 1493 1492 1468
-f 1473 1497 1496 1472
-f 1476 1500 1501 1477
-f 1481 1505 1504 1480
-f 1485 1509 1508 1484
-f 1489 1513 1512 1488
-f 1493 1517 1516 1492
-f 1497 1521 1520 1496
-f 1500 1524 1525 1501
-f 1505 1529 1528 1504
-f 1509 1533 1532 1508
-f 1513 1537 1536 1512
-f 1517 1541 1540 1516
-f 1521 1545 1544 1520
-f 1524 1548 1549 1525
-f 1529 1553 1552 1528
-f 1533 1557 1556 1532
-f 1537 1561 1560 1536
-f 1541 1565 1564 1540
-f 1545 1569 1568 1544
-f 1548 1572 1573 1549
-f 1553 1577 1576 1552
-f 1557 1581 1580 1556
-f 1561 1585 1584 1560
-f 1565 1589 1588 1564
-f 1569 1593 1592 1568
-f 1572 1596 1597 1573
-f 1577 1601 1600 1576
-f 1581 1605 1604 1580
-f 1585 1609 1608 1584
-f 1589 1613 1612 1588
-f 1593 1617 1616 1592
-f 1596 1620 1621 1597
-f 1601 1625 1624 1600
-f 1605 1629 1628 1604
-f 1609 1633 1632 1608
-f 1613 1637 1636 1612
-f 1617 1641 1640 1616
-f 1620 1644 1645 1621
-f 1625 1649 1648 1624
-f 1629 1653 1652 1628
-f 1633 1657 1656 1632
-f 1637 1661 1660 1636
-f 1641 1665 1664 1640
-f 1644 1668 1669 1645
-f 1649 1673 1672 1648
-f 1653 1677 1676 1652
-f 1657 1681 1680 1656
-f 1661 1685 1684 1660
-f 1665 1689 1688 1664
-f 1668 1692 1669
-f 1673 1692 1672
-f 1677 1692 1676
-f 1681 1692 1680
-f 1685 1692 1684
-f 1689 1692 1688
-f 1691 1692 1690
-f 1687 1692 1686
-f 1683 1692 1682
-f 1679 1692 1678
-f 1675 1692 1674
-f 1671 1692 1670
-f 1667 1691 1690 1666
-f 1663 1687 1686 1662
-f 1659 1683 1682 1658
-f 1655 1679 1678 1654
-f 1651 1675 1674 1650
-f 1647 1671 1670 1646
-f 1643 1667 1666 1642
-f 1639 1663 1662 1638
-f 1635 1659 1658 1634
-f 1631 1655 1654 1630
-f 1627 1651 1650 1626
-f 1623 1647 1646 1622
-f 1619 1643 1642 1618
-f 1615 1639 1638 1614
-f 1611 1635 1634 1610
-f 1607 1631 1630 1606
-f 1603 1627 1626 1602
-f 1599 1623 1622 1598
-f 1595 1619 1618 1594
-f 1591 1615 1614 1590
-f 1587 1611 1610 1586
-f 1583 1607 1606 1582
-f 1579 1603 1602 1578
-f 1575 1599 1598 1574
-f 1571 1595 1594 1570
-f 1567 1591 1590 1566
-f 1563 1587 1586 1562
-f 1559 1583 1582 1558
-f 1555 1579 1578 1554
-f 1551 1575 1574 1550
-f 1547 1571 1570 1546
-f 1543 1567 1566 1542
-f 1539 1563 1562 1538
-f 1535 1559 1558 1534
-f 1531 1555 1554 1530
-f 1527 1551 1550 1526
-f 1523 1547 1546 1522
-f 1519 1543 1542 1518
-f 1515 1539 1538 1514
-f 1511 1535 1534 1510
-f 1507 1531 1530 1506
-f 1503 1527 1526 1502
-f 1499 1523 1522 1498
-f 1495 1519 1518 1494
-f 1491 1515 1514 1490
-f 1487 1511 1510 1486
-f 1483 1507 1506 1482
-f 1479 1503 1502 1478
-f 1475 1499 1498 1474
-f 1471 1495 1494 1470
-f 1467 1491 1490 1466
-f 1463 1487 1486 1462
-f 1459 1483 1482 1458
-f 1455 1479 1478 1454
-f 1451 1475 1474 1450
-f 1447 1471 1470 1446
-f 1443 1467 1466 1442
-f 1439 1463 1462 1438
-f 1435 1459 1458 1434
-f 1431 1455 1454 1430
-f 1427 1451 1450
-f 1427 1447 1446
-f 1427 1443 1442
-f 1427 1439 1438
-f 1427 1435 1434
-f 1427 1431 1430
-f 1425 1426 1424
-f 1421 1426 1420
-f 1417 1426 1416
-f 1413 1426 1412
-f 1409 1426 1408
-f 1405 1426 1404
-f 1401 1425 1424 1400
-f 1397 1421 1420 1396
-f 1393 1417 1416 1392
-f 1389 1413 1412 1388
-f 1385 1409 1408 1384
-f 1381 1405 1404 1380
-f 1377 1401 1400 1376
-f 1373 1397 1396 1372
-f 1369 1393 1392 1368
-f 1365 1389 1388 1364
-f 1361 1385 1384 1360
-f 1357 1381 1380 1356
-f 1353 1377 1376 1352
-f 1349 1373 1372 1348
-f 1345 1369 1368 1344
-f 1341 1365 1364 1340
-f 1337 1361 1360 1336
-f 1333 1357 1356 1332
-f 1329 1353 1352 1328
-f 1325 1349 1348 1324
-f 1321 1345 1344 1320
-f 1317 1341 1340 1316
-f 1313 1337 1336 1312
-f 1309 1333 1332 1308
-f 1305 1329 1328 1304
-f 1301 1325 1324 1300
-f 1297 1321 1320 1296
-f 1293 1317 1316 1292
-f 1289 1313 1312 1288
-f 1285 1309 1308 1284
-f 1281 1305 1304 1280
-f 1277 1301 1300 1276
-f 1273 1297 1296 1272
-f 1269 1293 1292 1268
-f 1265 1289 1288 1264
-f 1261 1285 1284 1260
-f 1257 1281 1280 1256
-f 1253 1277 1276 1252
-f 1249 1273 1272 1248
-f 1245 1269 1268 1244
-f 1241 1265 1264 1240
-f 1237 1261 1260 1236
-f 1233 1257 1256 1232
-f 1229 1253 1252 1228
-f 1225 1249 1248 1224
-f 1221 1245 1244 1220
-f 1217 1241 1240 1216
-f 1213 1237 1236 1212
-f 1209 1233 1232 1208
-f 1205 1229 1228 1204
-f 1201 1225 1224 1200
-f 1197 1221 1220 1196
-f 1193 1217 1216 1192
-f 1189 1213 1212 1188
-f 1185 1209 1208 1184
-f 1181 1205 1204 1180
-f 1177 1201 1200 1176
-f 1173 1197 1196 1172
-f 1169 1193 1192 1168
-f 1165 1189 1188 1164
-f 1161 1185 1184
-f 1161 1181 1180
-f 1161 1177 1176
-f 1161 1173 1172
-f 1161 1169 1168
-f 1161 1165 1164
-f 509 532 531
-f 528 532 527
-f 524 532 523
-f 520 532 519
-f 516 532 515
-f 512 532 511
-f 485 509 531 507
-f 504 528 527 503
-f 500 524 523 499
-f 496 520 519 495
-f 492 516 515 491
-f 488 512 511 487
-f 461 485 507 483
-f 480 504 503 479
-f 476 500 499 475
-f 472 496 495 471
-f 468 492 491 467
-f 464 488 487 463
-f 437 461 483 459
-f 456 480 479 455
-f 452 476 475 451
-f 448 472 471 447
-f 444 468 467 443
-f 440 464 463 439
-f 413 437 459 435
-f 432 456 455 431
-f 428 452 451 427
-f 424 448 447 423
-f 420 444 443 419
-f 416 440 439 415
-f 389 413 435 411
-f 408 432 431 407
-f 404 428 427 403
-f 400 424 423 399
-f 396 420 419 395
-f 392 416 415 391
-f 365 389 411 387
-f 384 408 407 383
-f 380 404 403 379
-f 376 400 399 375
-f 372 396 395 371
-f 368 392 391 367
-f 341 365 387 363
-f 360 384 383 359
-f 356 380 379 355
-f 352 376 375 351
-f 348 372 371 347
-f 344 368 367 343
-f 317 341 363 339
-f 336 360 359 335
-f 332 356 355 331
-f 328 352 351 327
-f 324 348 347 323
-f 320 344 343 319
-f 293 317 339 315
-f 312 336 335 311
-f 308 332 331 307
-f 304 328 327 303
-f 300 324 323 299
-f 296 320 319 295
-f 269 293 315 291
-f 288 312 311 287
-f 284 308 307 283
-f 280 304 303 279
-f 276 300 299 275
-f 272 296 295 271
-f 267 269 291
-f 267 288 287
-f 267 284 283
-f 267 280 279
-f 267 276 275
-f 267 272 271
-f 242 266 265
-f 262 266 261
-f 258 266 257
-f 254 266 253
-f 250 266 249
-f 246 266 245
-f 218 242 265 241
-f 238 262 261 237
-f 234 258 257 233
-f 230 254 253 229
-f 226 250 249 225
-f 222 246 245 221
-f 194 218 241 217
-f 214 238 237 213
-f 210 234 233 209
-f 206 230 229 205
-f 202 226 225 201
-f 198 222 221 197
-f 170 194 217 193
-f 190 214 213 189
-f 186 210 209 185
-f 182 206 205 181
-f 178 202 201 177
-f 174 198 197 173
-f 146 170 193 169
-f 166 190 189 165
-f 162 186 185 161
-f 158 182 181 157
-f 154 178 177 153
-f 150 174 173 149
-f 122 146 169 145
-f 142 166 165 141
-f 138 162 161 137
-f 134 158 157 133
-f 130 154 153 129
-f 126 150 149 125
-f 98 122 145 121
-f 118 142 141 117
-f 114 138 137 113
-f 110 134 133 109
-f 106 130 129 105
-f 102 126 125 101
-f 74 98 121 97
-f 94 118 117 93
-f 90 114 113 89
-f 86 110 109 85
-f 82 106 105 81
-f 78 102 101 77
-f 50 74 97 73
-f 70 94 93 69
-f 66 90 89 65
-f 62 86 85 61
-f 58 82 81 57
-f 54 78 77 53
-f 26 50 73 49
-f 46 70 69 45
-f 42 66 65 41
-f 38 62 61 37
-f 34 58 57 33
-f 30 54 53 29
-f 2 26 49 25
-f 22 46 45 21
-f 18 42 41 17
-f 14 38 37 13
-f 10 34 33 9
-f 6 30 29 5
-f 1 2 25
-f 1 22 21
-f 1 18 17
-f 1 14 13
-f 1 10 9
-f 1 6 5
-f 1 3 2
-f 1 7 6
-f 1 11 10
-f 1 15 14
-f 1 19 18
-f 1 23 22
-f 3 27 26 2
-f 7 31 30 6
-f 11 35 34 10
-f 15 39 38 14
-f 19 43 42 18
-f 23 47 46 22
-f 27 51 50 26
-f 31 55 54 30
-f 35 59 58 34
-f 39 63 62 38
-f 43 67 66 42
-f 47 71 70 46
-f 51 75 74 50
-f 55 79 78 54
-f 59 83 82 58
-f 63 87 86 62
-f 67 91 90 66
-f 71 95 94 70
-f 75 99 98 74
-f 79 103 102 78
-f 83 107 106 82
-f 87 111 110 86
-f 91 115 114 90
-f 95 119 118 94
-f 99 123 122 98
-f 103 127 126 102
-f 107 131 130 106
-f 111 135 134 110
-f 115 139 138 114
-f 119 143 142 118
-f 123 147 146 122
-f 127 151 150 126
-f 131 155 154 130
-f 135 159 158 134
-f 139 163 162 138
-f 143 167 166 142
-f 147 171 170 146
-f 151 175 174 150
-f 155 179 178 154
-f 159 183 182 158
-f 163 187 186 162
-f 167 191 190 166
-f 171 195 194 170
-f 175 199 198 174
-f 179 203 202 178
-f 183 207 206 182
-f 187 211 210 186
-f 191 215 214 190
-f 195 219 218 194
-f 199 223 222 198
-f 203 227 226 202
-f 207 231 230 206
-f 211 235 234 210
-f 215 239 238 214
-f 219 243 242 218
-f 223 247 246 222
-f 227 251 250 226
-f 231 255 254 230
-f 235 259 258 234
-f 239 263 262 238
-f 243 266 242
-f 247 266 246
-f 251 266 250
-f 255 266 254
-f 259 266 258
-f 263 266 262
-f 267 268 269
-f 267 273 272
-f 267 277 276
-f 267 281 280
-f 267 285 284
-f 267 289 288
-f 268 292 293 269
-f 273 297 296 272
-f 277 301 300 276
-f 281 305 304 280
-f 285 309 308 284
-f 289 313 312 288
-f 292 316 317 293
-f 297 321 320 296
-f 301 325 324 300
-f 305 329 328 304
-f 309 333 332 308
-f 313 337 336 312
-f 316 340 341 317
-f 321 345 344 320
-f 325 349 348 324
-f 329 353 352 328
-f 333 357 356 332
-f 337 361 360 336
-f 340 364 365 341
-f 345 369 368 344
-f 349 373 372 348
-f 353 377 376 352
-f 357 381 380 356
-f 361 385 384 360
-f 364 388 389 365
-f 369 393 392 368
-f 373 397 396 372
-f 377 401 400 376
-f 381 405 404 380
-f 385 409 408 384
-f 388 412 413 389
-f 393 417 416 392
-f 397 421 420 396
-f 401 425 424 400
-f 405 429 428 404
-f 409 433 432 408
-f 412 436 437 413
-f 417 441 440 416
-f 421 445 444 420
-f 425 449 448 424
-f 429 453 452 428
-f 433 457 456 432
-f 436 460 461 437
-f 441 465 464 440
-f 445 469 468 444
-f 449 473 472 448
-f 453 477 476 452
-f 457 481 480 456
-f 460 484 485 461
-f 465 489 488 464
-f 469 493 492 468
-f 473 497 496 472
-f 477 501 500 476
-f 481 505 504 480
-f 484 508 509 485
-f 489 513 512 488
-f 493 517 516 492
-f 497 521 520 496
-f 501 525 524 500
-f 505 529 528 504
-f 508 532 509
-f 513 532 512
-f 517 532 516
-f 521 532 520
-f 525 532 524
-f 529 532 528
-f 1161 1164 1162
-f 1161 1168 1167
-f 1161 1172 1171
-f 1161 1176 1175
-f 1161 1180 1179
-f 1161 1184 1183
-f 1164 1188 1186 1162
-f 1168 1192 1191 1167
-f 1172 1196 1195 1171
-f 1176 1200 1199 1175
-f 1180 1204 1203 1179
-f 1184 1208 1207 1183
-f 1188 1212 1210 1186
-f 1192 1216 1215 1191
-f 1196 1220 1219 1195
-f 1200 1224 1223 1199
-f 1204 1228 1227 1203
-f 1208 1232 1231 1207
-f 1212 1236 1234 1210
-f 1216 1240 1239 1215
-f 1220 1244 1243 1219
-f 1224 1248 1247 1223
-f 1228 1252 1251 1227
-f 1232 1256 1255 1231
-f 1236 1260 1258 1234
-f 1240 1264 1263 1239
-f 1244 1268 1267 1243
-f 1248 1272 1271 1247
-f 1252 1276 1275 1251
-f 1256 1280 1279 1255
-f 1260 1284 1282 1258
-f 1264 1288 1287 1263
-f 1268 1292 1291 1267
-f 1272 1296 1295 1271
-f 1276 1300 1299 1275
-f 1280 1304 1303 1279
-f 1284 1308 1306 1282
-f 1288 1312 1311 1287
-f 1292 1316 1315 1291
-f 1296 1320 1319 1295
-f 1300 1324 1323 1299
-f 1304 1328 1327 1303
-f 1308 1332 1330 1306
-f 1312 1336 1335 1311
-f 1316 1340 1339 1315
-f 1320 1344 1343 1319
-f 1324 1348 1347 1323
-f 1328 1352 1351 1327
-f 1332 1356 1354 1330
-f 1336 1360 1359 1335
-f 1340 1364 1363 1339
-f 1344 1368 1367 1343
-f 1348 1372 1371 1347
-f 1352 1376 1375 1351
-f 1356 1380 1378 1354
-f 1360 1384 1383 1359
-f 1364 1388 1387 1363
-f 1368 1392 1391 1367
-f 1372 1396 1395 1371
-f 1376 1400 1399 1375
-f 1380 1404 1402 1378
-f 1384 1408 1407 1383
-f 1388 1412 1411 1387
-f 1392 1416 1415 1391
-f 1396 1420 1419 1395
-f 1400 1424 1423 1399
-f 1404 1426 1402
-f 1408 1426 1407
-f 1412 1426 1411
-f 1416 1426 1415
-f 1420 1426 1419
-f 1424 1426 1423
-f 1427 1430 1428
-f 1427 1434 1433
-f 1427 1438 1437
-f 1427 1442 1441
-f 1427 1446 1445
-f 1427 1450 1449
-f 1430 1454 1452 1428
-f 1434 1458 1457 1433
-f 1438 1462 1461 1437
-f 1442 1466 1465 1441
-f 1446 1470 1469 1445
-f 1450 1474 1473 1449
-f 1454 1478 1476 1452
-f 1458 1482 1481 1457
-f 1462 1486 1485 1461
-f 1466 1490 1489 1465
-f 1470 1494 1493 1469
-f 1474 1498 1497 1473
-f 1478 1502 1500 1476
-f 1482 1506 1505 1481
-f 1486 1510 1509 1485
-f 1490 1514 1513 1489
-f 1494 1518 1517 1493
-f 1498 1522 1521 1497
-f 1502 1526 1524 1500
-f 1506 1530 1529 1505
-f 1510 1534 1533 1509
-f 1514 1538 1537 1513
-f 1518 1542 1541 1517
-f 1522 1546 1545 1521
-f 1526 1550 1548 1524
-f 1530 1554 1553 1529
-f 1534 1558 1557 1533
-f 1538 1562 1561 1537
-f 1542 1566 1565 1541
-f 1546 1570 1569 1545
-f 1550 1574 1572 1548
-f 1554 1578 1577 1553
-f 1558 1582 1581 1557
-f 1562 1586 1585 1561
-f 1566 1590 1589 1565
-f 1570 1594 1593 1569
-f 1574 1598 1596 1572
-f 1578 1602 1601 1577
-f 1582 1606 1605 1581
-f 1586 1610 1609 1585
-f 1590 1614 1613 1589
-f 1594 1618 1617 1593
-f 1598 1622 1620 1596
-f 1602 1626 1625 1601
-f 1606 1630 1629 1605
-f 1610 1634 1633 1609
-f 1614 1638 1637 1613
-f 1618 1642 1641 1617
-f 1622 1646 1644 1620
-f 1626 1650 1649 1625
-f 1630 1654 1653 1629
-f 1634 1658 1657 1633
-f 1638 1662 1661 1637
-f 1642 1666 1665 1641
-f 1646 1670 1668 1644
-f 1650 1674 1673 1649
-f 1654 1678 1677 1653
-f 1658 1682 1681 1657
-f 1662 1686 1685 1661
-f 1666 1690 1689 1665
-f 1670 1692 1668
-f 1674 1692 1673
-f 1678 1692 1677
-f 1682 1692 1681
-f 1686 1692 1685
-f 1690 1692 1689
-g arms
-usemtl bronze
-f 2106 2107 1728 1726 1725 2029
-f 2936 2922 2921 2753
-f 2892 2907 2908 2893
-f 2829 2815 2945 2943
-f 2945 2947 2948 2946
-f 2858 2890 2889 2872
-f 2753 2921 2938 2750
-f 2932 2776 2778 2933
-f 2928 2768 2770 2929
-f 2924 2757 2758 2925
-f 2918 2933 2934 2919
-f 2914 2929 2930 2915
-f 2910 2925 2926 2911
-f 2904 2919 2920 2905
-f 2900 2915 2916 2901
-f 2896 2911 2912 2897
-f 2891 2906 2907 2892
-f 2882 2901 2902 2883
-f 2878 2897 2898 2879
-f 2873 2893 2894 2874
-f 2869 2884 2885 2870
-f 2865 2880 2881 2866
-f 2861 2875 2876 2877 2862
-f 2856 2870 2871 2857
-f 2851 2866 2867 2852
-f 2847 2862 2863 2848
-f 2843 2858 2859 2844
-f 2838 2853 2852 2854 2839
-f 2834 2848 2849 2835
-f 2830 2844 2845 2831
-f 2825 2839 2840 2826
-f 2821 2835 2836 2822
-f 2817 2831 2832 2818
-f 2812 2826 2827 2813
-f 2808 2822 2823 2809
-f 2804 2818 2819 2805
-f 2797 2813 2814 2798
-f 2793 2809 2810 2794
-f 2789 2805 2806 2790
-f 2800 2801 2802 2786
-f 2775 2795 2796 2777
-f 2767 2791 2792 2769
-f 2756 2787 2788 2759
-f 2778 2777 2779 2780
-f 2770 2769 2771 2772
-f 2761 2758 2760 2759 2762 2763
-f 2721 2649 2726 2749 2326 2325
-f 2729 2730 2334 2332
-f 2652 2733 2344 2343
-f 2736 2660 2360 2358
-f 2739 2740 2370 2368
-f 2742 2743 2380 2378
-f 2745 2683 2390 2388
-f 2688 2691 2406 2405
-f 2747 2748 2418 2416
-f 2669 2672 2641 2631
-f 2725 2661 2574 2666
-f 2662 2723 2711 2663
-f 2696 2748 2647 2613
-f 2693 2690 2606 2610
-f 2685 2682 2597 2561
-f 2677 2593 2594 2676
-f 2628 2697 2612 2622
-f 2678 2569 2566 2576
-f 2742 2741 2573 2575
-f 2739 2738 2662 2661
-f 2736 2735 2715 2713
-f 2656 2733 2718 2614
-f 2731 2730 2702 2700
-f 2727 2726 2704 2722
-f 2586 2724 2725 2666 2584
-f 2606 2605 2610
-f 2723 2643 2587 2711
-f 2681 2648 2562 2596
-f 2658 2657 2353 2350
-f 2683 2682 2393 2390
-f 2691 2690 2409 2406
-f 2642 2634 2633 2639
-f 2627 2719 2697 2628
-f 2624 2680 2679 2625
-f 2651 2714 2716 2718
-f 2714 2712 2713 2715
-f 2705 2667 2701 2708 2706
-f 2583 2699 2700 2577 2568
-f 2613 2647 2648 2611
-f 2606 2690 2691 2607
-f 2600 2686 2687 2601
-f 2597 2682 2683 2598
-f 2677 2678 2590 2593
-f 2668 2671 2581 2595
-f 2632 2621 2620 2630
-f 2566 2569 2572 2567
-f 2643 2659 2660 2644
-f 2636 2649 2650 2637
-f 2633 2634 2635 2636 2637 2638
-f 2618 2619 2579 2620 2621 2622
-f 2605 2606 2607 2608
-f 2581 2594 2595
-f 2582 2583 2568
-f 2569 2570 2571 2572
-f 2515 2560 2516
-f 2549 2548 2437
-f 2510 2512 2494 2497
-f 2551 2482 2481
-f 2450 2449 2530 2529
-f 2545 2502 2431
-f 2559 2474 2553 2558
-f 2352 2529 2530 2347
-f 2521 2520 2446 2543
-f 2500 2503 2506 2505
-f 2496 2429 2426 2509
-f 2495 2493 2437 2548
-f 2556 2439 2488 2487 2557
-f 2443 2484 2550 2440
-f 2481 2480 2440 2551
-f 2474 2559 2475
-f 2517 2516 2560 2453
-f 2463 2508 2425 2468
-f 2458 2457 2526 2525
-f 2451 2450 2529 2528
-f 2436 2439 2556 2555
-f 2435 2434 2422 2539
-f 2431 2430 2546 2545
-f 2412 2407 2410 2413
-f 2396 2391 2394 2397
-f 2362 2359 2360 2363
-f 2324 2323 2421 2424 2325
-f 2537 2464 2463 2468
-f 2519 2461 2447
-f 2544 2545 2546 2547
-f 2323 2322 2537 2538
-f 2331 2333 2535 2536
-f 2342 2341 2448 2531
-f 2351 2355 2527 2528
-f 2361 2365 2460 2459
-f 2374 2373 2520 2521
-f 2381 2383 2516 2517
-f 2425 2508 2509 2426
-f 2496 2497 2498 2499
-f 2385 2389 2487 2488
-f 2404 2403 2480 2481
-f 2415 2417 2474 2475
-f 2463 2464 2465 2466
-f 2448 2449 2450 2451
-f 2433 2434 2435
-f 2419 2417 2418 2420
-f 2407 2408 2409 2410
-f 2391 2392 2393 2394
-f 2381 2379 2380 2382
-f 2371 2369 2370 2372
-f 2361 2362 2363 2364
-f 2351 2352 2353 2354
-f 2339 2337 2338 2340
-f 2331 2329 2330 2332
-f 2153 2170 2186 2200 2214 2229 2243 2258 2277 2292 2307 2154
-f 2172 2171 2124 2157
-f 2173 2172 2157 2319
-f 2230 2215 2313 2262
-f 2313 2315 2316 2314
-f 2278 2263 2312 2311
-f 2306 2152 2154 2307
-f 2302 2144 2146 2309 2303
-f 2298 2133 2136 2299
-f 2294 2308 2126 2295
-f 2288 2303 2304 2289
-f 2284 2299 2300 2285
-f 2280 2295 2296 2281
-f 2274 2289 2290 2275
-f 2270 2285 2286 2271
-f 2266 2281 2282 2267
-f 2256 2275 2276 2257
-f 2252 2271 2272 2253
-f 2247 2267 2268 2248
-f 2259 2260 2261 2262
-f 2239 2254 2255 2240
-f 2235 2250 2251 2236
-f 2231 2245 2246 2232
-f 2226 2240 2241 2227
-f 2221 2236 2237 2222
-f 2217 2232 2233 2218
-f 2212 2227 2228 2213
-f 2208 2222 2223 2209
-f 2204 2218 2219 2205
-f 2199 2213 2214 2200
-f 2195 2209 2210 2196
-f 2191 2205 2206 2192
-f 2187 2201 2202 2188
-f 2182 2196 2197 2183
-f 2178 2192 2193 2179
-f 2174 2188 2189 2175
-f 2167 2183 2184 2168
-f 2163 2179 2180 2164
-f 2159 2175 2176 2160
-f 2151 2169 2170 2153
-f 2143 2165 2166 2145
-f 2134 2161 2162 2137
-f 2123 2155 2156 2157 2124
-f 2146 2145 2147 2148
-f 2136 2138 2137 2139 2140
-f 2126 2127 2128 2129
-f 2099 2100 1702 1700
-f 2103 2104 1710 1708
-f 2027 2030 1722 1721
-f 2109 2110 1738 1736
-f 2036 2113 1748 1747
-f 2116 1944 1756 1754
-f 2056 2059 1770 1769
-f 2064 2118 1786 1785
-f 2092 2022 1796 1795
-f 1952 1991 2052 1996
-f 1954 1960 2018 1955
-f 2006 2079 2075 2007
-f 2119 2118 2066 2067
-f 2061 2058 1972 1976
-f 2117 1943 1997 2051
-f 2044 2041 2040 2045
-f 2046 1963 2039 2077
-f 2116 2115 1961 2070
-f 2037 2112 2097 2096 1958
-f 2109 2031 2015 2095
-f 2106 2029 1988 2089
-f 2025 2104 2071 2026
-f 2101 2100 2082 2081
-f 2022 2092 2009
-f 2043 1992 1951 1953
-f 2070 1961 1960 1954
-f 2074 2081 2080 2073
-f 2025 2024 1715 1712
-f 2037 2036 1747 1744
-f 2059 2058 1773 1770
-f 2068 2069 2091 2092 1795 1792
-f 2003 2013 2012 2004
-f 1991 1952 1951
-f 1936 1935 2067 2066
-f 2086 2023 2026 2018 2017
-f 1959 1961 1947 2035 2083
-f 2007 2075 2076 2008
-f 1940 1948 1938
-f 2066 1981 1977 1936
-f 1975 2060 2061 1976
-f 1937 2056 2057 1933
-f 1997 1943 1942 1995
-f 1966 1965 1964 1967
-f 2040 2041 2042 2043
-f 1994 1984 1983 1990
-f 1957 2036 2037 1958
-f 1989 2027 2028 1986
-f 2015 2016 2017 2018 1960 1959
-f 1998 1999 2000 2001
-f 1983 1984 1985
-f 1971 1972 1973
-f 1959 1960 1961
-f 1948 1940 1949 1950
-f 1933 1934 1935 1936 1937
-f 1892 1891 1819
-f 1915 1894 1893
-f 1929 1859 1858
-f 1813 1850 1849
-f 1864 1861 1810
-f 1873 1914 1799 1804
-f 1714 1903 1904 1711
-f 1832 1816 1819 1833
-f 1882 1842 1841 1884
-f 1873 1872 1912 1914
-f 1869 1868 1881 1882
-f 1863 1862 1883 1886
-f 1858 1857 1930 1929
-f 1855 1854 1923 1922
-f 1784 1849 1850 1779
-f 1845 1791 1876 1879
-f 1844 1843 1907 1906
-f 1838 1837 1908
-f 1827 1826 1905 1904
-f 1892 1819 1818
-f 1810 1809 1865 1864
-f 1805 1807 1913 1912
-f 1799 1798 1801 1804
-f 1776 1771 1774 1777
-f 1758 1755 1756 1759
-f 1720 1717 1718 1721
-f 1925 1926 1927 1928
-f 1900 1899 1828 1823
-f 1922 1923 1812
-f 1912 1913 1914
-f 1699 1701 1837 1836
-f 1707 1709 1905 1906
-f 1719 1902 1720
-f 1729 1731 1897 1898
-f 1739 1741 1817 1816
-f 1749 1751 1890 1891
-f 1883 1884 1841 1885
-f 1872 1873 1874 1875
-f 1862 1863 1864 1865
-f 1768 1767 1856 1815
-f 1784 1783 1848 1849
-f 1841 1842 1843 1844
-f 1828 1829 1830
-f 1812 1813 1814 1815
-f 1797 1798 1799 1800
-f 1787 1783 1786 1788
-f 1771 1772 1773 1774
-f 1757 1758 1759 1760
-f 1749 1745 1748 1750
-f 1739 1737 1738 1740
-f 1729 1727 1728 1730
-f 1717 1713 1716 1718
-f 1707 1705 1706 1708
-f 1699 1694 1693 1698 1700
-f 1160 1158 1145 1146
-f 1156 1157 1095 1081
-f 1151 1152 1137 1138
-f 1137 1139 994 1008
-f 1149 1141 1142 1155
-f 1146 1145 1108 1123
-f 1118 1133 1134 1119
-f 1114 1129 1130 1115
-f 1110 1125 1126 1111
-f 1105 1119 1120 1106
-f 1101 1115 1116 1102
-f 1097 1111 1112 1098
-f 1092 1106 1107 1093
-f 1088 1102 1103 1089
-f 1084 1098 1099 1085
-f 1143 1144 1157 1156
-f 1075 1089 1090 1076
-f 1071 1085 1086 1072
-f 1067 1081 1082 1068
-f 1062 1077 1078 1063
-f 1058 1073 1074 1059
-f 1054 1069 1070 1065 1055
-f 1049 1063 1064 1050
-f 1045 1059 1060 1046
-f 1041 1055 1056 1042
-f 1150 1149 1052 1038
-f 1031 1036 1046 1047 1032
-f 1027 1042 1043 1028
-f 1023 1038 1039 1024
-f 1018 1032 1033 1019
-f 1014 1028 1029 1015
-f 1010 1024 1025 1011
-f 1005 1019 1020 1006
-f 1001 1015 1016 1002
-f 997 1011 1012 998
-f 992 1006 1007 993
-f 988 1002 1003 989
-f 984 998 999 985
-f 1153 1154 995 981
-f 975 990 991 976
-f 971 986 987 972
-f 967 982 983 968
-f 1134 976 977 1135
-f 1130 972 973 1131
-f 1127 1126 963 968 969 964
-f 960 806 805 961 772 771
-f 813 815 767 768
-f 823 826 761 763
-f 832 836 756 758
-f 842 846 751 753
-f 856 855 747 746
-f 863 865 742 743
-f 906 905 736 735
-f 921 923 727 728
-f 803 802 723 722
-f 945 946 947 948
-f 785 784 939 940
-f 958 957 933 934
-f 925 923 924 926
-f 909 910 911 912
-f 895 896 897 898
-f 953 952 885 886
-f 876 873 874 875
-f 863 861 862 864
-f 852 850 851 853 854
-f 842 843 844 845
-f 832 833 834 835
-f 819 820 821 822
-f 813 811 812 814
-f 802 803 804
-f 795 794 791 792
-f 864 862 784 785
-f 816 814 935 779
-f 819 823 763 765
-f 852 856 746 748
-f 905 910 733 736
-f 927 878 951 803 722 725
-f 955 954 881 884
-f 946 945 791
-f 944 798 926 924
-f 783 824 822 939 937
-f 781 862 860 936 782
-f 934 933 808 807
-f 931 870 869
-f 924 922 787 944
-f 915 914 909 912
-f 907 906 901 904
-f 897 896 891 894
-f 890 889 887 888
-f 885 952 796 795
-f 880 879 775 778
-f 857 856 852 854
-f 831 830 825 828
-f 844 841 937 939 784 781
-f 799 949 877 882
-f 775 879 930
-f 788 911 908
-f 781 784 862
-f 870 931 932 872
-f 904 773 798 944 907
-f 636 634 708
-f 697 640 637
-f 720 594 591
-f 707 574 572
-f 600 597 546
-f 613 694 535 540
-f 671 670 672 675
-f 647 645 708 558
-f 621 620 622 623
-f 613 612 695 694
-f 607 608 618 621
-f 603 602 627 626
-f 591 590 721 720
-f 583 582 704 706
-f 573 572 574 577
-f 564 567 616 615
-f 562 715 678 676
-f 559 682 680
-f 555 554 673 672
-f 636 708 551
-f 546 549 601 600
-f 545 544 693 695
-f 535 538 541 540
-f 580 585 734 731
-f 598 629 742 740
-f 664 669 762 759
-f 718 719 716 717
-f 659 657 711 553
-f 706 704 705
-f 695 693 694
-f 685 683 682 684
-f 677 674 673 676
-f 665 663 664
-f 656 654 653 655
-f 646 644 643 645
-f 635 633 632 634
-f 627 623 622 624
-f 612 613 610 611
-f 602 603 600 601
-f 588 589 586 587
-f 573 571 570 572
-f 622 620 715 562
-f 711 556 557
-f 705 707 550 587
-f 537 538 535 536
-f 569 571 727 726
-f 585 584 733 734
-f 599 598 740 741
-f 635 639 747 745
-f 646 648 751 750
-f 656 658 756 755
-f 669 668 761 762
-f 677 679 767 766
-f 685 689 533 772 770
-f 683 685 770 769
-f 674 677 766 764
-f 665 664 759 760
-f 654 656 755 754
-f 644 646 750 749
-f 633 635 745 744
-f 595 599 741 739
-f 581 580 731 732
-f 566 569 726 724
-f 541 542 539 540
-f 645 643 551 708
-f 649 647 558 712
-f 566 567 564 565
-f 576 577 574 575
-f 592 593 590 591
-f 605 602 601 604
-f 616 617 614 615
-f 626 627 624 625
-f 639 635 634 636
-f 648 646 645 647
-f 658 656 655 657
-f 668 669 666 667
-f 679 677 676 678
-f 689 685 684 686
-f 643 641 640 697 551
-f 575 574 707
-f 650 649 712 713
-f 718 717 720 721
-f 661 665 760 757
-f 592 595 739 737
-f 576 581 732 729
-f 536 535 694 693
-f 543 545 617 616
-f 547 546 597 596
-f 711 670 667 553
-f 556 711 657 655
-f 715 620 619 714 559
-f 676 673 554 563 562
-f 565 564 719 718
-f 576 575 578 581
-f 584 583 586 589
-f 592 591 594 595
-f 627 602 605 623
-f 699 609 606 702
-f 611 610 701 700
-f 626 625 628 629
-f 651 650 653 654
-f 688 687 690 692
-f 687 560 536 693 544 690
-f 700 703 548 716 614 611
-f 575 707 705 578
-f 702 606 604
-f 709 563 554
-f 603 626 629 598
-f 869 866 931
-f 791 945 792
-f 871 873 887 889
-f 790 915 912
-f 828 942 834 831
-f 793 955 884
-f 929 798 773 776
-f 834 833 829 831
-f 858 857 797 943
-f 883 882 877 880
-f 953 886 876 956
-f 893 890 792 945
-f 898 947 777 774 900
-f 908 907 789 788
-f 916 915 790 789
-f 929 926 798
-f 866 864 785 931
-f 875 780 933 957
-f 938 937 841 839
-f 942 941 835 834
-f 947 946 778 777
-f 951 950 804 803
-f 952 955 793 796
-f 917 921 728 730
-f 901 906 735 738
-f 840 843 752 754
-f 802 806 960 771 723
-f 810 808 933 780
-f 860 786 936
-f 793 794 795 796
-f 805 806 807 808
-f 815 813 814 816
-f 826 823 824 827
-f 836 832 835 837
-f 846 842 845 847
-f 855 856 857 858
-f 865 863 864 866
-f 875 957 956 876
-f 887 886 885 888
-f 899 895 898 900
-f 913 914 915 916
-f 928 925 926 929
-f 810 780 935 812
-f 828 827 941 942
-f 949 950 951
-f 928 927 725 724
-f 918 917 730 729
-f 902 901 738 737
-f 861 863 743 744
-f 850 852 748 749
-f 843 842 753 752
-f 833 832 758 757
-f 820 819 765 764
-f 811 813 768 769
-f 1123 965 1148 1146
-f 1128 1127 964 969 970 962
-f 1131 973 974 1132
-f 1135 977 978 1136
-f 968 983 984 969
-f 972 987 988 973
-f 976 991 992 977
-f 981 995 996 982
-f 985 999 1000 986
-f 989 1003 1004 990
-f 1154 1152 1009 995
-f 998 1012 1013 999
-f 1002 1016 1017 1003
-f 1006 1020 1021 1007
-f 1011 1025 1026 1012
-f 1015 1029 1030 1016
-f 1019 1033 1034 1020
-f 1024 1039 1040 1025
-f 1028 1043 1044 1029
-f 1032 1047 1048 1033
-f 1038 1052 1053 1039
-f 1042 1056 1057 1043
-f 1046 1060 1061 1047
-f 1149 1155 1067 1052
-f 1055 1065 1070 1071 1056
-f 1059 1074 1075 1060
-f 1063 1078 1079 1064
-f 1068 1082 1083 1069
-f 1072 1086 1087 1073
-f 1076 1090 1091 1077
-f 1081 1095 1096 1082
-f 1085 1099 1100 1086
-f 1089 1103 1104 1090
-f 1144 1145 1158 1157
-f 1098 1112 1113 1099
-f 1102 1116 1117 1103
-f 1106 1120 1121 1107
-f 1111 1126 1127 1112
-f 1115 1130 1131 1116
-f 1119 1134 1135 1120
-f 1145 1144 1094 1108
-f 1141 1147 1037 1051
-f 1139 1140 980 994
-f 1152 1154 1139 1137
-f 1157 1158 1109 1095
-f 1080 1066 1051 1037 1022 1008 994 980 979 965 1123 1108 1094
-f 1701 1699 1700 1702
-f 1709 1707 1708 1710
-f 1719 1720 1721 1722
-f 1731 1729 1730 1732
-f 1741 1739 1740 1742
-f 1751 1749 1750 1752
-f 1761 1757 1760 1762
-f 1775 1776 1777 1778
-f 1789 1787 1788 1790
-f 1801 1802 1803 1804
-f 1816 1817 1818 1819
-f 1831 1832 1833 1834
-f 1789 1791 1845 1846
-f 1780 1779 1850 1851
-f 1764 1763 1857 1858
-f 1866 1862 1865 1867
-f 1876 1877 1878 1879
-f 1886 1883 1885 1887
-f 1745 1749 1891 1892
-f 1737 1739 1816 1832
-f 1727 1729 1898 1899
-f 1713 1717 1821 1820
-f 1705 1707 1906 1907
-f 1694 1699 1836 1909
-f 1817 1895 1894 1915 1818
-f 1851 1850 1813
-f 1896 1831 1834 1924
-f 1925 1928 1929 1930
-f 1724 1719 1722 1725
-f 1764 1761 1762 1765
-f 1780 1775 1778 1781
-f 1800 1799 1914 1913
-f 1806 1805 1877 1876
-f 1811 1810 1861 1860
-f 1828 1903 1820 1823
-f 1829 1828 1899 1898
-f 1843 1842 1880 1835 1838
-f 1906 1905 1826 1932 1844
-f 1846 1845 1926 1925
-f 1780 1851 1852 1775
-f 1772 1855 1856 1767
-f 1764 1858 1859 1761
-f 1883 1862 1866 1884
-f 1919 1871 1870 1920
-f 1875 1874 1917 1916
-f 1886 1887 1888 1755
-f 1734 1896 1897 1731
-f 1695 1910 1911 1793
-f 1910 1839 1800 1913 1807 1911
-f 1916 1921 1808 1927 1878 1875
-f 1851 1813 1812 1852
-f 1920 1870 1867
-f 1825 1932 1826
-f 1863 1886 1755 1758
-f 1938 1939 1940
-f 1951 1952 1953
-f 1962 1963 1964 1965
-f 1974 1975 1976
-f 1986 1987 1988 1989
-f 2002 2003 2004
-f 2019 1935 1934 2020
-f 1988 2029 2030 1989
-f 1945 1957 1956 2038
-f 1993 2001 2000 1994
-f 2044 2045 2046 2047
-f 2048 1966 1953 1952
-f 2051 2052 2053 1968 1970
-f 1973 1937 1980 1971
-f 1979 1975 1974 1980
-f 2019 2067 1935
-f 1939 2070 1954 1940
-f 2077 2078 2075 2079
-f 2084 2017 2016 2085
-f 1987 2088 2089 1988
-f 2052 1991 1990 2053
-f 2091 2010 2009 2092
-f 2041 2003 2002 2042
-f 2065 2064 1785 1782
-f 2057 2056 1769 1766
-f 2032 2031 1735 1732
-f 2022 2021 2093 1697 1796
-f 2094 2076 2075 2078
-f 1947 1946 2035
-f 2002 1992 2043 2042
-f 2098 2021 2008 2076
-f 2102 2101 2081 2074
-f 2105 2024 2023 2090
-f 2107 2106 2089 2087
-f 2110 2109 2095 2034
-f 2113 2036 1957 1945
-f 1944 2116 2070 1939
-f 2077 2079 2047 2046
-f 1964 2045 2040 1967
-f 2055 2117 2051 1970
-f 2063 2060 1975 1979
-f 2120 2119 2067 2019
-f 2094 2078 2080 2082
-f 1986 2090 2088 1987
-f 1999 2010 2091
-f 2120 2068 1792 1790
-f 2062 2065 1782 1781
-f 2054 2057 1766 1765
-f 2115 2116 1754 1752
-f 2112 2037 1744 1742
-f 2031 2109 1736 1735
-f 2105 2028 1718 1716
-f 2102 2103 1708 1706
-f 2121 2098 2099 1700 1698
-f 2130 2129 2128 2131 2132
-f 2140 2139 2141 2142
-f 2148 2147 2149 2150
-f 2127 2158 2159 2128
-f 2137 2162 2163 2139
-f 2145 2166 2167 2147
-f 2127 2171 2172 2158
-f 2160 2176 2177 2161
-f 2164 2180 2181 2165
-f 2168 2184 2185 2169
-f 2175 2189 2190 2176
-f 2179 2193 2194 2180
-f 2183 2197 2198 2184
-f 2188 2202 2203 2189
-f 2192 2206 2207 2193
-f 2196 2210 2211 2197
-f 2201 2215 2216 2202
-f 2205 2219 2220 2206
-f 2209 2223 2224 2225 2210
-f 2213 2228 2229 2214
-f 2218 2233 2234 2219
-f 2222 2237 2238 2223
-f 2227 2241 2242 2228
-f 2232 2246 2247 2233
-f 2236 2251 2252 2237
-f 2240 2255 2256 2241
-f 2261 2263 2264 2244
-f 2248 2268 2269 2250
-f 2253 2272 2273 2254
-f 2257 2276 2277 2258
-f 2267 2282 2283 2268
-f 2271 2286 2287 2272
-f 2275 2290 2291 2276
-f 2281 2296 2297 2282
-f 2285 2300 2301 2286
-f 2289 2304 2305 2290
-f 2295 2126 2129 2296
-f 2299 2136 2140 2300
-f 2303 2309 2146 2148 2304
-f 2308 2171 2127 2126
-f 2263 2261 2260 2312
-f 2315 2317 2318 2316
-f 2215 2201 2315 2313
-f 2244 2264 2265 2245
-f 2171 2308 2125 2124
-f 2321 2322 2323 2324 2325 2326
-f 2333 2331 2332 2334
-f 2341 2342 2343 2344
-f 2355 2351 2354 2356
-f 2365 2361 2364 2366
-f 2373 2374 2375 2376
-f 2383 2381 2382 2384
-f 2395 2396 2397 2398
-f 2411 2412 2413 2414
-f 2421 2422 2423 2424
-f 2436 2437 2438 2439
-f 2452 2453 2454 2455
-f 2425 2428 2467 2468
-f 2411 2415 2475 2476
-f 2400 2399 2482 2483
-f 2386 2385 2488 2489
-f 2430 2429 2496 2499
-f 2510 2509 2508 2470
-f 2379 2381 2517 2518
-f 2445 2369 2371 2522 2523
-f 2362 2361 2459 2524
-f 2352 2351 2528 2529
-f 2337 2339 2532 2533
-f 2329 2331 2536 2465
-f 2421 2539 2422
-f 2544 2547 2548 2549
-f 2518 2517 2453 2452
-f 2536 2535 2471 2466
-f 2342 2339 2340 2343
-f 2374 2371 2372 2375
-f 2400 2395 2398 2401
-f 2422 2434 2504 2419 2420 2423
-f 2432 2431 2502 2501
-f 2436 2549 2437
-f 2559 2442 2476 2475
-f 2532 2531 2456 2458 2455
-f 2519 2518 2552 2462 2461
-f 2468 2467 2538 2537
-f 2560 2515 2513
-f 2477 2476 2442 2441
-f 2404 2481 2482 2399
-f 2396 2443 2485 2391
-f 2386 2489 2492 2491
-f 2494 2495 2498 2497
-f 2430 2499 2547 2546
-f 2507 2506 2555 2554
-f 2374 2521 2522 2371
-f 2348 2530 2449 2345
-f 2455 2458 2525 2524 2552 2452
-f 2433 2540 2500 2505
-f 2554 2473 2507
-f 2550 2484 2483
-f 2552 2518 2452
-f 2560 2513 2469 2472
-f 2559 2558 2485 2443 2442
-f 2573 2574 2575
-f 2584 2585 2586
-f 2596 2597 2598
-f 2605 2609 2610
-f 2623 2624 2625
-f 2639 2640 2641 2642
-f 2651 2652 2653 2654
-f 2661 2662 2663 2574
-f 2667 2591 2590 2578
-f 2629 2640 2639 2626
-f 2673 2592 2591 2674
-f 2677 2570 2569 2678
-f 2561 2597 2596 2562
-f 2604 2600 2599 2602
-f 2609 2692 2693 2610
-f 2696 2613 2612 2697
-f 2701 2577 2700 2702
-f 2708 2709 2710
-f 2583 2646 2654 2699
-f 2573 2666 2574
-f 2580 2624 2623 2676
-f 2638 2627 2626 2633
-f 2675 2642 2641 2672
-f 2689 2688 2405 2402
-f 2572 2571 2387 2384
-f 2656 2655 2349 2346
-f 2611 2648 2681 2618
-f 2715 2717 2716 2714
-f 2599 2608 2602
-f 2626 2639 2633
-f 2728 2727 2722 2710
-f 2732 2731 2700 2699
-f 2658 2655 2617
-f 2660 2736 2713 2644
-f 2740 2739 2661 2725
-f 2743 2742 2575 2589
-f 2590 2678 2576 2578
-f 2640 2629 2621 2632
-f 2570 2677 2676 2623
-f 2687 2684 2565 2601
-f 2746 2692 2609 2694
-f 2667 2578 2577 2701
-f 2714 2645 2712
-f 2605 2608 2565 2564
-f 2675 2707 2634 2642
-f 2746 2747 2416 2414
-f 2686 2689 2402 2401
-f 2571 2745 2388 2387
-f 2741 2742 2378 2376
-f 2738 2739 2368 2366
-f 2735 2736 2358 2356
-f 2732 2653 2340 2338
-f 2728 2729 2332 2330
-f 2750 2751 2752 2753
-f 2764 2761 2763 2762 2765 2766
-f 2772 2771 2773 2774
-f 2780 2779 2781 2782
-f 2759 2788 2789 2762
-f 2769 2792 2793 2771
-f 2777 2796 2797 2779
-f 2786 2802 2803 2787
-f 2790 2806 2807 2791
-f 2794 2810 2811 2795
-f 2801 2815 2816 2802
-f 2805 2819 2820 2806
-f 2809 2823 2824 2810
-f 2813 2827 2828 2814
-f 2818 2832 2833 2819
-f 2822 2836 2837 2823
-f 2826 2840 2841 2827
-f 2831 2845 2846 2832
-f 2835 2849 2850 2836
-f 2839 2854 2855 2840
-f 2844 2859 2860 2845
-f 2848 2863 2864 2849
-f 2852 2867 2868 2854
-f 2858 2872 2873 2859
-f 2862 2877 2876 2878 2863
-f 2866 2881 2882 2867
-f 2870 2885 2886 2871
-f 2874 2894 2895 2875
-f 2879 2898 2899 2880
-f 2883 2902 2903 2884
-f 2893 2908 2909 2894
-f 2897 2912 2913 2898
-f 2901 2916 2917 2902
-f 2906 2921 2922 2907
-f 2911 2926 2927 2912
-f 2915 2930 2931 2916
-f 2919 2934 2935 2920
-f 2925 2758 2761 2926
-f 2929 2770 2772 2930
-f 2933 2778 2780 2934
-f 2921 2906 2939 2938
-f 2890 2941 2942 2887
-f 2947 2785 2784 2948
-f 2815 2801 2947 2945
-f 2907 2922 2923 2908
-f 2940 2888 2887 2942 2944 2946 2948 2784 2783 2751 2750 2938 2939
-f 2799 2936 2753 2752
-f 2872 2892 2893 2873
-f 2843 2829 2943 2941
-f 2943 2945 2946 2944
-f 2891 2889 2888 2940
-f 2936 2799 2755 2754
-f 2931 2937 2774 2776 2932
-f 2927 2764 2768 2928
-f 2923 2754 2757 2924
-f 2917 2932 2933 2918
-f 2913 2928 2929 2914
-f 2909 2924 2925 2910
-f 2903 2918 2919 2904
-f 2899 2914 2915 2900
-f 2895 2910 2911 2896
-f 2885 2904 2905 2886
-f 2881 2900 2901 2882
-f 2876 2896 2897 2878
-f 2889 2891 2892 2872
-f 2868 2883 2884 2869
-f 2864 2879 2880 2865
-f 2860 2874 2875 2861
-f 2855 2869 2870 2856
-f 2850 2865 2866 2851
-f 2846 2861 2862 2847
-f 2841 2856 2857 2842
-f 2837 2851 2852 2853 2838
-f 2833 2847 2848 2834
-f 2829 2843 2844 2830
-f 2824 2838 2839 2825
-f 2820 2834 2835 2821
-f 2816 2830 2831 2817
-f 2811 2825 2826 2812
-f 2807 2821 2822 2808
-f 2803 2817 2818 2804
-f 2796 2812 2813 2797
-f 2792 2808 2809 2793
-f 2788 2804 2805 2789
-f 2755 2799 2800 2786
-f 2773 2794 2795 2775
-f 2765 2790 2791 2767
-f 2755 2786 2787 2756
-f 2776 2775 2777 2778
-f 2768 2767 2769 2770
-f 2758 2757 2756 2759 2760
-f 2749 2726 2727 2328 2326
-f 2730 2731 2336 2334
-f 2733 2656 2346 2344
-f 2659 2737 2364 2363
-f 2740 2665 2372 2370
-f 2743 2744 2382 2380
-f 2682 2685 2394 2393
-f 2690 2693 2410 2409
-f 2748 2696 2420 2418
-f 2627 2638 2719
-f 2614 2718 2716 2615
-f 2722 2706 2708 2710
-f 2748 2747 2695 2647
-f 2691 2688 2603 2607
-f 2683 2745 2679 2598
-f 2592 2673 2668 2595
-f 2705 2707 2675 2674
-f 2572 2744 2698 2567
-f 2741 2664 2585 2573
-f 2738 2737 2723 2662
-f 2735 2734 2717 2715
-f 2733 2652 2651 2718
-f 2730 2729 2709 2702
-f 2726 2649 2636 2704
-f 2630 2620 2671 2670
-f 2575 2574 2663
-f 2722 2704 2703 2706
-f 2650 2649 2721 2325 2424
-f 2660 2659 2363 2360
-f 2685 2684 2397 2394
-f 2693 2692 2413 2410
-f 2669 2631 2630 2670
-f 2719 2638 2637 2720
-f 2680 2619 2618 2681
-f 2615 2716 2717 2616
-f 2712 2645 2644 2713
-f 2705 2706 2703 2707
-f 2567 2698 2582 2568
-f 2647 2695 2563
-f 2607 2603 2602 2608
-f 2601 2565 2608 2599
-f 2679 2680 2681 2596 2598
-f 2676 2594 2581 2580
-f 2672 2673 2674 2675
-f 2621 2629 2628 2622
-f 2573 2585 2584 2666
-f 2616 2657 2658 2617
-f 2647 2563 2562 2648
-f 2630 2631 2632
-f 2614 2615 2616 2617
-f 2602 2603 2604
-f 2590 2591 2592 2593
-f 2579 2580 2581
-f 2566 2567 2568
-f 2491 2514 2383 2386
-f 2453 2560 2454
-f 2548 2498 2495
-f 2479 2441 2440 2480
-f 2544 2549 2436 2555 2506 2503
-f 2538 2467 2428 2541 2435 2539
-f 2323 2538 2539 2421
-f 2362 2524 2525 2359
-f 2514 2515 2516 2383
-f 2503 2502 2545 2544
-f 2547 2499 2498 2548
-f 2511 2490 2494 2512
-f 2392 2486 2487 2389
-f 2400 2483 2484 2395
-f 2408 2479 2480 2403
-f 2474 2473 2554 2553
-f 2534 2533 2454 2560 2472
-f 2471 2470 2508 2463 2466
-f 2457 2456 2527 2526
-f 2456 2531 2448 2451
-f 2439 2438 2489 2488
-f 2434 2433 2505 2504
-f 2428 2427 2542 2541
-f 2408 2403 2406 2409
-f 2392 2389 2390 2393
-f 2352 2347 2350 2353
-f 2553 2556 2557 2558
-f 2524 2459 2462 2552
-f 2479 2478 2441
-f 2445 2523 2522 2543 2446
-f 2322 2327 2464 2537
-f 2333 2335 2534 2535
-f 2341 2345 2449 2448
-f 2355 2357 2526 2527
-f 2365 2367 2444 2460
-f 2373 2377 2519 2520
-f 2514 2511 2513 2515
-f 2504 2505 2506 2507
-f 2494 2490 2493 2495
-f 2392 2391 2485 2486
-f 2408 2407 2478 2479
-f 2417 2419 2473 2474
-f 2459 2460 2461 2462
-f 2444 2445 2446 2447
-f 2429 2430 2431 2432
-f 2417 2415 2416 2418
-f 2403 2404 2405 2406
-f 2389 2385 2388 2390
-f 2379 2377 2378 2380
-f 2369 2367 2368 2370
-f 2359 2357 2358 2360
-f 2347 2348 2349 2350
-f 2337 2335 2336 2338
-f 2329 2327 2328 2330
-f 2312 2260 2259 2314 2316 2318 2320 2156 2155 2123 2122 2310 2311
-f 2279 2294 2295 2280
-f 2187 2173 2319 2317
-f 2319 2157 2156 2320
-f 2262 2313 2314 2259
-f 2293 2278 2311 2310
-f 2305 2150 2152 2306
-f 2301 2142 2144 2302
-f 2297 2130 2133 2298
-f 2291 2306 2307 2292
-f 2287 2302 2303 2288
-f 2283 2298 2299 2284
-f 2278 2293 2294 2279
-f 2273 2288 2289 2274
-f 2269 2284 2285 2270
-f 2265 2280 2281 2266
-f 2255 2274 2275 2256
-f 2251 2270 2271 2252
-f 2246 2266 2267 2247
-f 2242 2257 2258 2243
-f 2238 2253 2254 2239
-f 2234 2249 2248 2250 2235
-f 2230 2244 2245 2231
-f 2224 2239 2240 2226
-f 2220 2235 2236 2221
-f 2216 2231 2232 2217
-f 2211 2226 2227 2212
-f 2207 2221 2222 2208
-f 2203 2217 2218 2204
-f 2198 2212 2213 2199
-f 2194 2208 2209 2195
-f 2190 2204 2205 2191
-f 2185 2199 2200 2186
-f 2181 2195 2196 2182
-f 2177 2191 2192 2178
-f 2173 2187 2188 2174
-f 2166 2182 2183 2167
-f 2162 2178 2179 2163
-f 2158 2174 2175 2159
-f 2149 2168 2169 2151
-f 2141 2164 2165 2143
-f 2131 2160 2161 2134
-f 2152 2151 2153 2154
-f 2144 2143 2145 2146
-f 2136 2133 2135 2134 2137 2138
-f 2122 2123 2124 2125
-f 2100 2101 1704 1702
-f 2104 2025 1712 1710
-f 2107 2108 1730 1728
-f 2110 2111 1740 1738
-f 2113 2114 1750 1748
-f 1943 2117 1760 1759
-f 2058 2061 1774 1773
-f 2118 2119 1788 1786
-f 2047 2079 2006 2014
-f 1977 1980 1937 1936
-f 2086 2017 2084
-f 2039 1950 1949 2073
-f 2118 2064 1981 2066
-f 2059 2056 1937 1973
-f 1942 2049 2048 1995
-f 2012 2001 1993 2004
-f 1962 2050 1948 1950
-f 2115 2114 1947 1961
-f 2112 2111 2033 2097
-f 2032 2108 2085 2016
-f 2030 2027 1989
-f 2104 2103 2072 2071
-f 2100 2099 2094 2082
-f 1998 2011 2005
-f 1971 1980 1974
-f 2087 2089 2088 2086
-f 1983 2020 2053 1990
-f 2028 2027 1721 1718
-f 1944 1943 1759 1756
-f 2061 2060 1777 1774
-f 2047 2014 2013 2044
-f 2010 1999 1998 2005
-f 1952 1996 1995 2048
-f 1945 2038 1946
-f 1955 2018 2026 2071
-f 2080 2081 2082
-f 2073 1949 2072 2074
-f 2068 1985 1984 2069
-f 1981 2064 2065 1982
-f 1976 1972 1971 1974
-f 1933 1969 1968 1934
-f 2049 1942 1941 2050
-f 2045 1964 1963 2046
-f 2001 2012 2011 1998
-f 2039 1963 1962 1950
-f 2033 2034 2035 1946
-f 2023 2024 2025 2026
-f 2011 2012 2013 2014
-f 1995 1996 1997
-f 1977 1981 1982
-f 1968 1969 1970
-f 1956 1957 1958
-f 1945 1946 1947
-f 1931 1930 1857 1815 1814
-f 1932 1885 1841 1844
-f 1924 1890 1824
-f 1922 1856 1855
-f 1926 1845 1879
-f 1805 1912 1872 1877
-f 1827 1830 1897 1896 1924 1824
-f 1720 1902 1821 1717
-f 1746 1893 1894 1743
-f 1879 1878 1927 1926
-f 1802 1871 1919 1918
-f 1866 1867 1870 1869
-f 1758 1861 1864 1863
-f 1768 1815 1857 1763
-f 1776 1853 1854 1771
-f 1849 1848 1814 1813
-f 1932 1887 1885
-f 1840 1839 1910 1909
-f 1891 1890 1924 1834 1833
-f 1904 1903 1828 1830 1827
-f 1931 1814 1848 1847
-f 1808 1921 1809
-f 1804 1803 1874 1873
-f 1794 1806 1876 1791 1792 1795
-f 1772 1767 1770 1773
-f 1746 1743 1744 1747
-f 1714 1711 1712 1715
-f 1908 1907 1843 1838
-f 1890 1889 1825 1824
-f 1916 1919 1920 1921
-f 1793 1911 1794
-f 1701 1703 1908 1837
-f 1709 1711 1904 1905
-f 1724 1723 1900 1901
-f 1734 1733 1831 1896
-f 1817 1741 1743 1894 1895
-f 1751 1753 1889 1890
-f 1882 1881 1880 1842
-f 1802 1801 1868 1871
-f 1758 1757 1860 1861
-f 1772 1771 1854 1855
-f 1783 1787 1847 1848
-f 1797 1800 1839 1840
-f 1824 1825 1826 1827
-f 1808 1809 1810 1811
-f 1793 1794 1795 1796
-f 1783 1784 1785 1786
-f 1767 1768 1769 1770
-f 1755 1753 1754 1756
-f 1745 1746 1747 1748
-f 1737 1733 1736 1738
-f 1727 1723 1726 1728
-f 1713 1714 1715 1716
-f 1705 1703 1704 1706
-f 1693 1694 1695 1696 1697 1698
-f 1159 1160 1146 1148
-f 1155 1156 1081 1067
-f 1150 1151 1138 1147
-f 1138 1137 1008 1022
-f 1143 1142 1066 1080
-f 1160 1159 966 1124
-f 1117 1122 1132 1133 1118
-f 1113 1128 1129 1114
-f 1109 1124 1125 1110
-f 1104 1118 1119 1105
-f 1100 1114 1115 1101
-f 1096 1110 1111 1097
-f 1091 1105 1106 1092
-f 1087 1101 1102 1088
-f 1083 1097 1098 1084
-f 1078 1092 1093 1079
-f 1074 1088 1089 1075
-f 1070 1084 1085 1071
-f 1142 1143 1156 1155
-f 1061 1076 1077 1062
-f 1057 1072 1073 1058
-f 1053 1068 1069 1054
-f 1048 1062 1063 1049
-f 1044 1058 1059 1045
-f 1040 1054 1055 1041
-f 1034 1049 1050 1035
-f 1030 1045 1046 1036 1031
-f 1026 1041 1042 1027
-f 1151 1150 1038 1023
-f 1017 1031 1032 1018
-f 1013 1027 1028 1014
-f 1009 1023 1024 1010
-f 1004 1018 1019 1005
-f 1000 1014 1015 1001
-f 996 1010 1011 997
-f 991 1005 1006 992
-f 987 1001 1002 988
-f 983 997 998 984
-f 966 1159 1153 981
-f 974 989 990 975
-f 970 985 986 971
-f 966 981 982 967
-f 1133 975 976 1134
-f 1129 971 972 1130
-f 1126 1125 967 968 963
-f 961 805 809 770 772
-f 815 817 766 767
-f 826 825 762 761
-f 836 838 755 756
-f 846 848 750 751
-f 855 859 745 747
-f 896 895 741 740
-f 910 909 734 733
-f 923 925 726 727
-f 956 957 958 959
-f 787 789 907 944
-f 783 937 938
-f 874 872 932 779
-f 923 921 922 924
-f 905 906 907 908
-f 891 892 893 894
-f 881 882 883 884
-f 871 867 870 872
-f 861 859 860 862
-f 850 848 849 851
-f 840 838 839 841
-f 829 830 831
-f 820 817 818 821
-f 811 809 810 812
-f 799 800 801
-f 788 789 790
-f 837 835 941 783
-f 775 776 777 778
-f 825 830 759 762
-f 865 896 740 742
-f 909 914 731 734
-f 956 959 954 953
-f 950 949 799 801
-f 945 948 894 893
-f 858 943 786
-f 940 939 822 821
-f 935 814 812
-f 779 932 818 816
-f 927 930 879 878
-f 922 921 917 920
-f 912 911 788 790
-f 904 903 774 773
-f 892 891 868 867
-f 886 887 873 876
-f 882 881 800 799
-f 874 873 871 872
-f 849 847 936 786
-f 824 823 819 822
-f 800 881 954 959
-f 894 948 897
-f 787 922 920
-f 774 903 900
-f 797 857 854
-f 858 786 860
-f 696 721 590 587 550
-f 563 624 622 562
-f 713 632 710
-f 706 586 583
-f 719 564 615
-f 545 695 612 617
-f 555 557 653 650 713 710
-f 664 663 666 669
-f 638 637 640 642
-f 615 614 716 719
-f 542 609 699 698
-f 605 604 606 607
-f 598 597 600 603
-f 588 587 590 593
-f 580 579 582 585
-f 572 570 550 707
-f 563 625 624
-f 561 560 687 686
-f 634 632 713 712 558
-f 672 670 711 557 555
-f 696 550 570 568
-f 548 703 549
-f 540 539 610 613
-f 691 543 616 567 725 722
-f 584 589 736 733
-f 638 642 748 746
-f 671 675 765 763
-f 680 678 715 559
-f 632 630 709 710
-f 700 699 702 703
-f 692 690 691
-f 683 681 680 682
-f 674 675 672 673
-f 661 662 659 660
-f 651 652 649 650
-f 643 644 642 640 641
-f 633 631 630 632
-f 621 618 619 620
-f 542 541 608 609
-f 598 599 596 597
-f 584 585 582 583
-f 571 569 568 570
-f 537 536 560 561
-f 710 709 554 555
-f 548 549 546 547
-f 692 691 722 723
-f 571 573 728 727
-f 589 588 735 736
-f 629 631 743 742
-f 639 638 746 747
-f 648 652 753 751
-f 658 662 758 756
-f 668 671 763 761
-f 679 681 768 767
-f 533 689 688 534 771 772
-f 681 683 769 768
-f 675 674 764 765
-f 662 661 757 758
-f 652 651 752 753
-f 642 644 749 748
-f 631 633 744 743
-f 593 592 737 738
-f 577 576 729 730
-f 567 566 724 725
-f 545 543 544
-f 667 666 552 553
-f 714 684 682 559
-f 569 566 565 568
-f 580 581 578 579
-f 599 595 594 596
-f 608 607 606 609
-f 537 619 618 538
-f 631 629 628 630
-f 638 639 636 637
-f 652 648 647 649
-f 662 658 657 659
-f 671 668 667 670
-f 681 679 678 680
-f 688 689 686 687
-f 700 701 698 699
-f 634 558 708
-f 686 684 714 561
-f 534 688 692 723 771
-f 651 654 754 752
-f 588 593 738 735
-f 573 577 730 728
-f 539 542 698 701
-f 544 543 691 690
-f 548 547 717 716
-f 553 552 660 659
-f 557 556 655 653
-f 714 619 537 561
-f 630 628 563 709
-f 565 696 568
-f 579 578 705 704
-f 587 586 706 705
-f 717 547 596 594 720
-f 604 601 549 702
-f 608 541 538 618
-f 612 611 614 617
-f 637 636 551 697
-f 661 660 663 665
-f 696 565 718 721
-f 701 610 539
-f 552 666 663 660
-f 704 582 579
-f 621 623 605 607
-f 703 702 549
-f 625 563 628
-f 868 891 896 865
-f 785 940 931
-f 792 890 888
-f 787 919 916 789
-f 778 946 791 794 883 880
-f 801 958 934 807 804 950
-f 807 806 802 804
-f 844 843 840 841
-f 869 868 865 866
-f 884 883 794 793
-f 885 795 792 888
-f 892 867 871 889
-f 903 902 899 900
-f 911 910 905 908
-f 919 918 913 916
-f 930 929 776 775
-f 940 821 818 932 931
-f 875 874 779 935 780
-f 783 938 839 837
-f 824 783 941 827
-f 948 947 898 897
-f 949 951 878 877
-f 959 958 801 800
-f 913 918 729 732
-f 899 902 737 739
-f 829 833 757 760
-f 777 776 773 774
-f 845 844 781 782
-f 919 787 920
-f 854 853 851 943 797
-f 809 805 808 810
-f 817 815 816 818
-f 825 826 827 828
-f 838 836 837 839
-f 848 846 847 849
-f 859 855 858 860
-f 867 868 869 870
-f 877 878 879 880
-f 892 889 890 893
-f 901 902 903 904
-f 917 918 919 920
-f 927 928 929 930
-f 847 845 782 936
-f 851 849 786 943
-f 952 953 954 955
-f 925 928 724 726
-f 914 913 732 731
-f 895 899 739 741
-f 859 861 744 745
-f 848 850 749 750
-f 838 840 754 755
-f 830 829 760 759
-f 817 820 764 766
-f 809 811 769 770
-f 1124 966 967 1125
-f 1128 962 970 971 1129
-f 1132 974 975 1133
-f 965 979 980 1140 1148
-f 969 984 985 970
-f 973 988 989 974
-f 977 992 993 978
-f 982 996 997 983
-f 986 1000 1001 987
-f 990 1004 1005 991
-f 995 1009 1010 996
-f 999 1013 1014 1000
-f 1003 1017 1018 1004
-f 1152 1151 1023 1009
-f 1012 1026 1027 1013
-f 1016 1030 1031 1017
-f 1020 1034 1035 1021
-f 1025 1040 1041 1026
-f 1029 1044 1045 1030
-f 1033 1048 1049 1034
-f 1039 1053 1054 1040
-f 1043 1057 1058 1044
-f 1047 1061 1062 1048
-f 1052 1067 1068 1053
-f 1056 1071 1072 1057
-f 1060 1075 1076 1061
-f 1051 1066 1142 1141
-f 1069 1083 1084 1070
-f 1073 1087 1088 1074
-f 1077 1091 1092 1078
-f 1082 1096 1097 1083
-f 1086 1100 1101 1087
-f 1090 1104 1105 1091
-f 1095 1109 1110 1096
-f 1099 1113 1114 1100
-f 1103 1117 1118 1104
-f 1158 1160 1124 1109
-f 1112 1127 1128 1113
-f 1116 1131 1132 1122 1117
-f 1120 1135 1136 1121
-f 1144 1143 1080 1094
-f 1147 1138 1022 1037
-f 1149 1150 1147 1141
-f 1154 1153 1140 1139
-f 1153 1159 1148 1140
-f 978 993 1007 1021 1035 1050 1064 1079 1093 1107 1121 1136
-f 1703 1701 1702 1704
-f 1711 1709 1710 1712
-f 1723 1724 1725 1726
-f 1733 1734 1735 1736
-f 1743 1741 1742 1744
-f 1753 1751 1752 1754
-f 1763 1764 1765 1766
-f 1779 1780 1781 1782
-f 1791 1789 1790 1792
-f 1805 1806 1807
-f 1820 1821 1822 1823
-f 1835 1836 1837 1838
-f 1787 1789 1846 1847
-f 1776 1775 1852 1853
-f 1757 1761 1859 1860
-f 1868 1869 1870 1871
-f 1797 1880 1881 1798
-f 1753 1755 1888 1889
-f 1746 1745 1892 1893
-f 1733 1737 1832 1831
-f 1723 1727 1899 1900
-f 1714 1713 1820 1903
-f 1703 1705 1907 1908
-f 1695 1694 1909 1910
-f 1916 1917 1918 1919
-f 1891 1833 1819
-f 1909 1836 1835 1840
-f 1696 1695 1793 1796 1697
-f 1734 1731 1732 1735
-f 1768 1763 1766 1769
-f 1784 1779 1782 1785
-f 1803 1802 1918 1917
-f 1807 1806 1794 1911
-f 1808 1811 1928 1927
-f 1823 1822 1901 1900
-f 1830 1829 1898 1897
-f 1835 1880 1797 1840
-f 1889 1888 1932 1825
-f 1846 1931 1847
-f 1853 1852 1812 1923
-f 1815 1856 1922 1812
-f 1928 1811 1860 1859 1929
-f 1867 1865 1809 1920
-f 1868 1801 1798 1881
-f 1872 1875 1878 1877
-f 1893 1892 1818 1915
-f 1724 1901 1902 1719
-f 1931 1846 1925 1930
-f 1917 1874 1803
-f 1822 1821 1902 1901
-f 1923 1854 1853
-f 1882 1884 1866 1869
-f 1921 1920 1809
-f 1887 1932 1888
-f 1941 1942 1943 1944
-f 1954 1955 1940
-f 1953 1966 1967
-f 1977 1978 1979 1980
-f 1990 1991 1951 1992 1993 1994
-f 2005 2006 2007 2008 2009 2010
-f 2008 2021 2022 2009
-f 2015 2031 2032 2016
-f 1938 1941 1944 1939
-f 2004 1993 1992 2002
-f 2040 2043 1953 1967
-f 2049 2050 1962 1965
-f 1969 2054 2055 1970
-f 1972 2058 2059 1973
-f 1978 2062 2063 1979
-f 1985 2019 2020 1983
-f 1955 2071 2072 1949 1940
-f 2077 2039 2073 2080 2078
-f 2086 2084 2085 2087
-f 2023 2086 2088 2090
-f 1996 2052 2051 1997
-f 1999 2091 2069 2000
-f 2014 2006 2005 2011
-f 2063 2062 1781 1778
-f 2055 2054 1765 1762
-f 2030 2029 1725 1722
-f 2053 2020 1934 1968
-f 2095 2015 1959 2083
-f 1978 1977 1982
-f 1958 2096 2097 2038 1956
-f 2099 2098 2076 2094
-f 2103 2102 2074 2072
-f 2028 2105 2090 1986
-f 2108 2107 2087 2085
-f 2111 2110 2034 2033
-f 2114 2113 1945 1947
-f 2050 1941 1938 1948
-f 2000 2069 1984 1994
-f 2049 1965 1966 2048
-f 2057 2054 1969 1933
-f 2065 2062 1978 1982
-f 2068 2120 2019 1985
-f 2034 2095 2083 2035
-f 2097 2033 1946 2038
-f 2041 2044 2013 2003
-f 2119 2120 1790 1788
-f 2060 2063 1778 1777
-f 2117 2055 1762 1760
-f 2114 2115 1752 1750
-f 2111 2112 1742 1740
-f 2108 2032 1732 1730
-f 2024 2105 1716 1715
-f 2101 2102 1706 1704
-f 2093 2021 2098 2121 1698 1697
-f 2133 2130 2132 2131 2134 2135
-f 2142 2141 2143 2144
-f 2150 2149 2151 2152
-f 2128 2159 2160 2131
-f 2139 2163 2164 2141
-f 2147 2167 2168 2149
-f 2172 2173 2174 2158
-f 2161 2177 2178 2162
-f 2165 2181 2182 2166
-f 2169 2185 2186 2170
-f 2176 2190 2191 2177
-f 2180 2194 2195 2181
-f 2184 2198 2199 2185
-f 2189 2203 2204 2190
-f 2193 2207 2208 2194
-f 2197 2211 2212 2198
-f 2202 2216 2217 2203
-f 2206 2220 2221 2207
-f 2210 2225 2224 2226 2211
-f 2215 2230 2231 2216
-f 2219 2234 2235 2220
-f 2223 2238 2239 2224
-f 2228 2242 2243 2229
-f 2233 2247 2248 2249 2234
-f 2237 2252 2253 2238
-f 2241 2256 2257 2242
-f 2245 2265 2266 2246
-f 2250 2269 2270 2251
-f 2254 2273 2274 2255
-f 2263 2278 2279 2264
-f 2268 2283 2284 2269
-f 2272 2287 2288 2273
-f 2276 2291 2292 2277
-f 2282 2297 2298 2283
-f 2286 2301 2302 2287
-f 2290 2305 2306 2291
-f 2296 2129 2130 2297
-f 2300 2140 2142 2301
-f 2304 2148 2150 2305
-f 2125 2293 2310 2122
-f 2230 2262 2261 2244
-f 2317 2319 2320 2318
-f 2201 2187 2317 2315
-f 2264 2279 2280 2265
-f 2308 2294 2293 2125
-f 2327 2322 2321 2326 2328
-f 2335 2333 2334 2336
-f 2345 2341 2344 2346
-f 2357 2355 2356 2358
-f 2367 2365 2366 2368
-f 2377 2373 2376 2378
-f 2385 2386 2387 2388
-f 2399 2400 2401 2402
-f 2415 2411 2414 2416
-f 2425 2426 2427 2428
-f 2440 2441 2442 2443
-f 2456 2457 2458
-f 2469 2470 2471 2472
-f 2412 2411 2476 2477
-f 2396 2395 2484 2443
-f 2490 2491 2492 2493
-f 2500 2501 2502 2503
-f 2511 2512 2469 2513
-f 2377 2379 2518 2519
-f 2367 2369 2445 2444
-f 2357 2359 2525 2526
-f 2347 2530 2348
-f 2335 2337 2533 2534
-f 2327 2329 2465 2464
-f 2540 2541 2542
-f 2550 2551 2440
-f 2528 2527 2456 2451
-f 2553 2554 2555 2556
-f 2348 2345 2346 2349
-f 2386 2383 2384 2387
-f 2404 2399 2402 2405
-f 2427 2426 2429 2432
-f 2433 2435 2541 2540
-f 2438 2437 2493 2492
-f 2520 2447 2446
-f 2455 2454 2533 2532
-f 2466 2465 2536
-f 2472 2471 2535 2534
-f 2473 2419 2504 2507
-f 2412 2477 2478 2407
-f 2483 2482 2551 2550
-f 2486 2485 2558 2557
-f 2491 2490 2511 2514
-f 2497 2496 2509 2510
-f 2501 2500 2540 2542
-f 2510 2470 2469 2512
-f 2460 2444 2447 2461
-f 2342 2531 2532 2339
-f 2501 2542 2427 2432
-f 2492 2489 2438
-f 2441 2478 2477
-f 2557 2487 2486
-f 2543 2522 2521
-f 2520 2519 2447
-f 2561 2562 2563 2564 2565
-f 2576 2568 2577 2578
-f 2587 2588 2589
-f 2599 2600 2601
-f 2611 2612 2613
-f 2626 2627 2628 2629
-f 2643 2644 2645 2646 2588 2587
-f 2617 2655 2656 2614
-f 2585 2664 2665 2586
-f 2622 2612 2611 2618
-f 2668 2669 2670 2671
-f 2594 2593 2592 2595
-f 2625 2571 2570 2623
-f 2565 2684 2685 2561
-f 2603 2688 2689 2604
-f 2694 2609 2605 2564
-f 2568 2576 2566
-f 2635 2703 2704 2636
-f 2587 2589 2575 2663 2711
-f 2714 2651 2654 2646 2645
-f 2564 2563 2695 2694
-f 2619 2580 2579
-f 2631 2641 2640 2632
-f 2696 2697 2719 2720 2423 2420
-f 2687 2686 2401 2398
-f 2665 2664 2375 2372
-f 2653 2652 2343 2340
-f 2702 2709 2708 2701
-f 2698 2589 2588 2582
-f 2671 2620 2579 2581
-f 2650 2720 2637
-f 2729 2728 2710 2709
-f 2653 2732 2699 2654
-f 2734 2657 2616 2717
-f 2737 2659 2643 2723
-f 2665 2740 2725 2724 2586
-f 2744 2743 2589 2698
-f 2674 2591 2667 2705
-f 2672 2669 2668 2673
-f 2745 2571 2625 2679
-f 2689 2686 2600 2604
-f 2747 2746 2694 2695
-f 2634 2707 2703 2635
-f 2582 2588 2646 2583
-f 2580 2619 2680 2624
-f 2720 2650 2424 2423
-f 2692 2746 2414 2413
-f 2684 2687 2398 2397
-f 2744 2572 2384 2382
-f 2664 2741 2376 2375
-f 2737 2738 2366 2364
-f 2655 2658 2350 2349
-f 2731 2732 2338 2336
-f 2727 2728 2330 2328
-f 2754 2755 2756 2757
-f 2764 2766 2765 2767 2768
-f 2774 2773 2775 2776
-f 2751 2783 2784 2785 2752
-f 2762 2789 2790 2765
-f 2771 2793 2794 2773
-f 2779 2797 2798 2781
-f 2787 2803 2804 2788
-f 2791 2807 2808 2792
-f 2795 2811 2812 2796
-f 2802 2816 2817 2803
-f 2806 2820 2821 2807
-f 2810 2824 2825 2811
-f 2815 2829 2830 2816
-f 2819 2833 2834 2820
-f 2823 2837 2838 2824
-f 2827 2841 2842 2828
-f 2832 2846 2847 2833
-f 2836 2850 2851 2837
-f 2840 2855 2856 2841
-f 2845 2860 2861 2846
-f 2849 2864 2865 2850
-f 2854 2868 2869 2855
-f 2859 2873 2874 2860
-f 2863 2878 2879 2864
-f 2867 2882 2883 2868
-f 2887 2888 2889 2890
-f 2875 2895 2896 2876
-f 2880 2899 2900 2881
-f 2884 2903 2904 2885
-f 2894 2909 2910 2895
-f 2898 2913 2914 2899
-f 2902 2917 2918 2903
-f 2908 2923 2924 2909
-f 2912 2927 2928 2913
-f 2916 2931 2932 2917
-f 2922 2936 2754 2923
-f 2926 2761 2764 2927
-f 2930 2772 2774 2937 2931
-f 2934 2780 2782 2935
-f 2906 2891 2940 2939
-f 2941 2943 2944 2942
-f 2858 2843 2941 2890
-f 2801 2800 2785 2947
-f 2800 2799 2752 2785
-f 2781 2798 2814 2828 2842 2857 2871 2886 2905 2920 2935 2782
-f 2734 2735 2356 2354 2353 2657
-g post
-f 4422 4440 4342
-f 4147 4134 4436
-f 4163 4176 4435
-f 4324 4325 4432 4433
-f 4265 4252 4428
-f 4222 4234 4427
-f 4205 4206 4424 4425
-f 4023 4024 4420 4421
-f 4085 4070 4416
-f 4401 4400 4218 4219
-f 4396 4395 4234 4233
-f 4392 4399 4230 4229
-f 4380 4379 4261 4260
-f 4383 4382 4308 4309
-f 4386 4385 4323 4322
-f 4373 4352 4006 4007
-f 4361 4362 4010 4011
-f 4369 4370 4020 4019
-f 4367 4365 4066 4067
-f 4346 4345 4083 4082
-f 4354 4353 4128 4129
-f 4358 4357 4132 4133
-f 4409 4408 4173 4172
-f 4413 4412 4144 4143
-f 4340 3991 3990 4341
-f 4336 3995 3994 4337
-f 4332 3999 3998 4333
-f 4329 3986 3985 4343 4330
-f 4325 4342 4440 3989 4326
-f 4387 4338 4339 4386
-f 4317 4334 4335 4318
-f 3927 3982 4331 4314
-f 4308 4321 4322 4309
-f 4304 4317 4318 4305
-f 3882 3927 4314 4301
-f 4297 4327 4328 4298
-f 4384 4375 4294 4293
-f 4390 4381 4290 4289
-f 4285 4302 4303 4286
-f 4280 4293 4294 4281
-f 4276 4289 4290 4277
-f 4272 4285 4286 4273
-f 4269 4299 4300 4270
-f 4265 4282 4295 4296 4266
-f 4379 4278 4279 4378
-f 4257 4274 4275 4258
-f 3743 3798 4271 4254
-f 4248 4261 4262 4249
-f 4244 4257 4258 4245
-f 3716 3743 4254 4241
-f 4237 4267 4268 4238
-f 4396 4250 4251 4395
-f 4392 4246 4247 4399
-f 4225 4242 4243 4226
-f 4221 4233 4234 4222
-f 4217 4229 4230 4218
-f 4213 4225 4226 4214
-f 4210 4239 4240 4211
-f 4206 4223 4235 4236 4207
-f 4401 4402 4203 4202
-f 4198 4215 4216 4199
-f 3576 3631 4212 4195
-f 4190 4202 4203 4191
-f 4186 4198 4199 4187
-f 3548 3576 4195 4183
-f 4179 4208 4209 4180
-f 4406 4192 4193 4405
-f 4394 4188 4189 4409
-f 4167 4184 4185 4168
-f 4162 4175 4176 4163
-f 4158 4171 4172 4159
-f 4154 4167 4168 4155
-f 4151 4181 4182 4165 4152
-f 4147 4164 4177 4178 4148
-f 4413 4160 4161 4412
-f 4139 4156 4157 4140
-f 3409 3464 4153 4136
-f 4130 4143 4144 4131
-f 4126 4139 4140 4127
-f 3373 3409 4136 4123
-f 4119 4135 4149 4150 4120
-f 4357 4358 4116 4115
-f 4353 4354 4112 4111
-f 4107 4124 4125 4108
-f 4100 4115 4116 4101
-f 4096 4111 4112 4097
-f 4092 4107 4108 4093
-f 4089 4121 4122 4105 4090
-f 4085 4102 4117 4118 4086
-f 4347 4098 4099 4346
-f 4077 4094 4095 4078
-f 3235 3290 4091 4074
-f 4066 4081 4082 4067
-f 4062 4077 4078 4063
-f 3204 3235 4074 4059
-f 4055 4087 4088 4071 4056
-f 4364 4359 4052 4051
-f 4350 4366 4048 4047
-f 4043 4060 4061 4044
-f 4039 4051 4052 4040
-f 4035 4047 4048 4036
-f 4031 4043 4044 4032
-f 4028 4057 4058 4029
-f 4024 4041 4053 4054 4025
-f 4370 4037 4038 4368
-f 4016 4033 4034 4017
-f 3060 3115 4030 4013
-f 4008 4020 4021 4009
-f 4004 4016 4017 4005
-f 3030 3060 4013 4001
-f 3988 4026 4027 3987
-f 4362 4361 3990 3991
-f 4352 4373 3994 3995
-f 3999 4002 4003 3998
-f 3772 3717 3690 3635 3605 3550 3522 3467 3438 3383 3347 3292 3264 3209 3178 3123 3089 3034 3004 3003 3956 3901 3856 3801
-f 2980 3979 3978 2981
-f 2984 3975 3974 2985
-f 2988 3971 3970 2989
-f 2992 3967 3966 2993
-f 2996 3963 3962 2997
-f 3000 3959 3958 3001
-f 2951 2950 3954 3953
-f 2955 2954 3984 3950 3949
-f 2959 2958 3946 3945
-f 2963 2962 3942 3941
-f 2967 2966 3938 3937
-f 2971 2970 3934 3933
-f 2975 2974 3930 3929
-f 3980 3925 3924 3979
-f 3976 3921 3920 3975
-f 3972 3917 3916 3971
-f 3968 3913 3912 3967
-f 3964 3909 3908 3963
-f 3960 3905 3904 3959
-f 3927 3882 3881 3926
-f 3923 3878 3877 3922
-f 3919 3874 3873 3918
-f 3915 3870 3869 3914
-f 3911 3866 3865 3910
-f 3907 3862 3861 3906
-f 3903 3858 3857 3902
-f 3952 3953 3899 3853 3852 3898
-f 3948 3949 3895 3849 3848 3894
-f 3944 3945 3892 3845 3844
-f 3940 3941 3890 3841 3840 3889
-f 3936 3937 3887 3837 3836 3886
-f 3932 3933 3833 3832
-f 3928 3929 3884 3829 3828 3883
-f 3879 3824 3823 3878
-f 3875 3820 3819 3874
-f 3871 3816 3815 3870
-f 3867 3812 3811 3866
-f 3863 3808 3807 3862
-f 3859 3804 3803 3858
-f 3826 3797 3796 3825
-f 3822 3793 3792 3821
-f 3818 3789 3788 3817
-f 3814 3785 3784 3813
-f 3810 3781 3780 3809
-f 3806 3777 3776 3805
-f 3802 3773 3772 3801
-f 3851 3852 3768 3767 3800
-f 3847 3848 3764 3763
-f 3843 3844 3760 3759
-f 3839 3840 3756 3755
-f 3835 3836 3752 3751
-f 3831 3832 3748 3747
-f 3798 3743 3742 3797
-f 3794 3739 3738 3793
-f 3790 3735 3734 3789
-f 3786 3731 3730 3785
-f 3782 3727 3726 3781
-f 3778 3723 3722 3777
-f 3774 3719 3718 3773
-f 3741 3714 3713 3740
-f 3737 3710 3709 3736
-f 3733 3706 3705 3732
-f 3729 3702 3701 3728
-f 3725 3698 3697 3724
-f 3721 3694 3693 3720
-f 3770 3771 3689 3688
-f 3766 3767 3685 3684
-f 3762 3763 3681 3680
-f 3758 3759 3677 3676
-f 3754 3755 3673 3672
-f 3750 3751 3669 3668
-f 3746 3747 3665 3664
-f 3715 3660 3659 3714
-f 3711 3656 3655 3710
-f 3707 3652 3651 3706
-f 3703 3648 3647 3702
-f 3699 3644 3643 3698
-f 3695 3640 3639 3694
-f 3691 3636 3635 3690
-f 3658 3628 3627 3657
-f 3654 3624 3623 3653
-f 3650 3620 3619 3649
-f 3646 3616 3615 3645
-f 3642 3612 3611 3641
-f 3638 3608 3607 3637
-f 3687 3688 3634 3603 3602
-f 3683 3684 3599 3598
-f 3679 3680 3595 3594
-f 3675 3676 3591 3590
-f 3671 3672 3587 3586
-f 3667 3668 3583 3582
-f 3663 3664 3579 3578
-f 3629 3574 3573 3628
-f 3625 3570 3569 3624
-f 3621 3566 3565 3620
-f 3617 3562 3561 3616
-f 3613 3558 3557 3612
-f 3609 3554 3553 3608
-f 3576 3548 3547 3575
-f 3572 3544 3543 3571
-f 3568 3540 3539 3567
-f 3564 3536 3535 3563
-f 3560 3532 3531 3559
-f 3556 3528 3527 3555
-f 3552 3524 3523 3551
-f 3601 3602 3519 3518
-f 3597 3598 3515 3514
-f 3593 3594 3511 3510
-f 3589 3590 3507 3506
-f 3585 3586 3503 3502
-f 3581 3582 3499 3498
-f 3578 3495 3494 3577
-f 3545 3490 3489 3544
-f 3541 3486 3485 3540
-f 3537 3482 3481 3536
-f 3533 3478 3477 3532
-f 3529 3474 3473 3528
-f 3525 3470 3469 3524
-f 3492 3463 3462 3491
-f 3488 3459 3458 3487
-f 3484 3455 3454 3483
-f 3480 3451 3450 3479
-f 3476 3447 3446 3475
-f 3472 3443 3442 3471
-f 3468 3439 3438 3467
-f 3517 3518 3434 3433 3466
-f 3513 3514 3430 3429
-f 3509 3510 3426 3425
-f 3505 3506 3422 3421
-f 3501 3502 3418 3417
-f 3497 3498 3414 3413
-f 3464 3409 3408 3463
-f 3460 3405 3404 3459
-f 3456 3401 3400 3455
-f 3452 3397 3396 3451
-f 3448 3393 3392 3447
-f 3444 3389 3388 3443
-f 3440 3385 3384 3439
-f 3407 3371 3370 3406
-f 3403 3367 3366 3402
-f 3399 3363 3362 3398
-f 3395 3359 3358 3394
-f 3391 3355 3354 3390
-f 3387 3351 3350 3386
-f 3436 3437 3346 3345
-f 3432 3433 3382 3342 3341 3381
-f 3428 3429 3338 3337
-f 3424 3425 3334 3333
-f 3420 3421 3377 3330 3329 3376
-f 3416 3417 3326 3325
-f 3412 3413 3322 3321
-f 3372 3317 3316 3371
-f 3368 3313 3312 3367
-f 3364 3309 3308 3363
-f 3360 3305 3304 3359
-f 3356 3301 3300 3355
-f 3352 3297 3296 3351
-f 3348 3293 3292 3347
-f 3315 3287 3286 3314
-f 3311 3283 3282 3310
-f 3307 3279 3278 3306
-f 3303 3275 3274 3302
-f 3299 3271 3270 3298
-f 3295 3267 3266 3294
-f 3344 3345 3262 3261
-f 3340 3341 3258 3257
-f 3336 3337 3254 3253
-f 3332 3333 3250 3249
-f 3328 3329 3246 3245
-f 3324 3325 3242 3241
-f 3320 3321 3238 3237
-f 3288 3233 3232 3287
-f 3284 3229 3228 3283
-f 3280 3225 3224 3279
-f 3276 3221 3220 3275
-f 3272 3217 3216 3271
-f 3268 3213 3212 3267
-f 3235 3204 3203 3234
-f 3231 3200 3199 3230
-f 3227 3196 3195 3226
-f 3223 3192 3191 3222
-f 3219 3188 3187 3218
-f 3215 3184 3183 3214
-f 3211 3180 3179 3210
-f 3260 3261 3175 3174
-f 3256 3257 3171 3170
-f 3252 3253 3167 3166
-f 3248 3249 3163 3162
-f 3244 3245 3159 3158
-f 3240 3241 3155 3154
-f 3236 3237 3151 3150 3205
-f 3201 3146 3145 3200
-f 3197 3142 3141 3196
-f 3193 3138 3137 3192
-f 3189 3134 3133 3188
-f 3185 3130 3129 3184
-f 3181 3126 3125 3180
-f 3148 3114 3113 3147
-f 3144 3110 3109 3143
-f 3140 3106 3105 3139
-f 3136 3102 3101 3135
-f 3132 3098 3097 3131
-f 3128 3094 3093 3127
-f 3124 3090 3089 3123
-f 3173 3174 3085 3084 3122
-f 3169 3170 3081 3080
-f 3165 3166 3077 3076 3120
-f 3161 3162 3073 3072
-f 3157 3158 3116 3069 3068
-f 3153 3154 3065 3064
-f 3115 3060 3059 3114
-f 3111 3056 3055 3110
-f 3107 3052 3051 3106
-f 3103 3048 3047 3102
-f 3099 3044 3043 3098
-f 3095 3040 3039 3094
-f 3091 3036 3035 3090
-f 3058 3028 3027 3057
-f 3054 3024 3023 3053
-f 3050 3020 3019 3049
-f 3046 3016 3015 3045
-f 3042 3012 3011 3041
-f 3038 3008 3007 3037
-f 3087 3088 2949 2950
-f 3083 3084 3033 2953 2954
-f 3079 3080 2957 2958
-f 3075 3076 2961 2962
-f 3071 3072 2965 2966
-f 3067 3068 2969 2970
-f 3063 3064 2973 2974 3031
-f 3029 2978 2979 3028
-f 3025 2982 2983 3024
-f 3021 2986 2987 3020
-f 3017 2990 2991 3016
-f 3013 2994 2995 3012
-f 3009 2998 2999 3008
-f 3005 3002 3003 3004
-f 3008 2999 3000 3007
-f 3012 2995 2996 3011
-f 3016 2991 2992 3015
-f 3020 2987 2988 3019
-f 3024 2983 2984 3023
-f 3028 2979 2980 3027
-f 3062 3063 3031 2974 2975
-f 3066 3067 2970 2971
-f 3070 3071 2966 2967
-f 3074 3075 2962 2963
-f 3078 3079 2958 2959
-f 3082 3083 2954 2955 3032
-f 3086 3087 2950 2951
-f 3037 3007 3006 3036
-f 3041 3011 3010 3040
-f 3045 3015 3014 3044
-f 3049 3019 3018 3048
-f 3053 3023 3022 3052
-f 3057 3027 3026 3056
-f 3090 3035 3034 3089
-f 3094 3039 3038 3093
-f 3098 3043 3042 3097
-f 3102 3047 3046 3101
-f 3106 3051 3050 3105
-f 3110 3055 3054 3109
-f 3114 3059 3058 3113
-f 3152 3153 3064 3063
-f 3156 3157 3068 3067
-f 3160 3161 3072 3071
-f 3164 3165 3120 3076 3075 3119
-f 3168 3169 3080 3079
-f 3172 3173 3122 3084 3083 3121
-f 3176 3177 3088 3087
-f 3127 3093 3092 3126
-f 3131 3097 3096 3130
-f 3135 3101 3100 3134
-f 3139 3105 3104 3138
-f 3143 3109 3108 3142
-f 3147 3113 3112 3146
-f 3180 3125 3124 3179
-f 3184 3129 3128 3183
-f 3188 3133 3132 3187
-f 3192 3137 3136 3191
-f 3196 3141 3140 3195
-f 3200 3145 3144 3199
-f 3204 3149 3148 3203
-f 3239 3240 3154 3153 3206
-f 3243 3244 3158 3157
-f 3247 3248 3162 3161
-f 3251 3252 3166 3165
-f 3255 3256 3170 3169
-f 3259 3260 3174 3173 3208
-f 3210 3179 3178 3209
-f 3214 3183 3182 3213
-f 3218 3187 3186 3217
-f 3222 3191 3190 3221
-f 3226 3195 3194 3225
-f 3230 3199 3198 3229
-f 3234 3203 3202 3233
-f 3267 3212 3211 3266
-f 3271 3216 3215 3270
-f 3275 3220 3219 3274
-f 3279 3224 3223 3278
-f 3283 3228 3227 3282
-f 3287 3232 3231 3286
-f 3319 3320 3237 3236 3291
-f 3323 3324 3241 3240
-f 3327 3328 3245 3244
-f 3331 3332 3249 3248
-f 3335 3336 3253 3252
-f 3339 3340 3257 3256
-f 3343 3344 3261 3260
-f 3294 3266 3265 3293
-f 3298 3270 3269 3297
-f 3302 3274 3273 3301
-f 3306 3278 3277 3305
-f 3310 3282 3281 3309
-f 3314 3286 3285 3313
-f 3318 3290 3289 3317
-f 3351 3296 3295 3350
-f 3355 3300 3299 3354
-f 3359 3304 3303 3358
-f 3363 3308 3307 3362
-f 3367 3312 3311 3366
-f 3371 3316 3315 3370
-f 3411 3412 3321 3320
-f 3415 3416 3325 3324
-f 3419 3420 3376 3329 3328 3375
-f 3423 3424 3333 3332 3379
-f 3427 3428 3337 3336
-f 3431 3432 3381 3341 3340 3380
-f 3435 3436 3345 3344
-f 3386 3350 3349 3385
-f 3390 3354 3353 3389
-f 3394 3358 3357 3393
-f 3398 3362 3361 3397
-f 3402 3366 3365 3401
-f 3406 3370 3369 3405
-f 3439 3384 3383 3438
-f 3443 3388 3387 3442
-f 3447 3392 3391 3446
-f 3451 3396 3395 3450
-f 3455 3400 3399 3454
-f 3459 3404 3403 3458
-f 3463 3408 3407 3462
-f 3496 3497 3413 3412
-f 3500 3501 3417 3416
-f 3504 3505 3421 3420
-f 3508 3509 3425 3424
-f 3512 3513 3429 3428
-f 3516 3517 3466 3433 3432
-f 3520 3521 3437 3436
-f 3471 3442 3441 3470
-f 3475 3446 3445 3474
-f 3479 3450 3449 3478
-f 3483 3454 3453 3482
-f 3487 3458 3457 3486
-f 3491 3462 3461 3490
-f 3524 3469 3468 3523
-f 3528 3473 3472 3527
-f 3532 3477 3476 3531
-f 3536 3481 3480 3535
-f 3540 3485 3484 3539
-f 3544 3489 3488 3543
-f 3548 3493 3492 3547
-f 3580 3581 3498 3497
-f 3584 3585 3502 3501
-f 3588 3589 3506 3505
-f 3592 3593 3510 3509
-f 3596 3597 3514 3513
-f 3600 3601 3518 3517
-f 3551 3523 3522 3550
-f 3555 3527 3526 3554
-f 3559 3531 3530 3558
-f 3563 3535 3534 3562
-f 3567 3539 3538 3566
-f 3571 3543 3542 3570
-f 3575 3547 3546 3574
-f 3608 3553 3552 3607
-f 3612 3557 3556 3611
-f 3616 3561 3560 3615
-f 3620 3565 3564 3619
-f 3624 3569 3568 3623
-f 3628 3573 3572 3627
-f 3663 3578 3577 3662
-f 3666 3667 3582 3581
-f 3670 3671 3586 3585 3632
-f 3674 3675 3590 3589
-f 3678 3679 3594 3593
-f 3682 3683 3598 3597 3633
-f 3686 3687 3602 3601
-f 3637 3607 3606 3636
-f 3641 3611 3610 3640
-f 3645 3615 3614 3644
-f 3649 3619 3618 3648
-f 3653 3623 3622 3652
-f 3657 3627 3626 3656
-f 3661 3631 3630 3660
-f 3694 3639 3638 3693
-f 3698 3643 3642 3697
-f 3702 3647 3646 3701
-f 3706 3651 3650 3705
-f 3710 3655 3654 3709
-f 3714 3659 3658 3713
-f 3745 3746 3664 3663
-f 3749 3750 3668 3667
-f 3753 3754 3672 3671
-f 3757 3758 3676 3675
-f 3761 3762 3680 3679
-f 3765 3766 3684 3683
-f 3769 3770 3688 3687
-f 3720 3693 3692 3719
-f 3724 3697 3696 3723
-f 3728 3701 3700 3727
-f 3732 3705 3704 3731
-f 3736 3709 3708 3735
-f 3740 3713 3712 3739
-f 3773 3718 3717 3772
-f 3777 3722 3721 3776
-f 3781 3726 3725 3780
-f 3785 3730 3729 3784
-f 3789 3734 3733 3788
-f 3793 3738 3737 3792
-f 3797 3742 3741 3796
-f 3830 3831 3747 3746
-f 3834 3835 3751 3750
-f 3838 3839 3755 3754
-f 3842 3843 3759 3758
-f 3846 3847 3763 3762
-f 3850 3851 3800 3767 3766 3799
-f 3854 3855 3771 3770
-f 3805 3776 3775 3804
-f 3809 3780 3779 3808
-f 3813 3784 3783 3812
-f 3817 3788 3787 3816
-f 3821 3792 3791 3820
-f 3825 3796 3795 3824
-f 3858 3803 3802 3857
-f 3862 3807 3806 3861
-f 3866 3811 3810 3865
-f 3870 3815 3814 3869
-f 3874 3819 3818 3873
-f 3878 3823 3822 3877
-f 3882 3827 3826 3881
-f 3931 3932 3832 3831
-f 3935 3936 3886 3836 3835 3885
-f 3939 3940 3889 3840 3839 3888
-f 3943 3944 3844 3843
-f 3947 3948 3894 3848 3847 3893
-f 3951 3952 3898 3852 3851 3897
-f 3902 3857 3856 3901
-f 3906 3861 3860 3905
-f 3910 3865 3864 3909
-f 3914 3869 3868 3913
-f 3918 3873 3872 3917
-f 3922 3877 3876 3921
-f 3926 3881 3880 3925
-f 3959 3904 3903 3958
-f 3963 3908 3907 3962
-f 3967 3912 3911 3966
-f 3971 3916 3915 3970
-f 3975 3920 3919 3974
-f 3979 3924 3923 3978
-f 2976 2975 3929 3928 3983
-f 2972 2971 3933 3932
-f 2968 2967 3937 3936
-f 2964 2963 3941 3940
-f 2960 2959 3945 3944
-f 2956 2955 3949 3948
-f 2952 2951 3953 3952
-f 3001 3958 3957 3002
-f 2997 3962 3961 2998
-f 2993 3966 3965 2994
-f 2989 3970 3969 2990
-f 2985 3974 3973 2986
-f 2981 3978 3977 2982
-f 2977 3982 3981 2978
-f 4000 4001 4002 3999
-f 3995 3996 4005 4006 4352
-f 4371 4362 3991 3992
-f 3989 4025 4026 3988
-f 3985 4029 3061 2976
-f 4003 4015 4016 4004
-f 4007 4019 4020 4008
-f 4012 4011 4421 4420
-f 4015 4032 4033 4016
-f 4369 4036 4037 4370
-f 4023 4360 4040 4041 4024
-f 4027 4056 4057 4028
-f 4030 4042 4043 4031
-f 4034 4046 4047 4035
-f 4038 4050 4051 4039
-f 4042 4059 4060 4043
-f 4047 4046 4063 4064 4350
-f 4367 4364 4051 4050
-f 4054 4086 4087 4055
-f 4058 4073 4090 3236 3205 3150
-f 4061 4076 4077 4062
-f 4065 4080 4081 4066
-f 4070 4069 4417 4416
-f 4076 4093 4094 4077
-f 4348 4097 4098 4347
-f 4084 4344 4101 4102 4085
-f 4088 4104 4120 4121 4089
-f 4091 4106 4107 4092
-f 4095 4110 4111 4096
-f 4099 4114 4115 4100
-f 4106 4123 4124 4107
-f 4111 4110 4127 4128 4353
-f 4356 4357 4115 4114
-f 4118 4148 4149 4135 4119
-f 4122 4152 3410 3319
-f 4125 4138 4139 4126
-f 4129 4142 4143 4130
-f 4134 4133 4437 4436
-f 4138 4155 4156 4139
-f 4414 4159 4160 4413
-f 4146 4410 4163 4164 4147
-f 4150 4180 4181 4151
-f 4153 4166 4167 4154
-f 4157 4170 4171 4158
-f 4161 4174 4175 4162
-f 4166 4183 4184 4167
-f 4171 4170 4187 4188 4394
-f 4407 4191 4192 4406
-f 4178 4207 4208 4179
-f 4182 4211 3577 3494
-f 4185 4197 4198 4186
-f 4189 4201 4202 4190
-f 4194 4193 4425 4424
-f 4197 4214 4215 4198
-f 4400 4401 4202 4201
-f 4205 4404 4222 4223 4206
-f 4209 4238 4239 4210
-f 4212 4224 4225 4213
-f 4216 4228 4229 4217
-f 4220 4232 4233 4221
-f 4224 4241 4242 4225
-f 4229 4228 4245 4246 4392
-f 4397 4249 4250 4396
-f 4236 4266 4267 4237
-f 4240 4270 3744 3662
-f 4243 4256 4257 4244
-f 4247 4260 4261 4248
-f 4252 4251 4429 4428
-f 4256 4273 4274 4257
-f 4380 4277 4278 4379
-f 4264 4376 4281 4282 4265
-f 4268 4298 4299 4269
-f 4271 4284 4285 4272
-f 4275 4288 4289 4276
-f 4279 4292 4293 4280
-f 4284 4301 4302 4285
-f 4289 4288 4305 4306 4390
-f 4383 4384 4293 4292
-f 4296 4326 4327 4297
-f 4300 4313 4330 3928 3883 3828
-f 4303 4316 4317 4304
-f 4307 4320 4321 4308
-f 4312 4311 4433 4432
-f 4316 4333 4334 4317
-f 4388 4337 4338 4387
-f 4324 4374 4341 4342 4325
-f 4328 3987 3986 4329
-f 4331 4000 3999 4332
-f 4335 3996 3995 4336
-f 4339 3992 3991 4340
-f 4414 4413 4143 4142
-f 4394 4409 4172 4171
-f 4406 4405 4176 4175
-f 4355 4354 4129 4130
-f 4347 4346 4082 4081
-f 4364 4367 4067 4068
-f 4351 4369 4019 4018
-f 4363 4360 4023 4022
-f 4372 4373 4007 4008
-f 4387 4386 4322 4321
-f 4384 4383 4309 4310
-f 4391 4380 4260 4259
-f 4377 4376 4264 4263
-f 4397 4396 4233 4232
-f 4402 4401 4219 4220
-f 4069 4084 4417
-f 4053 4041 4418
-f 4341 3990 4423
-f 4234 4235 4426 4427
-f 4251 4264 4429
-f 4295 4282 4430
-f 4176 4177 4434 4435
-f 4133 4146 4437
-f 4117 4102 4438
-f 4440 4422 4423 3990
-f 4116 4117 4438 4439
-f 4177 4164 4434
-f 4311 4324 4433
-f 4294 4295 4430 4431
-f 4235 4223 4426
-f 4193 4205 4425
-f 4011 4023 4421
-f 4052 4053 4418 4419
-f 4400 4393 4217 4218
-f 4404 4403 4221 4222
-f 4399 4398 4231 4230
-f 4379 4378 4262 4261
-f 4382 4381 4307 4308
-f 4385 4374 4324 4323
-f 4389 4388 4320 4319
-f 4362 4371 4009 4010
-f 4370 4368 4021 4020
-f 4365 4366 4065 4066
-f 4344 4084 4083 4345
-f 4349 4348 4080 4079
-f 4357 4356 4131 4132
-f 4408 4407 4174 4173
-f 4412 4411 4145 4144
-f 4342 4341 4423 4422
-f 4337 3994 3993 4338
-f 4333 3998 3997 4334
-f 4330 4343 3985 2976 3983 3928
-f 4326 3989 3988 4327
-f 4386 4339 4340 4385
-f 4319 4318 4335 4336 4389
-f 4314 4331 4332 4315
-f 4309 4322 4323 4310
-f 4305 4318 4319 4306
-f 4301 4314 4315 4302
-f 4298 4328 4329 4299
-f 4294 4375 4311 4312 4295
-f 4381 4382 4291 4290
-f 4286 4303 4304 4287
-f 4282 4281 4431 4430
-f 4277 4290 4291 4278
-f 4273 4286 4287 4274
-f 4270 4300 3828 3744
-f 4266 4296 4297 4283 4267
-f 4378 4279 4280 4377
-f 4259 4258 4275 4276 4391
-f 4254 4271 4272 4255
-f 4249 4262 4263 4250
-f 4245 4258 4259 4246
-f 4241 4254 4255 4242
-f 4238 4268 4269 4253 4239
-f 4234 4395 4251 4252 4235
-f 4399 4247 4248 4398
-f 4226 4243 4244 4227
-f 4223 4222 4427 4426
-f 4218 4230 4231 4219
-f 4214 4226 4227 4215
-f 4211 4240 3662 3577
-f 4207 4236 4237 4208
-f 4402 4403 4204 4203
-f 4200 4199 4216 4217 4393
-f 4195 4212 4213 4196
-f 4191 4203 4204 4192
-f 4187 4199 4200 4188
-f 4183 4195 4196 4184
-f 4180 4209 4210 4181
-f 4176 4405 4193 4194 4177
-f 4409 4189 4190 4408
-f 4168 4185 4186 4169
-f 4164 4163 4435 4434
-f 4159 4172 4173 4160
-f 4155 4168 4169 4156
-f 4152 4165 4182 3494 3410
-f 4148 4178 4179 4149
-f 4412 4161 4162 4411
-f 4141 4140 4157 4158 4415
-f 4136 4153 4154 4137
-f 4131 4144 4145 4132
-f 4127 4140 4141 4128
-f 4123 4136 4137 4124
-f 4120 4150 4151 4121
-f 4116 4358 4133 4134 4117
-f 4354 4355 4113 4112
-f 4108 4125 4126 4109
-f 4102 4101 4439 4438
-f 4097 4112 4113 4098
-f 4093 4108 4109 4094
-f 4090 4105 4122 3319 3291 3236
-f 4086 4118 4119 4103 4087
-f 4346 4099 4100 4345
-f 4079 4078 4095 4096 4349
-f 4074 4091 4092 4075
-f 4067 4082 4083 4068
-f 4063 4078 4079 4064
-f 4059 4074 4075 4060
-f 4056 4071 4088 4089 4072 4057
-f 4052 4359 4069 4070 4053
-f 4366 4365 4049 4048
-f 4044 4061 4062 4045
-f 4041 4040 4419 4418
-f 4036 4048 4049 4037
-f 4032 4044 4045 4033
-f 4029 4058 3150 3061
-f 4025 4054 4055 4026
-f 4368 4038 4039 4363
-f 4018 4017 4034 4035 4351
-f 4013 4030 4031 4014
-f 4009 4021 4022 4010
-f 4005 4017 4018 4006
-f 4001 4013 4014 4002
-f 3987 4027 4028 3986
-f 4440 3990 4361 4011 4012
-f 4373 4372 3993 3994
-f 3998 4003 4004 3997
-f 3088 3177 3263 3346 3437 3521 3604 3689 3771 3855 3900 3955 2949
-f 2979 3980 3979 2980
-f 2983 3976 3975 2984
-f 2987 3972 3971 2988
-f 2991 3968 3967 2992
-f 2995 3964 3963 2996
-f 2999 3960 3959 3000
-f 2950 2949 3955 3954
-f 2954 2953 3951 3950 3984
-f 2958 2957 3947 3946
-f 2962 2961 3943 3942
-f 2966 2965 3939 3938
-f 2970 2969 3935 3934
-f 2974 2973 3931 3930
-f 3981 3926 3925 3980
-f 3977 3922 3921 3976
-f 3973 3918 3917 3972
-f 3969 3914 3913 3968
-f 3965 3910 3909 3964
-f 3961 3906 3905 3960
-f 3957 3902 3901 3956
-f 3924 3879 3878 3923
-f 3920 3875 3874 3919
-f 3916 3871 3870 3915
-f 3912 3867 3866 3911
-f 3908 3863 3862 3907
-f 3904 3859 3858 3903
-f 3953 3954 3854 3853 3899
-f 3949 3950 3896 3850 3849 3895
-f 3945 3946 3846 3845 3892
-f 3941 3942 3891 3842 3841 3890
-f 3937 3938 3838 3837 3887
-f 3933 3934 3834 3833
-f 3929 3930 3830 3829 3884
-f 3880 3825 3824 3879
-f 3876 3821 3820 3875
-f 3872 3817 3816 3871
-f 3868 3813 3812 3867
-f 3864 3809 3808 3863
-f 3860 3805 3804 3859
-f 3827 3798 3797 3826
-f 3823 3794 3793 3822
-f 3819 3790 3789 3818
-f 3815 3786 3785 3814
-f 3811 3782 3781 3810
-f 3807 3778 3777 3806
-f 3803 3774 3773 3802
-f 3852 3853 3769 3768
-f 3848 3849 3765 3764
-f 3844 3845 3761 3760
-f 3840 3841 3757 3756
-f 3836 3837 3753 3752
-f 3832 3833 3749 3748
-f 3829 3745 3744 3828
-f 3795 3740 3739 3794
-f 3791 3736 3735 3790
-f 3787 3732 3731 3786
-f 3783 3728 3727 3782
-f 3779 3724 3723 3778
-f 3775 3720 3719 3774
-f 3742 3715 3714 3741
-f 3738 3711 3710 3737
-f 3734 3707 3706 3733
-f 3730 3703 3702 3729
-f 3726 3699 3698 3725
-f 3722 3695 3694 3721
-f 3718 3691 3690 3717
-f 3767 3768 3686 3685
-f 3763 3764 3682 3681
-f 3759 3760 3678 3677
-f 3755 3756 3674 3673
-f 3751 3752 3670 3669
-f 3747 3748 3666 3665
-f 3716 3661 3660 3715
-f 3712 3657 3656 3711
-f 3708 3653 3652 3707
-f 3704 3649 3648 3703
-f 3700 3645 3644 3699
-f 3696 3641 3640 3695
-f 3692 3637 3636 3691
-f 3659 3629 3628 3658
-f 3655 3625 3624 3654
-f 3651 3621 3620 3650
-f 3647 3617 3616 3646
-f 3643 3613 3612 3642
-f 3639 3609 3608 3638
-f 3688 3689 3604 3603 3634
-f 3684 3685 3600 3599
-f 3680 3681 3596 3595
-f 3676 3677 3592 3591
-f 3672 3673 3588 3587
-f 3668 3669 3584 3583
-f 3664 3665 3580 3579
-f 3630 3575 3574 3629
-f 3626 3571 3570 3625
-f 3622 3567 3566 3621
-f 3618 3563 3562 3617
-f 3614 3559 3558 3613
-f 3610 3555 3554 3609
-f 3606 3551 3550 3605
-f 3573 3545 3544 3572
-f 3569 3541 3540 3568
-f 3565 3537 3536 3564
-f 3561 3533 3532 3560
-f 3557 3529 3528 3556
-f 3553 3525 3524 3552
-f 3602 3603 3520 3519
-f 3598 3599 3549 3516 3515
-f 3594 3595 3512 3511
-f 3590 3591 3508 3507
-f 3586 3587 3504 3503
-f 3582 3583 3500 3499
-f 3578 3579 3496 3495
-f 3546 3491 3490 3545
-f 3542 3487 3486 3541
-f 3538 3483 3482 3537
-f 3534 3479 3478 3533
-f 3530 3475 3474 3529
-f 3526 3471 3470 3525
-f 3493 3464 3463 3492
-f 3489 3460 3459 3488
-f 3485 3456 3455 3484
-f 3481 3452 3451 3480
-f 3477 3448 3447 3476
-f 3473 3444 3443 3472
-f 3469 3440 3439 3468
-f 3518 3519 3435 3434
-f 3514 3515 3465 3431 3430
-f 3510 3511 3427 3426
-f 3506 3507 3423 3422
-f 3502 3503 3419 3418
-f 3498 3499 3415 3414
-f 3495 3411 3410 3494
-f 3461 3406 3405 3460
-f 3457 3402 3401 3456
-f 3453 3398 3397 3452
-f 3449 3394 3393 3448
-f 3445 3390 3389 3444
-f 3441 3386 3385 3440
-f 3408 3372 3371 3407
-f 3404 3368 3367 3403
-f 3400 3364 3363 3399
-f 3396 3360 3359 3395
-f 3392 3356 3355 3391
-f 3388 3352 3351 3387
-f 3384 3348 3347 3383
-f 3433 3434 3343 3342 3382
-f 3429 3430 3339 3338
-f 3425 3426 3335 3334
-f 3421 3422 3378 3331 3330 3377
-f 3417 3418 3374 3327 3326
-f 3413 3414 3323 3322
-f 3373 3318 3317 3372
-f 3369 3314 3313 3368
-f 3365 3310 3309 3364
-f 3361 3306 3305 3360
-f 3357 3302 3301 3356
-f 3353 3298 3297 3352
-f 3349 3294 3293 3348
-f 3316 3288 3287 3315
-f 3312 3284 3283 3311
-f 3308 3280 3279 3307
-f 3304 3276 3275 3303
-f 3300 3272 3271 3299
-f 3296 3268 3267 3295
-f 3345 3346 3263 3262
-f 3341 3342 3259 3258
-f 3337 3338 3255 3254
-f 3333 3334 3251 3250
-f 3329 3330 3247 3246
-f 3325 3326 3243 3242
-f 3321 3322 3239 3238
-f 3289 3234 3233 3288
-f 3285 3230 3229 3284
-f 3281 3226 3225 3280
-f 3277 3222 3221 3276
-f 3273 3218 3217 3272
-f 3269 3214 3213 3268
-f 3265 3210 3209 3264
-f 3232 3201 3200 3231
-f 3228 3197 3196 3227
-f 3224 3193 3192 3223
-f 3220 3189 3188 3219
-f 3216 3185 3184 3215
-f 3212 3181 3180 3211
-f 3261 3262 3176 3175
-f 3257 3258 3207 3172 3171
-f 3253 3254 3168 3167
-f 3249 3250 3164 3163
-f 3245 3246 3160 3159
-f 3241 3242 3156 3155
-f 3237 3238 3152 3151
-f 3202 3147 3146 3201
-f 3198 3143 3142 3197
-f 3194 3139 3138 3193
-f 3190 3135 3134 3189
-f 3186 3131 3130 3185
-f 3182 3127 3126 3181
-f 3149 3115 3114 3148
-f 3145 3111 3110 3144
-f 3141 3107 3106 3140
-f 3137 3103 3102 3136
-f 3133 3099 3098 3132
-f 3129 3095 3094 3128
-f 3125 3091 3090 3124
-f 3174 3175 3086 3085
-f 3170 3171 3082 3081
-f 3166 3167 3078 3077
-f 3162 3163 3118 3074 3073
-f 3158 3159 3117 3070 3069 3116
-f 3154 3155 3066 3065
-f 3151 3062 3061 3150
-f 3112 3057 3056 3111
-f 3108 3053 3052 3107
-f 3104 3049 3048 3103
-f 3100 3045 3044 3099
-f 3096 3041 3040 3095
-f 3092 3037 3036 3091
-f 3059 3029 3028 3058
-f 3055 3025 3024 3054
-f 3051 3021 3020 3050
-f 3047 3017 3016 3046
-f 3043 3013 3012 3042
-f 3039 3009 3008 3038
-f 3035 3005 3004 3034
-f 3084 3085 2952 2953 3033
-f 3080 3081 2956 2957
-f 3076 3077 2960 2961
-f 3072 3073 2964 2965
-f 3068 3069 2968 2969
-f 3064 3065 2972 2973
-f 3030 2977 2978 3029
-f 3026 2981 2982 3025
-f 3022 2985 2986 3021
-f 3018 2989 2990 3017
-f 3014 2993 2994 3013
-f 3010 2997 2998 3009
-f 3006 3001 3002 3005
-f 3007 3000 3001 3006
-f 3011 2996 2997 3010
-f 3015 2992 2993 3014
-f 3019 2988 2989 3018
-f 3023 2984 2985 3022
-f 3027 2980 2981 3026
-f 3062 2975 2976 3061
-f 3065 3066 2971 2972
-f 3069 3070 2967 2968
-f 3073 3074 2963 2964
-f 3077 3078 2959 2960
-f 3081 3082 3032 2955 2956
-f 3085 3086 2951 2952
-f 3036 3006 3005 3035
-f 3040 3010 3009 3039
-f 3044 3014 3013 3043
-f 3048 3018 3017 3047
-f 3052 3022 3021 3051
-f 3056 3026 3025 3055
-f 3060 3030 3029 3059
-f 3093 3038 3037 3092
-f 3097 3042 3041 3096
-f 3101 3046 3045 3100
-f 3105 3050 3049 3104
-f 3109 3054 3053 3108
-f 3113 3058 3057 3112
-f 3151 3152 3063 3062
-f 3155 3156 3067 3066
-f 3159 3160 3071 3070 3117
-f 3163 3164 3119 3075 3074 3118
-f 3167 3168 3079 3078
-f 3171 3172 3121 3083 3082
-f 3175 3176 3087 3086
-f 3126 3092 3091 3125
-f 3130 3096 3095 3129
-f 3134 3100 3099 3133
-f 3138 3104 3103 3137
-f 3142 3108 3107 3141
-f 3146 3112 3111 3145
-f 3179 3124 3123 3178
-f 3183 3128 3127 3182
-f 3187 3132 3131 3186
-f 3191 3136 3135 3190
-f 3195 3140 3139 3194
-f 3199 3144 3143 3198
-f 3203 3148 3147 3202
-f 3238 3239 3206 3153 3152
-f 3242 3243 3157 3156
-f 3246 3247 3161 3160
-f 3250 3251 3165 3164
-f 3254 3255 3169 3168
-f 3258 3259 3208 3173 3172 3207
-f 3262 3263 3177 3176
-f 3213 3182 3181 3212
-f 3217 3186 3185 3216
-f 3221 3190 3189 3220
-f 3225 3194 3193 3224
-f 3229 3198 3197 3228
-f 3233 3202 3201 3232
-f 3266 3211 3210 3265
-f 3270 3215 3214 3269
-f 3274 3219 3218 3273
-f 3278 3223 3222 3277
-f 3282 3227 3226 3281
-f 3286 3231 3230 3285
-f 3290 3235 3234 3289
-f 3322 3323 3240 3239
-f 3326 3327 3244 3243
-f 3330 3331 3248 3247
-f 3334 3335 3252 3251
-f 3338 3339 3256 3255
-f 3342 3343 3260 3259
-f 3293 3265 3264 3292
-f 3297 3269 3268 3296
-f 3301 3273 3272 3300
-f 3305 3277 3276 3304
-f 3309 3281 3280 3308
-f 3313 3285 3284 3312
-f 3317 3289 3288 3316
-f 3350 3295 3294 3349
-f 3354 3299 3298 3353
-f 3358 3303 3302 3357
-f 3362 3307 3306 3361
-f 3366 3311 3310 3365
-f 3370 3315 3314 3369
-f 3411 3320 3319 3410
-f 3414 3415 3324 3323
-f 3418 3419 3375 3328 3327 3374
-f 3422 3423 3379 3332 3331 3378
-f 3426 3427 3336 3335
-f 3430 3431 3380 3340 3339
-f 3434 3435 3344 3343
-f 3385 3349 3348 3384
-f 3389 3353 3352 3388
-f 3393 3357 3356 3392
-f 3397 3361 3360 3396
-f 3401 3365 3364 3400
-f 3405 3369 3368 3404
-f 3409 3373 3372 3408
-f 3442 3387 3386 3441
-f 3446 3391 3390 3445
-f 3450 3395 3394 3449
-f 3454 3399 3398 3453
-f 3458 3403 3402 3457
-f 3462 3407 3406 3461
-f 3495 3496 3412 3411
-f 3499 3500 3416 3415
-f 3503 3504 3420 3419
-f 3507 3508 3424 3423
-f 3511 3512 3428 3427
-f 3515 3516 3432 3431 3465
-f 3519 3520 3436 3435
-f 3470 3441 3440 3469
-f 3474 3445 3444 3473
-f 3478 3449 3448 3477
-f 3482 3453 3452 3481
-f 3486 3457 3456 3485
-f 3490 3461 3460 3489
-f 3523 3468 3467 3522
-f 3527 3472 3471 3526
-f 3531 3476 3475 3530
-f 3535 3480 3479 3534
-f 3539 3484 3483 3538
-f 3543 3488 3487 3542
-f 3547 3492 3491 3546
-f 3579 3580 3497 3496
-f 3583 3584 3501 3500
-f 3587 3588 3505 3504
-f 3591 3592 3509 3508
-f 3595 3596 3513 3512
-f 3599 3600 3517 3516 3549
-f 3603 3604 3521 3520
-f 3554 3526 3525 3553
-f 3558 3530 3529 3557
-f 3562 3534 3533 3561
-f 3566 3538 3537 3565
-f 3570 3542 3541 3569
-f 3574 3546 3545 3573
-f 3607 3552 3551 3606
-f 3611 3556 3555 3610
-f 3615 3560 3559 3614
-f 3619 3564 3563 3618
-f 3623 3568 3567 3622
-f 3627 3572 3571 3626
-f 3631 3576 3575 3630
-f 3665 3666 3581 3580
-f 3669 3670 3632 3585 3584
-f 3673 3674 3589 3588
-f 3677 3678 3593 3592
-f 3681 3682 3633 3597 3596
-f 3685 3686 3601 3600
-f 3636 3606 3605 3635
-f 3640 3610 3609 3639
-f 3644 3614 3613 3643
-f 3648 3618 3617 3647
-f 3652 3622 3621 3651
-f 3656 3626 3625 3655
-f 3660 3630 3629 3659
-f 3693 3638 3637 3692
-f 3697 3642 3641 3696
-f 3701 3646 3645 3700
-f 3705 3650 3649 3704
-f 3709 3654 3653 3708
-f 3713 3658 3657 3712
-f 3745 3663 3662 3744
-f 3748 3749 3667 3666
-f 3752 3753 3671 3670
-f 3756 3757 3675 3674
-f 3760 3761 3679 3678
-f 3764 3765 3683 3682
-f 3768 3769 3687 3686
-f 3719 3692 3691 3718
-f 3723 3696 3695 3722
-f 3727 3700 3699 3726
-f 3731 3704 3703 3730
-f 3735 3708 3707 3734
-f 3739 3712 3711 3738
-f 3743 3716 3715 3742
-f 3776 3721 3720 3775
-f 3780 3725 3724 3779
-f 3784 3729 3728 3783
-f 3788 3733 3732 3787
-f 3792 3737 3736 3791
-f 3796 3741 3740 3795
-f 3829 3830 3746 3745
-f 3833 3834 3750 3749
-f 3837 3838 3754 3753
-f 3841 3842 3758 3757
-f 3845 3846 3762 3761
-f 3849 3850 3799 3766 3765
-f 3853 3854 3770 3769
-f 3804 3775 3774 3803
-f 3808 3779 3778 3807
-f 3812 3783 3782 3811
-f 3816 3787 3786 3815
-f 3820 3791 3790 3819
-f 3824 3795 3794 3823
-f 3857 3802 3801 3856
-f 3861 3806 3805 3860
-f 3865 3810 3809 3864
-f 3869 3814 3813 3868
-f 3873 3818 3817 3872
-f 3877 3822 3821 3876
-f 3881 3826 3825 3880
-f 3930 3931 3831 3830
-f 3934 3935 3885 3835 3834
-f 3938 3939 3888 3839 3838
-f 3942 3943 3843 3842 3891
-f 3946 3947 3893 3847 3846
-f 3950 3951 3897 3851 3850 3896
-f 3954 3955 3900 3855 3854
-f 3905 3860 3859 3904
-f 3909 3864 3863 3908
-f 3913 3868 3867 3912
-f 3917 3872 3871 3916
-f 3921 3876 3875 3920
-f 3925 3880 3879 3924
-f 3958 3903 3902 3957
-f 3962 3907 3906 3961
-f 3966 3911 3910 3965
-f 3970 3915 3914 3969
-f 3974 3919 3918 3973
-f 3978 3923 3922 3977
-f 3982 3927 3926 3981
-f 2973 2972 3932 3931
-f 2969 2968 3936 3935
-f 2965 2964 3940 3939
-f 2961 2960 3944 3943
-f 2957 2956 3948 3947
-f 2953 2952 3952 3951
-f 3002 3957 3956 3003
-f 2998 3961 3960 2999
-f 2994 3965 3964 2995
-f 2990 3969 3968 2991
-f 2986 3973 3972 2987
-f 2982 3977 3976 2983
-f 2978 3981 3980 2979
-f 2977 3030 4001 4000
-f 3997 4004 4005 3996
-f 4372 4371 3992 3993
-f 4440 4012 4024 4025 3989
-f 3986 4028 4029 3985
-f 4002 4014 4015 4003
-f 4006 4018 4019 4007
-f 4010 4022 4023 4011
-f 4014 4031 4032 4015
-f 4351 4035 4036 4369
-f 4363 4039 4040 4360
-f 4026 4055 4056 4027
-f 3115 3149 4042 4030
-f 4033 4045 4046 4034
-f 4037 4049 4050 4038
-f 3149 3204 4059 4042
-f 4045 4062 4063 4046
-f 4365 4367 4050 4049
-f 4053 4070 4085 4086 4054
-f 4057 4072 4089 4090 4073 4058
-f 4060 4075 4076 4061
-f 4064 4079 4080 4065
-f 4068 4083 4084 4069
-f 4075 4092 4093 4076
-f 4349 4096 4097 4348
-f 4345 4100 4101 4344
-f 4087 4103 4119 4120 4104 4088
-f 3290 3318 4106 4091
-f 4094 4109 4110 4095
-f 4098 4113 4114 4099
-f 3318 3373 4123 4106
-f 4109 4126 4127 4110
-f 4355 4356 4114 4113
-f 4117 4134 4147 4148 4118
-f 4121 4151 4152 4122
-f 4124 4137 4138 4125
-f 4128 4141 4142 4129
-f 4132 4145 4146 4133
-f 4137 4154 4155 4138
-f 4415 4158 4159 4414
-f 4411 4162 4163 4410
-f 4149 4179 4180 4150
-f 3464 3493 4166 4153
-f 4156 4169 4170 4157
-f 4160 4173 4174 4161
-f 3493 3548 4183 4166
-f 4169 4186 4187 4170
-f 4408 4190 4191 4407
-f 4177 4194 4206 4207 4178
-f 4181 4210 4211 4182
-f 4184 4196 4197 4185
-f 4188 4200 4201 4189
-f 4192 4204 4205 4193
-f 4196 4213 4214 4197
-f 4393 4400 4201 4200
-f 4403 4404 4205 4204
-f 4208 4237 4238 4209
-f 3631 3661 4224 4212
-f 4215 4227 4228 4216
-f 4219 4231 4232 4220
-f 3661 3716 4241 4224
-f 4227 4244 4245 4228
-f 4398 4248 4249 4397
-f 4235 4252 4265 4266 4236
-f 4239 4253 4269 4270 4240
-f 4242 4255 4256 4243
-f 4246 4259 4260 4247
-f 4250 4263 4264 4251
-f 4255 4272 4273 4256
-f 4391 4276 4277 4380
-f 4377 4280 4281 4376
-f 4267 4283 4297 4298 4268
-f 3798 3827 4284 4271
-f 4274 4287 4288 4275
-f 4278 4291 4292 4279
-f 3827 3882 4301 4284
-f 4287 4304 4305 4288
-f 4382 4383 4292 4291
-f 4295 4312 4325 4326 4296
-f 4299 4329 4330 4313 4300
-f 4302 4315 4316 4303
-f 4306 4319 4320 4307
-f 4310 4323 4324 4311
-f 4315 4332 4333 4316
-f 4389 4336 4337 4388
-f 4385 4340 4341 4374
-f 4327 3988 3987 4328
-f 3982 2977 4000 4331
-f 4334 3997 3996 4335
-f 4338 3993 3992 4339
-f 4415 4414 4142 4141
-f 4411 4410 4146 4145
-f 4407 4406 4175 4174
-f 4356 4355 4130 4131
-f 4348 4347 4081 4080
-f 4359 4364 4068 4069
-f 4366 4350 4064 4065
-f 4368 4363 4022 4021
-f 4371 4372 4008 4009
-f 4388 4387 4321 4320
-f 4375 4384 4310 4311
-f 4381 4390 4306 4307
-f 4378 4377 4263 4262
-f 4398 4397 4232 4231
-f 4403 4402 4220 4221
-f 4084 4085 4416 4417
-f 4040 4052 4419
-f 4024 4012 4420
-f 4206 4194 4424
-f 4264 4265 4428 4429
-f 4281 4294 4431
-f 4325 4312 4432
-f 4146 4147 4436 4437
-f 4101 4116 4439
-# 4404 elements
diff --git a/data/mesh_06.vtk b/data/mesh_06.vtk
deleted file mode 100644 (file)
index ab3dc65..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-# vtk DataFile Version 3.0
-vtk output
-ASCII
-DATASET POLYDATA
-POINTS 4 float
-0 0 0
-10 0 0
-0 10 0
-10 10 0
-POLYGONS 2 8
-3 0 1 2 
-3 1 3 2 
diff --git a/data/save_dicomseries_as_singlefile_image.wxml b/data/save_dicomseries_as_singlefile_image.wxml
deleted file mode 100644 (file)
index b95d70c..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<cpPlugins_Workspace>
-    <filter category="IO" class="DicomSeriesReader" name="DicomSeriesReader" ViewX="-215" ViewY="-40">
-        <parameter name="FileNames" value="" type="OpenFileNameList"/>
-    </filter>
-    <filter category="IO" class="ImageWriter" name="ImageWriter" ViewX="26" ViewY="-7">
-        <parameter name="FileName" value="" type="SaveFileName"/>
-    </filter>
-    <connection>
-        <origin filter="DicomSeriesReader" name="Output"/>
-        <destination filter="ImageWriter" name="Input"/>
-    </connection>
-</cpPlugins_Workspace>
diff --git a/data/test.png b/data/test.png
deleted file mode 100644 (file)
index e54ce70..0000000
Binary files a/data/test.png and /dev/null differ
diff --git a/data/test2.png b/data/test2.png
deleted file mode 100644 (file)
index 7453ca4..0000000
Binary files a/data/test2.png and /dev/null differ
diff --git a/data/test3.png b/data/test3.png
deleted file mode 100644 (file)
index 2d29c73..0000000
Binary files a/data/test3.png and /dev/null differ
diff --git a/data/workspace_00.xml b/data/workspace_00.xml
deleted file mode 100644 (file)
index cbf689b..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" ?>
-<cpPlugins_Workspace>
-  <filter class="cpPlugins::IO::ImageReader" name="reader">
-    <parameter name="FileNames" type="StringList">
-      <item value="test.mhd" />
-    </parameter>
-    <parameter name="VectorType" type="Bool" value="0"/>
-  </filter>
-  <filter class="cpPlugins::IO::ImageWriter" name="writer">
-    <parameter name="FileName" type="String" value="new_test.mhd"/>
-  </filter>
-  <connection>
-    <origin filter="reader" name="Output"/>
-    <destination filter="writer" name="Input"/>
-  </connection>
-</cpPlugins_Workspace>
diff --git a/doc/uml/cpPlugins_classes.dia b/doc/uml/cpPlugins_classes.dia
deleted file mode 100644 (file)
index 7e24d9a..0000000
Binary files a/doc/uml/cpPlugins_classes.dia and /dev/null differ
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
deleted file mode 100644 (file)
index a40928e..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-SUBDIRS(
-  ItkVtkGlue
-  third_party
-  cpExtensions
-  cpPlugins_Instances
-  cpPlugins
-  )
-IF(USE_QT4)
-  SUBDIRS(
-    cpPipelineEditor
-    )
-ENDIF(USE_QT4)
-
-## eof - $RCSfile$
diff --git a/lib/ItkVtkGlue/CMakeLists.txt b/lib/ItkVtkGlue/CMakeLists.txt
deleted file mode 100644 (file)
index 4b26944..0000000
+++ /dev/null
@@ -1 +0,0 @@
-## eof - $RCSfile$
diff --git a/lib/ItkVtkGlue/itkImageToVTKImageFilter.h b/lib/ItkVtkGlue/itkImageToVTKImageFilter.h
deleted file mode 100644 (file)
index 9390eb8..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-/*=========================================================================
- *
- *  Copyright Insight Software Consortium
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0.txt
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- *
- *=========================================================================*/
-#ifndef itkImageToVTKImageFilter_h
-#define itkImageToVTKImageFilter_h
-
-#include "itkVTKImageExport.h"
-#include "vtkImageImport.h"
-#include "vtkImageData.h"
-
-namespace itk
-{
-
-/** \class ImageToVTKImageFilter
- * \brief Converts an ITK image into a VTK image and plugs a
- *  itk data pipeline to a VTK datapipeline.
- *
- *  This class puts together an itkVTKImageExporter and a vtkImageImporter.
- *  It takes care of the details related to the connection of ITK and VTK
- *  pipelines. The User will perceive this filter as an adaptor to which
- *  an itk::Image can be plugged as input and a vtkImage is produced as
- *  output.
- *
- * \ingroup   ITKVtkGlue
- *
- * \wiki
- * \wikiexample{IO/ImageToVTKImageFilter,Display an ITK image}
- * \wikiexample{IO/itkVtkImageConvertDICOM,Uses a custom user matrix to align the image with DICOM physical space}
- * \endwiki
- */
-template <typename TInputImage >
-class ImageToVTKImageFilter : public ProcessObject
-{
-public:
-  /** Standard class typedefs. */
-  typedef ImageToVTKImageFilter     Self;
-  typedef ProcessObject             Superclass;
-  typedef SmartPointer<Self>        Pointer;
-  typedef SmartPointer<const Self>  ConstPointer;
-
-  /** Method for creation through the object factory. */
-  itkNewMacro(Self);
-
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(ImageToVTKImageFilter, ProcessObject);
-
-  /** Some typedefs. */
-  typedef TInputImage                            InputImageType;
-  typedef typename InputImageType::ConstPointer  InputImagePointer;
-
-  typedef VTKImageExport< InputImageType>        ExporterFilterType;
-  typedef typename ExporterFilterType::Pointer   ExporterFilterPointer;
-
-  /** Get the output in the form of a vtkImage.
-      This call is delegated to the internal vtkImageImporter filter  */
-  vtkImageData *  GetOutput() const;
-
-  /** Set the input in the form of an itk::Image */
-  using Superclass::SetInput;
-  void SetInput( const InputImageType * );
-  InputImageType * GetInput();
-
-  /** Return the internal VTK image importer filter.
-      This is intended to facilitate users the access
-      to methods in the importer */
-  vtkImageImport * GetImporter() const;
-
-  /** Return the internal ITK image exporter filter.
-      This is intended to facilitate users the access
-      to methods in the exporter */
-  ExporterFilterType * GetExporter() const;
-
-  /** This call delegates the update to the importer */
-  virtual void Update() ITK_OVERRIDE;
-
-  /** This call delegates the update to the importer */
-  virtual void UpdateLargestPossibleRegion() ITK_OVERRIDE;
-
-protected:
-  ImageToVTKImageFilter();
-  virtual ~ImageToVTKImageFilter();
-
-private:
-  ImageToVTKImageFilter(const Self&) ITK_DELETE_FUNCTION;
-  void operator=(const Self&) ITK_DELETE_FUNCTION;
-
-  ExporterFilterPointer       m_Exporter;
-  vtkImageImport *            m_Importer;
-};
-
-} // end namespace itk
-
-#ifndef ITK_MANUAL_INSTANTIATION
-#include "itkImageToVTKImageFilter.hxx"
-#endif
-
-#endif
diff --git a/lib/ItkVtkGlue/itkImageToVTKImageFilter.hxx b/lib/ItkVtkGlue/itkImageToVTKImageFilter.hxx
deleted file mode 100644 (file)
index e134b3f..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-/*=========================================================================
- *
- *  Copyright Insight Software Consortium
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0.txt
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- *
- *=========================================================================*/
-#ifndef itkImageToVTKImageFilter_hxx
-#define itkImageToVTKImageFilter_hxx
-
-#include "itkImageToVTKImageFilter.h"
-
-namespace itk
-{
-
-/**
- * Constructor
- */
-template <typename TInputImage>
-ImageToVTKImageFilter<TInputImage>
-::ImageToVTKImageFilter()
-{
-  m_Importer = vtkImageImport::New();
-  m_Exporter = ExporterFilterType::New();
-
-  m_Importer->SetUpdateInformationCallback(m_Exporter->GetUpdateInformationCallback());
-  m_Importer->SetPipelineModifiedCallback(m_Exporter->GetPipelineModifiedCallback());
-  m_Importer->SetWholeExtentCallback(m_Exporter->GetWholeExtentCallback());
-  m_Importer->SetSpacingCallback(m_Exporter->GetSpacingCallback());
-  m_Importer->SetOriginCallback(m_Exporter->GetOriginCallback());
-  m_Importer->SetScalarTypeCallback(m_Exporter->GetScalarTypeCallback());
-  m_Importer->SetNumberOfComponentsCallback(m_Exporter->GetNumberOfComponentsCallback());
-  m_Importer->SetPropagateUpdateExtentCallback(m_Exporter->GetPropagateUpdateExtentCallback());
-  m_Importer->SetUpdateDataCallback(m_Exporter->GetUpdateDataCallback());
-  m_Importer->SetDataExtentCallback(m_Exporter->GetDataExtentCallback());
-  m_Importer->SetBufferPointerCallback(m_Exporter->GetBufferPointerCallback());
-  m_Importer->SetCallbackUserData(m_Exporter->GetCallbackUserData());
-
-}
-
-/**
- * Destructor
- */
-template <typename TInputImage>
-ImageToVTKImageFilter<TInputImage>
-::~ImageToVTKImageFilter()
-{
-  if( m_Importer )
-    {
-    m_Importer->Delete();
-    m_Importer = 0;
-    }
-}
-
-/**
- * Set an itk::Image as input
- */
-template <typename TInputImage>
-void
-ImageToVTKImageFilter<TInputImage>
-::SetInput( const InputImageType * inputImage )
-{
-  m_Exporter->SetInput( inputImage );
-}
-
-template <typename TInputImage>
-typename ImageToVTKImageFilter<TInputImage>::InputImageType *
-ImageToVTKImageFilter<TInputImage>
-::GetInput()
-{
-  return m_Exporter->GetInput();
-}
-
-/**
- * Get a vtkImage as output
- */
-template <typename TInputImage>
-vtkImageData *
-ImageToVTKImageFilter<TInputImage>
-::GetOutput() const
-{
-  return m_Importer->GetOutput();
-}
-
-/**
- * Get the importer filter
- */
-template <typename TInputImage>
-vtkImageImport *
-ImageToVTKImageFilter<TInputImage>
-::GetImporter() const
-{
-  return m_Importer;
-}
-
-/**
- * Get the exporter filter
- */
-template <typename TInputImage>
-typename ImageToVTKImageFilter<TInputImage>::ExporterFilterType *
-ImageToVTKImageFilter<TInputImage>
-::GetExporter() const
-{
-  return m_Exporter.GetPointer();
-}
-
-/**
- * Delegate the Update to the importer
- */
-template <typename TInputImage>
-void
-ImageToVTKImageFilter<TInputImage>
-::Update()
-{
-  m_Importer->Update();
-}
-
-/**
- * Delegate the UpdateLargestPossibleRegion to the importer
- */
-template <typename TInputImage>
-void
-ImageToVTKImageFilter<TInputImage>
-::UpdateLargestPossibleRegion()
-{
-  m_Importer->UpdateWholeExtent();
-}
-
-} // end namespace itk
-
-#endif
diff --git a/lib/ItkVtkGlue/itkVTKImageToImageFilter.h b/lib/ItkVtkGlue/itkVTKImageToImageFilter.h
deleted file mode 100644 (file)
index b4427c8..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-/*=========================================================================
- *
- *  Copyright Insight Software Consortium
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0.txt
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- *
- *=========================================================================*/
-
-#ifndef itkVTKImageToImageFilter_h
-#define itkVTKImageToImageFilter_h
-
-#include "itkVTKImageImport.h"
-#include "vtkImageExport.h"
-#include "vtkImageData.h"
-#include "vtkSmartPointer.h"
-
-#ifndef vtkFloatingPointType
-#define vtkFloatingPointType float
-#endif
-
-namespace itk
-{
-
-/** \class VTKImageToImageFilter
- * \brief Converts a VTK image into an ITK image and plugs a
- *  VTK data pipeline to an ITK datapipeline.
- *
- *  This class puts together an itk::VTKImageImport and a vtk::ImageExport.
- *  It takes care of the details related to the connection of ITK and VTK
- *  pipelines. The User will perceive this filter as an adaptor to which
- *  a vtkImageData can be plugged as input and an itk::Image is produced as
- *  output.
- *
- * \ingroup ITKVtkGlue
- */
-template <typename TOutputImage >
-class VTKImageToImageFilter : public VTKImageImport< TOutputImage >
-{
-public:
-  /** Standard class typedefs. */
-  typedef VTKImageToImageFilter             Self;
-  typedef VTKImageImport< TOutputImage >    Superclass;
-  typedef SmartPointer<Self>                Pointer;
-  typedef SmartPointer<const Self>          ConstPointer;
-
-  /** Method for creation through the object factory. */
-  itkNewMacro(Self);
-
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(VTKImageToImageFilter, VTKImageImport);
-
-  /** Some typedefs. */
-  typedef TOutputImage                              OutputImageType;
-  typedef typename    OutputImageType::ConstPointer OutputImagePointer;
-
-  /** Set the input in the form of a vtkImageData */
-  void SetInput( vtkImageData * );
-  using Superclass::SetInput;
-
-  /** Return the internal VTK image exporter filter.
-      This is intended to facilitate users the access
-      to methods in the exporter */
-  vtkImageExport * GetExporter() const;
-
-  /** Return the internal ITK image importer filter.
-      This is intended to facilitate users the access
-      to methods in the importer.
-      */
-  const Superclass * GetImporter() const;
-
-protected:
-  VTKImageToImageFilter();
-  virtual ~VTKImageToImageFilter();
-
-private:
-  VTKImageToImageFilter(const Self&) ITK_DELETE_FUNCTION;
-  void operator=(const Self&) ITK_DELETE_FUNCTION;
-
-  typedef vtkSmartPointer<vtkImageExport> ImageExportPointer;
-  ImageExportPointer m_Exporter;
-
-};
-
-} // end namespace itk
-
-#ifndef ITK_MANUAL_INSTANTIATION
-#include "itkVTKImageToImageFilter.hxx"
-#endif
-
-#endif
diff --git a/lib/ItkVtkGlue/itkVTKImageToImageFilter.hxx b/lib/ItkVtkGlue/itkVTKImageToImageFilter.hxx
deleted file mode 100644 (file)
index 334b02b..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-/*=========================================================================
- *
- *  Copyright Insight Software Consortium
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0.txt
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- *
- *=========================================================================*/
-
-#ifndef itkVTKImageToImageFilter_hxx
-#define itkVTKImageToImageFilter_hxx
-
-#include "itkVTKImageToImageFilter.h"
-
-#include "vtkVersion.h"
-
-namespace itk
-{
-
-/**
- * Constructor
- */
-template <typename TOutputImage>
-VTKImageToImageFilter<TOutputImage>
-::VTKImageToImageFilter()
-{
-
-  m_Exporter = vtkImageExport::New();
-
-  this->SetUpdateInformationCallback( m_Exporter->GetUpdateInformationCallback());
-  this->SetPipelineModifiedCallback( m_Exporter->GetPipelineModifiedCallback());
-  this->SetWholeExtentCallback( m_Exporter->GetWholeExtentCallback());
-  this->SetSpacingCallback( m_Exporter->GetSpacingCallback());
-  this->SetOriginCallback( m_Exporter->GetOriginCallback());
-  this->SetScalarTypeCallback( m_Exporter->GetScalarTypeCallback());
-  this->SetNumberOfComponentsCallback( m_Exporter->GetNumberOfComponentsCallback());
-  this->SetPropagateUpdateExtentCallback( m_Exporter->GetPropagateUpdateExtentCallback());
-  this->SetUpdateDataCallback( m_Exporter->GetUpdateDataCallback());
-  this->SetDataExtentCallback( m_Exporter->GetDataExtentCallback());
-  this->SetBufferPointerCallback( m_Exporter->GetBufferPointerCallback());
-  this->SetCallbackUserData( m_Exporter->GetCallbackUserData());
-
-}
-
-/**
- * Destructor
- */
-template <typename TOutputImage>
-VTKImageToImageFilter<TOutputImage>
-::~VTKImageToImageFilter()
-{
-  if( m_Exporter )
-    {
-    m_Exporter->Delete();
-    m_Exporter = 0;
-    }
-}
-
-/**
- * Set a vtkImageData as input
- */
-template <typename TOutputImage>
-void
-VTKImageToImageFilter<TOutputImage>
-::SetInput( vtkImageData * inputImage )
-{
-#if VTK_MAJOR_VERSION <= 5
-  m_Exporter->SetInput( inputImage );
-#else
-  m_Exporter->SetInputData( inputImage );
-#endif
-}
-
-/**
- * Get the exporter filter
- */
-template <typename TOutputImage>
-vtkImageExport *
-VTKImageToImageFilter<TOutputImage>
-::GetExporter() const
-{
-  return m_Exporter;
-}
-
-/**
- * Get the importer filter
- */
-template <typename TOutputImage>
-const typename VTKImageToImageFilter<TOutputImage>::Superclass *
-VTKImageToImageFilter<TOutputImage>
-::GetImporter() const
-{
-  return this;
-}
-
-} // end namespace itk
-
-#endif
diff --git a/lib/cpExtensions/Algorithms/BezierCurveFunction.h b/lib/cpExtensions/Algorithms/BezierCurveFunction.h
deleted file mode 100644 (file)
index 6bc0582..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-// -------------------------------------------------------------------------
-// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
-// -------------------------------------------------------------------------
-
-#ifndef __CPEXTENSIONS__ALGORITHMS__BEZIERCURVEFUNCTION__H__
-#define __CPEXTENSIONS__ALGORITHMS__BEZIERCURVEFUNCTION__H__
-
-#include <vector>
-#include <itkFunctionBase.h>
-#include <itkMatrix.h>
-
-namespace cpExtensions
-{
-  namespace Algorithms
-  {
-    /**
-     * Uses the De Casteljau's algorithm.
-     */
-    template< class V >
-    class BezierCurveFunction
-      : public itk::FunctionBase< typename V::ValueType, V >
-    {
-    public:
-      typedef BezierCurveFunction                           Self;
-      typedef itk::FunctionBase< typename V::ValueType, V > Superclass;
-      typedef itk::SmartPointer< Self >                     Pointer;
-      typedef itk::SmartPointer< const Self >               ConstPointer;
-
-      typedef V                     TVector;
-      typedef typename V::ValueType TScalar;
-
-      typedef
-      itk::Matrix< TScalar, TVector::Dimension, TVector::Dimension >
-      TFrame;
-      typedef std::vector< TVector > TVectorsContainer;
-
-    public:
-      itkNewMacro( Self );
-      itkTypeMacro( BezierCurveFunction, itkFunctionBase );
-
-    public:
-      virtual void AddPoint( const TVector& v );
-      virtual unsigned int GetNumberOfPoints( ) const;
-
-      virtual TVector Evaluate( const TScalar& u ) const ITK_OVERRIDE;
-      virtual TFrame EvaluateFrenetFrame( const TScalar& u ) const;
-      virtual TScalar EvaluateLength( ) const;
-
-    protected:
-      BezierCurveFunction( );
-      virtual ~BezierCurveFunction( ) { }
-
-      void _UpdateDerivative( ) const;
-
-    private:
-      // Purposely not implemented
-      BezierCurveFunction( const Self& other );
-      Self& operator=( const Self& other );
-
-    protected:
-      TVectorsContainer m_Vectors;
-      mutable Pointer   m_Derivative;
-      mutable bool      m_DerivativeUpdated;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#ifndef ITK_MANUAL_INSTANTIATION
-#include <cpExtensions/Algorithms/BezierCurveFunction.hxx>
-#endif // ITK_MANUAL_INSTANTIATION
-
-#endif // __CPEXTENSIONS__ALGORITHMS__BEZIERCURVEFUNCTION__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/BezierCurveFunction.hxx b/lib/cpExtensions/Algorithms/BezierCurveFunction.hxx
deleted file mode 100644 (file)
index 684360f..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-// -------------------------------------------------------------------------
-// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
-// -------------------------------------------------------------------------
-
-#ifndef __CPEXTENSIONS__ALGORITHMS__BEZIERCURVEFUNCTION__HXX__
-#define __CPEXTENSIONS__ALGORITHMS__BEZIERCURVEFUNCTION__HXX__
-
-// -------------------------------------------------------------------------
-template< class V >
-void cpExtensions::Algorithms::BezierCurveFunction< V >::
-AddPoint( const TVector& v )
-{
-  this->m_Vectors.push_back( v );
-  this->m_DerivativeUpdated = false;
-  this->Modified( );
-}
-
-// -------------------------------------------------------------------------
-template< class V >
-unsigned int cpExtensions::Algorithms::BezierCurveFunction< V >::
-GetNumberOfPoints( ) const
-{
-  return( this->m_Vectors.size( ) );
-}
-
-// -------------------------------------------------------------------------
-template< class V >
-typename cpExtensions::Algorithms::BezierCurveFunction< V >::
-TVector cpExtensions::Algorithms::BezierCurveFunction< V >::
-Evaluate( const TScalar& u ) const
-{
-  TVectorsContainer Q = this->m_Vectors;
-  unsigned int n = Q.size( );
-  TScalar _1u = TScalar( 1 ) - u;
-
-  for( unsigned int k = 1; k < n; k++ )
-  {
-    // CM Fixed a bug appearing under Windows : changed the stopping
-    // condition from <= to <. Otherwise, on the last step, an element out
-    // of the range of vector Q is accessed (Q[ i + 1 ])...
-    for( unsigned int i = 0; i < n - k; i++ )
-      Q[ i ] = ( Q[ i ] * _1u ) + ( Q[ i + 1 ] * u );
-
-  } // rof
-  return( Q[ 0 ] );
-}
-
-// -------------------------------------------------------------------------
-template< class V >
-typename cpExtensions::Algorithms::BezierCurveFunction< V >::
-TFrame cpExtensions::Algorithms::BezierCurveFunction< V >::
-EvaluateFrenetFrame( const TScalar& u ) const
-{
-  TFrame fr;
-  fr.Fill( TScalar( 0 ) );
-  if( TVector::Dimension == 2 )
-  {
-    this->_UpdateDerivative( );
-    this->m_Derivative->_UpdateDerivative( );
-
-    TVector vT = this->m_Derivative->Evaluate( u );
-    TScalar nvT = vT.GetNorm( );
-    if( TScalar( 0 ) < nvT )
-      vT /= nvT;
-
-    fr[ 0 ][ 0 ] = vT[ 0 ];
-    fr[ 1 ][ 0 ] = vT[ 1 ];
-
-    fr[ 0 ][ 1 ] = -vT[ 1 ];
-    fr[ 1 ][ 1 ] =  vT[ 0 ];
-  }
-  else if( TVector::Dimension == 3 )
-  {
-    this->_UpdateDerivative( );
-    this->m_Derivative->_UpdateDerivative( );
-    TVector vT = this->m_Derivative->Evaluate( u );
-    TScalar nvT = vT.GetNorm( );
-    if( nvT > TScalar( 0 ) )
-    {
-      vT /= nvT;
-      TVector vN = this->m_Derivative->m_Derivative->Evaluate( u );
-      TScalar nvN = vN.GetNorm( );
-      if( nvT > TScalar( 0 ) )
-      {
-        vN /= nvN;
-        TVector vB;
-        vB[ 0 ] = ( vT[ 1 ] * vN[ 2 ] ) - ( vT[ 2 ] * vN[ 1 ] );
-        vB[ 1 ] = ( vT[ 2 ] * vN[ 0 ] ) - ( vT[ 0 ] * vN[ 2 ] );
-        vB[ 2 ] = ( vT[ 0 ] * vN[ 1 ] ) - ( vT[ 1 ] * vN[ 0 ] );
-
-        for( unsigned int d = 0; d < 3; d++ )
-        {
-          fr[ d ][ 0 ] = vT[ d ];
-          fr[ d ][ 1 ] = vN[ d ];
-          fr[ d ][ 2 ] = vB[ d ];
-
-        } // rof
-      }
-      else
-        std::cerr << "ERROR normal" << std::endl;
-    }
-    else
-      std::cerr << "ERROR tangent" << std::endl;
-
-  } // fi
-  return( fr );
-}
-
-// -------------------------------------------------------------------------
-template< class V >
-typename cpExtensions::Algorithms::BezierCurveFunction< V >::
-TScalar cpExtensions::Algorithms::BezierCurveFunction< V >::
-EvaluateLength( ) const
-{
-  unsigned int n = this->GetNumberOfPoints( ) << 1;
-  TScalar d = TScalar( 0 );
-  TVector v0 = this->Evaluate( 0 );
-  for( unsigned int i = 1; i < n; i++ )
-  {
-    TVector v1 = this->Evaluate( TScalar( i ) / TScalar( n - 1 ) );
-    d += ( v1 - v0 ).GetNorm( );
-    v0 = v1;
-
-  } // rof
-  return( d );
-}
-
-// -------------------------------------------------------------------------
-template< class V >
-cpExtensions::Algorithms::BezierCurveFunction< V >::
-BezierCurveFunction( )
-  : Superclass( ),
-    m_DerivativeUpdated( false )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class V >
-void cpExtensions::Algorithms::BezierCurveFunction< V >::
-_UpdateDerivative( ) const
-{
-  if( this->m_DerivativeUpdated )
-    return;
-
-  this->m_Derivative = Self::New( );
-  unsigned int n = this->m_Vectors.size( ) - 1;
-  for( unsigned int i = 0; i < n; i++ )
-    this->m_Derivative->AddPoint(
-      TScalar( n ) * ( this->m_Vectors[ i + 1 ] - this->m_Vectors[ i ] )
-      );
-}
-
-#endif // __CPEXTENSIONS__ALGORITHMS__BEZIERCURVEFUNCTION__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/FluxMedialness.h b/lib/cpExtensions/Algorithms/FluxMedialness.h
deleted file mode 100644 (file)
index f71da00..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-#ifndef __CPEXTENSIONS__ALGORITHMS__FLUXMEDIALNESS__H__
-#define __CPEXTENSIONS__ALGORITHMS__FLUXMEDIALNESS__H__
-
-#include <cpExtensions/Algorithms/GradientImageFunctionBase.h>
-
-namespace cpExtensions
-{
-  namespace Algorithms
-  {
-    /**
-     */
-    template< class _TGradient >
-    class FluxMedialness
-      : public GradientImageFunctionBase< _TGradient >
-    {
-    public:
-      typedef FluxMedialness                          Self;
-      typedef GradientImageFunctionBase< _TGradient > Superclass;
-      typedef itk::SmartPointer< Self >               Pointer;
-      typedef itk::SmartPointer< const Self >         ConstPointer;
-
-      itkStaticConstMacro( Dimension, unsigned int, Superclass::Dimension );
-
-      typedef typename Superclass::TOutput TOutput;
-      typedef typename Superclass::TScalar TScalar;
-      typedef typename Superclass::TIndex  TIndex;
-      typedef typename Superclass::TVector TVector;
-      typedef typename Superclass::TPoint  TPoint;
-
-      typedef std::vector< double > TRCandidates;
-
-    public:
-      itkNewMacro( Self );
-      itkTypeMacro( FluxMedialness, GradientImageFunctionBase );
-
-      itkGetConstMacro( RadiusStep, double );
-      itkGetConstMacro( MinRadius, double );
-      itkGetConstMacro( MaxRadius, double );
-      itkGetConstMacro( RadialSampling, unsigned int );
-
-      itkSetMacro( RadiusStep, double );
-      itkSetMacro( MinRadius, double );
-      itkSetMacro( MaxRadius, double );
-      itkSetMacro( RadialSampling, unsigned int );
-
-    protected:
-      FluxMedialness( );
-      virtual ~FluxMedialness( );
-
-      virtual TOutput _Evaluate( const TIndex& i ) const ITK_OVERRIDE;
-
-    private:
-      // Purposely not implemented.
-      FluxMedialness( const Self& );
-      void operator=( const Self& );
-
-    protected:
-      double       m_MinRadius;
-      double       m_MaxRadius;
-      unsigned int m_RadialSampling;
-      double       m_RadiusStep;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#ifndef ITK_MANUAL_INSTANTIATION
-#  include <cpExtensions/Algorithms/FluxMedialness.hxx>
-#endif // ITK_MANUAL_INSTANTIATION
-
-#endif // __CPEXTENSIONS__ALGORITHMS__FLUXMEDIALNESS__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/FluxMedialness.hxx b/lib/cpExtensions/Algorithms/FluxMedialness.hxx
deleted file mode 100644 (file)
index f4d8b9c..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-#ifndef __CPEXTENSIONS__ALGORITHMS__FLUXMEDIALNESS__HXX__
-#define __CPEXTENSIONS__ALGORITHMS__FLUXMEDIALNESS__HXX__
-
-#include <cmath>
-#include <vnl/vnl_math.h>
-#include <itkLineConstIterator.h>
-
-// -------------------------------------------------------------------------
-template< class _TGradient >
-cpExtensions::Algorithms::FluxMedialness< _TGradient >::
-FluxMedialness( )
-  : Superclass( ),
-    m_MinRadius( double( 0 ) ),
-    m_MaxRadius( double( 1 ) ),
-    m_RadialSampling( 4 ),
-    m_RadiusStep( double( 1 ) )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class _TGradient >
-cpExtensions::Algorithms::FluxMedialness< _TGradient >::
-~FluxMedialness( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class _TGradient >
-typename cpExtensions::Algorithms::FluxMedialness< _TGradient >::
-TOutput cpExtensions::Algorithms::FluxMedialness< _TGradient >::
-_Evaluate( const TIndex& i ) const
-{
-  itk::Object::GlobalWarningDisplayOff( );
-
-  double pi2n = double( 2 ) * double( vnl_math::pi );
-  pi2n /= int( this->m_RadialSampling );
-  const _TGradient* img = this->GetInputImage( );
-  // Gradient in central pixel
-  //TVector grad_idx = img->GetPixel( i );
-
-  double Flux1 = 0;
-  double Flux = 0;
-
-  TRCandidates FluxFinal;
-  TRCandidates radiusGenerated;
-  double dR = double( 0 );
-  double optR = double( 0 );
-  TPoint center;
-  img->TransformIndexToPhysicalPoint( i, center );
-  double radius = double(0);
-
-  for( unsigned int cx = 0; cx < Self::Dimension - 1; cx++ )
-  {
-    for( unsigned int cy = cx + 1; cy < Self::Dimension; cy++ )
-    {
-      dR = double( 0 );
-      FluxFinal.clear();
-      radiusGenerated.clear();
-      radius = this->m_MinRadius;
-      while( radius <= this->m_MaxRadius )
-      {
-        Flux = 0;
-        for( unsigned int I_radial = 0; I_radial < this->m_RadialSampling ; I_radial++ )
-        {
-          Flux1 = 0;
-
-          // Direction of first profile
-          typename TPoint::VectorType dir1;
-          dir1.Fill( double( 0 ) );
-          dir1[ cx ] = std::cos( pi2n * double( I_radial ) );
-          dir1[ cy ] = std::sin( pi2n * double( I_radial ) );
-          dir1 *= (radius);
-          TIndex rIdx;
-          if (img->TransformPhysicalPointToIndex( center + dir1, rIdx ))
-          {
-            TVector grad_rIdx = img->GetPixel( rIdx );
-            TVector u_i1;
-            u_i1.SetVnlVector( ( center - ( center + dir1 ) ).GetVnlVector( ) );
-            u_i1.Normalize( );
-            // dot product
-            Flux1 = grad_rIdx * u_i1;
-          }
-
-          Flux += Flux1;
-
-        } // rof
-        //std::cout<<" radius:"<<radius<<std::endl;
-        //std::cout<<"Center:"<<center[0]<<" "<<center[1]<<std::endl;
-        //std::cout<<"edge:"<<center[0]+radius*std::cos( pi2n * double( 0 ) )<<std::endl;
-        Flux /= this->m_RadialSampling;
-        FluxFinal.push_back(Flux);
-        radiusGenerated.push_back(radius);
-        radius += this->m_RadiusStep;
-
-      }     //elihw
-
-      dR= *( std::max_element( FluxFinal.begin(), FluxFinal.end() ) );
-      optR= (dR>optR)? dR:optR;
-
-    } // rof
-
-  } // rof
-  return( TScalar(optR) );
-}
-
-#endif // __CPEXTENSIONS__ALGORITHMS__FLUXMEDIALNESS__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/GaussianDensityImageFilter.h b/lib/cpExtensions/Algorithms/GaussianDensityImageFilter.h
deleted file mode 100644 (file)
index 308b3c5..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-// -------------------------------------------------------------------------
-// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
-// -------------------------------------------------------------------------
-
-#ifndef __CPEXTENSIONS__ALGORITHMS__GAUSSIANDENSITYIMAGEFILTER__H__
-#define __CPEXTENSIONS__ALGORITHMS__GAUSSIANDENSITYIMAGEFILTER__H__
-
-#include <itkImageToImageFilter.h>
-#include <itkImageScanlineConstIterator.h>
-#include <itkImageScanlineIterator.h>
-#include <itkProgressReporter.h>
-
-namespace cpExtensions
-{
-  namespace Algorithms
-  {
-    /**
-     */
-    template< class _TInputImage, class _TEstimator >
-    class GaussianDensityImageFilter
-      : public itk::ImageToImageFilter< _TInputImage, itk::Image< typename _TEstimator::TScalar, _TInputImage::ImageDimension > >
-    {
-    public:
-      typedef typename _TEstimator::TScalar                         TScalar;
-      typedef itk::Image< TScalar, _TInputImage::ImageDimension >   TOutputImage;
-      typedef GaussianDensityImageFilter                            Self;
-      typedef itk::ImageToImageFilter< _TInputImage, TOutputImage > Superclass;
-      typedef itk::SmartPointer< Self >                             Pointer;
-      typedef itk::SmartPointer< const Self >                       ConstPointer;
-
-      typedef _TInputImage TInputImage;
-      typedef _TEstimator  TEstimator;
-      typedef typename TOutputImage::RegionType TRegion;
-
-    public:
-      itkNewMacro( Self );
-      itkTypeMacro( GaussianDensityImageFilter, itkImageToImageFilter );
-
-      itkGetConstObjectMacro( Estimator, TEstimator );
-      itkSetConstObjectMacro( Estimator, TEstimator );
-
-    protected:
-      GaussianDensityImageFilter( )
-        : Superclass( )
-        {
-        }
-      virtual ~GaussianDensityImageFilter( )
-        {
-        }
-
-      virtual void ThreadedGenerateData(
-        const TRegion& region,
-        itk::ThreadIdType threadId
-        )
-        {
-          const typename TRegion::SizeType& regionSize = region.GetSize( );
-          if( regionSize[ 0 ] == 0 )
-            return;
-          const TInputImage* in = this->GetInput( );
-          TOutputImage* out = this->GetOutput( 0 );
-
-          const size_t nLines = region.GetNumberOfPixels( ) / regionSize[ 0 ];
-          itk::ProgressReporter progress( this, threadId, nLines );
-
-          // Define the iterators
-          itk::ImageScanlineConstIterator< TInputImage > inIt( in, region );
-          itk::ImageScanlineIterator< TOutputImage > outIt( out, region );
-
-          inIt.GoToBegin( );
-          outIt.GoToBegin( );
-          while( !inIt.IsAtEnd( ) )
-          {
-            while( !inIt.IsAtEndOfLine( ) )
-            {
-              if( this->m_Estimator.IsNotNull( ) )
-                outIt.Set( this->m_Estimator->Density( inIt.Get( ) ) );
-              ++inIt;
-              ++outIt;
-
-            } // elihw
-            inIt.NextLine( );
-            outIt.NextLine( );
-            progress.CompletedPixel( );
-
-          } // elihw
-        }
-
-    private:
-      // Purposely not implemented.
-      GaussianDensityImageFilter( const Self& );
-      void operator=( const Self& );
-
-    protected:
-      typename TEstimator::ConstPointer m_Estimator;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#endif // __CPEXTENSIONS__ALGORITHMS__GAUSSIANDENSITYIMAGEFILTER__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/GradientImageFunctionBase.h b/lib/cpExtensions/Algorithms/GradientImageFunctionBase.h
deleted file mode 100644 (file)
index d416e04..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-#ifndef __CPEXTENSIONS__ALGORITHMS__GRADIENTIMAGEFUNCTIONBASE__H__
-#define __CPEXTENSIONS__ALGORITHMS__GRADIENTIMAGEFUNCTIONBASE__H__
-
-#include <itkImageFunction.h>
-
-namespace cpExtensions
-{
-  namespace Algorithms
-  {
-    /**
-     * Base class to compute values based on image gradients (vector).
-     */
-    template< class _TGradient >
-    class GradientImageFunctionBase
-      : public itk::ImageFunction< _TGradient, typename _TGradient::PixelType::ValueType, typename _TGradient::PixelType::ValueType >
-    {
-    public:
-      // Types from input arguments
-      typedef _TGradient                     TGradient;
-      typedef typename _TGradient::PixelType TVector;
-      typedef typename TVector::ValueType    TScalar;
-      itkStaticConstMacro( Dimension, unsigned int, _TGradient::ImageDimension );
-
-      // Standard itk types
-      typedef GradientImageFunctionBase                          Self;
-      typedef itk::ImageFunction< _TGradient, TScalar, TScalar > Superclass;
-      typedef itk::SmartPointer< Self >                          Pointer;
-      typedef itk::SmartPointer< const Self >                    ConstPointer;
-
-      // Types from base itk::ImageFunction
-      typedef typename Superclass::InputType           TInput;
-      typedef typename Superclass::OutputType          TOutput;
-      typedef typename Superclass::PointType           TPoint;
-      typedef typename Superclass::ContinuousIndexType TContIndex;
-      typedef typename Superclass::IndexType           TIndex;
-
-    public:
-      itkTypeMacro( GradientImageFunctionBase, itkImageFunction );
-
-    public:
-      virtual void Prepare( ) const;
-      virtual TOutput Evaluate( const TPoint& p ) const ITK_OVERRIDE;
-      virtual TOutput EvaluateAtIndex( const TIndex& i ) const ITK_OVERRIDE;
-      virtual TOutput EvaluateAtContinuousIndex( const TContIndex& i ) const ITK_OVERRIDE;
-
-    protected:
-      GradientImageFunctionBase( );
-      virtual ~GradientImageFunctionBase( );
-
-      virtual TOutput _Evaluate( const TIndex& i ) const = 0;
-
-    private:
-      // Purposely not implemented.
-      GradientImageFunctionBase( const Self& );
-      void operator=( const Self& );
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#ifndef ITK_MANUAL_INSTANTIATION
-#  include <cpExtensions/Algorithms/GradientImageFunctionBase.hxx>
-#endif // ITK_MANUAL_INSTANTIATION
-
-#endif // __CPEXTENSIONS__ALGORITHMS__GRADIENTIMAGEFUNCTIONBASE__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/GradientImageFunctionBase.hxx b/lib/cpExtensions/Algorithms/GradientImageFunctionBase.hxx
deleted file mode 100644 (file)
index f4cb928..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-#ifndef __CPEXTENSIONS__ALGORITHMS__GRADIENTIMAGEFUNCTIONBASE__HXX__
-#define __CPEXTENSIONS__ALGORITHMS__GRADIENTIMAGEFUNCTIONBASE__HXX__
-
-// -------------------------------------------------------------------------
-template< class _TGradient >
-void cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient >::
-Prepare( ) const
-{
-}
-
-// -------------------------------------------------------------------------
-template< class _TGradient >
-typename cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient >::
-TOutput cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient >::
-Evaluate( const TPoint& p ) const
-{
-  TIndex i;
-  this->GetInputImage( )->TransformPhysicalPointToIndex( p, i );
-  return( this->EvaluateAtIndex( i ) );
-}
-
-// -------------------------------------------------------------------------
-template< class _TGradient >
-typename cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient >::
-TOutput cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient >::
-EvaluateAtIndex( const TIndex& i ) const
-{
-  return( this->_Evaluate( i ) );
-}
-
-// -------------------------------------------------------------------------
-template< class _TGradient >
-typename cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient >::
-TOutput cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient >::
-EvaluateAtContinuousIndex( const TContIndex& i ) const
-{
-  TPoint p;
-  this->GetInputImage( )->TransformContinuousIndexToPhysicalPoint( i, p );
-  return( this->Evaluate( p ) );
-}
-
-// -------------------------------------------------------------------------
-template< class _TGradient >
-cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient >::
-GradientImageFunctionBase( )
-  : Superclass( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class _TGradient >
-cpExtensions::Algorithms::GradientImageFunctionBase< _TGradient >::
-~GradientImageFunctionBase( )
-{
-}
-
-#endif // __CPEXTENSIONS__ALGORITHMS__GRADIENTIMAGEFUNCTIONBASE__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/GulsunTekMedialness.h b/lib/cpExtensions/Algorithms/GulsunTekMedialness.h
deleted file mode 100644 (file)
index 49eb762..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-#ifndef __CPEXTENSIONS__ALGORITHMS__GULSUNTEKMEDIALNESS__H__
-#define __CPEXTENSIONS__ALGORITHMS__GULSUNTEKMEDIALNESS__H__
-
-#include <cpExtensions/Algorithms/GradientImageFunctionBase.h>
-
-namespace cpExtensions
-{
-  namespace Algorithms
-  {
-    /**
-     */
-    template< class _TGradient >
-    class GulsunTekMedialness
-      : public GradientImageFunctionBase< _TGradient >
-    {
-    public:
-      typedef GulsunTekMedialness                     Self;
-      typedef GradientImageFunctionBase< _TGradient > Superclass;
-      typedef itk::SmartPointer< Self >               Pointer;
-      typedef itk::SmartPointer< const Self >         ConstPointer;
-
-      itkStaticConstMacro( Dimension, unsigned int, Superclass::Dimension );
-
-      typedef typename Superclass::TOutput TOutput;
-      typedef typename Superclass::TScalar TScalar;
-      typedef typename Superclass::TIndex  TIndex;
-      typedef typename Superclass::TVector TVector;
-      typedef typename Superclass::TPoint  TPoint;
-      typedef typename TIndex::OffsetType  TOffset;
-
-      typedef std::vector< double >  TProfile;
-      typedef std::vector< TOffset > TOffsets;
-
-    public:
-      itkNewMacro( Self );
-      itkTypeMacro( GulsunTekMedialness, GradientImageFunctionBase );
-
-      itkGetConstMacro( MinRadius, double );
-      itkGetConstMacro( MaxRadius, double );
-      itkGetConstMacro( ProfileSampling, unsigned int );
-      itkGetConstMacro( RadialSampling, unsigned int );
-
-      itkSetMacro( MinRadius, double );
-      itkSetMacro( MaxRadius, double );
-      itkSetMacro( ProfileSampling, unsigned int );
-      itkSetMacro( RadialSampling, unsigned int );
-
-    protected:
-      GulsunTekMedialness( );
-      virtual ~GulsunTekMedialness( );
-
-      virtual TOutput _Evaluate( const TIndex& i ) const ITK_OVERRIDE;
-
-    private:
-      // Purposely not implemented.
-      GulsunTekMedialness( const Self& );
-      void operator=( const Self& );
-
-    protected:
-      double       m_MinRadius;
-      double       m_MaxRadius;
-      unsigned int m_ProfileSampling;
-      unsigned int m_RadialSampling;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#ifndef ITK_MANUAL_INSTANTIATION
-#  include <cpExtensions/Algorithms/GulsunTekMedialness.hxx>
-#endif // ITK_MANUAL_INSTANTIATION
-
-#endif // __CPEXTENSIONS__ALGORITHMS__GULSUNTEKMEDIALNESS__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/GulsunTekMedialness.hxx b/lib/cpExtensions/Algorithms/GulsunTekMedialness.hxx
deleted file mode 100644 (file)
index 941a37c..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-#ifndef __CPEXTENSIONS__ALGORITHMS__GULSUNTEKMEDIALNESS__HXX__
-#define __CPEXTENSIONS__ALGORITHMS__GULSUNTEKMEDIALNESS__HXX__
-
-#include <cmath>
-#include <vnl/vnl_math.h>
-#include <itkLineConstIterator.h>
-
-// -------------------------------------------------------------------------
-template< class _TGradient >
-cpExtensions::Algorithms::GulsunTekMedialness< _TGradient >::
-GulsunTekMedialness( )
-  : Superclass( ),
-    m_MinRadius( double( 0 ) ),
-    m_MaxRadius( double( 1 ) ),
-    m_ProfileSampling( 4 ),
-    m_RadialSampling( 10 )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class _TGradient >
-cpExtensions::Algorithms::GulsunTekMedialness< _TGradient >::
-~GulsunTekMedialness( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class _TGradient >
-typename cpExtensions::Algorithms::GulsunTekMedialness< _TGradient >::
-TOutput cpExtensions::Algorithms::GulsunTekMedialness< _TGradient >::
-_Evaluate( const TIndex& i ) const
-{
-  itk::Object::GlobalWarningDisplayOff( );
-
-  // Various values
-  const _TGradient* in = this->GetInputImage( );
-  double pi2n =
-    double( 2 ) * double( vnl_math::pi ) /
-    double( this->m_ProfileSampling );
-  double rOff = this->m_MaxRadius / double( this->m_RadialSampling - 1 );
-  double optR = double( 0 );
-  TPoint pnt;
-  in->TransformIndexToPhysicalPoint( i, pnt );
-
-  // Main loop
-  for( unsigned int cx = 0; cx < Self::Dimension - 1; cx++ )
-  {
-    for( unsigned int cy = cx + 1; cy < Self::Dimension; cy++ )
-    {
-      TProfile maxProfile( this->m_RadialSampling, double( 0 ) );
-      for( unsigned int p = 0; p < this->m_ProfileSampling; p++ )
-      {
-        double a = pi2n * double( p );
-
-        // Direction of this profile
-        TVector dir;
-        dir.Fill( TScalar( 0 ) );
-        dir[ cx ] = TScalar( std::cos( a ) );
-        dir[ cy ] = TScalar( std::sin( a ) );
-
-        double maxrise = double( 0 );
-        double maxfall = double( -1 );
-        TProfile profile;
-        for( unsigned int r = 0; r < this->m_RadialSampling; r++ )
-        {
-          double radius = double( r ) * rOff;
-          TIndex idx;
-          typename TPoint::VectorType aux;
-          aux.SetVnlVector( dir.GetVnlVector( ) );
-          if(
-            in->TransformPhysicalPointToIndex( pnt + ( aux * radius ), idx )
-            )
-          {
-            TVector g = in->GetPixel( idx );
-            double b = double( g.GetNorm( ) );
-            if( double( g * dir ) < double( 0 ) )
-              b *= double( -1 );
-            maxrise = ( b > maxrise )? b: maxrise;
-            if( radius >= this->m_MinRadius )
-              maxfall = ( b < maxfall )? b: maxfall;
-            profile.push_back( -b - maxrise );
-          }
-          else
-            profile.push_back( double( 0 ) );
-
-        } // rof
-
-        for( unsigned int r = 0; r < this->m_RadialSampling; r++ )
-        {
-          double E = profile[ r ] / -maxfall;
-          E = ( E < double( 0 ) )? double( 0 ): E;
-          E = ( E > double( 1 ) )? double( 1 ): E;
-          maxProfile[ r ] += E;
-
-        } // rof
-
-      } // rof
-
-      for( unsigned int r = 0; r < this->m_RadialSampling; r++ )
-      {
-        double E = maxProfile[ r ] / double( this->m_RadialSampling );
-        optR = ( E > optR )? E: optR;
-
-      } // rof
-
-    } // rof
-
-  } // rof
-  return( TScalar( optR ) );
-}
-
-#endif // __CPEXTENSIONS__ALGORITHMS__GULSUNTEKMEDIALNESS__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/ImageFunctionFilter.h b/lib/cpExtensions/Algorithms/ImageFunctionFilter.h
deleted file mode 100644 (file)
index 731f0f5..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-// -------------------------------------------------------------------------
-// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
-// -------------------------------------------------------------------------
-
-#ifndef __CPEXTENSIONS__ALGORITHMS__IMAGEFUNCTIONFILTER__H__
-#define __CPEXTENSIONS__ALGORITHMS__IMAGEFUNCTIONFILTER__H__
-
-#include <itkImageToImageFilter.h>
-
-namespace cpExtensions
-{
-  namespace Algorithms
-  {
-    /**
-     */
-    template< class _TInput, class _TOutput, class _TFunction >
-    class ImageFunctionFilter
-      : public itk::ImageToImageFilter< _TInput, _TOutput >
-    {
-    public:
-      typedef ImageFunctionFilter                          Self;
-      typedef itk::ImageToImageFilter< _TInput, _TOutput > Superclass;
-      typedef itk::SmartPointer< Self >                    Pointer;
-      typedef itk::SmartPointer< const Self >              ConstPointer;
-
-      typedef _TInput    TInput;
-      typedef _TOutput   TOutput;
-      typedef _TFunction TFunction;
-
-      typedef typename TOutput::RegionType TRegion;
-
-    public:
-      itkNewMacro( Self );
-      itkTypeMacro( ImageFunctionFilter, itkImageToImageFilter );
-
-      itkGetObjectMacro( Function, TFunction );
-      itkSetObjectMacro( Function, TFunction );
-
-    protected:
-      ImageFunctionFilter( );
-      virtual ~ImageFunctionFilter( );
-
-      virtual void BeforeThreadedGenerateData( ) ITK_OVERRIDE;
-      virtual void ThreadedGenerateData(
-        const TRegion& region,
-        itk::ThreadIdType threadId
-        ) ITK_OVERRIDE;
-
-    private:
-      // Purposely not implemented.
-      ImageFunctionFilter( const Self& );
-      void operator=( const Self& );
-
-    protected:
-      typename TFunction::Pointer m_Function;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#ifndef ITK_MANUAL_INSTANTIATION
-#include <cpExtensions/Algorithms/ImageFunctionFilter.hxx>
-#endif // ITK_MANUAL_INSTANTIATION
-
-#endif // __CPEXTENSIONS__ALGORITHMS__IMAGEFUNCTIONFILTER__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/ImageFunctionFilter.hxx b/lib/cpExtensions/Algorithms/ImageFunctionFilter.hxx
deleted file mode 100644 (file)
index c96c092..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-// -------------------------------------------------------------------------
-// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
-// -------------------------------------------------------------------------
-
-#ifndef __CPEXTENSIONS__ALGORITHMS__IMAGEFUNCTIONFILTER__HXX__
-#define __CPEXTENSIONS__ALGORITHMS__IMAGEFUNCTIONFILTER__HXX__
-
-#include <itkMacro.h>
-#include <itkImageRegionConstIteratorWithIndex.h>
-#include <itkImageRegionIteratorWithIndex.h>
-#include <itkProgressReporter.h>
-
-// -------------------------------------------------------------------------
-template< class _TInput, class _TOutput, class _TFilter >
-cpExtensions::Algorithms::ImageFunctionFilter< _TInput, _TOutput, _TFilter >::
-ImageFunctionFilter( )
-  : Superclass( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class _TInput, class _TOutput, class _TFilter >
-cpExtensions::Algorithms::ImageFunctionFilter< _TInput, _TOutput, _TFilter >::
-~ImageFunctionFilter( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class _TInput, class _TOutput, class _TFilter >
-void cpExtensions::Algorithms::ImageFunctionFilter< _TInput, _TOutput, _TFilter >::
-BeforeThreadedGenerateData( )
-{
-  if( this->m_Function.IsNull( ) )
-    itkExceptionMacro( << "Please set a valid itk::ImageFunction" );
-  this->m_Function->SetInputImage( this->GetInput( ) );
-}
-
-// -------------------------------------------------------------------------
-template< class _TInput, class _TOutput, class _TFilter >
-void cpExtensions::Algorithms::ImageFunctionFilter< _TInput, _TOutput, _TFilter >::
-ThreadedGenerateData( const TRegion& region, itk::ThreadIdType threadId )
-{
-  const typename TRegion::SizeType& regionSize = region.GetSize( );
-  if( regionSize[ 0 ] == 0 )
-    return;
-  const _TInput* in = this->GetInput( );
-  _TOutput* out = this->GetOutput( 0 );
-
-  itk::ProgressReporter pr( this, threadId, region.GetNumberOfPixels( ) );
-
-  // Define the iterators
-  itk::ImageRegionConstIteratorWithIndex< TInput > iIt( in, region );
-  itk::ImageRegionIteratorWithIndex< TOutput > oIt( out, region );
-
-  iIt.GoToBegin( );
-  oIt.GoToBegin( );
-  for( ; !iIt.IsAtEnd( ) && !oIt.IsAtEnd( ); ++iIt, ++oIt )
-  {
-    oIt.Set( this->m_Function->EvaluateAtIndex( iIt.GetIndex( ) ) );
-    pr.CompletedPixel( );
-
-  } // rof
-}
-
-#endif // __CPEXTENSIONS__ALGORITHMS__IMAGEFUNCTIONFILTER__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/ImageFunctorFilter.h b/lib/cpExtensions/Algorithms/ImageFunctorFilter.h
deleted file mode 100644 (file)
index d8a7eca..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-// -------------------------------------------------------------------------
-// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
-// -------------------------------------------------------------------------
-
-#ifndef __CPEXTENSIONS__ALGORITHMS__IMAGEFUNCTORFILTER__H__
-#define __CPEXTENSIONS__ALGORITHMS__IMAGEFUNCTORFILTER__H__
-
-#include <itkImageToImageFilter.h>
-#include <itkImageScanlineConstIterator.h>
-#include <itkImageScanlineIterator.h>
-#include <itkProgressReporter.h>
-
-namespace cpExtensions
-{
-  namespace Algorithms
-  {
-    /**
-     */
-    template< class I, class O, class F >
-    class ImageFunctorFilter
-      : public itk::ImageToImageFilter< I, O >
-    {
-    public:
-      typedef ImageFunctorFilter             Self;
-      typedef itk::ImageToImageFilter< I, O > Superclass;
-      typedef itk::SmartPointer< Self >       Pointer;
-      typedef itk::SmartPointer< const Self > ConstPointer;
-
-      typedef I TInputImage;
-      typedef O TOutputImage;
-      typedef F TFunctor;
-
-      typedef typename O::RegionType TRegion;
-
-    public:
-      itkNewMacro( Self );
-      itkTypeMacro( ImageFunctorFilter, itkImageToImageFilter );
-
-      itkGetMacro( Functor, F );
-      itkGetConstMacro( Functor, F );
-
-    protected:
-      ImageFunctorFilter( )
-        : Superclass( )
-        {
-        }
-      virtual ~ImageFunctorFilter( )
-        {
-        }
-
-      virtual void ThreadedGenerateData(
-        const TRegion& region,
-        itk::ThreadIdType threadId
-        )
-        {
-          const typename TRegion::SizeType& regionSize = region.GetSize( );
-          if( regionSize[ 0 ] == 0 )
-            return;
-          const I* in = this->GetInput( );
-          O* out = this->GetOutput( 0 );
-
-          const size_t nLines = region.GetNumberOfPixels( ) / regionSize[ 0 ];
-          itk::ProgressReporter progress( this, threadId, nLines );
-
-          // Define the iterators
-          itk::ImageScanlineConstIterator< I > inIt( in, region );
-          itk::ImageScanlineIterator< O > outIt( out, region );
-
-          inIt.GoToBegin( );
-          outIt.GoToBegin( );
-          while( !inIt.IsAtEnd( ) )
-          {
-            while( !inIt.IsAtEndOfLine( ) )
-            {
-              outIt.Set( this->m_Functor( inIt.Get( ) ) );
-              ++inIt;
-              ++outIt;
-
-            } // elihw
-            inIt.NextLine( );
-            outIt.NextLine( );
-            progress.CompletedPixel( );
-
-          } // elihw
-        }
-
-    private:
-      // Purposely not implemented.
-      ImageFunctorFilter( const Self& );
-      void operator=( const Self& );
-
-    protected:
-      F m_Functor;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#endif // __CPEXTENSIONS__ALGORITHMS__IMAGEFUNCTORFILTER__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/InertiaMedialness.h b/lib/cpExtensions/Algorithms/InertiaMedialness.h
deleted file mode 100644 (file)
index e385513..0000000
+++ /dev/null
@@ -1,215 +0,0 @@
-// -------------------------------------------------------------------------
-// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
-// -------------------------------------------------------------------------
-
-#ifndef __CPEXTENSIONS__ALGORITHMS__INERTIAMEDIALNESS__H__
-#define __CPEXTENSIONS__ALGORITHMS__INERTIAMEDIALNESS__H__
-
-#include <map>
-#include <itkImageFunction.h>
-
-#include <cpExtensions/Algorithms/InertiaTensorFunction.h>
-#include <itkImageRegionConstIteratorWithIndex.h>
-
-namespace cpExtensions
-{
-  namespace Algorithms
-  {
-    /**
-     */
-    template< class I, class S = float >
-    class InertiaMedialness
-      : public itk::ImageFunction< I, S, S >
-    {
-    public:
-      // Standard itk types
-      typedef InertiaMedialness               Self;
-      typedef itk::ImageFunction< I, S, S >   Superclass;
-      typedef itk::SmartPointer< Self >       Pointer;
-      typedef itk::SmartPointer< const Self > ConstPointer;
-
-      // Types from base itk::ImageFunction
-      typedef typename Superclass::InputType           TInput;
-      typedef typename Superclass::OutputType          TOutput;
-      typedef typename Superclass::PointType           TPoint;
-      typedef typename Superclass::ContinuousIndexType TContIndex;
-      typedef typename Superclass::IndexType           TIndex;
-      typedef typename TIndex::OffsetType              TOffset;
-
-      // Sparse buffer
-      typedef std::map< TIndex, TOutput, typename TIndex::LexicographicCompare > TBuffer;
-
-      typedef InertiaTensorFunction< S, I::ImageDimension > TInertia;
-
-    public:
-      itkNewMacro( Self );
-      itkTypeMacro( InertiaMedialness, itkImageFunction );
-
-      itkBooleanMacro( BufferResults );
-      itkGetConstMacro( BufferResults, bool );
-      itkGetConstMacro( MaxRadius, double );
-
-      itkSetMacro( BufferResults, bool );
-      itkSetMacro( MaxRadius, double );
-
-    public:
-      virtual void ResetBuffer( )
-        {
-          this->m_Buffer.clear( );
-        }
-
-      virtual TOutput Evaluate( const TPoint& p ) const
-        {
-          TIndex i;
-          this->GetInputImage( )->TransformPhysicalPointToIndex( p, i );
-          return( this->EvaluateAtIndex( i ) );
-        }
-
-      virtual TOutput EvaluateAtIndex( const TIndex& i ) const
-        {
-          TOutput res = TOutput( 0 );
-          bool computed = false;
-          if( this->m_BufferResults )
-          {
-            typename TBuffer::const_iterator bIt = this->m_Buffer.find( i );
-            computed = ( bIt != this->m_Buffer.end( ) );
-            res = ( computed )? bIt->second: res;
-
-          } // fi
-
-          if( !computed )
-            res = this->_Evaluate( i );
-
-          if( this->m_BufferResults )
-            this->m_Buffer[ i ] = res;
-          return( res );
-        }
-
-      virtual TOutput EvaluateAtContinuousIndex( const TContIndex& i ) const
-        {
-          TPoint p;
-          this->GetInputImage( )->TransformContinuousIndexToPhysicalPoint( i, p );
-          return( this->Evaluate( p ) );
-        }
-
-    protected:
-      InertiaMedialness( )
-        : Superclass( ),
-          m_BufferResults( false ),
-          m_MaxRadius( double( 1 ) )
-        {
-          this->m_Buffer.clear( );
-        }
-
-      virtual ~InertiaMedialness( )
-        {
-          this->m_Buffer.clear( );
-        }
-
-      virtual TOutput _Evaluate( const TIndex& idx ) const
-        {
-          const I* image = this->GetInputImage( );
-
-          typename I::PointType p_i;
-          image->TransformIndexToPhysicalPoint( idx, p_i );
-
-          typename I::PointType max_p, min_p;
-          for( unsigned int d = 0; d < I::ImageDimension; ++d )
-          {
-            max_p[ d ] = p_i[ d ] + this->m_MaxRadius;
-            min_p[ d ] = p_i[ d ] - this->m_MaxRadius;
-
-          } // rof
-          TIndex max_i, min_i;
-          image->TransformPhysicalPointToIndex( max_p, max_i );
-          image->TransformPhysicalPointToIndex( min_p, min_i );
-
-          typename I::RegionType in_region = image->GetRequestedRegion( );
-          TIndex in_index = in_region.GetIndex( );
-          TIndex in_last = in_index + in_region.GetSize( );
-          typename I::SizeType size;
-          for( unsigned int d = 0; d < I::ImageDimension; ++d )
-          {
-            if( min_i[ d ] < in_index[ d ] ) min_i[ d ] = in_index[ d ];
-            if( max_i[ d ] < in_index[ d ] ) max_i[ d ] = in_index[ d ];
-            if( min_i[ d ] >= in_last[ d ] ) min_i[ d ] = in_last[ d ];
-            if( max_i[ d ] >= in_last[ d ] ) max_i[ d ] = in_last[ d ];
-
-            size[ d ] = max_i[ d ] - min_i[ d ];
-
-          } // rof
-
-          typename I::RegionType region;
-          region.SetIndex( min_i );
-          region.SetSize( size );
-
-          std::vector< typename TInertia::Pointer > inertias;
-          itk::ImageRegionConstIteratorWithIndex< I > it( image, region );
-          for( it.GoToBegin( ); !it.IsAtEnd( ); ++it )
-          {
-            TOffset off = it.GetIndex( ) - idx;
-            unsigned long l1dist = std::abs( off[ 0 ] );
-            for( unsigned int d = 1; d < I::ImageDimension; ++d )
-              l1dist = ( std::abs( off[ d ] ) > l1dist )? std::abs( off[ d ] ): l1dist;
-
-            typename TInertia::TPoint i_pnt;
-            image->TransformIndexToPhysicalPoint( it.GetIndex( ), i_pnt );
-
-            for( unsigned long l = 0; l < l1dist; ++l )
-            {
-              if( inertias.size( ) <= l )
-                inertias.push_back( TInertia::New( ) );
-              inertias[ l ]->AddMass( i_pnt.GetVectorFromOrigin( ), S( it.Get( ) ) );
-
-              /* TODO
-                 typename TInertias::iterator inIt = inertias.find( l );
-                 if( inIt == inertias.end( ) )
-                 inIt = inertias.insert( std::pair< unsigned long, typename TInertia::Pointer >( l, TInertia::New( ) ) ).first;
-              */
-
-            } // rof
-
-          } // rof
-
-          if( inertias.size( ) > 0 )
-          {
-            S res = S( 0 );
-            for( unsigned int l = 0; l < inertias.size( ); ++l )
-            {
-              typename TInertia::TVector pv, r;
-              typename TInertia::TMatrix pm;
-              inertias[ l ]->GetEigenAnalysis( pm, pv, r );
-              S v = pv.GetNorm( );
-              if( l == 0 || v > res )
-                res = v;
-
-            } // rof
-            return( res );
-          }
-          else
-            return( TOutput( 0 ) );
-        }
-
-    private:
-      // Purposely not implemented.
-      InertiaMedialness( const Self& );
-      void operator=( const Self& );
-
-    protected:
-      mutable TBuffer m_Buffer;
-      bool m_BufferResults;
-
-      double m_MaxRadius;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#ifndef ITK_MANUAL_INSTANTIATION
-// TODO: #include <cpExtensions/Algorithms/InertiaMedialness.hxx>
-#endif // ITK_MANUAL_INSTANTIATION
-
-#endif // __CPEXTENSIONS__ALGORITHMS__INERTIAMEDIALNESS__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/InertiaTensorFunction.h b/lib/cpExtensions/Algorithms/InertiaTensorFunction.h
deleted file mode 100644 (file)
index ecb341d..0000000
+++ /dev/null
@@ -1,180 +0,0 @@
-// -------------------------------------------------------------------------
-// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
-// -------------------------------------------------------------------------
-
-#ifndef __CPEXTENSIONS__ALGORITHMS__INERTIATENSORFUNCTION__H__
-#define __CPEXTENSIONS__ALGORITHMS__INERTIATENSORFUNCTION__H__
-
-#include <itkObject.h>
-
-#include <itkObject.h>
-#include <itkObjectFactory.h>
-#include <itkMatrix.h>
-#include <itkPoint.h>
-
-
-#include <cmath>
-#include <itkSymmetricEigenAnalysis.h>
-
-
-namespace cpExtensions
-{
-  namespace Algorithms
-  {
-    /**
-     */
-    template< class S, unsigned int D >
-    class InertiaTensorFunction
-      : public itk::Object
-    {
-    public:
-      // Standard itk types
-      typedef InertiaTensorFunction           Self;
-      typedef itk::Object                     Superclass;
-      typedef itk::SmartPointer< Self >       Pointer;
-      typedef itk::SmartPointer< const Self > ConstPointer;
-
-      typedef S                           TScalar;
-      typedef itk::Matrix< S, D, D >      TMatrix;
-      typedef itk::Point< S, D >          TPoint;
-      typedef typename TPoint::VectorType TVector;
-
-    protected:
-      typedef TMatrix _TInternalMatrix;
-      typedef itk::Matrix< S, D, 1 > _TInternalVector;
-
-    public:
-      itkNewMacro( Self );
-      itkTypeMacro( InertiaTensorFunction, itkObject );
-
-    public:
-      inline void Reset( )
-        {
-          this->m_M = S( 0 );
-          this->m_MPP = S( 0 );
-          this->m_MP.Fill( S( 0 ) );
-          this->m_MPPT.Fill( S( 0 ) );
-          this->Modified( );
-        }
-      inline void AddMass( const TPoint& pnt, const S& mass = S( 1 ) )
-        {
-          this->AddMass( pnt.GetVectorFromOrigin( ), mass );
-        }
-      inline void AddMass( const S* data, const S& mass = S( 1 ) )
-        {
-          this->AddMass( TVector( data ), mass );
-        }
-      inline void AddMass( const TVector& vec, const S& mass = S( 1 ) )
-        {
-          this->m_M += mass;
-          this->m_MPP += mass * ( vec * vec );
-
-          _TInternalVector mp;
-          for( unsigned int d = 0; d < D; ++d )
-          {
-            this->m_MP[ d ][ 0 ] += mass * vec[ d ];
-            mp[ d ][ 0 ] = vec[ d ];
-
-          } // rof
-          this->m_MPPT +=
-            _TInternalMatrix( mp.GetVnlMatrix( ) * mp.GetTranspose( ) ) *
-            mass;
-        }
-
-      inline S GetMass( ) const
-        {
-          return( this->m_M );
-        }
-
-      inline TMatrix GetInertia( ) const
-        {
-          TMatrix I;
-          if( S( 0 ) < this->m_M )
-          {
-            I.SetIdentity( );
-            I *= this->m_MPP - ( ( this->m_MP.GetTranspose( ) * this->m_MP.GetVnlMatrix( ) )[ 0 ][ 0 ] / this->m_M );
-            I -= this->m_MPPT;
-            I += TMatrix( this->m_MP.GetVnlMatrix( ) * this->m_MP.GetTranspose( ) ) / this->m_M;
-          }
-          else
-            I.Fill( S( 0 ) );
-          return( I );
-        }
-
-      inline TVector GetCenterOfGravity( ) const
-        {
-          TVector cog;
-          if( S( 0 ) < this->m_M )
-          {
-            for( unsigned int d = 0; d < D; ++d )
-              cog[ d ] = this->m_MP[ d ][ 0 ] / this->m_M;
-          }
-          else
-            cog.Fill( S( 0 ) );
-          return( cog );
-        }
-
-      inline void GetEigenAnalysis( TMatrix& pm, TVector& pv, TVector& r ) const
-        {
-          TMatrix I = this->GetInertia( );
-
-          itk::SymmetricEigenAnalysis< TMatrix, TVector, TMatrix > eigen;
-          eigen.SetDimension( D );
-          eigen.SetOrderEigenMagnitudes( true );
-          eigen.SetOrderEigenValues( 1 );
-          eigen.ComputeEigenValuesAndVectors( I, pv, pm );
-          pm = TMatrix( pm.GetTranspose( ) );
-          S det = vnl_determinant( pm.GetVnlMatrix( ) );
-          for( unsigned int d = 0; d < D; ++d )
-            pm[ d ][ D - 1 ] *= det;
-
-          if( D == 2 )
-          {
-            S coeff = S( 4 ) / this->m_M;
-            r[ 0 ] = std::sqrt( std::fabs( coeff * pv[ 1 ] ) );
-            r[ 1 ] = std::sqrt( std::fabs( coeff * pv[ 0 ] ) );
-          }
-          else if( D == 3 )
-          {
-            S coeff = S( 2.5 ) / this->m_M;
-            r[ 0 ] = std::sqrt( std::fabs( coeff * ( pv[ 1 ] + pv[ 2 ] - pv[ 0 ] ) ) );
-            r[ 1 ] = std::sqrt( std::fabs( coeff * ( pv[ 0 ] + pv[ 2 ] - pv[ 1 ] ) ) );
-            r[ 2 ] = std::sqrt( std::fabs( coeff * ( pv[ 0 ] + pv[ 1 ] - pv[ 2 ] ) ) );
-          }
-          else
-            r.Fill( S( 0 ) );
-        }
-
-    protected:
-      InertiaTensorFunction( )
-        : Superclass( )
-        {
-          this->Reset( );
-        }
-      virtual ~InertiaTensorFunction( )
-        {
-        }
-
-    private:
-      // Purposely not implemented.
-      InertiaTensorFunction( const Self& );
-      void operator=( const Self& );
-
-    protected:
-      S m_M;
-      S m_MPP;
-      _TInternalVector m_MP;
-      _TInternalMatrix m_MPPT;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#ifndef ITK_MANUAL_INSTANTIATION
-// #include <cpExtensions/Algorithms/InertiaTensorFunction.hxx>
-#endif // ITK_MANUAL_INSTANTIATION
-
-#endif // __CPEXTENSIONS__ALGORITHMS__INERTIATENSORFUNCTION__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/IsoImageSlicer.h b/lib/cpExtensions/Algorithms/IsoImageSlicer.h
deleted file mode 100644 (file)
index d3dec08..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-// -------------------------------------------------------------------------
-// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
-// -------------------------------------------------------------------------
-
-#ifndef __CPEXTENSIONS__ALGORITHMS__ISOIMAGESLICER__H__
-#define __CPEXTENSIONS__ALGORITHMS__ISOIMAGESLICER__H__
-
-#include <itkAffineTransform.h>
-#include <itkExtractImageFilter.h>
-#include <itkImage.h>
-#include <itkImageToImageFilter.h>
-#include <itkInterpolateImageFunction.h>
-#include <itkResampleImageFilter.h>
-#include <itkVectorResampleImageFilter.h>
-#include <itkVectorInterpolateImageFunction.h>
-
-namespace cpExtensions
-{
-  namespace Algorithms
-  {
-    /**
-     */
-    template< class R, class I >
-    class BaseImageSlicer
-      : public itk::ImageToImageFilter< typename R::InputImageType, itk::Image< typename R::InputImageType::PixelType, R::ImageDimension - 1 > >
-    {
-    public:
-      // Basic types
-      typedef BaseImageSlicer            Self;
-      typedef R                          TSlicer;
-      typedef I                          TInterpolateFunction;
-      typedef typename R::InputImageType TImage;
-      typedef typename I::CoordRepType   TScalar;
-      typedef typename TImage::PixelType TPixel;
-      enum
-      {
-        Dim      = TImage::ImageDimension,
-        SliceDim = TImage::ImageDimension - 1
-      };
-      typedef itk::Image< TPixel, Self::SliceDim > TSliceImage;
-
-      // itk types
-      typedef itk::ImageToImageFilter< TImage, TSliceImage > Superclass;
-      typedef itk::SmartPointer< Self >                      Pointer;
-      typedef itk::SmartPointer< const Self >                ConstPointer;
-
-      // Internal filters
-      typedef itk::ExtractImageFilter< TImage, TSliceImage > TCollapsor;
-
-      // Various types
-      typedef typename TImage::IndexType   TIndex;
-      typedef typename TImage::RegionType  TRegion;
-      typedef typename TImage::SizeType    TSize;
-      typedef typename TImage::SpacingType TSpacing;
-      typedef typename TSpacing::ValueType TSpacingValue;
-
-      typedef itk::AffineTransform< TScalar, Self::Dim > TTransform;
-      typedef typename TTransform::MatrixType            TMatrix;
-      typedef typename TTransform::OffsetType            TVector;
-
-    public:
-      itkNewMacro( Self );
-      itkTypeMacro( BaseImageSlicer, itkImageToImageFilter );
-
-      itkBooleanMacro( SizeFromMaximum );
-      itkBooleanMacro( SizeFromMinimum );
-      itkBooleanMacro( SpacingFromMaximum );
-      itkBooleanMacro( SpacingFromMinimum );
-
-      itkGetConstObjectMacro( Transform, TTransform );
-      itkGetConstMacro( DefaultValue, TPixel );
-      itkGetConstMacro( Size, TVector );
-      itkGetConstMacro( SizeFromMaximum, bool );
-      itkGetConstMacro( SizeFromMinimum, bool );
-      itkGetConstMacro( Spacing, TSpacingValue );
-      itkGetConstMacro( SpacingFromMaximum, bool );
-      itkGetConstMacro( SpacingFromMinimum, bool );
-
-      itkSetObjectMacro( Transform, TTransform );
-      itkSetMacro( Size, TVector );
-      itkSetMacro( DefaultValue, TPixel );
-      itkSetMacro( SizeFromMaximum, bool );
-      itkSetMacro( SizeFromMinimum, bool );
-      itkSetMacro( Spacing, TSpacingValue );
-      itkSetMacro( SpacingFromMaximum, bool );
-      itkSetMacro( SpacingFromMinimum, bool );
-
-    public:
-      virtual unsigned long GetMTime( ) const ITK_OVERRIDE;
-
-      const TInterpolateFunction* GetInterpolator( ) const;
-      const TMatrix& GetRotation( ) const;
-      const TVector& GetTranslation( ) const;
-
-      void SetInterpolator( TInterpolateFunction* f );
-
-      template< class M >
-        void SetRotation( const M& r );
-
-      template< class V >
-        void SetTranslation( const V& t );
-      void SetSize( TScalar s );
-
-    protected:
-      BaseImageSlicer( );
-      virtual ~BaseImageSlicer( );
-
-      virtual void GenerateOutputInformation( ) ITK_OVERRIDE; // TODO { }
-      virtual void GenerateInputRequestedRegion( ) ITK_OVERRIDE;
-      virtual void GenerateData( ) ITK_OVERRIDE;
-
-    private:
-      // Purposely not implemented
-      BaseImageSlicer( const Self& );
-      void operator=( const Self& );
-
-    protected:
-      typename TSlicer::Pointer    m_Slicer;
-      typename TCollapsor::Pointer m_Collapsor;
-      typename TTransform::Pointer m_Transform;
-
-      TPixel m_DefaultValue;
-
-      TVector m_Size;
-      bool    m_SizeFromMaximum;
-      bool    m_SizeFromMinimum;
-
-      TSpacingValue m_Spacing;
-      bool          m_SpacingFromMaximum;
-      bool          m_SpacingFromMinimum;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-// -------------------------------------------------------------------------
-#define CPPLUGINS_DEFINE_ISOIMAGESLICER( name, R, F )                   \
-  template< class I, class S = double >                                 \
-  class name                                                            \
-    : public BaseImageSlicer< R< I, I, S >, F< I, S > >                 \
-  {                                                                     \
-  public:                                                               \
-    typedef BaseImageSlicer< R< I, I, S >, F< I, S > > Superclass;      \
-    typedef name                                       Self;            \
-    typedef itk::SmartPointer< Self >                  Pointer;         \
-    typedef itk::SmartPointer< const Self >            ConstPointer;    \
-  public:                                                               \
-    itkNewMacro( Self );                                                \
-    itkTypeMacro( name, BaseSlicer );                                   \
-  protected:                                                            \
-    name( ) : Superclass( ) { }                                         \
-    virtual ~name( ) { }                                                \
-  private:                                                              \
-    name( const Self& );                                                \
-    void operator=( const Self& );                                      \
-  };
-
-namespace cpExtensions
-{
-  namespace Algorithms
-  {
-    CPPLUGINS_DEFINE_ISOIMAGESLICER(
-      IsoImageSlicer,
-      itk::ResampleImageFilter,
-      itk::InterpolateImageFunction
-      );
-    CPPLUGINS_DEFINE_ISOIMAGESLICER(
-      VectorIsoImageSlicer,
-      itk::VectorResampleImageFilter,
-      itk::VectorInterpolateImageFunction
-      );
-
-  } // ecapseman
-
-} // ecapseman
-
-#ifndef ITK_MANUAL_INSTANTIATION
-#include <cpExtensions/Algorithms/IsoImageSlicer.hxx>
-#endif // ITK_MANUAL_INSTANTIATION
-
-#endif // __CPEXTENSIONS__ALGORITHMS__ISOIMAGESLICER__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/IsoImageSlicer.hxx b/lib/cpExtensions/Algorithms/IsoImageSlicer.hxx
deleted file mode 100644 (file)
index 041d874..0000000
+++ /dev/null
@@ -1,234 +0,0 @@
-// -------------------------------------------------------------------------
-// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
-// -------------------------------------------------------------------------
-
-#ifndef __CPEXTENSIONS__ALGORITHMS__ISOIMAGESLICER__HXX__
-#define __CPEXTENSIONS__ALGORITHMS__ISOIMAGESLICER__HXX__
-
-// -------------------------------------------------------------------------
-template< class R, class I >
-unsigned long cpExtensions::Algorithms::BaseImageSlicer< R, I >::
-GetMTime( ) const
-{
-  unsigned long t = this->Superclass::GetMTime( );
-  unsigned long sT = this->m_Slicer->GetMTime( );
-  unsigned long cT = this->m_Collapsor->GetMTime( );
-  unsigned long tT = this->m_Transform->GetMTime( );
-  t = ( sT > t )? sT: t;
-  t = ( cT > t )? cT: t;
-  t = ( tT > t )? tT: t;
-  return( t );
-}
-
-// -------------------------------------------------------------------------
-template< class R, class I >
-const typename cpExtensions::Algorithms::BaseImageSlicer< R, I >::
-TInterpolateFunction*
-cpExtensions::Algorithms::BaseImageSlicer< R, I >::
-GetInterpolator( ) const
-{
-  return( this->m_Slicer->GetInterpolator( ) );
-}
-
-// -------------------------------------------------------------------------
-template< class R, class I >
-const typename cpExtensions::Algorithms::BaseImageSlicer< R, I >::
-TMatrix& cpExtensions::Algorithms::BaseImageSlicer< R, I >::
-GetRotation( ) const
-{
-  return( this->m_Transform->GetMatrix( ) );
-}
-
-// -------------------------------------------------------------------------
-template< class R, class I >
-const typename cpExtensions::Algorithms::BaseImageSlicer< R, I >::
-TVector& cpExtensions::Algorithms::BaseImageSlicer< R, I >::
-GetTranslation( ) const
-{
-  return( this->m_Transform->GetOffset( ) );
-}
-
-// -------------------------------------------------------------------------
-template< class R, class I >
-void cpExtensions::Algorithms::BaseImageSlicer< R, I >::
-SetInterpolator( TInterpolateFunction* f )
-{
-  this->m_Slicer->SetInterpolator( f );
-  this->Modified( );
-}
-
-// -------------------------------------------------------------------------
-template< class R, class I >
-template< class M >
-void cpExtensions::Algorithms::BaseImageSlicer< R, I >::
-SetRotation( const M& r )
-{
-  TMatrix rotation;
-  for( unsigned int i = 0; i < Self::Dim; ++i )
-    for( unsigned int j = 0; j < Self::Dim; ++j )
-      rotation[ i ][ j ] = r[ i ][ j ];
-  this->m_Transform->SetMatrix( rotation );
-  this->Modified( );
-}
-
-// -------------------------------------------------------------------------
-template< class R, class I >
-template< class V >
-void cpExtensions::Algorithms::BaseImageSlicer< R, I >::
-SetTranslation( const V& t )
-{
-  TVector off;
-  for( unsigned int i = 0; i < Self::Dim; ++i )
-    off[ i ] = t[ i ];
-  this->m_Transform->SetOffset( off );
-  this->Modified( );
-}
-
-// -------------------------------------------------------------------------
-template< class R, class I >
-void cpExtensions::Algorithms::BaseImageSlicer< R, I >::
-SetSize( TScalar s )
-{
-  this->m_Size.Fill( s );
-  this->Modified( );
-}
-
-// -------------------------------------------------------------------------
-template< class R, class I >
-cpExtensions::Algorithms::BaseImageSlicer< R, I >::
-BaseImageSlicer( )
-  : Superclass( ),
-    m_SizeFromMaximum( false ),
-    m_SizeFromMinimum( false ),
-    m_Spacing( TSpacingValue( 1 ) ),
-    m_SpacingFromMaximum( false ),
-    m_SpacingFromMinimum( false )
-{
-  this->m_Size.Fill( TScalar( 1 ) );
-
-  // Slicer
-  this->m_Slicer = TSlicer::New( );
-
-  TIndex idx;
-  idx.Fill( 0 );
-  this->m_Slicer->SetOutputStartIndex( idx );
-
-  // Dimension collapsor
-  this->m_Collapsor = TCollapsor::New( );
-  this->m_Collapsor->SetInput( this->m_Slicer->GetOutput( ) );
-  this->m_Collapsor->SetDirectionCollapseToIdentity( );
-
-  this->m_Transform = TTransform::New( );
-  this->m_Transform->SetIdentity( );
-}
-
-// -------------------------------------------------------------------------
-template< class R, class I >
-cpExtensions::Algorithms::BaseImageSlicer< R, I >::
-~BaseImageSlicer( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class R, class I >
-void cpExtensions::Algorithms::BaseImageSlicer< R, I >::
-GenerateOutputInformation( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class R, class I >
-void cpExtensions::Algorithms::BaseImageSlicer< R, I >::
-GenerateInputRequestedRegion( )
-{
-  TImage* input = const_cast< TImage* >( this->GetInput( ) );
-  if( input != NULL )
-    input->SetRequestedRegionToLargestPossibleRegion( );
-}
-
-// -------------------------------------------------------------------------
-template< class R, class I >
-void cpExtensions::Algorithms::BaseImageSlicer< R, I >::
-GenerateData( )
-{
-  const TImage* input = this->GetInput( );
-
-  // Spacing
-  TSpacing spac;
-  if( this->m_SpacingFromMaximum || this->m_SpacingFromMinimum )
-  {
-    spac = input->GetSpacing( );
-    TSpacingValue minIso = spac[ 0 ];
-    TSpacingValue maxIso = spac[ 0 ];
-    for( unsigned int i = 1; i < Self::Dim; i++ )
-    {
-      minIso = ( spac[ i ] < minIso )? spac[ i ]: minIso;
-      maxIso = ( spac[ i ] > maxIso )? spac[ i ]: maxIso;
-
-    } // rof
-    this->m_Spacing = ( this->m_SpacingFromMinimum )? minIso: maxIso;
-
-  } // fi
-  spac.Fill( this->m_Spacing );
-
-  // Size and origin
-  if( this->m_SizeFromMaximum || this->m_SizeFromMinimum )
-  {
-    TSize iSize = input->GetRequestedRegion( ).GetSize( );
-    TSpacing iSpac = input->GetSpacing( );
-    TScalar minSize = TScalar( iSize[ 0 ] ) * TScalar( iSpac[ 0 ] );
-    TScalar maxSize = minSize;
-    for( unsigned int i = 1; i < Self::Dim; i++ )
-    {
-      TScalar v = TScalar( iSize[ i ] ) * TScalar( iSpac[ i ] );
-      minSize = ( v < minSize )? v: minSize;
-      maxSize = ( v > maxSize )? v: maxSize;
-
-    } // rof
-    if( this->m_SizeFromMaximum )
-      this->m_Size.Fill( maxSize );
-    else
-      this->m_Size.Fill( minSize );
-
-  } // fi
-
-  TSize size;
-  typename TSlicer::OriginPointType origin;
-  size[ 0 ] = 1;
-  origin[ 0 ] = 0;
-  for( unsigned int i = 1; i < Self::Dim; i++ )
-  {
-    double s = double( this->m_Size[ i ] ) / double( spac[ i ] );
-    size[ i ] = ( unsigned int )( s );
-    origin[ i ] = -( 0.5 * this->m_Size[ i ] );
-
-  } // rof
-
-  // Prepare slicer
-  this->m_Slicer->SetInput( input );
-  this->m_Slicer->SetTransform( this->m_Transform );
-  this->m_Slicer->SetOutputSpacing( spac );
-  this->m_Slicer->SetOutputOrigin( origin );
-  this->m_Slicer->SetSize( size );
-  this->m_Slicer->SetDefaultPixelValue( this->m_DefaultValue );
-
-  // Slice!
-  // Note: UpdateLargestPossibleRegion( ) is used since we need the
-  // output regions to be updated at each filter call.
-  this->m_Slicer->UpdateLargestPossibleRegion( );
-
-  // Collapse result
-  TRegion region = this->m_Slicer->GetOutput( )->GetRequestedRegion( );
-  TSize regionSize = region.GetSize( );
-  regionSize[ 0 ] = 0;
-  region.SetSize( regionSize );
-  this->m_Collapsor->SetExtractionRegion( region );
-
-  this->m_Collapsor->GraftOutput( this->GetOutput( ) );
-  this->m_Collapsor->UpdateLargestPossibleRegion( );
-  this->GraftOutput( this->m_Collapsor->GetOutput( ) );
-}
-
-#endif // __CPEXTENSIONS__ALGORITHMS__ISOIMAGESLICER__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/IterativeGaussianModelEstimator.h b/lib/cpExtensions/Algorithms/IterativeGaussianModelEstimator.h
deleted file mode 100644 (file)
index b38e06e..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-// -------------------------------------------------------------------------
-// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
-// -------------------------------------------------------------------------
-
-#ifndef __CPEXTENSIONS__ALGORITHMS__ITERATIVEGAUSSIANMODELESTIMATOR__H__
-#define __CPEXTENSIONS__ALGORITHMS__ITERATIVEGAUSSIANMODELESTIMATOR__H__
-
-#include <vector>
-#include <itkConceptChecking.h>
-#include <itkObject.h>
-#include <itkObjectFactory.h>
-
-#include <itkCovariantVector.h>
-#include <itkMatrix.h>
-#include <itkPoint.h>
-#include <itkVector.h>
-
-namespace cpExtensions
-{
-  namespace Algorithms
-  {
-    /**
-     * Recursive formulation taken from:
-     * http://lmb.informatik.uni-freiburg.de/lectures/mustererkennung/Englische_Folien/07_c_ME_en.pdf
-     */
-    template< class _TScalar, unsigned int _VDimension >
-    class IterativeGaussianModelEstimator
-      : public itk::Object
-    {
-    public:
-      typedef IterativeGaussianModelEstimator Self;
-      typedef itk::Object                     Superclass;
-      typedef itk::SmartPointer< Self >       Pointer;
-      typedef itk::SmartPointer< const Self > ConstPointer;
-
-      typedef _TScalar TScalar;
-      itkStaticConstMacro( Dimension, unsigned int, _VDimension );
-
-      // Begin concept checking
-#ifdef ITK_USE_CONCEPT_CHECKING
-      itkConceptMacro(
-        ScalarTypeHasFloatResolution,
-        ( itk::Concept::IsFloatingPoint< _TScalar > )
-        );
-#endif
-      // End concept checking
-
-      typedef itk::Matrix< TScalar, Dimension, Dimension > TMatrix;
-      typedef itk::Vector< TScalar, Dimension > TVector;
-
-    public:
-      itkNewMacro( Self );
-      itkTypeMacro( IterativeGaussianModelEstimator, itkObject );
-
-      itkGetConstMacro( Mean, TVector );
-      itkGetConstMacro( Covariance, TMatrix );
-      itkGetConstMacro( UnbiasedCovariance, TMatrix );
-      itkGetConstMacro( NumberOfSamples, unsigned long );
-
-      itkSetMacro( Mean, TVector );
-      itkSetMacro( Covariance, TMatrix );
-      itkSetMacro( NumberOfSamples, unsigned long );
-
-    public:
-      void Clear( );
-
-      template< class _TOtherScalar >
-      void AddSample( const _TOtherScalar& x1, ... );
-
-      template< class _TOtherScalar >
-      void AddSample( const _TOtherScalar* array );
-
-      template< class _TOtherScalar >
-      void AddSample( const vnl_vector< _TOtherScalar >& v );
-
-      template< class _TOtherScalar >
-      void AddSample(
-        const itk::CovariantVector< _TOtherScalar, _VDimension >& v
-        );
-
-      template< class _TOtherScalar >
-      void AddSample( const itk::Point< _TOtherScalar, _VDimension >& p );
-
-      template< class _TOtherScalar >
-      void AddSample( const itk::Vector< _TOtherScalar, _VDimension >& v );
-
-      template< class _TOtherScalar >
-      _TScalar SquaredMahalanobis( const _TOtherScalar& x1, ... ) const;
-
-      template< class _TOtherScalar >
-      _TScalar SquaredMahalanobis( const _TOtherScalar* array ) const;
-
-      template< class _TOtherScalar >
-      _TScalar SquaredMahalanobis(
-        const vnl_vector< _TOtherScalar >& v
-        ) const;
-
-      template< class _TOtherScalar >
-      _TScalar SquaredMahalanobis(
-        const itk::CovariantVector< _TOtherScalar, _VDimension >& v
-        ) const;
-
-      template< class _TOtherScalar >
-      _TScalar SquaredMahalanobis(
-        const itk::Point< _TOtherScalar, _VDimension >& p
-        ) const;
-
-      template< class _TOtherScalar >
-      _TScalar SquaredMahalanobis(
-        const itk::Vector< _TOtherScalar, _VDimension >& v
-        ) const;
-
-      template< class _TOtherScalar >
-      _TScalar Density( const _TOtherScalar& x1, ... ) const;
-
-      template< class _TOtherScalar >
-      _TScalar Density( const _TOtherScalar* array ) const;
-
-      template< class _TOtherScalar >
-      _TScalar Density(
-        const vnl_vector< _TOtherScalar >& v
-        ) const;
-
-      template< class _TOtherScalar >
-      _TScalar Density(
-        const itk::CovariantVector< _TOtherScalar, _VDimension >& v
-        ) const;
-
-      template< class _TOtherScalar >
-      _TScalar Density(
-        const itk::Point< _TOtherScalar, _VDimension >& p
-        ) const;
-
-      template< class _TOtherScalar >
-      _TScalar Density(
-        const itk::Vector< _TOtherScalar, _VDimension >& v
-        ) const;
-
-    protected:
-      IterativeGaussianModelEstimator( );
-      virtual ~IterativeGaussianModelEstimator( );
-
-    protected:
-      void _AddSample( const TVector& v ) const;
-      _TScalar _SquaredMahalanobis( const TVector& v ) const;
-      _TScalar _Density( const TVector& v ) const;
-
-    private:
-      // Purposely not implemented
-      IterativeGaussianModelEstimator( const Self& other );
-      void operator=( const Self& other );
-
-    protected:
-      // Recursive avg/cov values
-      mutable unsigned long m_NumberOfSamples;
-      mutable TVector m_Mean;
-      mutable TMatrix m_Covariance;
-      mutable TMatrix m_UnbiasedCovariance;
-      mutable bool m_InverseUpdated;
-      mutable TMatrix m_InverseUnbiasedCovariance;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#include <cpExtensions/Algorithms/IterativeGaussianModelEstimator.hxx>
-
-#endif // __CPEXTENSIONS__ALGORITHMS__ITERATIVEGAUSSIANMODELESTIMATOR__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/IterativeGaussianModelEstimator.hxx b/lib/cpExtensions/Algorithms/IterativeGaussianModelEstimator.hxx
deleted file mode 100644 (file)
index acd1da7..0000000
+++ /dev/null
@@ -1,365 +0,0 @@
-// -------------------------------------------------------------------------
-// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
-// -------------------------------------------------------------------------
-
-#ifndef __CPEXTENSIONS__ALGORITHMS__ITERATIVEGAUSSIANMODELESTIMATOR__HXX__
-#define __CPEXTENSIONS__ALGORITHMS__ITERATIVEGAUSSIANMODELESTIMATOR__HXX__
-
-#include <cstdarg>
-
-// -------------------------------------------------------------------------
-template< class _TScalar, unsigned int _VDimension >
-void cpExtensions::Algorithms::
-IterativeGaussianModelEstimator< _TScalar, _VDimension >::
-Clear( )
-{
-  this->m_NumberOfSamples = 0;
-  this->m_Mean.Fill( TScalar( 0 ) );
-  this->m_Covariance.Fill( TScalar( 0 ) );
-  this->m_InverseUpdated = false;
-  this->m_InverseUnbiasedCovariance.Fill( TScalar( 0 ) );
-}
-
-// -------------------------------------------------------------------------
-template< class _TScalar, unsigned int _VDimension >
-template< class _TOtherScalar >
-void cpExtensions::Algorithms::
-IterativeGaussianModelEstimator< _TScalar, _VDimension >::
-AddSample( const _TOtherScalar& x1, ... )
-{
-  TVector s;
-  std::va_list lst;
-  va_start( lst, x1 );
-  s[ 0 ] = TScalar( x1 );
-  for( unsigned int d = 1; d < _VDimension; ++d )
-    s[ d ] = TScalar( va_arg( lst, double ) );
-  va_end( lst );
-  this->_AddSample( s );
-}
-
-// -------------------------------------------------------------------------
-template< class _TScalar, unsigned int _VDimension >
-template< class _TOtherScalar >
-void cpExtensions::Algorithms::
-IterativeGaussianModelEstimator< _TScalar, _VDimension >::
-AddSample( const _TOtherScalar* array )
-{
-  TVector s;
-  for( unsigned d = 0; d < _VDimension; ++d )
-    s[ d ] = TScalar( array[ d ] );
-  this->_AddSample( s );
-}
-
-// -------------------------------------------------------------------------
-template< class _TScalar, unsigned int _VDimension >
-template< class _TOtherScalar >
-void cpExtensions::Algorithms::
-IterativeGaussianModelEstimator< _TScalar, _VDimension >::
-AddSample( const vnl_vector< _TOtherScalar >& v )
-{
-  unsigned int len = ( v.size( ) < _VDimension )? v.size: _VDimension;
-  TVector s;
-  for( unsigned d = 0; d < len; ++d )
-    s[ d ] = TScalar( v[ d ] );
-  this->_AddSample( s );
-}
-
-// -------------------------------------------------------------------------
-template< class _TScalar, unsigned int _VDimension >
-template< class _TOtherScalar >
-void cpExtensions::Algorithms::
-IterativeGaussianModelEstimator< _TScalar, _VDimension >::
-AddSample( const itk::CovariantVector< _TOtherScalar, _VDimension >& v )
-{
-  TVector s;
-  for( unsigned d = 0; d < _VDimension; ++d )
-    s[ d ] = TScalar( v[ d ] );
-  this->_AddSample( s );
-}
-
-// -------------------------------------------------------------------------
-template< class _TScalar, unsigned int _VDimension >
-template< class _TOtherScalar >
-void cpExtensions::Algorithms::
-IterativeGaussianModelEstimator< _TScalar, _VDimension >::
-AddSample( const itk::Point< _TOtherScalar, _VDimension >& p )
-{
-  TVector s;
-  for( unsigned d = 0; d < _VDimension; ++d )
-    s[ d ] = TScalar( p[ d ] );
-  this->_AddSample( s );
-}
-
-// -------------------------------------------------------------------------
-template< class _TScalar, unsigned int _VDimension >
-template< class _TOtherScalar >
-void cpExtensions::Algorithms::
-IterativeGaussianModelEstimator< _TScalar, _VDimension >::
-AddSample( const itk::Vector< _TOtherScalar, _VDimension >& v )
-{
-  TVector s;
-  for( unsigned d = 0; d < _VDimension; ++d )
-    s[ d ] = TScalar( v[ d ] );
-  this->_AddSample( s );
-}
-
-// -------------------------------------------------------------------------
-template< class _TScalar, unsigned int _VDimension >
-template< class _TOtherScalar >
-_TScalar cpExtensions::Algorithms::
-IterativeGaussianModelEstimator< _TScalar, _VDimension >::
-SquaredMahalanobis( const _TOtherScalar& x1, ... ) const
-{
-  TVector s;
-  std::va_list lst;
-  va_start( lst, x1 );
-  s[ 0 ] = TScalar( x1 );
-  for( unsigned int d = 1; d < _VDimension; ++d )
-    s[ d ] = TScalar( va_arg( lst, double ) );
-  va_end( lst );
-  return( this->_SquaredMahalanobis( s ) );
-}
-
-// -------------------------------------------------------------------------
-template< class _TScalar, unsigned int _VDimension >
-template< class _TOtherScalar >
-_TScalar cpExtensions::Algorithms::
-IterativeGaussianModelEstimator< _TScalar, _VDimension >::
-SquaredMahalanobis( const _TOtherScalar* array ) const
-{
-  TVector s;
-  for( unsigned d = 0; d < _VDimension; ++d )
-    s[ d ] = TScalar( array[ d ] );
-  return( this->_SquaredMahalanobis( s ) );
-}
-
-// -------------------------------------------------------------------------
-template< class _TScalar, unsigned int _VDimension >
-template< class _TOtherScalar >
-_TScalar cpExtensions::Algorithms::
-IterativeGaussianModelEstimator< _TScalar, _VDimension >::
-SquaredMahalanobis( const vnl_vector< _TOtherScalar >& v ) const
-{
-  unsigned int len = ( v.size( ) < _VDimension )? v.size: _VDimension;
-  TVector s;
-  for( unsigned d = 0; d < len; ++d )
-    s[ d ] = TScalar( v[ d ] );
-  return( this->_SquaredMahalanobis( s ) );
-}
-
-// -------------------------------------------------------------------------
-template< class _TScalar, unsigned int _VDimension >
-template< class _TOtherScalar >
-_TScalar cpExtensions::Algorithms::
-IterativeGaussianModelEstimator< _TScalar, _VDimension >::
-SquaredMahalanobis(
-  const itk::CovariantVector< _TOtherScalar, _VDimension >& v
-  ) const
-{
-  TVector s;
-  for( unsigned d = 0; d < _VDimension; ++d )
-    s[ d ] = TScalar( v[ d ] );
-  return( this->_SquaredMahalanobis( s ) );
-}
-
-// -------------------------------------------------------------------------
-template< class _TScalar, unsigned int _VDimension >
-template< class _TOtherScalar >
-_TScalar cpExtensions::Algorithms::
-IterativeGaussianModelEstimator< _TScalar, _VDimension >::
-SquaredMahalanobis( const itk::Point< _TOtherScalar, _VDimension >& p ) const
-{
-  TVector s;
-  for( unsigned d = 0; d < _VDimension; ++d )
-    s[ d ] = TScalar( p[ d ] );
-  return( this->_SquaredMahalanobis( s ) );
-}
-
-// -------------------------------------------------------------------------
-template< class _TScalar, unsigned int _VDimension >
-template< class _TOtherScalar >
-_TScalar cpExtensions::Algorithms::
-IterativeGaussianModelEstimator< _TScalar, _VDimension >::
-SquaredMahalanobis( const itk::Vector< _TOtherScalar, _VDimension >& v ) const
-{
-  TVector s;
-  for( unsigned d = 0; d < _VDimension; ++d )
-    s[ d ] = TScalar( v[ d ] );
-  return( this->_SquaredMahalanobis( s ) );
-}
-
-// -------------------------------------------------------------------------
-template< class _TScalar, unsigned int _VDimension >
-template< class _TOtherScalar >
-_TScalar cpExtensions::Algorithms::
-IterativeGaussianModelEstimator< _TScalar, _VDimension >::
-Density( const _TOtherScalar& x1, ... ) const
-{
-  TVector s;
-  std::va_list lst;
-  va_start( lst, x1 );
-  s[ 0 ] = TScalar( x1 );
-  for( unsigned int d = 1; d < _VDimension; ++d )
-    s[ d ] = TScalar( va_arg( lst, double ) );
-  va_end( lst );
-  return( this->_Density( s ) );
-}
-
-// -------------------------------------------------------------------------
-template< class _TScalar, unsigned int _VDimension >
-template< class _TOtherScalar >
-_TScalar cpExtensions::Algorithms::
-IterativeGaussianModelEstimator< _TScalar, _VDimension >::
-Density( const _TOtherScalar* array ) const
-{
-  TVector s;
-  for( unsigned d = 0; d < _VDimension; ++d )
-    s[ d ] = TScalar( array[ d ] );
-  return( this->_Density( s ) );
-}
-
-// -------------------------------------------------------------------------
-template< class _TScalar, unsigned int _VDimension >
-template< class _TOtherScalar >
-_TScalar cpExtensions::Algorithms::
-IterativeGaussianModelEstimator< _TScalar, _VDimension >::
-Density( const vnl_vector< _TOtherScalar >& v ) const
-{
-  unsigned int len = ( v.size( ) < _VDimension )? v.size: _VDimension;
-  TVector s;
-  for( unsigned d = 0; d < len; ++d )
-    s[ d ] = TScalar( v[ d ] );
-  return( this->_Density( s ) );
-}
-
-// -------------------------------------------------------------------------
-template< class _TScalar, unsigned int _VDimension >
-template< class _TOtherScalar >
-_TScalar cpExtensions::Algorithms::
-IterativeGaussianModelEstimator< _TScalar, _VDimension >::
-Density(
-  const itk::CovariantVector< _TOtherScalar, _VDimension >& v
-  ) const
-{
-  TVector s;
-  for( unsigned d = 0; d < _VDimension; ++d )
-    s[ d ] = TScalar( v[ d ] );
-  return( this->_Density( s ) );
-}
-
-// -------------------------------------------------------------------------
-template< class _TScalar, unsigned int _VDimension >
-template< class _TOtherScalar >
-_TScalar cpExtensions::Algorithms::
-IterativeGaussianModelEstimator< _TScalar, _VDimension >::
-Density( const itk::Point< _TOtherScalar, _VDimension >& p ) const
-{
-  TVector s;
-  for( unsigned d = 0; d < _VDimension; ++d )
-    s[ d ] = TScalar( p[ d ] );
-  return( this->_Density( s ) );
-}
-
-// -------------------------------------------------------------------------
-template< class _TScalar, unsigned int _VDimension >
-template< class _TOtherScalar >
-_TScalar cpExtensions::Algorithms::
-IterativeGaussianModelEstimator< _TScalar, _VDimension >::
-Density( const itk::Vector< _TOtherScalar, _VDimension >& v ) const
-{
-  TVector s;
-  for( unsigned d = 0; d < _VDimension; ++d )
-    s[ d ] = TScalar( v[ d ] );
-  return( this->_Density( s ) );
-}
-
-// -------------------------------------------------------------------------
-template< class _TScalar, unsigned int _VDimension >
-cpExtensions::Algorithms::
-IterativeGaussianModelEstimator< _TScalar, _VDimension >::
-IterativeGaussianModelEstimator( )
-  : Superclass( )
-{
-  this->Clear( );
-}
-
-// -------------------------------------------------------------------------
-template< class _TScalar, unsigned int _VDimension >
-cpExtensions::Algorithms::
-IterativeGaussianModelEstimator< _TScalar, _VDimension >::
-~IterativeGaussianModelEstimator( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class _TScalar, unsigned int _VDimension >
-void cpExtensions::Algorithms::
-IterativeGaussianModelEstimator< _TScalar, _VDimension >::
-_AddSample( const TVector& v ) const
-{
-  this->m_NumberOfSamples += 1;
-  TScalar a = TScalar( 1 ) / TScalar( this->m_NumberOfSamples );
-  TScalar b = TScalar( 1 ) - a;
-  TVector c = v - this->m_Mean;
-  TMatrix m;
-  for( unsigned int i = 0; i < _VDimension; ++i )
-  {
-    m[ i ][ i ] = c[ i ] * c[ i ];
-    for( unsigned int j = i + 1; j < _VDimension; ++j )
-      m[ i ][ j ] = m[ j ][ i ] = c[ i ] * c[ j ];
-
-  } // rof
-  this->m_Covariance = ( this->m_Covariance + ( m * a ) ) * b;
-  this->m_Mean = ( this->m_Mean * b ) + ( v * a );
-
-  TScalar u =
-    TScalar( this->m_NumberOfSamples ) /
-    TScalar( this->m_NumberOfSamples - 1 );
-  this->m_UnbiasedCovariance = this->m_Covariance * u;
-  this->m_InverseUpdated = false;
-}
-
-// -------------------------------------------------------------------------
-template< class _TScalar, unsigned int _VDimension >
-_TScalar cpExtensions::Algorithms::
-IterativeGaussianModelEstimator< _TScalar, _VDimension >::
-_SquaredMahalanobis( const TVector& v ) const
-{
-  if( !this->m_InverseUpdated )
-  {
-    double d =
-      double(
-        vnl_determinant( this->m_UnbiasedCovariance.GetVnlMatrix( ) )
-        );
-    if( std::fabs( d ) > double( 0 ) )
-      this->m_InverseUnbiasedCovariance =
-        this->m_UnbiasedCovariance.GetInverse( );
-    else
-      this->m_InverseUnbiasedCovariance.SetIdentity( );
-    this->m_InverseUpdated = true;
-
-  } // fi
-  TVector x = v - this->m_Mean;
-  return( x * ( this->m_InverseUnbiasedCovariance * x ) );
-}
-
-// -------------------------------------------------------------------------
-template< class _TScalar, unsigned int _VDimension >
-_TScalar cpExtensions::Algorithms::
-IterativeGaussianModelEstimator< _TScalar, _VDimension >::
-_Density( const TVector& v ) const
-{
-  static const double _2pik =
-    std::pow( double( 2 ) * double( vnl_math::pi ), _VDimension );
-
-  double s = double( this->_SquaredMahalanobis( v ) ) / double( 2 );
-  double d =
-    double(
-      vnl_determinant( this->m_UnbiasedCovariance.GetVnlMatrix( ) )
-      );
-  return( _TScalar( std::exp( -s ) / std::sqrt( _2pik * d ) ) );
-}
-
-#endif // __CPEXTENSIONS__ALGORITHMS__ITERATIVEGAUSSIANMODELESTIMATOR__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/KalmanConstantFilter.cxx b/lib/cpExtensions/Algorithms/KalmanConstantFilter.cxx
deleted file mode 100644 (file)
index 0fd5d6c..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-// -------------------------------------------------------------------------
-// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
-// -------------------------------------------------------------------------
-
-#include <cpExtensions/Algorithms/KalmanConstantFilter.h>
-
-// -------------------------------------------------------------------------
-template< typename T >
-void cpExtensions::Algorithms::KalmanConstantFilter< T >::
-Configure( unsigned int m )
-{
-  this->Superclass::Configure( m, 1, m );
-}
-
-// -------------------------------------------------------------------------
-template< typename T >
-void cpExtensions::Algorithms::KalmanConstantFilter< T >::
-Initialize( )
-{
-  this->Superclass::Initialize( );
-
-  this->m_A.set_identity( );
-  this->m_B.fill( TScalar( 0 ) );
-  this->m_H.set_identity( );
-}
-
-// -------------------------------------------------------------------------
-template< typename T >
-cpExtensions::Algorithms::KalmanConstantFilter< T >::
-KalmanConstantFilter( )
-  : Superclass( )
-{
-  this->Configure( 1 );
-}
-
-// -------------------------------------------------------------------------
-template< typename T >
-cpExtensions::Algorithms::KalmanConstantFilter< T >::
-~KalmanConstantFilter( )
-{
-}
-
-// -------------------------------------------------------------------------
-// Explicit instantiations
-
-template class cpExtensions::Algorithms::KalmanConstantFilter< float >;
-template class cpExtensions::Algorithms::KalmanConstantFilter< double >;
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/KalmanConstantFilter.h b/lib/cpExtensions/Algorithms/KalmanConstantFilter.h
deleted file mode 100644 (file)
index ce038e1..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-// -------------------------------------------------------------------------
-// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
-// -------------------------------------------------------------------------
-
-#ifndef __CPEXTENSIONS__ALGORITHMS__KALMANCONSTANTFILTER__H__
-#define __CPEXTENSIONS__ALGORITHMS__KALMANCONSTANTFILTER__H__
-
-#include <cpExtensions/Algorithms/KalmanFilter.h>
-
-namespace cpExtensions
-{
-  namespace Algorithms
-  {
-    /**
-     */
-    template< typename T >
-    class cpExtensions_EXPORT KalmanConstantFilter
-      : public KalmanFilter< T >
-    {
-    public:
-      typedef KalmanConstantFilter            Self;
-      typedef KalmanFilter< T >               Superclass;
-      typedef itk::SmartPointer< Self >       Pointer;
-      typedef itk::SmartPointer< const Self > ConstPointer;
-
-      typedef typename Superclass::TScalar TScalar;
-      typedef typename Superclass::TMatrix TMatrix;
-      typedef typename Superclass::TVector TVector;
-
-    public:
-      itkNewMacro( Self );
-      itkTypeMacro( KalmanConstantFilter, KalmanFilter );
-
-    public:
-      void Configure( unsigned int m );
-
-      // Iteration methods
-      virtual void Initialize( ) ITK_OVERRIDE;
-
-    protected:
-      KalmanConstantFilter( );
-      virtual ~KalmanConstantFilter( );
-
-    private:
-      // Purposely not implemented.
-      KalmanConstantFilter( const Self& );
-      void operator=( const Self& );
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#endif // __CPEXTENSIONS__ALGORITHMS__KALMANCONSTANTFILTER__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/KalmanFilter.cxx b/lib/cpExtensions/Algorithms/KalmanFilter.cxx
deleted file mode 100644 (file)
index add2041..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-#include <cpExtensions/Algorithms/KalmanFilter.h>
-
-#include <cstdlib>
-#include <vnl/algo/vnl_matrix_inverse.h>
-
-// -------------------------------------------------------------------------
-template< typename T >
-void cpExtensions::Algorithms::KalmanFilter< T >::
-Configure( unsigned int s, unsigned int i, unsigned int m )
-{
-  this->m_StateSize   = s;
-  this->m_InputSize   = i;
-  this->m_MeasureSize = m;
-
-  // Matrices
-  this->m_A.set_size( s, s );
-  this->m_B.set_size( s, i );
-  this->m_H.set_size( m, s );
-  this->m_Id.set_size( s, s );
-  this->m_Q.set_size( s, s );
-  this->m_R.set_size( m, m );
-  this->m_P0.set_size( s, s );
-  this->m_K.set_size( s, m );
-  this->m_Pm.set_size( s, s );
-  this->m_Pp.set_size( s, s );
-
-  // Vectors
-  this->m_x0.set_size( s );
-  this->m_u.set_size( i );
-  this->m_m.set_size( m );
-  this->m_xm.set_size( s );
-  this->m_xp.set_size( s );
-
-  // Static values
-  this->m_Id.set_identity( );
-}
-
-// -------------------------------------------------------------------------
-template< typename T >
-void cpExtensions::Algorithms::KalmanFilter< T >::
-Initialize( )
-{
-  // Set all to the first iteration
-  this->m_I = 0;
-  this->m_Step = Self::StFilt;
-}
-
-// -------------------------------------------------------------------------
-template< typename T >
-void cpExtensions::Algorithms::KalmanFilter< T >::
-Predict( )
-{
-  if( this->m_Step == Self::StFilt )
-  {
-    if( this->m_I == 0 )
-    {
-      this->m_xp = this->m_x0;
-      this->m_Pp = this->m_P0;
-
-    } // fi
-
-    // Project the state
-    this->m_xm = ( this->m_A * this->m_xp ) + ( this->m_B * this->m_u );
-
-    // Project the error
-    this->m_Pm  = this->m_A * this->m_Pp * this->m_A.transpose( );
-    this->m_Pm += this->m_Q;
-
-    this->m_Step = Self::StPred;
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-template< typename T >
-void cpExtensions::Algorithms::KalmanFilter< T >::
-Innovate( )
-{
-  typedef vnl_matrix_inverse< T > _TInv;
-
-  if( this->m_Step == Self::StPred )
-  {
-    // Kalman gain
-    this->m_K  = this->m_Pm * this->m_H.transpose( );
-    this->m_K *=
-      _TInv(
-        ( this->m_H * this->m_Pm * this->m_H.transpose( ) ) + this->m_R
-        );
-
-    this->m_Step = Self::StInno;
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-template< typename T >
-void cpExtensions::Algorithms::KalmanFilter< T >::
-Filtrate( )
-{
-  if( this->m_Step == Self::StInno )
-  {
-    // A posteriori state
-    this->m_xp  = this->m_xm;
-    this->m_xp += this->m_K * ( this->m_m - ( this->m_H * this->m_xm ) );
-
-    // A posteriori error
-    this->m_Pp = ( this->m_Id - ( this->m_K * this->m_H ) ) * this->m_Pm;
-
-    this->m_Step = Self::StFilt;
-    this->m_I++;
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-template< typename T >
-cpExtensions::Algorithms::KalmanFilter< T >::
-KalmanFilter( )
-  : Superclass( )
-{
-  this->Configure( 1, 1, 1 );
-}
-
-// -------------------------------------------------------------------------
-template< typename T >
-cpExtensions::Algorithms::KalmanFilter< T >::
-~KalmanFilter( )
-{
-}
-
-// -------------------------------------------------------------------------
-// Explicit instantiations
-
-template class cpExtensions::Algorithms::KalmanFilter< float >;
-template class cpExtensions::Algorithms::KalmanFilter< double >;
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/KalmanFilter.h b/lib/cpExtensions/Algorithms/KalmanFilter.h
deleted file mode 100644 (file)
index bd0c17a..0000000
+++ /dev/null
@@ -1,215 +0,0 @@
-// -------------------------------------------------------------------------
-// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
-// -------------------------------------------------------------------------
-
-#ifndef __CPEXTENSIONS__ALGORITHMS__KALMANFILTER__H__
-#define __CPEXTENSIONS__ALGORITHMS__KALMANFILTER__H__
-
-#include <cpExtensions/cpExtensions_Export.h>
-
-#include <itkObject.h>
-#include <itkObjectFactory.h>
-#include <vnl/vnl_matrix.h>
-#include <vnl/vnl_vector.h>
-
-// -------------------------------------------------------------------------
-#define kalmanGetSetMacro( type, name )         \
-  itkGetConstMacro( name, type );               \
-  itkSetMacro( name, type );
-
-// -------------------------------------------------------------------------
-#define kalmanGetMatrixMacro( var, name )       \
-  virtual const TMatrix& Get##name( ) const     \
-  { return( this->m_##var ); }
-
-// -------------------------------------------------------------------------
-#define kalmanSetMatrixMacro( var, name )       \
-  virtual void Set##name( const TMatrix& m )    \
-  { this->Set##var( m ); }
-
-// -------------------------------------------------------------------------
-#define kalmanGetSetMatrixMacro( var, name )    \
-  kalmanGetMatrixMacro( var, name );            \
-  kalmanSetMatrixMacro( var, name );
-
-// -------------------------------------------------------------------------
-#define kalmanGetVectorMacro( var, name )       \
-  virtual const TVector& Get##name( ) const     \
-  { return( this->m_##var ); }
-
-// -------------------------------------------------------------------------
-#define kalmanSetVectorMacro( var, name )       \
-  virtual void Set##name( const TVector& v )    \
-  { this->Set##var( v ); }
-
-// -------------------------------------------------------------------------
-#define kalmanGetSetVectorMacro( var, name )    \
-  kalmanGetVectorMacro( var, name );            \
-  kalmanSetVectorMacro( var, name );
-
-namespace cpExtensions
-{
-  namespace Algorithms
-  {
-    /**
-     * Abstract class implementing the classical kalman filter. See
-     * http://www.cs.unc.edu/~welch/media/pdf/kalman_intro.pdf
-     * for a description of this algorithm.
-     */
-    template< typename T >
-    class cpExtensions_EXPORT KalmanFilter
-      : public itk::Object
-    {
-    public:
-      typedef KalmanFilter                    Self;
-      typedef itk::Object                     Superclass;
-      typedef itk::SmartPointer< Self >       Pointer;
-      typedef itk::SmartPointer< const Self > ConstPointer;
-
-      // Template parameters types
-      typedef T TScalar;
-
-      // VNL types
-      typedef vnl_matrix< TScalar > TMatrix;
-      typedef vnl_vector< TScalar > TVector;
-
-      //  stage identificators
-      enum
-      {
-        StPred,
-        StInno,
-        StFilt
-      };
-
-    public:
-      itkNewMacro( Self );
-      itkTypeMacro( KalmanFilter, itkObject );
-
-      // Values
-      itkGetConstMacro( StateSize, unsigned int );
-      itkGetConstMacro( InputSize, unsigned int );
-      itkGetConstMacro( MeasureSize, unsigned int );
-
-      // Matrices
-      kalmanGetSetMacro( TMatrix, A );
-      kalmanGetSetMacro( TMatrix, B );
-      kalmanGetSetMacro( TMatrix, H );
-      kalmanGetSetMacro( TMatrix, Q );
-      kalmanGetSetMacro( TMatrix, R );
-      kalmanGetSetMacro( TMatrix, P0 );
-      kalmanGetSetMacro( TMatrix, K );
-      kalmanGetSetMacro( TMatrix, Pm );
-      kalmanGetSetMacro( TMatrix, Pp );
-
-      // Vectors
-      kalmanGetSetMacro( TVector, x0 );
-      kalmanGetSetMacro( TVector, u );
-      kalmanGetSetMacro( TVector, m );
-      kalmanGetSetMacro( TVector, xm );
-      kalmanGetSetMacro( TVector, xp );
-
-      // Human-readable matrices
-      kalmanGetSetMatrixMacro( A, TransitionMatrix );
-      kalmanGetSetMatrixMacro( B, InputControlMatrix );
-      kalmanGetSetMatrixMacro( H, MeasureMatrix );
-      kalmanGetSetMatrixMacro( Q, ProcessNoise );
-      kalmanGetSetMatrixMacro( R, MeasureNoise );
-      kalmanGetSetMatrixMacro( P0, InitialNoise );
-      kalmanGetSetMatrixMacro( K, Gain );
-      kalmanGetSetMatrixMacro( Pm, APrioriNoise );
-      kalmanGetSetMatrixMacro( Pp, APosterioriNoise );
-
-      // Human-readable vectors
-      kalmanGetSetVectorMacro( x0, InitialState );
-      kalmanGetSetVectorMacro( u, Input );
-      kalmanGetSetVectorMacro( m, Measure );
-      kalmanGetSetVectorMacro( xm, APrioriState );
-      kalmanGetSetVectorMacro( xp, APosterioriState );
-
-    public:
-
-      void Configure( unsigned int s, unsigned int i, unsigned int m );
-
-      // Iteration methods
-      virtual void Initialize( );
-      virtual void Predict( );
-      virtual void Innovate( );
-      virtual void Filtrate( );
-      virtual void OneStep( )
-        {
-          this->Predict( );
-          this->Innovate( );
-          this->Filtrate( );
-        }
-      virtual void NSteps( unsigned int n )
-        {
-          for( unsigned int i = 0; i < n; i++ )
-            this->OneStep( );
-        }
-      unsigned int CurrentIteration( ) const
-        { return( this->m_I ); }
-      unsigned char CurrentStep( ) const
-        { return( this->m_Step ); }
-
-    protected:
-      KalmanFilter( );
-      virtual ~KalmanFilter( );
-
-    private:
-      // Purposely not implemented
-      KalmanFilter( const Self& );
-      void operator=( const Self& );
-
-    protected:
-      // Filter dimensions
-      unsigned int m_StateSize;
-      unsigned int m_InputSize;
-      unsigned int m_MeasureSize;
-
-      // Transition matrices
-      TMatrix m_A;  // Transition
-      TMatrix m_B;  // Input control
-      TMatrix m_H;  // Measure
-      TMatrix m_Id; // Identity matrix
-
-      // Noise matrices
-      TMatrix m_Q; // Process noise covariance
-      TMatrix m_R; // Measure noise covariance
-
-      // Initial values
-      TVector m_x0; // Initial state
-      TMatrix m_P0; // Initial error covariance
-
-      // Loop vectors
-      TVector m_u;  // Last real input
-      TVector m_m;  // Last real measure
-      TVector m_xm; // A priori state
-      TVector m_xp; // A posteriori state
-
-      // Loop matrices
-      TMatrix m_K; // kalman gain
-      TMatrix m_Pm; // A priori error
-      TMatrix m_Pp; // A posteriori error
-
-      // Loop values
-      unsigned int  m_I;    // Current iteration
-      unsigned char m_Step; // Current step within current iteration
-
-      // -------------------------------------------------------------------
-      // Classic kronecker product operator
-      // -------------------------------------------------------------------
-      template< class M >
-      static void Kronecker( M& AkB, const M& A, const M& B );
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#ifndef ITK_MANUAL_INSTANTIATION
-#include <cpExtensions/Algorithms/KalmanFilter.hxx>
-#endif // ITK_MANUAL_INSTANTIATION
-
-#endif // __CPEXTENSIONS__ALGORITHMS__KALMANFILTER__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/KalmanFilter.hxx b/lib/cpExtensions/Algorithms/KalmanFilter.hxx
deleted file mode 100644 (file)
index e81cae2..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef __CPEXTENSIONS__ALGORITHMS__KALMANFILTER__HXX__
-#define __CPEXTENSIONS__ALGORITHMS__KALMANFILTER__HXX__
-
-// -------------------------------------------------------------------------
-template< typename T >
-template< class M >
-void cpExtensions::Algorithms::KalmanFilter< T >::
-Kronecker( M& AkB, const M& A, const M& B )
-{
-  unsigned int m = A.rows( ); unsigned int n = A.cols( );
-  unsigned int p = B.rows( ); unsigned int q = B.cols( );
-  AkB.set_size( m * p, n * q );
-
-  for( unsigned int i = 1; i <= m; ++i )
-  {
-    for( unsigned int j = 1; j <= n; ++j )
-    {
-      for( unsigned int k = 1; k <= p; ++k )
-      {
-        for( unsigned int l = 1; l <= q; ++l )
-        {
-          unsigned int al = ( ( p * ( i - 1 ) ) + k ) - 1;
-          unsigned int be = ( ( q * ( j - 1 ) ) + l ) - 1;
-          AkB[ al ][ be ] = A[ i - 1 ][ j - 1 ] * B[ k - 1 ][ l - 1 ];
-
-        } // rof
-
-      } // rof
-
-    } // rof
-
-  } // rof
-}
-
-#endif // __CPEXTENSIONS__ALGORITHMS__KALMANFILTER__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/KalmanVelocityFilter.cxx b/lib/cpExtensions/Algorithms/KalmanVelocityFilter.cxx
deleted file mode 100644 (file)
index a725e16..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-// -------------------------------------------------------------------------
-// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
-// -------------------------------------------------------------------------
-
-#include <cpExtensions/Algorithms/KalmanVelocityFilter.h>
-#include <cmath>
-
-// -------------------------------------------------------------------------
-template< typename T >
-void cpExtensions::Algorithms::KalmanVelocityFilter< T >::
-Configure( unsigned int m )
-{
-  this->Superclass::Configure( m << 1, 1, m );
-
-  this->m_TimeOffset.set_size( 2, 2 );
-  this->SetTimeOffset( TScalar( 1 ) );
-
-  this->m_Sigma.set_size( this->m_MeasureSize, this->m_MeasureSize );
-  this->m_Sigma.set_identity( );
-}
-
-// -------------------------------------------------------------------------
-template< typename T >
-typename cpExtensions::Algorithms::KalmanVelocityFilter< T >::
-TScalar cpExtensions::Algorithms::KalmanVelocityFilter< T >::
-GetTimeOffset( ) const
-{
-  return( TScalar( std::sqrt( double( this->m_TimeOffset[ 1 ][ 1 ] ) ) ) );
-}
-
-// -------------------------------------------------------------------------
-template< typename T >
-void cpExtensions::Algorithms::KalmanVelocityFilter< T >::
-SetTimeOffset( TScalar t )
-{
-  TScalar t2 = t * t;
-  TScalar t3 = t2 * t;
-  TScalar t4 = t3 * t;
-  this->m_TimeOffset[ 0 ][ 0 ] = t4 / TScalar( 4 );
-  this->m_TimeOffset[ 1 ][ 1 ] = t2;
-
-  this->m_TimeOffset[ 0 ][ 1 ] = t3 / TScalar( 2 );
-  this->m_TimeOffset[ 1 ][ 0 ] = this->m_TimeOffset[ 0 ][ 1 ];
-}
-
-// -------------------------------------------------------------------------
-template< typename T >
-void cpExtensions::Algorithms::KalmanVelocityFilter< T >::
-Initialize( )
-{
-  this->Superclass::Initialize( );
-
-  Self::Kronecker( this->m_Q, this->m_Sigma, this->m_TimeOffset );
-
-  this->m_A.set_identity( );
-  this->m_B.fill( TScalar( 0 ) );
-  this->m_H.fill( TScalar( 0 ) );
-
-  TScalar tOff = this->GetTimeOffset( );
-  for( unsigned int i = 0; i < this->m_MeasureSize; i++ )
-  {
-    this->m_A[ i ][ this->m_MeasureSize + i ] = tOff;
-    this->m_H[ i ][ i ] = TScalar( 1 );
-
-  } // rof
-}
-
-// -------------------------------------------------------------------------
-template< typename T >
-cpExtensions::Algorithms::KalmanVelocityFilter< T >::
-KalmanVelocityFilter( )
-  : Superclass( )
-{
-  this->Configure( 1 );
-}
-
-// -------------------------------------------------------------------------
-template< typename T >
-cpExtensions::Algorithms::KalmanVelocityFilter< T >::
-~KalmanVelocityFilter( )
-{
-}
-
-// -------------------------------------------------------------------------
-// Explicit instantiations
-
-template class cpExtensions::Algorithms::KalmanVelocityFilter< float >;
-template class cpExtensions::Algorithms::KalmanVelocityFilter< double >;
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/KalmanVelocityFilter.h b/lib/cpExtensions/Algorithms/KalmanVelocityFilter.h
deleted file mode 100644 (file)
index 781e911..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-// -------------------------------------------------------------------------
-// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
-// -------------------------------------------------------------------------
-
-#ifndef __CPEXTENSIONS__ALGORITHMS__KALMANVELOCITYFILTER__H__
-#define __CPEXTENSIONS__ALGORITHMS__KALMANVELOCITYFILTER__H__
-
-#include <cpExtensions/Algorithms/KalmanFilter.h>
-
-namespace cpExtensions
-{
-  namespace Algorithms
-  {
-    /**
-     */
-    template< typename T >
-    class cpExtensions_EXPORT KalmanVelocityFilter
-      : public KalmanFilter< T >
-    {
-    public:
-      typedef KalmanVelocityFilter            Self;
-      typedef KalmanFilter< T >               Superclass;
-      typedef itk::SmartPointer< Self >       Pointer;
-      typedef itk::SmartPointer< const Self > ConstPointer;
-
-      typedef typename Superclass::TScalar TScalar;
-      typedef typename Superclass::TMatrix TMatrix;
-      typedef typename Superclass::TVector TVector;
-
-    public:
-      itkNewMacro( Self );
-      itkTypeMacro( KalmanVelocityFilter, KalmanFilter );
-
-      kalmanGetSetMacro( TMatrix, Sigma );
-      kalmanGetSetMatrixMacro( Sigma, AccelerationNoise );
-
-    public:
-      void Configure( unsigned int m );
-
-      TScalar GetTimeOffset( ) const;
-      void SetTimeOffset( TScalar t );
-
-      /// Iteration methods
-      virtual void Initialize( ) ITK_OVERRIDE;
-
-    protected:
-        KalmanVelocityFilter( );
-        virtual ~KalmanVelocityFilter( );
-
-    private:
-        // Purposely not implemented.
-        KalmanVelocityFilter( const Self& );
-        void operator=( const Self& );
-
-    protected:
-        TMatrix m_TimeOffset;
-        TMatrix m_Sigma;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#endif // __CPEXTENSIONS__ALGORITHMS__KALMANVELOCITYFILTER__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/LightCompensationFilter.h b/lib/cpExtensions/Algorithms/LightCompensationFilter.h
deleted file mode 100644 (file)
index a3c28ff..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-// -------------------------------------------------------------------------
-// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
-// -------------------------------------------------------------------------
-
-#ifndef __CPEXTENSIONS__ALGORITHMS__LIGHTCOMPENSATIONFILTER__H__
-#define __CPEXTENSIONS__ALGORITHMS__LIGHTCOMPENSATIONFILTER__H__
-
-#include <itkInPlaceImageFilter.h>
-#include <cpExtensions/Algorithms/ParallelImageMean.h>
-
-namespace cpExtensions
-{
-  namespace Algorithms
-  {
-    /**
-     */
-    template< class I >
-    class LightCompensationFilter
-      : public itk::InPlaceImageFilter< I, I >
-    {
-    public:
-      typedef LightCompensationFilter         Self;
-      typedef itk::InPlaceImageFilter< I, I > Superclass;
-      typedef itk::SmartPointer< Self >       Pointer;
-      typedef itk::SmartPointer< const Self > ConstPointer;
-
-      typedef I TImage;
-      typedef typename I::RegionType TRegion;
-
-      typedef cpExtensions::Algorithms::ParallelImageMean< I > TMeanCalculator;
-      typedef typename TMeanCalculator::TMean TMean;
-
-    public:
-      itkNewMacro( Self );
-      itkTypeMacro( LightCompensationFilter, itkInPlaceImageFilter );
-
-      itkGetConstMacro( Mean, TMean );
-
-    protected:
-      LightCompensationFilter( );
-      virtual ~LightCompensationFilter( );
-
-    private:
-      virtual void BeforeThreadedGenerateData( );
-      virtual void ThreadedGenerateData(
-        const TRegion& region, itk::ThreadIdType id
-        );
-      virtual void AfterThreadedGenerateData( );
-
-    protected:
-      TMean m_Mean;
-      TMean m_Coefficient;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#ifndef ITK_MANUAL_INSTANTIATION
-#include <cpExtensions/Algorithms/LightCompensationFilter.hxx>
-#endif // ITK_MANUAL_INSTANTIATION
-
-#endif // __CPEXTENSIONS__ALGORITHMS__LIGHTCOMPENSATIONFILTER__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/LightCompensationFilter.hxx b/lib/cpExtensions/Algorithms/LightCompensationFilter.hxx
deleted file mode 100644 (file)
index f75ffcd..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-// -------------------------------------------------------------------------
-// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
-// -------------------------------------------------------------------------
-
-#ifndef __CPEXTENSIONS__ALGORITHMS__LIGHTCOMPENSATIONFILTER__HXX__
-#define __CPEXTENSIONS__ALGORITHMS__LIGHTCOMPENSATIONFILTER__HXX__
-
-#include <itkImageRegionIterator.h>
-#include <itkImageRegionConstIterator.h>
-#include <itkNumericTraits.h>
-
-// -------------------------------------------------------------------------
-template< class I >
-cpExtensions::Algorithms::LightCompensationFilter< I >::
-LightCompensationFilter( )
-  : Superclass( )
-{
-  this->SetNumberOfRequiredInputs( 1 );
-  this->InPlaceOff( );
-}
-
-// -------------------------------------------------------------------------
-template< class I >
-cpExtensions::Algorithms::LightCompensationFilter< I >::
-~LightCompensationFilter( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class I >
-void cpExtensions::Algorithms::LightCompensationFilter< I >::
-BeforeThreadedGenerateData( )
-{
-  this->Superclass::BeforeThreadedGenerateData( );
-
-  I* input = const_cast< I* >( this->GetInput( ) );
-
-  typename TMeanCalculator::Pointer mc = TMeanCalculator::New( );
-  mc->Execute( input, input->GetRequestedRegion( ) );
-  this->m_Mean = mc->GetMean( );
-
-  double gm = this->m_Mean[ 0 ] + this->m_Mean[ 1 ] + this->m_Mean[ 2 ];
-  gm /= double( 3 );
-  this->m_Coefficient = this->m_Mean;
-  this->m_Coefficient.Fill( gm );
-  this->m_Coefficient[ 0 ] /= this->m_Mean[ 0 ];
-  this->m_Coefficient[ 1 ] /= this->m_Mean[ 1 ];
-  this->m_Coefficient[ 2 ] /= this->m_Mean[ 2 ];
-}
-
-// -------------------------------------------------------------------------
-template< class I >
-void cpExtensions::Algorithms::LightCompensationFilter< I >::
-ThreadedGenerateData( const TRegion& region, itk::ThreadIdType id )
-{
-  typedef itk::NumericTraits< typename I::PixelType > _TPixelTraits;
-  typedef typename _TPixelTraits::ValueType           _TPixelChannel;
-  typedef itk::NumericTraits< _TPixelChannel >        _TChannelTraits;
-  static const double max_value = double( _TChannelTraits::max( ) );
-
-  itk::ImageRegionConstIterator< I > iIt( this->GetInput( ), region );
-  itk::ImageRegionIterator< I > oIt( this->GetOutput( ), region );
-
-  iIt.GoToBegin( );
-  oIt.GoToBegin( );
-  for( ; !iIt.IsAtEnd( ); ++iIt, ++oIt )
-  {
-    double r = double( iIt.Get( )[ 0 ] ) * this->m_Coefficient[ 0 ];
-    double g = double( iIt.Get( )[ 1 ] ) * this->m_Coefficient[ 1 ];
-    double b = double( iIt.Get( )[ 2 ] ) * this->m_Coefficient[ 2 ];
-
-    if( r > max_value ) r = max_value;
-    if( g > max_value ) g = max_value;
-    if( b > max_value ) b = max_value;
-
-    typename I::PixelType pix;
-    pix.SetRed( _TPixelChannel( r ) );
-    pix.SetGreen( _TPixelChannel( g ) );
-    pix.SetBlue( _TPixelChannel( b ) );
-
-    oIt.Set( pix );
-
-  } // rof
-}
-
-// -------------------------------------------------------------------------
-template< class I >
-void cpExtensions::Algorithms::LightCompensationFilter< I >::
-AfterThreadedGenerateData( )
-{
-  this->Superclass::AfterThreadedGenerateData( );
-}
-
-#endif // __CPEXTENSIONS__ALGORITHMS__LIGHTCOMPENSATIONFILTER__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/MFluxMedialness.h b/lib/cpExtensions/Algorithms/MFluxMedialness.h
deleted file mode 100644 (file)
index e050392..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-#ifndef __CPEXTENSIONS__ALGORITHMS__MFLUXMEDIALNESS__H__
-#define __CPEXTENSIONS__ALGORITHMS__MFLUXMEDIALNESS__H__
-
-#include <cpExtensions/Algorithms/GradientImageFunctionBase.h>
-
-namespace cpExtensions
-{
-  namespace Algorithms
-  {
-    /**
-     */
-    template< class _TGradient >
-    class MFluxMedialness
-      : public GradientImageFunctionBase< _TGradient >
-    {
-    public:
-      typedef MFluxMedialness                         Self;
-      typedef GradientImageFunctionBase< _TGradient > Superclass;
-      typedef itk::SmartPointer< Self >               Pointer;
-      typedef itk::SmartPointer< const Self >         ConstPointer;
-
-      itkStaticConstMacro( Dimension, unsigned int, Superclass::Dimension );
-
-      typedef typename Superclass::TOutput TOutput;
-      typedef typename Superclass::TScalar TScalar;
-      typedef typename Superclass::TIndex  TIndex;
-      typedef typename Superclass::TVector TVector;
-      typedef typename Superclass::TPoint  TPoint;
-
-      typedef std::vector< double > TRCandidates;
-
-    public:
-      itkNewMacro( Self );
-      itkTypeMacro( MFluxMedialness, GradientImageFunctionBase );
-
-      itkGetConstMacro( RadiusStep, double );
-      itkGetConstMacro( MinRadius, double );
-      itkGetConstMacro( MaxRadius, double );
-      itkGetConstMacro( RadialSampling, unsigned int );
-
-      itkSetMacro( RadiusStep, double );
-      itkSetMacro( MinRadius, double );
-      itkSetMacro( MaxRadius, double );
-      itkSetMacro( RadialSampling, unsigned int );
-
-    protected:
-      MFluxMedialness( );
-      virtual ~MFluxMedialness( );
-
-      virtual TOutput _Evaluate( const TIndex& i ) const ITK_OVERRIDE;
-
-    private:
-      // Purposely not implemented.
-      MFluxMedialness( const Self& );
-      void operator=( const Self& );
-
-    protected:
-      double       m_MinRadius;
-      double       m_MaxRadius;
-      unsigned int m_RadialSampling;
-      double       m_RadiusStep;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#ifndef ITK_MANUAL_INSTANTIATION
-#  include <cpExtensions/Algorithms/MFluxMedialness.hxx>
-#endif // ITK_MANUAL_INSTANTIATION
-
-#endif // __CPEXTENSIONS__ALGORITHMS__MFLUXMEDIALNESS__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/MFluxMedialness.hxx b/lib/cpExtensions/Algorithms/MFluxMedialness.hxx
deleted file mode 100644 (file)
index 20e7f15..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-#ifndef __CPEXTENSIONS__ALGORITHMS__MFLUXMEDIALNESS__HXX__
-#define __CPEXTENSIONS__ALGORITHMS__MFLUXMEDIALNESS__HXX__
-
-#include <cmath>
-#include <vnl/vnl_math.h>
-#include <itkLineConstIterator.h>
-
-// -------------------------------------------------------------------------
-template< class _TGradient >
-cpExtensions::Algorithms::MFluxMedialness< _TGradient >::
-MFluxMedialness( )
-  : Superclass( ),
-    m_MinRadius( double( 0 ) ),
-    m_MaxRadius( double( 1 ) ),
-    m_RadialSampling( 4 ),
-    m_RadiusStep( double( 1 ) )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class _TGradient >
-cpExtensions::Algorithms::MFluxMedialness< _TGradient >::
-~MFluxMedialness( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class _TGradient >
-typename cpExtensions::Algorithms::MFluxMedialness< _TGradient >::
-TOutput cpExtensions::Algorithms::MFluxMedialness< _TGradient >::
-_Evaluate( const TIndex& i ) const
-{
-  itk::Object::GlobalWarningDisplayOff( );
-
-  double pi2n = double( 2 ) * double( vnl_math::pi );
-  pi2n /= int( this->m_RadialSampling );
-  const _TGradient* img = this->GetInputImage( );
-  //const itk::Image::SpacingType& input_spacing = img->GetSpacing( );
-
-  double Flux1 = 0;
-  double Flux2 = 0;
-  double MFlux = 0;
-
-  TRCandidates FluxFinal;
-  TRCandidates radiusGenerated;
-  double dR = double( 0 );
-  double optR = double( 0 );
-  TPoint center;
-  img->TransformIndexToPhysicalPoint( i, center );
-  double radius;
-
-  for( unsigned int cx = 0; cx < Self::Dimension - 1; cx++ )
-  {
-    for( unsigned int cy = cx + 1; cy < Self::Dimension; cy++ )
-    {
-      dR = double( 0 );
-      FluxFinal.clear();
-      radiusGenerated.clear();
-      radius = this->m_MinRadius;
-      while( radius <= this->m_MaxRadius )
-      {
-        MFlux = 0;
-        for( unsigned int I_radial = 0; I_radial < this->m_RadialSampling / 2; I_radial++ )
-        {
-          Flux1 = 0;
-          Flux2 = 0;
-
-          // Direction of first profile
-          typename TPoint::VectorType dir1;
-          dir1.Fill( double( 0 ) );
-          dir1[ cx ] = std::cos( pi2n * double( I_radial ) );
-          dir1[ cy ] = std::sin( pi2n * double( I_radial ) );
-          //dir1 *= (radius);
-
-          TIndex rIdx;
-
-          if ( img->TransformPhysicalPointToIndex( center + (dir1*radius), rIdx ) )
-          {
-            TVector grad_rIdx = img->GetPixel( rIdx );
-            TVector u_i1;
-            u_i1.SetVnlVector( ( center - ( center + dir1 ) ).GetVnlVector( ) );
-            u_i1.Normalize( );
-            // dot product
-            Flux1 = grad_rIdx * u_i1;
-          }
-          else
-          {
-            //if (Self::Dimension==3)
-            //{
-            //std::cout<<"Point Edge x:"<<center[0]+dir1[0] ;
-            //std::cout<<" y:"<<center[1]+dir1[1]<<" z:"<<center[2]+dir1[2]<<std::endl;
-            //}
-            //else if (Self::Dimension==2)
-            //{
-            //std::cout<<"Point Edge x:"<<center[0]+dir1[0] ;
-            //std::cout<<" y:"<<center[1]+dir1[1]<<std::endl;
-            //}
-          }
-
-          // Direction of second profile
-          // pi2n*Iradial + 180°
-          typename TPoint::VectorType dir2;
-          dir2.Fill( double( 0 ) );
-          dir2[ cx ] =  std::cos( (pi2n) * double( I_radial ) + double( vnl_math::pi ));
-          dir2[ cy ] =  std::sin( (pi2n) * double( I_radial ) + double( vnl_math::pi ));
-
-          TIndex rIdx2;
-
-          if ( img->TransformPhysicalPointToIndex( center + (dir2*radius), rIdx2 ) )
-          {
-            TVector grad_rIdx2 = img->GetPixel( rIdx2 );
-            TVector u_i2;
-            u_i2.SetVnlVector( ( center - ( center + dir2 ) ).GetVnlVector( ) );
-            u_i2.Normalize( );
-
-            Flux2 = grad_rIdx2 * u_i2;
-          }
-          else
-          {
-            //if (Self::Dimension==3)
-            //{
-            //std::cout<<"Point Edge x:"<<center[0]+dir2[0] ;
-            //std::cout<<" y:"<<center[1]+dir2[1]<<" z:"<<center[2]+dir2[2]<<std::endl;
-            //}
-            //else if (Self::Dimension==2)
-            //{
-            //std::cout<<"Point Edge x:"<<center[0]+dir2[0] ;
-            //std::cout<<" y:"<<center[1]+dir2[1]<<std::endl;
-            //}
-          }
-
-          MFlux += std::min( Flux1, Flux2 );
-        } // rof
-
-        //std::cout<<Self::Dimension<<" radius:"<<radius<<std::endl;
-        //std::cout<<"Center:"<<center[0]<<" "<<center[1]<<std::endl;
-        //std::cout<<"edge:"<<center[0]+radius*std::cos( pi2n * double( 0 ) )<<std::endl;
-
-        MFlux *= 2;
-        MFlux /= this->m_RadialSampling;
-        FluxFinal.push_back(MFlux);
-        radiusGenerated.push_back(radius);
-
-        radius += this->m_RadiusStep;
-
-      }     //elihw
-
-      dR= *( std::max_element( FluxFinal.begin(), FluxFinal.end() ) );
-      optR= (dR>optR)? dR:optR;
-
-    } // rof
-
-  } // rof
-  return( TScalar(optR) );
-}
-
-#endif // __CPEXTENSIONS__ALGORITHMS__MFLUXMEDIALNESS__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/MacheteImageFilter.h b/lib/cpExtensions/Algorithms/MacheteImageFilter.h
deleted file mode 100644 (file)
index d9d3c32..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-// -------------------------------------------------------------------------
-// @author Jose Luis Guzman (cycopepe@gmail.com)
-// -------------------------------------------------------------------------
-
-
-#ifndef __CPEXTENSIONS__ALGORITHMS__MACHETEIMAGEFILTER__H__
-#define __CPEXTENSIONS__ALGORITHMS__MACHETEIMAGEFILTER__H__
-
-#include <cpExtensions/cpExtensions_Export.h>
-
-#include <itkImageToImageFilter.h>
-
-namespace cpExtensions
-{
-  namespace Algorithms
-  {
-    template< class I, class O>
-    class MacheteImageFilter :public itk::ImageToImageFilter < I, O >
-    {
-    public:
-      /** Standard class typedefs. */
-      typedef MacheteImageFilter             Self;
-
-      typedef itk::ImageToImageFilter< I, O > Superclass;
-      typedef itk::SmartPointer< Self >        Pointer;
-
-      /** Method for creation through the object factory. */
-      itkNewMacro(Self);
-
-      /** Run-time type information (and related methods). */
-      itkTypeMacro(MacheteImageFilter, ImageToImageFilter);
-      
-      typedef typename I::PixelType           RadiusType;
-      //typedef typename I::SizeValueType      RadiusValueType;
-      
-      itkGetConstReferenceMacro(Radius, RadiusType);
-
-      
-      void SetRadius(const RadiusType & rad);
-      //void SetRadius(const RadiusValueType & rad);
-
-      void SetPoint(itk::Point<double, 3> & point);
-      void SetPoint(const double & x, const double & y, const double & z);
-
-    protected:
-      MacheteImageFilter(){}
-      ~MacheteImageFilter(){}
-
-      /** Does the real work. */
-      virtual void GenerateData();
-
-      RadiusType m_Radius;
-      itk::Point<double, 3> point;
-
-    private:
-      MacheteImageFilter(const Self &); //purposely not implemented
-      void operator=(const Self &);  //purposely not implemented
-
-     
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-
-#ifndef ITK_MANUAL_INSTANTIATION
-#include <cpExtensions/Algorithms/MacheteImageFilter.hxx>
-#endif
-
-
-#endif // __CPEXTENSIONS__ALGORITHMS__MACHETEIMAGEFILTER__H__
\ No newline at end of file
diff --git a/lib/cpExtensions/Algorithms/MacheteImageFilter.hxx b/lib/cpExtensions/Algorithms/MacheteImageFilter.hxx
deleted file mode 100644 (file)
index a984df1..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-#ifndef __CPEXTENSIONS__ALGORITHMS__MACHETEIMAGEFILTER__HXX__
-#define __CPEXTENSIONS__ALGORITHMS__MACHETEIMAGEFILTER__HXX__
-
-#include <cpExtensions/Algorithms/MacheteImageFilter.h>
-
-//filter stuff
-#include "itkObjectFactory.h"
-#include "itkImageRegionIterator.h"
-#include "itkImageRegionConstIterator.h"
-
-//typedef itk::Image<unsigned char, 2>  ImageType;
-
-template< class I, class O>
-void cpExtensions::Algorithms::MacheteImageFilter<  I, O>
-::GenerateData()
-{
-  //const typename Superclass::OutputImageRegionType& region;
-
-  typename I::ConstPointer input = this->GetInput();
-
-  typename O::Pointer output = this->GetOutput();
-  output->SetRegions(input->GetLargestPossibleRegion());
-  output->Allocate();
-
-  itk::ImageRegionIterator<O> outputIterator(output, output->GetLargestPossibleRegion());
-  itk::ImageRegionConstIterator<I> inputIterator(input, input->GetLargestPossibleRegion());
-
-  while (!outputIterator.IsAtEnd())
-  {
-    auto p0 = inputIterator.GetIndex();
-    itk::Point<double, 3> otherPoint;
-    otherPoint[0] = p0[0];
-    otherPoint[1] = p0[1];
-    otherPoint[2] = p0[2];
-    //otherPoint[2] = this->point[2]; // TODO : Solve this hammer
-
-    double dist = this->point.EuclideanDistanceTo(otherPoint);
-    if (dist <= this->m_Radius)
-    {
-      outputIterator.Set(0);
-    }
-    else
-    {
-      outputIterator.Set(inputIterator.Get());
-    }
-
-    ++inputIterator;
-    ++outputIterator;
-  }
-
-  
-}
-
-template< class I, class O>
-void cpExtensions::Algorithms::MacheteImageFilter< I, O>::SetRadius(const RadiusType & rad)
-{
-  if (this->m_Radius != rad)
-  {
-    this->m_Radius = rad;
-    this->Modified();
-  }
-}
-
-//template< class I, class O>
-//void cpExtensions::Algorithms::MacheteImageFilter< I, O>::SetRadius(const RadiusValueType & rad)
-//{
-//  RadiusType r;
-//  r.Fill(rad);
-//  this->SetRadius(r);
-//}
-
-template< class I, class O>
-void cpExtensions::Algorithms::MacheteImageFilter< I, O>::SetPoint(itk::Point<double, 3> & p){
-  if (point != p)
-  {
-    this->point = p;
-    this->Modified();
-  }
-}
-
-template< class I, class O>
-void cpExtensions::Algorithms::MacheteImageFilter< I, O>::SetPoint(const double & x, const double & y, const double & z)
-{
-  this->point[0] = x;
-  this->point[1] = y;
-  this->point[2] = z;
-  this->Modified();
-}
-
-
-
-#endif
\ No newline at end of file
diff --git a/lib/cpExtensions/Algorithms/MultiScaleGaussianImageFilter.h b/lib/cpExtensions/Algorithms/MultiScaleGaussianImageFilter.h
deleted file mode 100644 (file)
index 272e839..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-// -------------------------------------------------------------------------
-// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
-// -------------------------------------------------------------------------
-
-#ifndef __CPEXTENSIONS__ALGORITHMS__MULTISCALEGAUSSIANIMAGEFILTER__H__
-#define __CPEXTENSIONS__ALGORITHMS__MULTISCALEGAUSSIANIMAGEFILTER__H__
-
-#include <set>
-#include <itkImageToImageFilter.h>
-
-namespace cpExtensions
-{
-  namespace Algorithms
-  {
-    /**
-     */
-    template< class I, class O >
-    class MultiScaleGaussianImageFilter
-      : public itk::ImageToImageFilter< I, O >
-    {
-    public:
-      typedef MultiScaleGaussianImageFilter   Self;
-      typedef itk::ImageToImageFilter< I, O > Superclass;
-      typedef itk::SmartPointer< Self >       Pointer;
-      typedef itk::SmartPointer< const Self > ConstPointer;
-
-      typedef I TInputImage;
-      typedef O TOutputImage;
-
-      typedef std::set< double > TScalesContainer;
-
-    protected:
-      /**
-       */
-      class _Greater
-      {
-      public:
-        typedef typename O::PixelType _T;
-
-      public:
-        _Greater( );
-        virtual ~_Greater( );
-        bool operator!=( const _Greater& b ) const;
-        bool operator==( const _Greater& b ) const;
-        inline _T operator()( const _T& a ) const;
-        inline _T operator()( const _T& a, const _T& b ) const;
-      };
-
-    public:
-      itkNewMacro( Self );
-      itkTypeMacro( MultiScaleGaussianImageFilter, itkImageToImageFilter );
-
-    public:
-      void AddScale( const double& s );
-      unsigned long GetNumberOfScales( ) const;
-
-    protected:
-      MultiScaleGaussianImageFilter( );
-      virtual ~MultiScaleGaussianImageFilter( );
-
-      virtual void GenerateData( ) ITK_OVERRIDE;
-
-      template< class F >
-      void _GenerateData( );
-
-    private:
-      // Purposely not implemented.
-      MultiScaleGaussianImageFilter( const Self& );
-      void operator=( const Self& );
-
-    protected:
-      TScalesContainer m_Scales;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#ifndef ITK_MANUAL_INSTANTIATION
-#include <cpExtensions/Algorithms/MultiScaleGaussianImageFilter.hxx>
-#endif // ITK_MANUAL_INSTANTIATION
-
-#endif // __CPEXTENSIONS__ALGORITHMS__MULTISCALEGAUSSIANIMAGEFILTER__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/MultiScaleGaussianImageFilter.hxx b/lib/cpExtensions/Algorithms/MultiScaleGaussianImageFilter.hxx
deleted file mode 100644 (file)
index aff0fd8..0000000
+++ /dev/null
@@ -1,226 +0,0 @@
-// -------------------------------------------------------------------------
-// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
-// -------------------------------------------------------------------------
-
-#ifndef __CPEXTENSIONS__ALGORITHMS__MULTISCALEGAUSSIANIMAGEFILTER__HXX__
-#define __CPEXTENSIONS__ALGORITHMS__MULTISCALEGAUSSIANIMAGEFILTER__HXX__
-
-#include <vnl/vnl_vector.h>
-
-#include <itkImageRegionIterator.h>
-#include <itkImageRegionConstIterator.h>
-#include <itkNumericTraits.h>
-#include <itkProgressAccumulator.h>
-
-#include <itkBinaryFunctorImageFilter.h>
-#include <itkUnaryFunctorImageFilter.h>
-#include <itkGradientRecursiveGaussianImageFilter.h>
-
-// -------------------------------------------------------------------------
-template< class I, class O >
-cpExtensions::Algorithms::
-MultiScaleGaussianImageFilter< I, O >::_Greater::
-_Greater( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class I, class O >
-cpExtensions::Algorithms::
-MultiScaleGaussianImageFilter< I, O >::_Greater::
-~_Greater( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class I, class O >
-bool cpExtensions::Algorithms::
-MultiScaleGaussianImageFilter< I, O >::_Greater::
-operator!=( const _Greater& b ) const
-{
-  return( false );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class O >
-bool cpExtensions::Algorithms::
-MultiScaleGaussianImageFilter< I, O >::_Greater::
-operator==( const _Greater& b ) const
-{
-  return !( *this != b );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class O >
-typename cpExtensions::Algorithms::
-MultiScaleGaussianImageFilter< I, O >::_Greater::
-_T cpExtensions::Algorithms::
-MultiScaleGaussianImageFilter< I, O >::_Greater::
-operator()( const _T& a ) const
-{
-  return( a );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class O >
-typename cpExtensions::Algorithms::
-MultiScaleGaussianImageFilter< I, O >::_Greater::
-_T cpExtensions::Algorithms::
-MultiScaleGaussianImageFilter< I, O >::_Greater::
-operator()( const _T& a, const _T& b ) const
-{
-  typedef itk::NumericTraits< _T >     _TTraits;
-  typedef typename _TTraits::ValueType _TValue;
-  typedef vnl_vector< _TValue >        _TVector;
-
-  _TVector va( _TTraits::GetLength( ) );
-  _TVector vb( _TTraits::GetLength( ) );
-
-  _TTraits::AssignToArray( a, va );
-  _TTraits::AssignToArray( b, vb );
-  return( ( vb.magnitude( ) < va.magnitude( ) )? a: b );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class O >
-void
-cpExtensions::Algorithms::
-MultiScaleGaussianImageFilter< I, O >::
-AddScale( const double& s )
-{
-  if( this->m_Scales.insert( s ).second )
-    this->Modified( );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class O >
-unsigned long
-cpExtensions::Algorithms::
-MultiScaleGaussianImageFilter< I, O >::
-GetNumberOfScales( ) const
-{
-  return( this->m_Scales.size( ) );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class O >
-cpExtensions::Algorithms::
-MultiScaleGaussianImageFilter< I, O >::
-MultiScaleGaussianImageFilter( )
-  : Superclass( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class I, class O >
-cpExtensions::Algorithms::
-MultiScaleGaussianImageFilter< I, O >::
-~MultiScaleGaussianImageFilter( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class I, class O >
-void
-cpExtensions::Algorithms::
-MultiScaleGaussianImageFilter< I, O >::
-GenerateData( )
-{
-  typedef itk::GradientRecursiveGaussianImageFilter< I, O > _TGF;
-  this->_GenerateData< _TGF >( );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class O >
-template< class F >
-void
-cpExtensions::Algorithms::
-MultiScaleGaussianImageFilter< I, O >::
-_GenerateData( )
-{
-  // Some types
-  typedef itk::BinaryFunctorImageFilter< O, O, O, _Greater > _TMaxFilter;
-  typedef itk::UnaryFunctorImageFilter< O, O, _Greater >     _TCopyFilter;
-  typedef itk::ImageRegionConstIterator< O >                 _TConstIt;
-  typedef itk::ImageRegionIterator< O >                      _TIt;
-  typedef itk::ProgressAccumulator                           _TProgress;
-
-  // Some values
-  typename I::ConstPointer input = this->GetInput( );
-  typename O::Pointer output = this->GetOutput( );
-  unsigned int nThreads = this->GetNumberOfThreads( );
-  float fw = float( 1 ) / float( this->m_Scales.size( ) << 1 );
-
-  // Progress accumulator
-  _TProgress::Pointer pg = _TProgress::New( );
-  pg->SetMiniPipelineFilter( this );
-
-  // Copy image information
-  output->SetLargestPossibleRegion( input->GetLargestPossibleRegion( ) );
-  output->SetRequestedRegion( input->GetRequestedRegion( ) );
-  output->SetBufferedRegion( input->GetBufferedRegion( ) );
-  output->SetSpacing( input->GetSpacing( ) );
-  output->SetOrigin( input->GetOrigin( ) );
-  output->SetDirection( input->GetDirection( ) );
-  output->Allocate( );
-
-  // Intermediary buffer
-  typename O::Pointer buffer = O::New( );
-  buffer->SetLargestPossibleRegion( input->GetLargestPossibleRegion( ) );
-  buffer->SetRequestedRegion( input->GetRequestedRegion( ) );
-  buffer->SetBufferedRegion( input->GetBufferedRegion( ) );
-  buffer->SetSpacing( input->GetSpacing( ) );
-  buffer->SetOrigin( input->GetOrigin( ) );
-  buffer->SetDirection( input->GetDirection( ) );
-  buffer->Allocate( );
-
-  // Perform all scales
-  _TIt gIt( output, output->GetRequestedRegion( ) );
-  TScalesContainer::const_iterator sIt = this->m_Scales.begin( );
-  for( ; sIt != this->m_Scales.end( ); sIt++ )
-  {
-    // Single scale filter
-    typename F::Pointer filter = F::New( );
-    filter->SetInput( input );
-    filter->SetNormalizeAcrossScale( true );
-    filter->SetNumberOfThreads( nThreads );
-    filter->SetSigma( *sIt );
-    pg->RegisterInternalFilter( filter, fw );
-    filter->GraftOutput( buffer );
-    filter->Update( );
-    buffer->Graft( filter->GetOutput( ) );
-
-    // Get maximum response
-    if( sIt == this->m_Scales.begin( ) )
-    {
-      // Copy first result
-      typename _TCopyFilter::Pointer copy = _TCopyFilter::New( );
-      copy->SetInput( buffer );
-      copy->InPlaceOff( );
-      copy->SetNumberOfThreads( nThreads );
-      pg->RegisterInternalFilter( copy, fw );
-      copy->GraftOutput( output );
-      copy->Update( );
-      output->Graft( copy->GetOutput( ) );
-    }
-    else
-    {
-      // Maximize results
-      typename _TMaxFilter::Pointer max = _TMaxFilter::New( );
-      max->SetInput1( output );
-      max->SetInput2( buffer );
-      max->InPlaceOn( );
-      max->SetNumberOfThreads( nThreads );
-      pg->RegisterInternalFilter( max, fw );
-      max->GraftOutput( output );
-      max->Update( );
-      output->Graft( max->GetOutput( ) );
-
-    } // fi
-
-  } // rof
-}
-
-#endif // __CPEXTENSIONS__ALGORITHMS__MULTISCALEGAUSSIANIMAGEFILTER__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/ParallelImageMean.h b/lib/cpExtensions/Algorithms/ParallelImageMean.h
deleted file mode 100644 (file)
index 6122ce3..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-// -------------------------------------------------------------------------
-// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
-// -------------------------------------------------------------------------
-
-#ifndef __CPEXTENSIONS__ALGORITHMS__PARALLELIMAGEMEAN__H__
-#define __CPEXTENSIONS__ALGORITHMS__PARALLELIMAGEMEAN__H__
-
-#include <itkDomainThreader.h>
-#include <itkThreadedImageRegionPartitioner.h>
-#include <itkArray.h>
-#include <itkNumericTraits.h>
-
-namespace cpExtensions
-{
-  namespace Algorithms
-  {
-    /**
-     */
-    template< class I >
-    class ParallelImageMean
-      : public itk::DomainThreader< itk::ThreadedImageRegionPartitioner< I::ImageDimension >, I >
-    {
-    public:
-      // Standard ITK typedefs.
-      typedef itk::DomainThreader< itk::ThreadedImageRegionPartitioner< I::ImageDimension >, I > Superclass;
-      typedef ParallelImageMean               Self;
-      typedef itk::SmartPointer< Self >       Pointer;
-      typedef itk::SmartPointer< const Self > ConstPointer;
-
-      typedef typename Superclass::DomainType DomainType;
-
-      typedef itk::Array< double > TMean;
-
-    protected:
-      typedef itk::NumericTraits< typename I::PixelType > _TPixelTraits;
-
-
-    public:
-      itkNewMacro( Self );
-      itkTypeMacro( ParallelImageMean, itkDomainThreader );
-
-      itkGetConstMacro( Mean, TMean );
-
-    protected:
-      ParallelImageMean( );
-      virtual ~ParallelImageMean( );
-
-    private:
-      virtual void BeforeThreadedExecution( );
-      virtual void ThreadedExecution(
-        const DomainType& region, const itk::ThreadIdType id
-        );
-      virtual void AfterThreadedExecution( );
-
-    protected:
-      itk::Array< double > m_Mean;
-      unsigned long m_N;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#ifndef ITK_MANUAL_INSTANTIATION
-#include <cpExtensions/Algorithms/ParallelImageMean.hxx>
-#endif // ITK_MANUAL_INSTANTIATION
-
-#endif // __CPEXTENSIONS__ALGORITHMS__PARALLELIMAGEMEAN__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/ParallelImageMean.hxx b/lib/cpExtensions/Algorithms/ParallelImageMean.hxx
deleted file mode 100644 (file)
index b3e4716..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-// -------------------------------------------------------------------------
-// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
-// -------------------------------------------------------------------------
-
-#ifndef __CPEXTENSIONS__ALGORITHMS__PARALLELIMAGEMEAN__HXX__
-#define __CPEXTENSIONS__ALGORITHMS__PARALLELIMAGEMEAN__HXX__
-
-#include <itkImageRegionConstIterator.h>
-
-// -------------------------------------------------------------------------
-template< class I >
-cpExtensions::Algorithms::ParallelImageMean< I >::
-ParallelImageMean( )
-  : Superclass( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class I >
-cpExtensions::Algorithms::ParallelImageMean< I >::
-~ParallelImageMean( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class I >
-void cpExtensions::Algorithms::ParallelImageMean< I >::
-BeforeThreadedExecution( )
-{
-  this->m_Mean.SetSize( _TPixelTraits::GetLength( ) );
-  this->m_Mean.Fill( double( 0 ) );
-  this->m_N = 0;
-}
-
-// -------------------------------------------------------------------------
-template< class I >
-void cpExtensions::Algorithms::ParallelImageMean< I >::
-ThreadedExecution( const DomainType& region, const itk::ThreadIdType id )
-{
-  itk::ImageRegionConstIterator< I > i( this->m_Associate, region );
-  for( i.GoToBegin( ); !i.IsAtEnd( ); ++i )
-  {
-    for( unsigned int d = 0; d < _TPixelTraits::GetLength( ); ++d )
-    {
-      this->m_Mean.SetElement(
-        d, this->m_Mean.GetElement( d ) + double( i.Get( )[ d ] )
-        );
-      this->m_N++;
-
-    } // rof
-
-  } // rof
-}
-
-// -------------------------------------------------------------------------
-template< class I >
-void cpExtensions::Algorithms::ParallelImageMean< I >::
-AfterThreadedExecution( )
-{
-  this->m_Mean /= double( this->m_N );
-}
-
-#endif // __CPEXTENSIONS__ALGORITHMS__PARALLELIMAGEMEAN__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/RGBExtractFunction.h b/lib/cpExtensions/Algorithms/RGBExtractFunction.h
deleted file mode 100644 (file)
index ec7126b..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-// -------------------------------------------------------------------------
-// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
-// -------------------------------------------------------------------------
-
-#ifndef __CPEXTENSIONS__ALGORITHMS__RGBEXTRACTFUNCTION__H__
-#define __CPEXTENSIONS__ALGORITHMS__RGBEXTRACTFUNCTION__H__
-
-#include <cmath>
-#include <limits>
-#include <vnl/vnl_math.h>
-
-#include <itkRGBPixel.h>
-
-namespace cpExtensions
-{
-  namespace Algorithms
-  {
-    /**
-     */
-    template< class P >
-    struct RGBExtractFunction
-    {
-      typedef RGBExtractFunction    Self;
-      typedef P                     TOutPixel;
-      typedef typename P::ValueType TValue;
-
-      template< class Tr, class Tg, class Tb >
-      P operator()( const Tr& r, const Tg& g, const Tb& b ) const
-        {
-          P out;
-          out[ 0 ] = TValue( r );
-          out[ 1 ] = TValue( g );
-          out[ 2 ] = TValue( b );
-          return( out );
-        }
-
-      template< class C >
-      TOutPixel operator()( const itk::RGBPixel< C >& rgb ) const
-        {
-          return(
-            this->operator()(
-              rgb.GetRed( ), rgb.GetGreen( ), rgb.GetBlue( )
-              )
-            );
-        }
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#endif // __CPEXTENSIONS__ALGORITHMS__RGBEXTRACTFUNCTION__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/RGBImageToOtherChannelsFilter.h b/lib/cpExtensions/Algorithms/RGBImageToOtherChannelsFilter.h
deleted file mode 100644 (file)
index 4ce6754..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-// -------------------------------------------------------------------------
-// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
-// -------------------------------------------------------------------------
-
-#ifndef __CPEXTENSIONS__ALGORITHMS__RGBIMAGETOOTHERCHANNELSFILTER__H__
-#define __CPEXTENSIONS__ALGORITHMS__RGBIMAGETOOTHERCHANNELSFILTER__H__
-
-#include <itkImageToImageFilter.h>
-
-namespace cpExtensions
-{
-  namespace Algorithms
-  {
-    /**
-     */
-    template< class I, class O, class C >
-    class RGBImageToOtherChannelsFilter
-      : public itk::ImageToImageFilter< I, O >
-    {
-    public:
-      typedef RGBImageToOtherChannelsFilter     Self;
-      typedef itk::ImageToImageFilter< I, O > Superclass;
-      typedef itk::SmartPointer< Self >       Pointer;
-      typedef itk::SmartPointer< const Self > ConstPointer;
-
-      typedef I TInputImage;
-      typedef O TOutputImage;
-      typedef C TConverter;
-      typedef typename I::PixelType TInputPixel;
-      typedef typename O::PixelType TOutputPixel;
-
-    public:
-      itkNewMacro( Self );
-      itkTypeMacro( RGBImageToOtherChannelsFilter, itkImageToImageFilter );
-
-    protected:
-      RGBImageToOtherChannelsFilter( );
-      virtual ~RGBImageToOtherChannelsFilter( );
-
-      virtual void BeforeThreadedGenerateData( );
-      virtual void AfterThreadedGenerateData( );
-
-      virtual void ThreadedGenerateData(
-        const typename Superclass::OutputImageRegionType& region,
-        itk::ThreadIdType threadId
-        );
-
-    private:
-      // Purposely not implemented
-      RGBImageToOtherChannelsFilter( const Self& other );
-      void operator=( const Self& other );
-
-    private:
-      TConverter Converter;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#ifndef ITK_MANUAL_INSTANTIATION
-#include <cpExtensions/Algorithms/RGBImageToOtherChannelsFilter.hxx>
-#endif // ITK_MANUAL_INSTANTIATION
-
-#endif // __CPEXTENSIONS__ALGORITHMS__RGBIMAGETOOTHERCHANNELSFILTER__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/RGBImageToOtherChannelsFilter.hxx b/lib/cpExtensions/Algorithms/RGBImageToOtherChannelsFilter.hxx
deleted file mode 100644 (file)
index 74578d4..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-// -------------------------------------------------------------------------
-// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
-// -------------------------------------------------------------------------
-
-#ifndef __CPEXTENSIONS__ALGORITHMS__RGBIMAGETOOTHERCHANNELSFILTER__HXX__
-#define __CPEXTENSIONS__ALGORITHMS__RGBIMAGETOOTHERCHANNELSFILTER__HXX__
-
-#include <cmath>
-#include <limits>
-#include <vnl/vnl_math.h>
-
-#include <itkImageRegionIterator.h>
-#include <itkImageRegionConstIterator.h>
-
-// -------------------------------------------------------------------------
-template< class I, class O, class C >
-cpExtensions::Algorithms::RGBImageToOtherChannelsFilter< I, O, C >::
-RGBImageToOtherChannelsFilter( )
-  : Superclass( )
-{
-  this->SetNumberOfRequiredInputs( 1 );
-  this->SetNumberOfRequiredOutputs( 1 );
-
-  typename O::Pointer o = O::New( );
-  this->SetNthOutput( 0, o );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class O, class C >
-cpExtensions::Algorithms::RGBImageToOtherChannelsFilter< I, O, C >::
-~RGBImageToOtherChannelsFilter( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class I, class O, class C >
-void cpExtensions::Algorithms::RGBImageToOtherChannelsFilter< I, O, C >::
-BeforeThreadedGenerateData( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class I, class O, class C >
-void cpExtensions::Algorithms::RGBImageToOtherChannelsFilter< I, O, C >::
-AfterThreadedGenerateData( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class I, class O, class C >
-void cpExtensions::Algorithms::RGBImageToOtherChannelsFilter< I, O, C >::
-ThreadedGenerateData(
-  const typename Superclass::OutputImageRegionType& region,
-  itk::ThreadIdType threadId
-  )
-{
-  // typedef typename TInputPixel::ComponentType _TComponent;
-  typedef itk::ImageRegionConstIterator< I > _TInIt;
-  typedef itk::ImageRegionIterator< O >      _TOutIt;
-
-  _TInIt inIt( this->GetInput( ), region );
-  _TOutIt outIt( this->GetOutput( ), region );
-  inIt.GoToBegin( );
-  outIt.GoToBegin( );
-  for( ; !inIt.IsAtEnd( ); ++inIt, ++outIt )
-    outIt.Set( this->Converter( inIt.Get( ) ) );
-}
-
-#endif // __CPEXTENSIONS__ALGORITHMS__RGBIMAGETOOTHERCHANNELSFILTER__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/RGBToHSVFunction.h b/lib/cpExtensions/Algorithms/RGBToHSVFunction.h
deleted file mode 100644 (file)
index b10f295..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-// -------------------------------------------------------------------------
-// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
-// -------------------------------------------------------------------------
-
-#ifndef __CPEXTENSIONS__ALGORITHMS__RGBTOHSVFUNCTION__H__
-#define __CPEXTENSIONS__ALGORITHMS__RGBTOHSVFUNCTION__H__
-
-#include <cmath>
-#include <limits>
-#include <vnl/vnl_math.h>
-
-#include <itkRGBPixel.h>
-
-namespace cpExtensions
-{
-  namespace Algorithms
-  {
-    /**
-     */
-    template< class P >
-    struct RGBToHSVFunction
-    {
-      typedef RGBToHSVFunction      Self;
-      typedef P                     TOutPixel;
-      typedef typename P::ValueType TValue;
-
-      template< class Tr, class Tg, class Tb >
-      P operator()( const Tr& r, const Tg& g, const Tb& b ) const
-        {
-          static const double mVal =
-            double( std::numeric_limits< TValue >::max( ) );
-          static const double _0 = double( 0 );
-          static const double _1 = double( 1 );
-          static const double _2 = double( 2 );
-          static const double _3 = double( 3 );
-          static const double _2pi = _2 * double( vnl_math::pi );
-
-          P hsv;
-
-          double R = double( r );
-          double G = double( g );
-          double B = double( b );
-          double sRGB = R + G + B;
-          double RG = R - G;
-          double RB = R - B;
-          double GB = G - B;
-
-          // Hue
-          double A = std::sqrt( ( RG * RG ) + ( RB * GB ) );
-          if( A != _0 )
-            A = std::acos( ( RG + RB ) / ( _2 * A ) );
-          A /= _2pi;
-          hsv[ 0 ] = TValue( mVal * ( ( G >= B )? A: _1 - A ) );
-
-          // Saturation
-          if( sRGB != _0 )
-          {
-            double C = ( G < R )? G: R;
-            C        = ( B < C )? B: C;
-            hsv[ 1 ] = TValue( mVal * ( _1 - ( ( _3 * C ) / sRGB ) ) );
-          }
-          else
-            hsv[ 1 ] = TValue( 0 );
-
-          // Value
-          hsv[ 2 ] = TValue( sRGB / _3 );
-          return( hsv );
-        }
-
-      template< class C >
-      TOutPixel operator()( const itk::RGBPixel< C >& rgb ) const
-        {
-          return(
-            this->operator()(
-              rgb.GetRed( ), rgb.GetGreen( ), rgb.GetBlue( )
-              )
-            );
-        }
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#endif // __CPEXTENSIONS__ALGORITHMS__RGBTOHSVFUNCTION__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/RGBToYPbPrFunction.h b/lib/cpExtensions/Algorithms/RGBToYPbPrFunction.h
deleted file mode 100644 (file)
index 83085fe..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-// -------------------------------------------------------------------------
-// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
-// -------------------------------------------------------------------------
-
-#ifndef __CPEXTENSIONS__ALGORITHMS__RGBTOYPBPRFUNCTION__H__
-#define __CPEXTENSIONS__ALGORITHMS__RGBTOYPBPRFUNCTION__H__
-
-#include <cmath>
-#include <limits>
-#include <vnl/vnl_math.h>
-#include <vnl/vnl_matrix.h>
-
-#include <itkRGBPixel.h>
-#include <itkMatrix.h>
-#include <itkVector.h>
-
-namespace cpExtensions
-{
-  namespace Algorithms
-  {
-    /**
-     */
-    template< class P >
-    struct RGBToYPbPrFunction
-    {
-      typedef RGBToYPbPrFunction    Self;
-      typedef P                     TOutPixel;
-      typedef typename P::ValueType TValue;
-
-      template< class Tr, class Tg, class Tb >
-      P operator()( const Tr& r, const Tg& g, const Tb& b ) const
-        {
-          static const double M[] =
-            {
-              double(  0.2990 ), double(  0.5870 ), double(  0.1140 ),
-              double( -0.1687 ), double( -0.3313 ), double(  0.5000 ),
-              double(  0.5000 ), double( -0.4187 ), double( -0.0813 )
-            };
-          static const vnl_matrix< double > vM( M, 3, 3 );
-          static const itk::Matrix< double, 3, 3 > iM( vM );
-
-          itk::Vector< double, 3 > rgb;
-          rgb[ 0 ] = double( r );
-          rgb[ 1 ] = double( b );
-          rgb[ 2 ] = double( g );
-          rgb = iM * rgb;
-
-          P out;
-          out[ 0 ] = TValue( rgb[ 0 ] );
-          out[ 1 ] = TValue( rgb[ 1 ] );
-          out[ 2 ] = TValue( rgb[ 2 ] );
-          return( out );
-        }
-
-      template< class C >
-      TOutPixel operator()( const itk::RGBPixel< C >& rgb ) const
-        {
-          return(
-            this->operator()(
-              rgb.GetRed( ), rgb.GetGreen( ), rgb.GetBlue( )
-              )
-            );
-        }
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#endif // __CPEXTENSIONS__ALGORITHMS__RGBTOYPBPRFUNCTION__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/RegionOfInterestImageCalculator.h b/lib/cpExtensions/Algorithms/RegionOfInterestImageCalculator.h
deleted file mode 100644 (file)
index 84102ad..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-// -------------------------------------------------------------------------
-// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
-// -------------------------------------------------------------------------
-
-#ifndef __CPEXTENSIONS__ALGORITHMS__REGIONOFINTERESTIMAGECALCULATOR__H__
-#define __CPEXTENSIONS__ALGORITHMS__REGIONOFINTERESTIMAGECALCULATOR__H__
-
-#include <itkObject.h>
-#include <itkObjectFactory.h>
-
-namespace cpExtensions
-{
-  namespace Algorithms
-  {
-    /**
-     */
-    template< class _TImage >
-    class RegionOfInterestImageCalculator
-      : public itk::Object
-    {
-    public:
-      // Basic types
-      typedef RegionOfInterestImageCalculator Self;
-      typedef itk::Object                     Superclass;
-      typedef itk::SmartPointer< Self >       Pointer;
-      typedef itk::SmartPointer< const Self > ConstPointer;
-
-      typedef _TImage TImage;
-      typedef typename _TImage::IndexType TIndex;
-      typedef typename _TImage::PixelType TPixel;
-
-    public:
-      itkNewMacro( Self );
-      itkTypeMacro( RegionOfInterestImageCalculator, itkObject );
-
-      itkGetConstObjectMacro( Image, _TImage );
-      itkGetConstMacro( BackgroundValue, TPixel );
-      itkGetConstMacro( Minimum, TIndex );
-      itkGetConstMacro( Maximum, TIndex );
-
-      itkSetConstObjectMacro( Image, _TImage );
-      itkSetMacro( BackgroundValue, TPixel );
-
-    public:
-      void Compute( );
-      
-    protected:
-      RegionOfInterestImageCalculator( );
-      virtual ~RegionOfInterestImageCalculator( );
-
-    private:
-      // Purposely not implemented
-      RegionOfInterestImageCalculator( const Self& );
-      void operator=( const Self& );
-
-    protected:
-      typename _TImage::ConstPointer m_Image;
-      TPixel m_BackgroundValue;
-      TIndex m_Minimum;
-      TIndex m_Maximum;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#ifndef ITK_MANUAL_INSTANTIATION
-#  include <cpExtensions/Algorithms/RegionOfInterestImageCalculator.hxx>
-#endif // ITK_MANUAL_INSTANTIATION
-
-#endif // __CPEXTENSIONS__ALGORITHMS__REGIONOFINTERESTIMAGECALCULATOR__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/RegionOfInterestImageCalculator.hxx b/lib/cpExtensions/Algorithms/RegionOfInterestImageCalculator.hxx
deleted file mode 100644 (file)
index fd7867f..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-// -------------------------------------------------------------------------
-// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
-// -------------------------------------------------------------------------
-
-#ifndef __CPEXTENSIONS__ALGORITHMS__REGIONOFINTERESTIMAGECALCULATOR__HXX__
-#define __CPEXTENSIONS__ALGORITHMS__REGIONOFINTERESTIMAGECALCULATOR__HXX__
-
-#include <itkImageRegionConstIteratorWithIndex.h>
-
-// -------------------------------------------------------------------------
-template< class _TImage >
-void cpExtensions::Algorithms::RegionOfInterestImageCalculator< _TImage >::
-Compute( )
-{
-  typedef itk::ImageRegionConstIteratorWithIndex< _TImage > _TIterator;
-  typedef typename _TImage::RegionType _TRegion;
-
-  if( this->m_Image.IsNotNull( ) )
-  {
-    _TRegion region = this->m_Image->GetRequestedRegion( );
-    TIndex minidx = region.GetIndex( );
-    TIndex maxidx = minidx + region.GetSize( );
-    for( unsigned int d = 0; d < _TImage::ImageDimension; ++d )
-      maxidx[ d ] -= 1;
-
-    bool first = true;
-    _TIterator i( this->m_Image, region );
-    for( i.GoToBegin( ); !i.IsAtEnd( ); ++i )
-    {
-      if( i.Get( ) != this->m_BackgroundValue )
-      {
-        TIndex idx = i.GetIndex( );
-        if( !first )
-        {
-          for( unsigned int d = 0; d < _TImage::ImageDimension; ++d )
-          {
-            minidx[ d ] = ( idx[ d ] < minidx[ d ] )? idx[ d ]: minidx[ d ];
-            maxidx[ d ] = ( idx[ d ] > maxidx[ d ] )? idx[ d ]: maxidx[ d ];
-
-          } // rof
-        }
-        else
-        {
-          minidx = maxidx = idx;
-          first = false;
-
-        } // fi
-
-      } // fi
-
-    } // rof
-    this->m_Minimum = minidx;
-    this->m_Maximum = maxidx;
-  }
-  else
-  {
-    this->m_Minimum.Fill( 0 );
-    this->m_Maximum.Fill( 0 );
-
-  } // fi
-}
-      
-// -------------------------------------------------------------------------
-template< class _TImage >
-cpExtensions::Algorithms::RegionOfInterestImageCalculator< _TImage >::
-RegionOfInterestImageCalculator( )
-  : Superclass( ),
-    m_BackgroundValue( TPixel( 0 ) )
-{
-  this->m_Minimum.Fill( 0 );
-  this->m_Maximum.Fill( 0 );
-}
-
-// -------------------------------------------------------------------------
-template< class _TImage >
-cpExtensions::Algorithms::RegionOfInterestImageCalculator< _TImage >::
-~RegionOfInterestImageCalculator( )
-{
-}
-
-
-/* TODO
-   typename _TImage::ConstPointer m_Image;
-   TPixel m_BackgroundValue;
-   TIndex m_Minimum;
-   TIndex m_Maximum;
-   };
-*/
-
-#endif // __CPEXTENSIONS__ALGORITHMS__REGIONOFINTERESTIMAGECALCULATOR__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/SpatialObjectMaskImageFilter.h b/lib/cpExtensions/Algorithms/SpatialObjectMaskImageFilter.h
deleted file mode 100644 (file)
index 2b81fb7..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-#ifndef __CPEXTENSIONS__ALGORITHMS__SPATIALOBJECTMASKIMAGEFILTER__H__
-#define __CPEXTENSIONS__ALGORITHMS__SPATIALOBJECTMASKIMAGEFILTER__H__
-
-#include <itkConceptChecking.h>
-#include <itkImageToImageFilter.h>
-#include <itkSpatialObject.h>
-
-namespace cpExtensions
-{
-  namespace Algorithms
-  {
-    /**
-     */
-    template< class I, class O = I >
-    class SpatialObjectMaskImageFilter
-      : public itk::ImageToImageFilter< I, O >
-    {
-    public:
-      typedef SpatialObjectMaskImageFilter    Self;
-      typedef itk::ImageToImageFilter< I, O > Superclass;
-      typedef itk::SmartPointer< Self >       Pointer;
-      typedef itk::SmartPointer< const Self > ConstPointer;
-
-      typedef I TInputImage;
-      typedef O TOutputImage;
-
-      itkStaticConstMacro( InputDimension, unsigned int, I::ImageDimension );
-      itkStaticConstMacro( OutputDimension, unsigned int, O::ImageDimension );
-
-#ifdef ITK_USE_CONCEPT_CHECKING
-      itkConceptMacro(
-        SameDimensionCheck1,
-        ( itk::Concept::SameDimension< InputDimension, OutputDimension > )
-        );
-#endif
-
-      typedef typename I::RegionType TRegion;
-      typedef typename O::PixelType  TOutPixel;
-      typedef itk::SpatialObject< InputDimension > TSpatialObject;
-
-    public:
-      itkNewMacro( Self );
-      itkTypeMacro( SpatialObjectMaskImageFilter, itk::ImageToImageFilter );
-
-      itkGetObjectMacro( SpatialObject, TSpatialObject );
-      itkGetConstObjectMacro( SpatialObject, TSpatialObject );
-      itkGetConstMacro( OutsideValue, TOutPixel );
-
-      itkSetObjectMacro( SpatialObject, TSpatialObject );
-      itkSetMacro( OutsideValue, TOutPixel );
-
-    public:
-      O* GetPositiveOutput( );
-      const O* GetPositiveOutput( ) const;
-      O* GetNegativeOutput( );
-      const O* GetNegativeOutput( ) const;
-
-    protected:
-      SpatialObjectMaskImageFilter( );
-      virtual ~SpatialObjectMaskImageFilter( );
-
-      virtual void GenerateOutputInformation( );
-      virtual void ThreadedGenerateData(
-        const TRegion& region, itk::ThreadIdType threadId
-        );
-
-    private:
-      // Purposely not implemented.
-      SpatialObjectMaskImageFilter( const Self& other );
-      Self& operator=( const Self& other );
-
-    protected:
-      typename TSpatialObject::Pointer m_SpatialObject;
-      TOutPixel m_OutsideValue;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#ifndef ITK_MANUAL_INSTANTIATION
-#include <cpExtensions/Algorithms/SpatialObjectMaskImageFilter.hxx>
-#endif // ITK_MANUAL_INSTANTIATION
-
-#endif // __CPEXTENSIONS__ALGORITHMS__SPATIALOBJECTMASKIMAGEFILTER__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/SpatialObjectMaskImageFilter.hxx b/lib/cpExtensions/Algorithms/SpatialObjectMaskImageFilter.hxx
deleted file mode 100644 (file)
index 2c3cac7..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-#ifndef __CPEXTENSIONS__ALGORITHMS__SPATIALOBJECTMASKIMAGEFILTER__HXX__
-#define __CPEXTENSIONS__ALGORITHMS__SPATIALOBJECTMASKIMAGEFILTER__HXX__
-
-#include <itkImageScanlineIterator.h>
-#include <itkProgressReporter.h>
-
-// -------------------------------------------------------------------------
-template< class I, class O >
-O* cpExtensions::Algorithms::SpatialObjectMaskImageFilter< I, O >::
-GetPositiveOutput( )
-{
-  return( this->GetOutput( 0 ) );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class O >
-const O* cpExtensions::Algorithms::SpatialObjectMaskImageFilter< I, O >::
-GetPositiveOutput( ) const
-{
-  return( this->GetOutput( 0 ) );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class O >
-O* cpExtensions::Algorithms::SpatialObjectMaskImageFilter< I, O >::
-GetNegativeOutput( )
-{
-  return( this->GetOutput( 1 ) );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class O >
-const O* cpExtensions::Algorithms::SpatialObjectMaskImageFilter< I, O >::
-GetNegativeOutput( ) const
-{
-  return( this->GetOutput( 1 ) );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class O >
-cpExtensions::Algorithms::SpatialObjectMaskImageFilter< I, O >::
-SpatialObjectMaskImageFilter( )
-  : Superclass( )
-{
-  this->SetNumberOfRequiredInputs( 1 );
-  this->SetNumberOfRequiredOutputs( 2 );
-  this->SetNthOutput( 0, O::New( ) );
-  this->SetNthOutput( 1, O::New( ) );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class O >
-cpExtensions::Algorithms::SpatialObjectMaskImageFilter< I, O >::
-~SpatialObjectMaskImageFilter( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class I, class O >
-void cpExtensions::Algorithms::SpatialObjectMaskImageFilter< I, O >::
-GenerateOutputInformation( )
-{
-  const I* in =
-    dynamic_cast< const I* >( this->itk::ProcessObject::GetInput( 0 ) );
-  for( unsigned int idx = 0; idx < this->GetNumberOfOutputs( ); ++idx )
-  {
-    itk::DataObject* out = this->GetOutput( idx );
-    if( out )
-      out->CopyInformation( in );
-
-  } // rof
-}
-
-// -------------------------------------------------------------------------
-template< class I, class O >
-void cpExtensions::Algorithms::SpatialObjectMaskImageFilter< I, O >::
-ThreadedGenerateData( const TRegion& region, itk::ThreadIdType threadId )
-{
-  if( this->m_SpatialObject.IsNull( ) )
-  {
-    itkGenericExceptionMacro( << "No itk::SpatialObject given." );
-    return;
-
-  } // fi
-
-  // Get inputs
-  const I* in =
-    dynamic_cast< const I* >( this->itk::ProcessObject::GetInput( 0 ) );
-  O* pos_out = this->GetPositiveOutput( );
-  O* neg_out = this->GetNegativeOutput( );
-  const auto size0 = region.GetSize( 0 );
-  if( size0 == 0 )
-    return;
-  const auto nLines = region.GetNumberOfPixels( ) / size0;
-
-  // Create iterators
-  itk::ImageScanlineConstIterator< I > iIt( in, region );
-  itk::ImageScanlineIterator< O > pos_oIt( pos_out, region );
-  itk::ImageScanlineIterator< O > neg_oIt( neg_out, region );
-  itk::ProgressReporter progress( this, threadId, nLines );
-
-  // Main loop
-  typename TSpatialObject::PointType pnt;
-  while( !iIt.IsAtEnd( ) )
-  {
-    while( !iIt.IsAtEndOfLine( ) )
-    {
-      auto idx = iIt.GetIndex( );
-      in->TransformIndexToPhysicalPoint( idx, pnt );
-      if( this->m_SpatialObject->IsInside( pnt ) )
-      {
-        pos_oIt.Set( TOutPixel( iIt.Get( ) ) );
-        neg_oIt.Set( this->m_OutsideValue );
-      }
-      else
-      {
-        neg_oIt.Set( TOutPixel( iIt.Get( ) ) );
-        pos_oIt.Set( this->m_OutsideValue );
-
-      } // fi
-      ++iIt;
-      ++pos_oIt;
-      ++neg_oIt;
-
-    } // elihw
-    iIt.NextLine( );
-    pos_oIt.NextLine( );
-    neg_oIt.NextLine( );
-    progress.CompletedPixel( );
-
-  } // elihw
-}
-
-#endif // __CPEXTENSIONS__ALGORITHMS__SPATIALOBJECTMASKIMAGEFILTER__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/UnaryThresholdImageFilter.h b/lib/cpExtensions/Algorithms/UnaryThresholdImageFilter.h
deleted file mode 100644 (file)
index 7de8b66..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-// -------------------------------------------------------------------------
-// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
-// -------------------------------------------------------------------------
-
-#ifndef __CPEXTENSIONS__ALGORITHMS__UNARYTHRESHOLDIMAGEFILTER__H__
-#define __CPEXTENSIONS__ALGORITHMS__UNARYTHRESHOLDIMAGEFILTER__H__
-
-#include <itkUnaryFunctorImageFilter.h>
-
-namespace cpExtensions
-{
-  namespace Algorithms
-  {
-    namespace Functor
-    {
-      /**
-       */
-      template< typename _TInput >
-      class UnaryThreshold
-      {
-      public:
-        UnaryThreshold( );
-        virtual ~UnaryThreshold( );
-
-        const _TInput& GetThreshold( ) const;
-        const _TInput& GetInsideValue( ) const;
-        const _TInput& GetOutsideValue( ) const;
-        const bool& GetStrict( ) const;
-
-        void StrictOn( );
-        void StrictOff( );
-        void SetStrict( bool s );
-        void SetThreshold( const _TInput& thresh );
-        void SetInsideValue( const _TInput& value );
-        void SetOutsideValue( const _TInput& value );
-        bool operator!=( const UnaryThreshold& other ) const;
-        bool operator==( const UnaryThreshold& other ) const;
-        _TInput operator()( const _TInput& A ) const;
-
-      private:
-        _TInput m_Threshold;
-        _TInput m_InsideValue;
-        _TInput m_OutsideValue;
-        bool    m_Strict;
-      };
-    }
-
-    /**
-     */
-    template< class _TImage >
-    class UnaryThresholdImageFilter
-      : public itk::UnaryFunctorImageFilter< _TImage, _TImage, cpExtensions::Algorithms::Functor::UnaryThreshold< typename _TImage::PixelType > >
-    {
-    public:
-      // Basic types
-      typedef typename _TImage::PixelType TPixel;
-      typedef cpExtensions::Algorithms::Functor::UnaryThreshold< TPixel > TFunctor;
-      typedef itk::UnaryFunctorImageFilter< _TImage, _TImage, TFunctor > Superclass;
-      typedef UnaryThresholdImageFilter       Self;
-      typedef itk::SmartPointer< Self >       Pointer;
-      typedef itk::SmartPointer< const Self > ConstPointer;
-
-      typedef _TImage TImage;
-
-    public:
-      itkNewMacro( Self );
-      itkTypeMacro( UnaryThresholdImageFilter, itkUnaryFunctorImageFilter );
-
-    public:
-      const TPixel& GetThreshold( ) const;
-      const TPixel& GetInsideValue( ) const;
-      const TPixel& GetOutsideValue( ) const;
-      const bool&    GetStrict( ) const;
-
-      void StrictOn( );
-      void StrictOff( );
-      void SetStrict( bool s );
-      void SetThreshold( const TPixel& thresh );
-      void SetInsideValue( const TPixel& value );
-      void SetOutsideValue( const TPixel& value );
-      
-    protected:
-      UnaryThresholdImageFilter( );
-      virtual ~UnaryThresholdImageFilter( );
-
-    private:
-      // Purposely not implemented
-      UnaryThresholdImageFilter( const Self& );
-      void operator=( const Self& );
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#ifndef ITK_MANUAL_INSTANTIATION
-#  include <cpExtensions/Algorithms/UnaryThresholdImageFilter.hxx>
-#endif // ITK_MANUAL_INSTANTIATION
-
-#endif // __CPEXTENSIONS__ALGORITHMS__UNARYTHRESHOLDIMAGEFILTER__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Algorithms/UnaryThresholdImageFilter.hxx b/lib/cpExtensions/Algorithms/UnaryThresholdImageFilter.hxx
deleted file mode 100644 (file)
index ff85edd..0000000
+++ /dev/null
@@ -1,245 +0,0 @@
-// -------------------------------------------------------------------------
-// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
-// -------------------------------------------------------------------------
-
-#ifndef __CPEXTENSIONS__ALGORITHMS__UNARYTHRESHOLDIMAGEFILTER__HXX__
-#define __CPEXTENSIONS__ALGORITHMS__UNARYTHRESHOLDIMAGEFILTER__HXX__
-
-// -------------------------------------------------------------------------
-template< typename _TInput >
-cpExtensions::Algorithms::Functor::UnaryThreshold< _TInput >::
-UnaryThreshold( )
-  : m_Strict( false )
-{
-  this->m_Threshold    = itk::NumericTraits< _TInput >::NonpositiveMin( );
-  this->m_OutsideValue = itk::NumericTraits< _TInput >::ZeroValue( );
-  this->m_InsideValue  = itk::NumericTraits< _TInput >::max( );
-}
-
-// -------------------------------------------------------------------------
-template< typename _TInput >
-cpExtensions::Algorithms::Functor::UnaryThreshold< _TInput >::
-~UnaryThreshold( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< typename _TInput >
-const _TInput& cpExtensions::Algorithms::Functor::UnaryThreshold< _TInput >::
-GetThreshold( ) const
-{
-  return( this->m_Threshold );
-}
-
-// -------------------------------------------------------------------------
-template< typename _TInput >
-const _TInput& cpExtensions::Algorithms::Functor::UnaryThreshold< _TInput >::
-GetInsideValue( ) const
-{
-  return( this->m_InsideValue );
-}
-
-// -------------------------------------------------------------------------
-template< typename _TInput >
-const _TInput& cpExtensions::Algorithms::Functor::UnaryThreshold< _TInput >::
-GetOutsideValue( ) const
-{
-  return( this->m_OutsideValue );
-}
-
-// -------------------------------------------------------------------------
-template< typename _TInput >
-const bool& cpExtensions::Algorithms::Functor::UnaryThreshold< _TInput >::
-GetStrict( ) const
-{
-  return( this->m_Strict );
-}
-
-// -------------------------------------------------------------------------
-template< typename _TInput >
-void cpExtensions::Algorithms::Functor::UnaryThreshold< _TInput >::
-StrictOn( )
-{
-  this->SetStrict( true );
-}
-
-// -------------------------------------------------------------------------
-template< typename _TInput >
-void cpExtensions::Algorithms::Functor::UnaryThreshold< _TInput >::
-StrictOff( )
-{
-  this->SetStrict( false );
-}
-
-// -------------------------------------------------------------------------
-template< typename _TInput >
-void cpExtensions::Algorithms::Functor::UnaryThreshold< _TInput >::
-SetStrict( bool s )
-{
-  this->m_Strict = s;
-}
-
-// -------------------------------------------------------------------------
-template< typename _TInput >
-void cpExtensions::Algorithms::Functor::UnaryThreshold< _TInput >::
-SetThreshold( const _TInput& thresh )
-{
-  this->m_Threshold = thresh;
-}
-
-// -------------------------------------------------------------------------
-template< typename _TInput >
-void cpExtensions::Algorithms::Functor::UnaryThreshold< _TInput >::
-SetInsideValue( const _TInput& value )
-{
-  this->m_InsideValue = value;
-}
-
-// -------------------------------------------------------------------------
-template< typename _TInput >
-void cpExtensions::Algorithms::Functor::UnaryThreshold< _TInput >::
-SetOutsideValue( const _TInput& value )
-{
-  this->m_OutsideValue = value;
-}
-
-// -------------------------------------------------------------------------
-template< typename _TInput >
-bool cpExtensions::Algorithms::Functor::UnaryThreshold< _TInput >::
-operator!=( const UnaryThreshold& other ) const
-{
-  return(
-    this->m_Threshold != other.m_Threshold ||
-    itk::Math::NotExactlyEquals( this->m_InsideValue, other.m_InsideValue ) ||
-    itk::Math::NotExactlyEquals( this->m_OutsideValue, other.m_OutsideValue )
-    );
-}
-
-// -------------------------------------------------------------------------
-template< typename _TInput >
-bool cpExtensions::Algorithms::Functor::UnaryThreshold< _TInput >::
-operator==( const UnaryThreshold& other ) const
-{
-  return( !( *this != other ) );
-}
-
-// -------------------------------------------------------------------------
-template< typename _TInput >
-_TInput cpExtensions::Algorithms::Functor::UnaryThreshold< _TInput >::
-operator()( const _TInput& A ) const
-{
-  if( this->m_Strict )
-  {
-    if( this->m_Threshold < A  )
-      return( this->m_InsideValue );
-    return( this->m_OutsideValue );
-  }
-  else
-  {
-    if( this->m_Threshold <= A  )
-      return( this->m_InsideValue );
-    return( this->m_OutsideValue );
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-template< class _TImage >
-const typename cpExtensions::Algorithms::UnaryThresholdImageFilter< _TImage >::
-TPixel& cpExtensions::Algorithms::UnaryThresholdImageFilter< _TImage >::
-GetThreshold( ) const
-{
-  return( this->GetFunctor( ).GetThreshold( ) );
-}
-
-// -------------------------------------------------------------------------
-template< class _TImage >
-const typename cpExtensions::Algorithms::UnaryThresholdImageFilter< _TImage >::
-TPixel& cpExtensions::Algorithms::UnaryThresholdImageFilter< _TImage >::
-GetInsideValue( ) const
-{
-  return( this->GetFunctor( ).GetInsideValue( ) );
-}
-
-// -------------------------------------------------------------------------
-template< class _TImage >
-const typename cpExtensions::Algorithms::UnaryThresholdImageFilter< _TImage >::
-TPixel& cpExtensions::Algorithms::UnaryThresholdImageFilter< _TImage >::
-GetOutsideValue( ) const
-{
-  return( this->GetFunctor( ).GetOutsideValue( ) );
-}
-
-// -------------------------------------------------------------------------
-template< class _TImage >
-const bool& cpExtensions::Algorithms::UnaryThresholdImageFilter< _TImage >::
-GetStrict( ) const
-{
-  return( this->GetFunctor( ).GetStrict( ) );
-}
-
-// -------------------------------------------------------------------------
-template< class _TImage >
-void cpExtensions::Algorithms::UnaryThresholdImageFilter< _TImage >::
-StrictOn( )
-{
-  this->GetFunctor( ).SetStrict( true );
-}
-
-// -------------------------------------------------------------------------
-template< class _TImage >
-void cpExtensions::Algorithms::UnaryThresholdImageFilter< _TImage >::
-StrictOff( )
-{
-  this->GetFunctor( ).SetStrict( false );
-}
-
-// -------------------------------------------------------------------------
-template< class _TImage >
-void cpExtensions::Algorithms::UnaryThresholdImageFilter< _TImage >::
-SetStrict( bool s )
-{
-  this->GetFunctor( ).SetStrict( s );
-}
-
-// -------------------------------------------------------------------------
-template< class _TImage >
-void cpExtensions::Algorithms::UnaryThresholdImageFilter< _TImage >::
-SetThreshold( const TPixel& thresh )
-{
-  this->GetFunctor( ).SetThreshold( thresh );
-}
-
-// -------------------------------------------------------------------------
-template< class _TImage >
-void cpExtensions::Algorithms::UnaryThresholdImageFilter< _TImage >::
-SetInsideValue( const TPixel& value )
-{
-  this->GetFunctor( ).SetInsideValue( value );
-}
-
-// -------------------------------------------------------------------------
-template< class _TImage >
-void cpExtensions::Algorithms::UnaryThresholdImageFilter< _TImage >::
-SetOutsideValue( const TPixel& value )
-{
-  this->GetFunctor( ).SetOutsideValue( value );
-}
-
-// -------------------------------------------------------------------------
-template< class _TImage >
-cpExtensions::Algorithms::UnaryThresholdImageFilter< _TImage >::
-UnaryThresholdImageFilter( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class _TImage >
-cpExtensions::Algorithms::UnaryThresholdImageFilter< _TImage >::
-~UnaryThresholdImageFilter( )
-{
-}
-
-#endif // __CPEXTENSIONS__ALGORITHMS__UNARYTHRESHOLDIMAGEFILTER__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/CMakeLists.txt b/lib/cpExtensions/CMakeLists.txt
deleted file mode 100644 (file)
index 6e3c940..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-SET(LIBRARY_NAME cpExtensions)
-
-CONFIGURE_FILE(
-  Config.h.in
-  ${PROJECT_BINARY_DIR}/lib/cpExtensions/Config.h
-  @ONLY
-  )
-
-## ===============
-## = Source code =
-## ===============
-
-SET(LIB_HEADERS_H   "")
-SET(LIB_HEADERS_HPP "")
-SET(LIB_HEADERS_HXX "")
-SET(LIB_SOURCES_C   "")
-SET(LIB_SOURCES_CPP "")
-SET(LIB_SOURCES_CXX "")
-
-SET(
-  lib_DIRECTORIES
-  .
-  DataStructures
-  Algorithms
-  IO
-  Interaction
-  Visualization
-  )
-FOREACH(dir ${lib_DIRECTORIES})
-  FILE(GLOB dir_LIB_HEADERS_H   "${dir}/*.h")
-  FILE(GLOB dir_LIB_HEADERS_HPP "${dir}/*.hpp")
-  FILE(GLOB dir_LIB_HEADERS_HXX "${dir}/*.hxx")
-  FILE(GLOB dir_LIB_SOURCES_C   "${dir}/*.c")
-  FILE(GLOB dir_LIB_SOURCES_CPP "${dir}/*.cpp")
-  FILE(GLOB dir_LIB_SOURCES_CXX "${dir}/*.cxx")
-
-  SET(LIB_HEADERS_H   "${LIB_HEADERS_H};${dir_LIB_HEADERS_H}")
-  SET(LIB_HEADERS_HPP "${LIB_HEADERS_HPP};${dir_LIB_HEADERS_HPP}")
-  SET(LIB_HEADERS_HXX "${LIB_HEADERS_HXX};${dir_LIB_HEADERS_HXX}")
-  SET(LIB_SOURCES_C   "${LIB_SOURCES_C};${dir_LIB_SOURCES_C}")
-  SET(LIB_SOURCES_CPP "${LIB_SOURCES_CPP};${dir_LIB_SOURCES_CPP}")
-  SET(LIB_SOURCES_CXX "${LIB_SOURCES_CXX};${dir_LIB_SOURCES_CXX}")
-
-  INSTALL(
-    DIRECTORY ${dir}
-    DESTINATION include/cpExtensions
-    FILES_MATCHING PATTERN "*.h"
-    )
-  INSTALL(
-    DIRECTORY ${dir}
-    DESTINATION include/cpExtensions
-    FILES_MATCHING PATTERN "*.hpp"
-    )
-  INSTALL(
-    DIRECTORY ${dir}
-    DESTINATION include/cpExtensions
-    FILES_MATCHING PATTERN "*.hxx"
-    )
-ENDFOREACH(dir)
-
-IF(USE_QT4)
-  FILE(GLOB LIB_QT_UI "QT/*.ui")
-  FILE(GLOB LIB_QT_Headers "QT/*.h")
-  FILE(GLOB LIB_QT_Sources "QT/*.cxx")
-  FILE(GLOB LIB_QT_Resources "QT/*.rc")
-
-  QT4_WRAP_UI(LIB_QT_Wrapped_Headers ${LIB_QT_UI})
-  QT4_WRAP_CPP(LIB_QT_Wrapped_MOC_Sources ${LIB_QT_Headers})
-  QT4_ADD_RESOURCES(LIB_QT_Wrapped_Resources_Sources ${LIB_QT_Resources})
-
-  SET(
-    LIB_HEADERS_H
-    ${LIB_HEADERS_H}
-    ${LIB_QT_Wrapped_Headers}
-    )
-  SET(
-    LIB_SOURCES_CXX
-    ${LIB_SOURCES_CXX}
-    ${LIB_QT_Sources}
-    ${LIB_QT_Wrapped_Headers}
-    ${LIB_QT_Wrapped_MOC_Sources}
-    ${LIB_QT_Wrapped_Resources_Sources}
-    )
-ENDIF(USE_QT4)
-
-## =====================
-## = Compilation rules =
-## =====================
-
-ADD_LIBRARY(
-  ${LIBRARY_NAME}
-  SHARED
-  ${LIB_SOURCES_C}
-  ${LIB_SOURCES_CPP}
-  ${LIB_SOURCES_CXX}
-  )
-SET_TARGET_PROPERTIES(
-  ${LIBRARY_NAME} PROPERTIES
-  VERSION "${prj_VER}"
-  SOVERSION "${prj_sVER}"
-  )
-GENERATE_EXPORT_HEADER(
-  ${LIBRARY_NAME}
-  BASE_NAME ${LIBRARY_NAME}
-  EXPORT_MACRO_NAME ${LIBRARY_NAME}_EXPORT
-  EXPORT_FILE_NAME ${PROJECT_BINARY_DIR}/lib/cpExtensions/${LIBRARY_NAME}_Export.h
-  STATIC_DEFINE ${LIBRARY_NAME}_BUILT_AS_STATIC
-  )
-TARGET_LINK_LIBRARIES(
-  ${LIBRARY_NAME}
-  ${QT_LIBRARIES}
-  ${ITK_LIBRARIES}
-  ${VTK_LIBRARIES}
-  )
-
-## ========================
-## -- Installation rules --
-## ========================
-
-INSTALL(
-  TARGETS ${LIBRARY_NAME}
-  RUNTIME DESTINATION bin
-  LIBRARY DESTINATION lib
-  ARCHIVE DESTINATION lib/static
-  )
-INSTALL(
-  FILES
-  ${PROJECT_BINARY_DIR}/lib/cpExtensions/${LIBRARY_NAME}_Export.h
-  DESTINATION include/cpExtensions
-  )
-
-## eof - $RCSfile$
diff --git a/lib/cpExtensions/Config.h.in b/lib/cpExtensions/Config.h.in
deleted file mode 100644 (file)
index dbf80e9..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef __CPEXTENSIONS__CONFIG__H__
-#define __CPEXTENSIONS__CONFIG__H__
-
-#include <cpExtensions/cpExtensions_Export.h>
-
-#define cpExtensions_MAJ_VER @prj_MAJ_VER@
-#define cpExtensions_MIN_VER @prj_MIN_VER@
-#define cpExtensions_REL_VER @prj_VER@
-#define cpExtensions_VER     "@prj_sVER@"
-
-#define cpExtensions_QT4_USED @QT4_FOUND@
-#if cpExtensions_QT4_USED == 1
-#  define cpExtensions_QT4
-#else // cpExtensions_QT4_USED == 1
-#  undef cpExtensions_QT4
-#endif // cpExtensions_QT4_USED == 1
-
-#endif // __CPEXTENSIONS__CONFIG__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/DataStructures/Graph.h b/lib/cpExtensions/DataStructures/Graph.h
deleted file mode 100644 (file)
index 75bdd68..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-#ifndef __CPEXTENSIONS__DATASTRUCTURES__GRAPH__H__
-#define __CPEXTENSIONS__DATASTRUCTURES__GRAPH__H__
-
-#include <map>
-#include <set>
-#include <vector>
-#include <itkLightObject.h>
-#include <itkObjectFactory.h>
-
-namespace cpExtensions
-{
-  namespace DataStructures
-  {
-    /** \brief A generic graph with templated index types.
-     *
-     *  @param V Vertex type.
-     *  @param C Cost type.
-     *  @param I Index type (it should be a strict weak ordering type).
-     */
-    template< class V, class C, class I = unsigned long >
-    class Graph
-      : public itk::LightObject
-    {
-    public:
-      typedef Graph                           Self;
-      typedef itk::LightObject                Superclass;
-      typedef itk::SmartPointer< Self >       Pointer;
-      typedef itk::SmartPointer< const Self > ConstPointer;
-
-      typedef V TVertex;
-      typedef C TCost;
-      typedef I TIndex;
-
-      // Base types
-      typedef std::map< TIndex, TVertex >    TVertices;
-      typedef std::vector< TCost >           TEdges;
-      typedef std::map< TIndex, TEdges >     TMatrixRow;
-      typedef std::map< TIndex, TMatrixRow > TMatrix;
-
-    public:
-      itkNewMacro( Self );
-      itkTypeMacro( Graph, itk::LightObject );
-
-    public:
-      /*! \brief Iterators over vertices.
-       *         These allow you to iterate over all of graph's vertices.
-       *
-       * Typical iteration should be done as:
-       *
-       *  TGraph g;
-       *  ...
-       *  TGraph::TVertices::[const_]iterator vIt = g.BeginVertices( );
-       *  for( ; vIt != g.EndVertices( ); ++vIt )
-       *  {
-       *    vIt->first;  --> this is the vertex's index <--
-       *    vIt->second; --> this is the vertex's value <--
-       *  }
-       */
-      inline typename TVertices::iterator BeginVertices( )
-        { return( this->m_Vertices.begin( ) ); }
-      inline typename TVertices::iterator EndVertices( )
-        { return( this->m_Vertices.end( ) ); }
-      inline typename TVertices::const_iterator BeginVertices( ) const
-        { return( this->m_Vertices.begin( ) ); }
-      inline typename TVertices::const_iterator EndVertices( ) const
-        { return( this->m_Vertices.end( ) ); }
-
-      /*! \brief Iterators over edges.
-       *         These allow you to iterate over all of graph's edges.
-       *
-       * Typical iteration should be done as:
-       *
-       *  TGraph g;
-       *  ...
-       *  TGraph::TMatrix::[const_]iterator mIt = g.BeginEdgesRows( );
-       *  for( ; mIt != g.EndEdgesRows( ); ++mIt )
-       *  {
-       *    mIt->first; --> this is the row index. <--
-       *    TGraph::TMatrixRow::[const_]iterator rIt = mIt->second.begin( );
-       *    for( ; rIt != mIt->second.end( ); ++rIt )
-       *    {
-       *      rIt->first;  --> this is the column index.
-       *      TGraph::TEdges::[const_]iterator eIt = rIt->second.begin( );
-       *      for( ; eIt != rIt->second.end( ); ++eIt )
-       *        *eIt; --> this is the cost between mIt->first and rIt->first
-       *    }
-       *  }
-       */
-      inline typename TMatrix::iterator BeginEdgesRows( )
-        { return( this->m_Matrix.begin( ) ); }
-      inline typename TMatrix::iterator EndEdgetsRows( )
-        { return( this->m_Matrix.end( ) ); }
-      inline typename TMatrix::const_iterator BeginEdgesRows( ) const
-        { return( this->m_Matrix.begin( ) ); }
-      inline typename TMatrix::const_iterator EndEdgesRows( ) const
-        { return( this->m_Matrix.end( ) ); }
-
-      /*! \brief Clear all vertices and edges.
-       */
-      void Clear( );
-
-      /*! \brief Clear all edges.
-       */
-      inline void ClearEdges( )
-        { this->m_Matrix.clear( ); }
-
-      /*! \brief Vertex manipulation methods.
-       *         Names are self-explanatory.
-       */
-      inline bool HasVertexIndex( const I& i ) const
-        { return( this->m_Vertices.find( i ) != this->m_Vertices.end( ) ); }
-      inline void SetVertex( const I& index, V& vertex )
-        { this->m_Vertices[ index ] = vertex; }
-      inline V& GetVertex( const I& index )
-        { return( this->m_Vertices[ index ] ); }
-      inline const V& GetVertex( const I& index ) const
-        { return( this->m_Vertices[ index ] ); }
-      bool RenameVertex( const I& old_index, const I& new_index );
-      void RemoveVertex( const I& index );
-
-      /*! \brief Edge manipulation methods.
-       *         Names are self-explanatory.
-       */
-      inline void AddEdge( const I& orig, const I& dest, const C& cost )
-        { this->m_Matrix[ orig ][ dest ].push_back( cost ); }
-      inline TEdges& GetEdges( const I& orig, const I& dest )
-        { return( this->m_Matrix[ orig ][ dest ] ); }
-      inline const TEdges& GetEdges( const I& orig, const I& dest ) const
-        { return( this->m_Matrix[ orig ][ dest ] ); }
-      bool HasEdge( const I& orig, const I& dest ) const;
-      void RemoveEdge( const I& orig, const I& dest, const C& cost );
-      void RemoveEdges( const I& orig, const I& dest );
-
-      /*! \brief Returns graph's sinks.
-       *
-       *  A sink is a special vertex which does not have any "exiting" edges.
-       *
-       *  @return Sinks ordered by their index.
-       */
-      std::set< I > GetSinks( ) const;
-
-    protected:
-      Graph( );
-      virtual ~Graph( );
-
-    private:
-      // Purposely not implemented
-      Graph( const Self& other );
-      Self& operator=( const Self& other );
-
-    protected:
-      TVertices m_Vertices;
-      TMatrix   m_Matrix;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#ifndef ITK_MANUAL_INSTANTIATION
-#include <cpExtensions/DataStructures/Graph.hxx>
-#endif // ITK_MANUAL_INSTANTIATION
-
-#endif // __CPEXTENSIONS__DATASTRUCTURES__GRAPH__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/DataStructures/Graph.hxx b/lib/cpExtensions/DataStructures/Graph.hxx
deleted file mode 100644 (file)
index d2d2d23..0000000
+++ /dev/null
@@ -1,208 +0,0 @@
-#ifndef __CPEXTENSIONS__DATASTRUCTURES__GRAPH__HXX__
-#define __CPEXTENSIONS__DATASTRUCTURES__GRAPH__HXX__
-
-// -------------------------------------------------------------------------
-template< class V, class C, class I >
-void cpExtensions::DataStructures::Graph< V, C, I >::
-Clear( )
-{
-  this->m_Vertices.clear( );
-  this->m_Matrix.clear( );
-}
-
-// -------------------------------------------------------------------------
-template< class V, class C, class I >
-bool cpExtensions::DataStructures::Graph< V, C, I >::
-RenameVertex( const I& old_index, const I& new_index )
-{
-  auto old_v = this->m_Vertices.find( old_index );
-  auto new_v = this->m_Vertices.find( new_index );
-  if( old_v != this->m_Vertices.end( ) && new_v == this->m_Vertices.end( ) )
-  {
-    // Replace vertex
-    this->m_Vertices[ new_index ] = old_v->second;
-    this->m_Vertices.erase( old_index );
-
-    // Duplicate edges
-    auto mIt = this->m_Matrix.begin( );
-    auto found_row = this->m_Matrix.end( );
-    for( ; mIt != this->m_Matrix.end( ); ++mIt )
-    {
-      if( mIt->first == old_index )
-        found_row = mIt;
-
-      auto rIt = mIt->second.begin( );
-      for( ; rIt != mIt->second.end( ); ++rIt )
-      {
-        if( mIt->first == old_index )
-          this->m_Matrix[ new_index ][ rIt->first ] = rIt->second;
-        else if( rIt->first == old_index )
-          this->m_Matrix[ mIt->first ][ new_index ] = rIt->second;
-
-      } // rof
-
-    } // rof
-
-    // Delete old edges
-    if( found_row != this->m_Matrix.end( ) )
-      this->m_Matrix.erase( found_row );
-
-    mIt = this->m_Matrix.begin( );
-    for( ; mIt != this->m_Matrix.end( ); ++mIt )
-    {
-      auto rIt = mIt->second.begin( );
-      while( rIt != mIt->second.end( ) )
-      {
-        if( rIt->first == old_index )
-        {
-          mIt->second.erase( rIt );
-          rIt = mIt->second.begin( );
-        }
-        else
-          ++rIt;
-
-      } // elihw
-
-    } // rof
-    return( true );
-  }
-  else
-    return( false );
-}
-
-// -------------------------------------------------------------------------
-template< class V, class C, class I >
-void cpExtensions::DataStructures::Graph< V, C, I >::
-RemoveVertex( const I& index )
-{
-  auto i = this->m_Vertices.find( index );
-  if( i != this->m_Vertices.end( ) )
-  {
-    // Delete vertex
-    this->m_Vertices.erase( i );
-
-    // Delete edges starting from given vertex
-    auto mIt = this->m_Matrix.find( index );
-    if( mIt != this->m_Matrix.end( ) )
-      this->m_Matrix.erase( mIt );
-
-    // Delete edges arriving to given vertex
-    mIt = this->m_Matrix.begin( );
-    for( ; mIt != this->m_Matrix.end( ); ++mIt )
-    {
-      auto rIt = mIt->second.begin( );
-      while( rIt != mIt->second.end( ) )
-      {
-        if( rIt->first == index )
-        {
-          mIt->second.erase( rIt );
-          rIt = mIt->second.begin( );
-        }
-        else
-          ++rIt;
-
-      } // elihw
-
-    } // rof
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-template< class V, class C, class I >
-bool cpExtensions::DataStructures::Graph< V, C, I >::
-HasEdge( const I& orig, const I& dest ) const
-{
-  auto mIt = this->m_Matrix.find( orig );
-  if( mIt != this->m_Matrix.end( ) )
-    return( mIt->second.find( dest ) != mIt->second.end( ) );
-  else
-    return( false );
-}
-
-// -------------------------------------------------------------------------
-template< class V, class C, class I >
-void cpExtensions::DataStructures::Graph< V, C, I >::
-RemoveEdge( const I& orig, const I& dest, const C& cost )
-{
-  auto m = this->m_Matrix.find( orig );
-  if( m != this->m_Matrix.end( ) )
-  {
-    auto r = m->second.find( dest );
-    if( r != m->second.end( ) )
-    {
-      auto e = std::find( r->second.begin( ), r->second.end( ), cost );
-      if( e != r->second.end( ) )
-      {
-        r->second.erase( e );
-        if( r->second.size( ) == 0 )
-        {
-          m->second.erase( r );
-          if( m->second.size( ) == 0 )
-            this->m_Matrix.erase( m );
-
-        } // fi
-
-      } // fi
-
-    } // fi
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-template< class V, class C, class I >
-void cpExtensions::DataStructures::Graph< V, C, I >::
-RemoveEdges( const I& orig, const I& dest )
-{
-  auto m = this->m_Matrix.find( orig );
-  if( m != this->m_Matrix.end( ) )
-  {
-    auto r = m->second.find( dest );
-    if( r != m->second.end( ) )
-    {
-      m->second.erase( r );
-      if( m->second.size( ) == 0 )
-        this->m_Matrix.erase( m );
-
-    } // fi
-
-  } // fi
-
-}
-
-// -------------------------------------------------------------------------
-template< class V, class C, class I >
-std::set< I > cpExtensions::DataStructures::Graph< V, C, I >::
-GetSinks( ) const
-{
-  std::set< I > sinks;
-
-  auto vIt = this->m_Vertices.begin( );
-  for( ; vIt != this->m_Vertices.end( ); ++vIt )
-    sinks.insert( vIt->first );
-  auto mIt = this->m_Matrix.begin( );
-  for( ; mIt != this->m_Matrix.end( ); ++mIt )
-    sinks.erase( mIt->first );
-
-  return( sinks );
-}
-
-// -------------------------------------------------------------------------
-template< class V, class C, class I >
-cpExtensions::DataStructures::Graph< V, C, I >::
-Graph( )
-  : Superclass( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class V, class C, class I >
-cpExtensions::DataStructures::Graph< V, C, I >::
-~Graph( )
-{
-}
-
-#endif // __CPEXTENSIONS__DATASTRUCTURES__GRAPH__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/DataStructures/ITKAndVTKImage.h b/lib/cpExtensions/DataStructures/ITKAndVTKImage.h
deleted file mode 100644 (file)
index dfcad3f..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-#ifndef __CPEXTENSIONS__DATASTRUCTURES__ITKANDVTKIMAGE__H__
-#define __CPEXTENSIONS__DATASTRUCTURES__ITKANDVTKIMAGE__H__
-
-#include <itkImage.h>
-#include <itkImageFileReader.h>
-#include <itkImageFileWriter.h>
-#include <itkImageToVTKImageFilter.h>
-
-namespace cpExtensions
-{
-  namespace DataStructures
-  {
-    /**
-     */
-    template< typename P, unsigned int D >
-    struct ITKAndVTKImage
-    {
-      typedef itk::Image< P, D >                   TImage;
-      typedef itk::ImageToVTKImageFilter< TImage > TItk2Vtk;
-
-      typename TImage::Pointer   ITK;
-      typename TItk2Vtk::Pointer VTK;
-
-      void CopyInformation( const itk::ImageBase< D >* i )
-        {
-          this->ITK = TImage::New( );
-          this->ITK->SetLargestPossibleRegion( i->GetLargestPossibleRegion( ) );
-          this->ITK->SetRequestedRegion( i->GetRequestedRegion( ) );
-          this->ITK->SetBufferedRegion( i->GetBufferedRegion( ) );
-          this->ITK->SetSpacing( i->GetSpacing( ) );
-          this->ITK->SetOrigin( i->GetOrigin( ) );
-          this->ITK->SetDirection( i->GetDirection( ) );
-          this->ITK->Allocate( );
-        }
-
-      void SetItkImage( TImage* image )
-        {
-          this->ITK = image;
-          this->_Synch( );
-        }
-
-      std::string ReadFromFile( const std::string& filename )
-        {
-          typename itk::ImageFileReader< TImage >::Pointer r =
-            itk::ImageFileReader< TImage >::New( );
-          r->SetFileName( filename );
-          try
-          {
-            r->Update( );
-          }
-          catch( itk::ExceptionObject& err )
-          {
-            this->ITK = NULL;
-            return( err.GetDescription( ) );
-
-          } // fi
-          this->ITK = r->GetOutput( );
-          this->ITK->DisconnectPipeline( );
-          this->_Synch( );
-          return( "" );
-        }
-
-      std::string WriteToFile( const std::string& filename ) const
-        {
-          typename itk::ImageFileWriter< TImage >::Pointer w =
-            itk::ImageFileWriter< TImage >::New( );
-          w->SetFileName( filename );
-          w->SetInput( this->ITK );
-          try
-          {
-            w->Update( );
-          }
-          catch( itk::ExceptionObject& err )
-          {
-            return( err.GetDescription( ) );
-
-          } // fi
-          return( "" );
-        }
-
-      TImage* GetItkImage( )
-        { return( this->ITK ); }
-      vtkImageData* GetVtkImage( )
-        { return( this->VTK->GetOutput( ) ); }
-      const TImage* GetItkImage( ) const
-        { return( this->ITK ); }
-      const vtkImageData* GetVtkImage( ) const
-        { return( this->VTK->GetOutput( ) ); }
-      void DisconnectPipeline( )
-        { this->ITK->DisconnectPipeline( ); }
-
-      void _Synch( )
-        {
-          this->VTK = TItk2Vtk::New( );
-          this->VTK->SetInput( this->ITK );
-          this->VTK->Update( );
-        }
-
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#endif // __CPEXTENSIONS__DATASTRUCTURES__ITKANDVTKIMAGE__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/DataStructures/ImageIndexesContainer.h b/lib/cpExtensions/DataStructures/ImageIndexesContainer.h
deleted file mode 100644 (file)
index 00dbf64..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-#ifndef __CPEXTENSIONS__DATASTRUCTURES__IMAGEINDEXESCONTAINER__H__
-#define __CPEXTENSIONS__DATASTRUCTURES__IMAGEINDEXESCONTAINER__H__
-
-#include <vector>
-#include <itkImageBase.h>
-#include <itkSimpleDataObjectDecorator.h>
-
-namespace cpExtensions
-{
-  namespace DataStructures
-  {
-    /**
-     */
-    template< unsigned int _NDim >
-    class ImageIndexesContainer
-      : public itk::SimpleDataObjectDecorator< std::vector< itk::Index< _NDim > > >
-    {
-    public:
-      typedef itk::Index< _NDim >                          TIndex;
-      typedef std::vector< TIndex >                        TContainer;
-      typedef itk::SimpleDataObjectDecorator< TContainer > Superclass;
-
-      typedef ImageIndexesContainer           Self;
-      typedef itk::SmartPointer< Self >       Pointer;
-      typedef itk::SmartPointer< const Self > ConstPointer;
-
-      typedef itk::ImageBase< _NDim > TImageBase;
-
-    public:
-      itkNewMacro( Self );
-      itkTypeMacro( ImageIndexesContainer, itk::SimpleDataObjectDecorator );
-
-    public:
-      TImageBase* GetReferenceImage( )
-        { return( this->m_ReferenceImage ); }
-      const TImageBase* GetReferenceImage( ) const
-        { return( this->m_ReferenceImage ); }
-      void SetReferenceImage( const TImageBase* image )
-        {
-          this->m_ReferenceImage = TImageBase::New( );
-          this->m_ReferenceImage->SetDirection( image->GetDirection( ) );
-          this->m_ReferenceImage->SetOrigin( image->GetOrigin( ) );
-          this->m_ReferenceImage->SetSpacing( image->GetSpacing( ) );
-          this->Modified( );
-        }
-
-    protected:
-      ImageIndexesContainer( )          { }
-      virtual ~ImageIndexesContainer( ) { }
-
-    private:
-      // Purposely not implemented
-      ImageIndexesContainer( const Self& other );
-      Self& operator=( const Self& other );
-
-    protected:
-      typename TImageBase::Pointer m_ReferenceImage;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#endif // __CPEXTENSIONS__DATASTRUCTURES__IMAGEINDEXESCONTAINER__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/DataStructures/InfinitePlaneSpatialObject.h b/lib/cpExtensions/DataStructures/InfinitePlaneSpatialObject.h
deleted file mode 100644 (file)
index 2f61766..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-#ifndef __CPEXTENSIONS__DATASTRUCTURES__INFINITEPLANESPATIALOBJECT__H__
-#define __CPEXTENSIONS__DATASTRUCTURES__INFINITEPLANESPATIALOBJECT__H__
-
-#include <itkSpatialObject.h>
-
-namespace cpExtensions
-{
-  namespace DataStructures
-  {
-    /**
-     */
-    template< unsigned int D >
-    class InfinitePlaneSpatialObject
-      : public itk::SpatialObject< D >
-    {
-    public:
-      typedef InfinitePlaneSpatialObject      Self;
-      typedef itk::SpatialObject< D >         Superclass;
-      typedef itk::SmartPointer< Self >       Pointer;
-      typedef itk::SmartPointer< const Self > ConstPointer;
-
-      typedef double                               ScalarType;
-      typedef typename Superclass::PointType       PointType;
-      typedef typename Superclass::TransformType   TransformType;
-      typedef typename Superclass::BoundingBoxType BoundingBoxType;
-      typedef typename PointType::VectorType       VectorType;
-
-      itkStaticConstMacro( NumberOfDimension, unsigned int, D );
-
-    public:
-      itkNewMacro( Self );
-      itkTypeMacro( InfinitePlaneSpatialObject, itk::SpatialObject );
-
-      itkGetConstMacro( Center, PointType );
-      itkGetConstMacro( Normal, VectorType );
-
-    public:
-      template< class P >
-      void SetCenter( const P& p );
-
-      template< class N >
-      void SetNormal( const N& n );
-
-      virtual bool ValueAt(
-        const PointType& point, double& value,
-        unsigned int depth = 0, char* name = NULL
-        ) const;
-
-      virtual bool IsEvaluableAt(
-        const PointType& point,
-        unsigned int depth = 0, char* name = NULL
-        ) const;
-
-      virtual bool IsInside(
-        const PointType& point,
-        unsigned int depth, char* name
-        ) const;
-
-      virtual bool IsInside( const PointType& point ) const;
-
-      virtual bool ComputeLocalBoundingBox( ) const;
-
-    protected:
-      InfinitePlaneSpatialObject( );
-      virtual ~InfinitePlaneSpatialObject( );
-      virtual void PrintSelf( std::ostream& os, itk::Indent indent ) const;
-
-    private:
-      // Purposely not implemented.
-      InfinitePlaneSpatialObject( const Self& other );
-      Self& operator=( const Self& other );
-
-    protected:
-      PointType  m_Center;
-      VectorType m_Normal;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#ifndef ITK_MANUAL_INSTANTIATION
-#include <cpExtensions/DataStructures/InfinitePlaneSpatialObject.hxx>
-#endif // ITK_MANUAL_INSTANTIATION
-
-#endif // __CPEXTENSIONS__DATASTRUCTURES__INFINITEPLANESPATIALOBJECT__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/DataStructures/InfinitePlaneSpatialObject.hxx b/lib/cpExtensions/DataStructures/InfinitePlaneSpatialObject.hxx
deleted file mode 100644 (file)
index fd68815..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-#ifndef __CPEXTENSIONS__DATASTRUCTURES__INFINITEPLANESPATIALOBJECT__HXX__
-#define __CPEXTENSIONS__DATASTRUCTURES__INFINITEPLANESPATIALOBJECT__HXX__
-
-// -------------------------------------------------------------------------
-template< unsigned int D >
-template< class P >
-void cpExtensions::DataStructures::InfinitePlaneSpatialObject< D >::
-SetCenter( const P& p )
-{
-  for( unsigned int d = 0; d < D; ++d )
-    this->m_Center[ d ] = ScalarType( p[ d ] );
-  this->Modified( );
-}
-
-// -------------------------------------------------------------------------
-template< unsigned int D >
-template< class N >
-void cpExtensions::DataStructures::InfinitePlaneSpatialObject< D >::
-SetNormal( const N& n )
-{
-  for( unsigned int d = 0; d < D; ++d )
-    this->m_Normal[ d ] = ScalarType( n[ d ] );
-  ScalarType nn = this->m_Normal.GetNorm( );
-  if( nn > ScalarType( 0 ) )
-    this->m_Normal /= nn;
-  this->Modified( );
-}
-
-// -------------------------------------------------------------------------
-template< unsigned int D >
-bool cpExtensions::DataStructures::InfinitePlaneSpatialObject< D >::
-ValueAt(
-  const PointType& point, double& value, unsigned int depth, char* name
-  ) const
-{
-  value = this->m_Normal * ( point - this->m_Center );
-  return( value >= double( 0 ) );
-}
-
-// -------------------------------------------------------------------------
-template< unsigned int D >
-bool cpExtensions::DataStructures::InfinitePlaneSpatialObject< D >::
-IsEvaluableAt(
-  const PointType& point, unsigned int depth, char* name
-  ) const
-{
-  double value;
-  return( this->ValueAt( point, value, depth, name ) );
-}
-
-// -------------------------------------------------------------------------
-template< unsigned int D >
-bool cpExtensions::DataStructures::InfinitePlaneSpatialObject< D >::
-IsInside(
-  const PointType& point, unsigned int depth, char* name
-  ) const
-{
-  double value;
-  return( this->ValueAt( point, value, depth, name ) );
-}
-
-// -------------------------------------------------------------------------
-template< unsigned int D >
-bool cpExtensions::DataStructures::InfinitePlaneSpatialObject< D >::
-IsInside( const PointType& point ) const
-{
-  double value;
-  return( this->ValueAt( point, value, 0, NULL ) );
-}
-
-// -------------------------------------------------------------------------
-template< unsigned int D >
-bool cpExtensions::DataStructures::InfinitePlaneSpatialObject< D >::
-ComputeLocalBoundingBox( ) const
-{
-  return( false );
-}
-
-// -------------------------------------------------------------------------
-template< unsigned int D >
-cpExtensions::DataStructures::InfinitePlaneSpatialObject< D >::
-InfinitePlaneSpatialObject( )
-  : Superclass( )
-{
-  this->m_Center.Fill( ScalarType( 0 ) );
-  this->m_Normal.Fill( ScalarType( 0 ) );
-  this->m_Normal[ 0 ] = ScalarType( 1 );
-}
-
-// -------------------------------------------------------------------------
-template< unsigned int D >
-cpExtensions::DataStructures::InfinitePlaneSpatialObject< D >::
-~InfinitePlaneSpatialObject( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< unsigned int D >
-void cpExtensions::DataStructures::InfinitePlaneSpatialObject< D >::
-PrintSelf( std::ostream& os, itk::Indent indent ) const
-{
-  this->Superclass::PrintSelf( os, indent );
-  os << indent << "Center: " << this->m_Center << std::endl;
-  os << indent << "Normal: " << this->m_Normal << std::endl;
-}
-
-#endif // __CPEXTENSIONS__DATASTRUCTURES__INFINITEPLANESPATIALOBJECT__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/DataStructures/PolyLineParametricPath.h b/lib/cpExtensions/DataStructures/PolyLineParametricPath.h
deleted file mode 100644 (file)
index 77828ee..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-#ifndef __CPEXTENSIONS__DATASTRUCTURES__POLYLINEPARAMETRICPATH__H__
-#define __CPEXTENSIONS__DATASTRUCTURES__POLYLINEPARAMETRICPATH__H__
-
-#include <itkPolyLineParametricPath.h>
-#include <itkImageBase.h>
-
-namespace cpExtensions
-{
-  namespace DataStructures
-  {
-    /**
-     */
-    template< unsigned int _NDim >
-    class PolyLineParametricPath
-      : public itk::PolyLineParametricPath< _NDim >
-    {
-    public:
-      typedef PolyLineParametricPath               Self;
-      typedef itk::PolyLineParametricPath< _NDim > Superclass;
-      typedef itk::SmartPointer< Self >            Pointer;
-      typedef itk::SmartPointer< const Self >      ConstPointer;
-
-      typedef itk::ImageBase< _NDim > TImageBase;
-
-    public:
-      itkNewMacro( Self );
-      itkTypeMacro( PolyLineParametricPath, itk::PolyLineParametricPath );
-
-    public:
-      TImageBase* GetReferenceImage( )
-        { return( this->m_ReferenceImage ); }
-      const TImageBase* GetReferenceImage( ) const
-        { return( this->m_ReferenceImage ); }
-      void SetReferenceImage( const TImageBase* image )
-        {
-          this->m_ReferenceImage = TImageBase::New( );
-          this->m_ReferenceImage->SetDirection( image->GetDirection( ) );
-          this->m_ReferenceImage->SetOrigin( image->GetOrigin( ) );
-          this->m_ReferenceImage->SetSpacing( image->GetSpacing( ) );
-          this->Modified( );
-        }
-
-    protected:
-      PolyLineParametricPath( )          { }
-      virtual ~PolyLineParametricPath( ) { }
-
-    private:
-      // Purposely not implemented
-      PolyLineParametricPath( const Self& other );
-      Self& operator=( const Self& other );
-
-    protected:
-      typename TImageBase::Pointer m_ReferenceImage;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#endif // __CPEXTENSIONS__DATASTRUCTURES__POLYLINEPARAMETRICPATH__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/DataStructures/QuadEdge.h b/lib/cpExtensions/DataStructures/QuadEdge.h
deleted file mode 100644 (file)
index bcb1f88..0000000
+++ /dev/null
@@ -1,471 +0,0 @@
-#ifndef __CPEXTENSIONS__DATASTRUCTURES__QUADEDGE__H__
-#define __CPEXTENSIONS__DATASTRUCTURES__QUADEDGE__H__
-
-#include <itkLightObject.h>
-#include <cpExtensions/DataStructures/QuadEdgeIterators.h>
-
-namespace cpExtensions
-{
-  namespace DataStructures
-  {
-    /**
-     */
-    template< typename P, typename D, bool IsPrimal = true >
-    class QuadEdge
-      : public itk::LightObject
-    {
-    public:
-      typedef QuadEdge                        Self;
-      typedef itk::LightObject                Superclass;
-      typedef itk::SmartPointer< Self >       Pointer;
-      typedef itk::SmartPointer< const Self > ConstPointer;
-
-      /// Vertices and faces types
-      typedef P TPrimalGeometry;
-      typedef D TDualGeometry;
-
-      /**
-       * Dual type, basically the same type with swapped template
-       * parameters.
-       */
-      typedef QuadEdge< D, P, !IsPrimal > TDual;
-      typedef Self                        TPrimal;
-      typedef typename TDual::Pointer     PtrDual;
-      friend TDual;
-
-      /// Iterators
-      typedef QuadEdgeIterator< TPrimal >           Iterator;
-      typedef QuadEdgeConstIterator< TPrimal >      ConstIterator;
-      typedef QuadEdgePointIterator< TPrimal >      PointIterator;
-      typedef QuadEdgePointConstIterator< TPrimal > PointConstIterator;
-
-    public:
-      itkNewMacro( Self );
-      itkTypeMacro( QuadEdge, itkLightObject );
-
-      cpPluginsExtensionsQEAllIteratorsMacro( Onext );
-      cpPluginsExtensionsQEAllIteratorsMacro( Lnext );
-      cpPluginsExtensionsQEAllIteratorsMacro( Rnext );
-      cpPluginsExtensionsQEAllIteratorsMacro( Dnext );
-      cpPluginsExtensionsQEAllIteratorsMacro( Oprev );
-      cpPluginsExtensionsQEAllIteratorsMacro( Lprev );
-      cpPluginsExtensionsQEAllIteratorsMacro( Rprev );
-      cpPluginsExtensionsQEAllIteratorsMacro( Dprev );
-
-    public:
-      void CreateRings( );
-
-      /// First order access methods
-      inline TPrimal* GetOnext( )
-        { return( this->m_Onext ); }
-      inline TDual* GetRot( )
-        { return( this->m_Rot ); }
-      inline const TPrimal* GetOnext( ) const
-        { return( this->m_Onext ); }
-      inline const TDual* GetRot( ) const
-        { return( this->m_Rot ); }
-
-      /// First order configuration methods
-      inline void SetOnext( TPrimal* e )
-        { this->m_Onext = e; }
-      inline void SetRot( TDual* e )
-        { this->m_Rot = e; }
-
-      /// Second order accessors: around base rings
-      inline TPrimal* GetSym( )
-        { return( this->m_Rot->m_Rot ); }
-      inline TDual* GetInvRot( )
-        { return( this->m_Rot->m_Rot->m_Rot ); }
-
-      /// Second order accessors: neighboring topology
-      inline TPrimal* GetLnext( )
-        { return( this->m_Rot->m_Rot->m_Rot->m_Onext->m_Rot ); }
-      inline TPrimal* GetRnext( )
-        { return( this->m_Rot->m_Onext->m_Rot->m_Rot->m_Rot ); }
-      inline TPrimal* GetDnext( )
-        { return( this->m_Rot->m_Rot->m_Onext->m_Rot->m_Rot ); }
-      inline TPrimal* GetOprev( )
-        { return( this->m_Rot->m_Onext->m_Rot ); }
-      inline TPrimal* GetLprev( )
-        { return( this->m_Onext->m_Rot->m_Rot ); }
-      inline TPrimal* GetRprev( )
-        { return( this->m_Rot->m_Rot->m_Onext ); }
-      inline TPrimal* GetDprev( )
-        {
-          return( this->m_Rot->m_Rot->m_Rot->m_Onext->m_Rot->m_Rot->m_Rot );
-        }
-
-      /// Second order accessors: around base rings (const versions)
-      inline const TPrimal* GetSym( ) const
-        { return( this->m_Rot->m_Rot ); }
-      inline const TDual* GetInvRot( ) const
-        { return( this->m_Rot->m_Rot->m_Rot ); }
-
-      /// Second order accessors: neighboring topology (const versions)
-      inline const TPrimal* GetLnext( ) const
-        { return( this->m_Rot->m_Rot->m_Rot->m_Onext->m_Rot ); }
-      inline const TPrimal* GetRnext( ) const
-        { return( this->m_Rot->m_Onext->m_Rot->m_Rot->m_Rot ); }
-      inline const TPrimal* GetDnext( ) const
-        { return( this->m_Rot->m_Rot->m_Onext->m_Rot->m_Rot ); }
-      inline const TPrimal* GetOprev( ) const
-        { return( this->m_Rot->m_Onext->m_Rot ); }
-      inline const TPrimal* GetLprev( ) const
-        { return( this->m_Onext->m_Rot->m_Rot ); }
-      inline const TPrimal* GetRprev( ) const
-        { return( this->m_Rot->m_Rot->m_Onext ); }
-      inline const TPrimal* GetDprev( ) const
-        {
-          return( this->m_Rot->m_Rot->m_Rot->m_Onext->m_Rot->m_Rot->m_Rot );
-        }
-
-      /// Get geometry methods
-      inline P& GetOrigin( )
-        { return ( this->m_Origin ); }
-      inline P& GetDestination( )
-        { return ( this->m_Rot->m_Rot->m_Origin ); }
-      inline D& GetRight( )
-        { return ( this->m_Rot->m_Origin ); }
-      inline D& GetLeft( )
-        { return ( this->m_Rot->m_Rot->m_Rot->m_Origin ); }
-
-      /// Get geometry methods (const versions)
-      inline const P& GetOrigin( ) const
-        { return ( this->m_Origin ); }
-      inline const P& GetDestination( ) const
-        { return ( this->m_Rot->m_Rot->m_Origin ); }
-      inline const D& GetRight( ) const
-        { return ( this->m_Rot->m_Origin ); }
-      inline const D& GetLeft( ) const
-        { return ( this->m_Rot->m_Rot->m_Rot->m_Origin ); }
-
-      /// Set geometry methods
-      inline void SetOrigin( const P& v )
-        { this->m_Origin = v; }
-      inline void SetDestination( const P& v )
-        { this->m_Rot->m_Rot->m_Origin = v; }
-      inline void SetRight( const D& v )
-        { this->m_Rot->m_Origin = v; }
-      inline void SetLeft( const D& v )
-        { this->m_Rot->m_Rot->m_Rot->m_Origin = v; }
-      inline void UnsetOrigin( )
-        { this->m_Origin = TPrimal::NoGeometry; }
-      inline void UnsetDestination( )
-        { this->m_Rot->m_Rot->m_Origin = TPrimal::NoGeometry; }
-      inline void UnsetRight( )
-        { this->m_Rot->m_Origin = TDual::NoGeometry; }
-      inline void UnsetLeft( )
-        { this->m_Rot->m_Rot->m_Rot->m_Origin = TDual::NoGeometry; }
-
-      /**
-       * Set the Left( ) of all the edges in the Lnext( ) ring of "this"
-       * with the same given geometrical information.
-       * @param  faceGeom Looks at most maxSize edges in the Lnext( ) ring.
-       * @return Returns true on success. False otherwise.
-       */
-      void SetLnextRingGeometry( const D& v );
-      void UnsetLnextRingGeometry( );
-
-      /// Topological queries
-      inline bool IsIsolated( ) const
-        { return( this == this->m_Onext ); }
-      bool IsEdgeInOnextRing( const TPrimal* e ) const;
-      bool IsEdgeInLnextRing( const TPrimal* e ) const;
-      unsigned int GetOnextRingSize( ) const;
-      unsigned int GetLnextRingSize( ) const;
-
-      /**
-       * @return Returns true when "this" has no faces set on both sides.
-       *         Return false otherwise.
-       */
-      inline bool IsWire( )
-        { return( !( this->IsLeftSet( ) ) && !( this->IsRightSet( ) ) ); }
-
-      /**
-       * @return Returns true when "this" is on the boundary i.e.
-       *         one and only one of the faces is set. Return false
-       *         otherwise.
-       */
-      inline bool IsAtBorder( ) const;
-
-      /**
-       * @return Returns true when "this" has faces set on both sides.
-       *         Return false otherwise.
-       */
-      inline bool IsInternal( ) const
-        { return ( this->IsLeftSet( ) && this->IsRightSet( ) ); }
-
-      /// Geometrical queries
-      inline bool IsOriginSet( ) const
-        { return ( this->m_Origin != Self::NoGeometry ); }
-      inline bool IsDestinationSet( ) const
-        { return ( this->m_Rot->m_Rot->IsOriginSet( ) ); }
-      inline bool IsRightSet( ) const
-        { return ( this->m_Rot->IsOriginSet( ) ); }
-      inline bool IsLeftSet( ) const
-        { return ( this->m_Rot->m_Rot->m_Rot->IsOriginSet( ) ); }
-
-      /**
-       * \brief Check wether edge's Origin is internal to the mesh (as
-       * opposed to being on the boundary) by looking if all the edges
-       * in the Onext() ring have a face set on both their Left() and
-       * Right() side.
-       */
-      bool IsOriginInternal( ) const;
-
-      /**
-       * Definition: an edge is said to be a boundary edge when it is
-       * adjacent to i.e. when at least one of the faces edge->GetLeft() or
-       * edge->GetRight() is unset.  Definition: an point is said to be a
-       * boundary point when at least one of the edges of it's Onext() ring
-       * is a boundary edge.
-       *
-       * Assume "this" edge belongs to a triangulation (i.e. it belongs to a
-       * QEMesh which represents a 2-manifold) which possesses a boundary.
-       * Assume "this" edge instance is a boundary edge. Let us denote by P
-       * the point which is the origin of "this" edge i.e. P is
-       * this->Origin().  By definition P is a boundary point.  Then AT
-       * LEAST two [see the note below] edges of the Onext() ring of P
-       * [which all have the point P as Origin()] are themselves boundary
-       * edges. And among those boundary edges AT LEAST one has it's Left()
-       * face unset.  By iterating over the Onext() ring (which defines a
-       * local ordering on edges) this method searches for the first edge
-       * whose Left() face is unset AND which is encountered AFTER edgeTest.
-       *
-       * @param edgeTest When present, this edge will be considered as
-       *        the entry edge in the Onext() ring. When absent it shall
-       *        be defaulted to "this" edge. (see the warning below).
-       * @return When "this" edge is a boundary edge, return the first
-       *         edge in "this" Onext() ring whose Left() face is unset
-       *         AND located after edgeTest.
-       *         When "this" edge is NOT a boundary edge the 0 is
-       *         returned.
-       * @warning When the Mesh possessing "this" edge is a 2-manifold
-       *          then result of this method is unique in the sense that
-       *          it is independent from the edgeTest parameter.
-       *          But when the Mesh is not 2-manifold (this state can
-       *          happen at intermediary stages of the building process,
-       *          or during "surgical" operations on the Mesh, and
-       *          even though the Mesh represents a triangulation)
-       *          the result of this method is not unique in the sense
-       *          that the result depends on the edgeTest parameter.
-       *          Let us illusatre this dependence by considering a
-       *          Mesh (which is a triangulation) which is not a 2-manifold.
-       *          Assume the point P (the origin of "this" edge i.e.
-       *          P = this->Originv()) is TWICE on the border i.e. it
-       *          is adjacent twice to noface. We can consider the situation
-       *          of the following diagram, which depicts some Onext()
-       *          ring around point P:
-       *
-       *                       \         /                               //
-       *                        \   *   /                                //
-       *                        i3     b2              counter-clockwise //
-       *                  *       \   /   NO FACE      Onext() order.    //
-       *                           \ /                                   //
-       *                 ----b4-----P----b1------                        //
-       *                           /|\                                   //
-       *               NO FACE    / | \                                  //
-       *                         /  |  \    *  <------ a * indicates the //
-       *                        /   |   \         the presence of a face //
-       *                       /    |    \                               //
-       *                     b5    i6     i7                             //
-       *                     /   *  |  *   \                             //
-       *                    /       |       \                            //
-       *
-       *          On this example, and if we assume the Onext() oder is
-       *          represented counter-clockwise, the edges are ordered as
-       *          follows:
-       *             b1, b2, i3, b4, b5, i6, i7
-       *          (when arbitrarily starting at edge b1).
-       *          We have four Boundary edges labeled b1, b2, b4, b5 and
-       *          we have three internal edges (i.e. non boundary edges)
-       *          labeled i3, i6 and i7.
-       *          Depending on edgeTest, the result of this method
-       *          will NOT return the same edge:
-       *            - when edgeTest == b5 (or i6 or i7 or b1) then the edge
-       *              b1 will be returned,
-       *            - when edgeTest == b2 (or i3 or b4) then the edge
-       *              b4 will be returned,
-       *          Eventually, when edgeTest is absent, the result shall
-       *          depend on the position of "this" in the Onext() ring().
-       *
-       */
-      TPrimal* GetNextBorderEdgeWithUnsetLeft( TPrimal* edge = NULL ) const;
-
-      /**
-       * Assume "this->Originv()" is a boundary point P that is thrice
-       * adjacent to noface and consider the given situation is the one
-       * depicted by the following diagram where:
-       *   - P is "this->Originv()" instance,
-       *   - the * (star) indicates the presence of a face,
-       *   - b1, b2, b3, b4, b5, b6 denote boundary edges,
-       *   - p denotes some generic point,
-       *   - A and B denote some specific points we want to discuss,
-       *   - the Onext() ring order is represented counter-clockwise
-       *     [which is coherent with the definition of edge->GetRigth()]
-       *     i.e. the ordering of the edges is:
-       *          b1, b2, b3, b4, b5, b6, b1...
-       *
-       *                    p       N       p
-       *                   / \      O      / \                            //
-       *                  /   \           /   \                           //
-       *                 /     \    F    /     \       counter-clockwise  //
-       *                /      b3   A   b2      \      Onext() ring order //
-       *               /         \  C  /         \                        //
-       *              /     *     \ E /     *     \                       //
-       *             /             \ /             \                      //
-       *             A------b4------P------b1-------B                     //
-       *                           / \                                    //
-       *                          /   \                                   //
-       *             NO FACE     /     \      NO FACE                     //
-       *                        /       \                                 //
-       *                      b5         b6                               //
-       *                      /     *     \                               //
-       *                     /             \                              //
-       *                    p---------------p                             //
-       *
-       * At P this Mesh doesn't represent a 2-manifold (since we are thrice
-       * on the boundary). Nevertheless such a situation could arise in
-       * intermediary stages (e.g. when building the Mesh, or during
-       * surgical changes on the Mesh).
-       *    Now, assume we are asked to build the triangle [P, A, B]. Note
-       * that this request is not absurd since the current situation at
-       * P isn't the one of a 2-manifold: hence when building the current
-       * Onext() ring of P, we had not enough information to decide
-       * wheter b4.Onext() should be b5 or b1. It is ONLY when we are
-       * required to build the triangle [P, A, B] that we have the
-       * additional information that b4.Onext() is indeed b1.
-       *    When we are required to build triangle [P, A, B], we hence
-       * need to change the Onext() ring order at P, i.e. we need to deal
-       * with the triangle [P, b5, b6] which currently prevents
-       * b4.Onext() to be b1. In other terms, when considering the
-       * additional information that b4.Onext() is b1, and before
-       * building the triangle [P, A, B], we need to reorder
-       * the Onext() ring of P from it's current state
-       *    b1, b2, b3, b4, b5, b6, b1...
-       * to an order coherent with the [P, A, B] request, i.e.
-       *     b1, b2, b5, b6, b3, b4, b1...
-       *
-       * In order to establish the "proper" Onext() ring at P we use
-       * two Splice operations. The algorithm goes:
-       *   - first disconnect the piece of the surface containing the edge
-       *     [PB] (it would be the same process if we chose [PA]) from
-       *     the Onext() ring at P.
-       *   - second, re-integrate the disconnected piece at the desired
-       *     location i.e. side by side with [PA] (respectively [PB] if
-       *     we chose [PA] at first stage).
-       * By "piece of surface containing the edge [PB]" we mean [all]
-       * the triangle[s] starting at [PB] in the Onext() order and
-       * having a left face set.
-       *
-       * We can illustrate this process on bit more general diagram than
-       * the last case (where the "piece of surface containing the edge
-       * [PB]" is constituted by two triangles) and when using
-       * the arguments of this method (i.e. [PA] = this and [PB] = second).
-       * The initial stage is the following (we note first=this=[PA] and
-       * second=[PB]) where the Onext() ring order is:
-       *     first, b2, b3, second, b5, bsplice, b7, first...
-       *
-       *                    p       N       A                            //
-       *                   / \      O      / \                           //
-       *                  /   \           /   \                          //
-       *                 /     \    F    /     \     counter-clockwise   //
-       *                /      b2   A  first    \    Onext() ring order  //
-       *               /         \  C  /         \                       //
-       *              /     *     \ E /     *     \                      //
-       *             /             \ /             \                     //
-       *            p-------b3------P------b7-------p                    //
-       *                           /|\                                   //
-       *                          / | \                                  //
-       *          NO FACE        /  |  \      NO FACE                    //
-       *                        /   |   \                                //
-       *                  second   b5   bsplice                          //
-       *                      /  *  |  *  \                              //
-       *                     /      |      \                             //
-       *                    B-------p-------p                            //
-       *
-       * The first stage, implemented as
-       *     second->Oprev()->Splice( bsplice ),
-       * yields the following diagram:
-       *
-       *                    p       N       A                            //
-       *                   / \      O      / \                           //
-       *                  /   \     F     /   \                          //
-       *                 /     \    A    /     \      counter-clockwise  //
-       *                /      b2   C  first    \     Onext() ring order //
-       *               /         \  E  /         \                       //
-       *              /     *     \   /     *     \                      //
-       *             /             \ /             \                     //
-       *            p-------b3------P------b7-------p                    //
-       *                                                                 //
-       *                         NO FACE                                 //
-       *                                                                 //
-       *                           /|\                                   //
-       *                          / | \                                  //
-       *                         /  |  \                                 //
-       *                        /   |   \                                //
-       *                  second   b5   bsplice                          //
-       *                      /  *  |  *  \                              //
-       *                     /      |      \                             //
-       *                    B-------p-------p                            //
-       *
-       * and the second stage, implemented as
-       *      first->Splice( bsplice ),
-       * yields the following diagram:
-       *
-       *                                    A                            //
-       *         B__        NO FACE        / \                           //
-       *         |  \__                   /   \                          //
-       *         |     \__               /     \       counter-          //
-       *         |      second         first    \      clockwise for all //
-       *         |           \__       /         \                       //
-       *         |     *        \__   /     *     \                      //
-       *         |                 \ /             \                     //
-       *         p-------b5---------P------b7-------p                    //
-       *         |               __/|\                                   //
-       *         |     *      __/   | \                                  //
-       *         |           /      |  \      NO FACE                    //
-       *         |     bsplice      |   \                                //
-       *         |   __/           b2    b3                              //
-       *         p__/               |  *  \                              //
-       *                NO FACE     |      \                             //
-       *                            p-------p                            //
-       *
-       */
-      inline static bool ReorderOnextRing( TPrimal* first, TPrimal* second );
-
-      /**
-       * \brief Basic quad-edge topological method.
-       *
-       * This method describes all possible topological operations on an
-       * edge since it is its own inverse. It works in two ways:
-       *
-       *   1. If this->m_Org != b->m_Org, it slice a face in two.
-       *   2. If this->m_Org == b->m_Org, it unifies two faces.
-       */
-      inline static void Splice( TPrimal* a, TPrimal* b );
-
-    protected:
-      QuadEdge( );
-      virtual ~QuadEdge( );
-
-    public:
-      static const TPrimalGeometry NoGeometry;
-
-    protected:
-      Pointer         m_Onext;  /**< Onext ring */
-      PtrDual         m_Rot;    /**< Rot ring */
-      TPrimalGeometry m_Origin; /**< Geometry attached to edge's origin */
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#ifndef ITK_MANUAL_INSTANTIATION
-#include <cpExtensions/DataStructures/QuadEdge.hxx>
-#endif // ITK_MANUAL_INSTANTIATION
-
-#endif // __CPEXTENSIONS__DATASTRUCTURES__QUADEDGE__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/DataStructures/QuadEdge.hxx b/lib/cpExtensions/DataStructures/QuadEdge.hxx
deleted file mode 100644 (file)
index a0e0e25..0000000
+++ /dev/null
@@ -1,241 +0,0 @@
-#ifndef __CPEXTENSIONS__DATASTRUCTURES__QUADEDGE__HXX__
-#define __CPEXTENSIONS__DATASTRUCTURES__QUADEDGE__HXX__
-
-#include <limits>
-
-// -------------------------------------------------------------------------
-template< typename P, typename D, bool IsPrimal >
-const typename cpExtensions::DataStructures::
-QuadEdge< P, D, IsPrimal >::TPrimalGeometry
-cpExtensions::DataStructures::QuadEdge< P, D, IsPrimal >::
-NoGeometry = std::numeric_limits< P >::max( );
-
-// -------------------------------------------------------------------------
-template< typename P, typename D, bool IsPrimal >
-void cpExtensions::DataStructures::QuadEdge< P, D, IsPrimal >::
-CreateRings( )
-{
-  TPrimal* e = this;
-  PtrDual r = TDual::New( );
-  Pointer s = Self::New( );
-  PtrDual i = TDual::New( );
-
-  // Create Rot ring
-  e->m_Rot = r;
-  r->m_Rot = s;
-  s->m_Rot = i;
-  i->m_Rot = e;
-
-  // Update Onext rings
-  r->m_Onext = i;
-  i->m_Onext = r;
-}
-
-// -------------------------------------------------------------------------
-template< typename P, typename D, bool IsPrimal >
-void cpExtensions::DataStructures::QuadEdge< P, D, IsPrimal >::
-SetLnextRingGeometry( const D& v )
-{
-  for( Iterator i = this->BeginLnext( ); i != this->EndLnext( ); ++i )
-    ( *i )->SetLeft( v );
-}
-
-// -------------------------------------------------------------------------
-template< typename P, typename D, bool IsPrimal >
-void cpExtensions::DataStructures::QuadEdge< P, D, IsPrimal >::
-UnsetLnextRingGeometry( )
-{
-  this->SetLnextRingGeometry( TDual::NoGeometry );
-}
-
-// -------------------------------------------------------------------------
-template< typename P, typename D, bool IsPrimal >
-bool cpExtensions::DataStructures::QuadEdge< P, D, IsPrimal >::
-IsEdgeInOnextRing( const TPrimal* e ) const
-{
-  bool found = false;
-  for(
-    ConstIterator i = this->BeginOnext( );
-    i != this->EndOnext( ) && !found;
-    ++i
-    )
-    found |= ( *i == e );
-  return( found );
-}
-
-// -------------------------------------------------------------------------
-template< typename P, typename D, bool IsPrimal >
-bool cpExtensions::DataStructures::QuadEdge< P, D, IsPrimal >::
-IsEdgeInLnextRing( const TPrimal* e ) const
-{
-  bool found = false;
-  for(
-    ConstIterator i = this->BeginLnext( );
-    i != this->EndLnext( ) && !found;
-    ++i
-    )
-    found |= ( *i == e );
-  return( found );
-}
-
-// -------------------------------------------------------------------------
-template< typename P, typename D, bool IsPrimal >
-unsigned int
-cpExtensions::DataStructures::QuadEdge< P, D, IsPrimal >::
-GetOnextRingSize( ) const
-{
-  unsigned int count = 0;
-  for(
-    ConstIterator i = this->BeginOnext( );
-    i != this->EndOnext( );
-    ++i
-    )
-    count++;
-  return( count );
-}
-
-// -------------------------------------------------------------------------
-template< typename P, typename D, bool IsPrimal >
-unsigned int
-cpExtensions::DataStructures::QuadEdge< P, D, IsPrimal >::
-GetLnextRingSize( ) const
-{
-  unsigned int count = 0;
-  for(
-    ConstIterator i = this->BeginLnext( );
-    i != this->EndLnext( );
-    ++i
-    )
-    count++;
-  return( count );
-}
-
-// -------------------------------------------------------------------------
-template< typename P, typename D, bool IsPrimal >
-bool cpExtensions::DataStructures::QuadEdge< P, D, IsPrimal >::
-IsAtBorder( ) const
-{
-  return(
-    (    this->IsLeftSet( )   && !( this->IsRightSet( ) ) ) ||
-    ( !( this->IsLeftSet( ) ) &&    this->IsRightSet( )   )
-    );
-}
-
-// -------------------------------------------------------------------------
-template< typename P, typename D, bool IsPrimal >
-bool cpExtensions::DataStructures::QuadEdge< P, D, IsPrimal >::
-IsOriginInternal( ) const
-{
-  bool internal = true;
-  for(
-    ConstIterator i = this->BeginOnext( );
-    i != this->EndOnext( ) && internal;
-    ++i
-    )
-    internal &= ( *i )->IsInternal( );
-  return( internal );
-}
-
-// -------------------------------------------------------------------------
-template< typename P, typename D, bool IsPrimal >
-typename cpExtensions::DataStructures::QuadEdge< P, D, IsPrimal >::
-TPrimal* cpExtensions::DataStructures::QuadEdge< P, D, IsPrimal >::
-GetNextBorderEdgeWithUnsetLeft( TPrimal* edge ) const
-{
-  // Be sure the Onext ring isn't already full
-  if( this->IsOriginInternal( ) )
-    return( NULL );
-
-  // Update reference
-  edge = ( edge == NULL )? const_cast< TPrimal* >( this ): edge;
-
-  // On efficiency purposes
-  if( edge->IsIsolated( ) )
-    return( edge );
-
-  // Ok, no more special cases
-  const TPrimal* cedge = const_cast< const TPrimal* >( edge );
-  ConstIterator it = cedge->BeginOnext( );
-  TPrimal* found = NULL;
-  for( ; it != cedge->EndOnext( ) && found == NULL; ++it )
-    if( !( ( *it )->IsLeftSet( ) ) )
-      found = const_cast< TPrimal* >( *it );
-  return( found );
-}
-
-// -------------------------------------------------------------------------
-template< typename P, typename D, bool IsPrimal >
-bool cpExtensions::DataStructures::QuadEdge< P, D, IsPrimal >::
-ReorderOnextRing( TPrimal* first, TPrimal* second )
-{
-  // Making sure point adjacency is correct:
-  if( first->GetOrigin( ) != second->GetOrigin( ) )
-    return( false );
-
-  if( first->GetOnext( ) == second )
-    return( true );
-
-  if( first->IsLeftSet( ) )
-    return( false );
-
-  // Second is an internal edge.
-  if( second->IsInternal( ) )
-    return( false );
-
-  // Disconnect the triangles containing second:
-  TPrimal* bsplice;
-  if( second->IsLeftSet( ) )
-    bsplice = second->GetNextBorderEdgeWithUnsetLeft( );
-  else
-    bsplice = second;
-  TPrimal::Splice( second->GetOprev( ), bsplice );
-
-  // Reconnect second after first:
-  TPrimal::Splice( first, bsplice );
-  return( true );
-}
-
-// -------------------------------------------------------------------------
-template< typename P, typename D, bool IsPrimal >
-void cpExtensions::DataStructures::QuadEdge< P, D, IsPrimal >::
-Splice( TPrimal* a, TPrimal* b )
-{
-  // Don't waste time splicing the same edge (or non-existent)
-  // remember: it is its own inverse!
-  if( a != b || a == NULL || b == NULL )
-  {
-    TPrimal* aNext = a->m_Onext;
-    TPrimal* bNext = b->m_Onext;
-    TDual* al      = aNext->m_Rot;
-    TDual* be      = bNext->m_Rot;
-    TDual* alNext  = al->m_Onext;
-    TDual* beNext  = be->m_Onext;
-
-    a->SetOnext( bNext );
-    b->SetOnext( aNext );
-    al->SetOnext( beNext );
-    be->SetOnext( alNext );
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-template< typename P, typename D, bool IsPrimal >
-cpExtensions::DataStructures::QuadEdge< P, D, IsPrimal >::
-QuadEdge( )
-  : m_Origin( Self::NoGeometry )
-{
-  this->m_Onext = this;
-  this->m_Rot = NULL;
-}
-
-// -------------------------------------------------------------------------
-template< typename P, typename D, bool IsPrimal >
-cpExtensions::DataStructures::QuadEdge< P, D, IsPrimal >::
-~QuadEdge( )
-{
-}
-
-#endif // __CPEXTENSIONS__DATASTRUCTURES__QUADEDGE__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/DataStructures/QuadEdgeCell.h b/lib/cpExtensions/DataStructures/QuadEdgeCell.h
deleted file mode 100644 (file)
index 84ae92f..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-#ifndef __CPEXTENSIONS__DATASTRUCTURES__QUADEDGECELL__H__
-#define __CPEXTENSIONS__DATASTRUCTURES__QUADEDGECELL__H__
-
-#include <vector>
-
-namespace cpExtensions
-{
-  namespace DataStructures
-  {
-    /**
-     */
-    template< class I, class E >
-    class QuadEdgeCell
-      : public I
-    {
-    public:
-      // Base types
-      typedef QuadEdgeCell                   Self;
-      typedef I                              Superclass;
-      typedef itk::AutoPointer< Self >       SelfAutoPointer;
-      typedef itk::AutoPointer< const Self > ConstSelfAutoPointer;
-      typedef Self*                          RawPointer;
-      typedef const Self*                    ConstRawPointer;
-
-      // QuadEdge objects
-      typedef E                 TPrimalEdge;
-      typedef typename E::TDual TDualEdge;
-
-      // Inherited types
-      typedef typename I::PixelType                PixelType;
-      typedef typename I::CellType                 CellType;
-      typedef typename I::CellAutoPointer          CellAutoPointer;
-      typedef typename I::CellConstAutoPointer     CellConstAutoPointer;
-      typedef typename I::CellRawPointer           CellRawPointer;
-      typedef typename I::CellConstRawPointer      CellConstRawPointer;
-      typedef typename I::CellTraits               CellTraits;
-      typedef typename I::CoordRepType             CoordRepType;
-      typedef typename I::InterpolationWeightType  InterpolationWeightType;
-      typedef typename I::PointIdentifier          PointIdentifier;
-      typedef typename I::PointIdIterator          PointIdIterator;
-      typedef typename I::PointIdConstIterator     PointIdConstIterator;
-      typedef typename I::CellIdentifier           CellIdentifier;
-      typedef typename I::CellFeatureIdentifier    CellFeatureIdentifier;
-      typedef typename I::CellFeatureIdentifier    CellFeatureCount;
-      typedef typename I::PointType                PointType;
-      typedef typename I::VectorType               VectorType;
-      typedef typename I::PointsContainer          PointsContainer;
-      typedef typename I::UsingCellsContainer      UsingCellsContainer;
-      typedef typename I::CellGeometry             CellGeometry;
-      typedef typename I::ParametricCoordArrayType ParametricCoordArrayType;
-      typedef typename I::ShapeFunctionsArrayType  ShapeFunctionsArrayType;
-
-      itkStaticConstMacro( PointDimension, unsigned int, I::PointDimension );
-      itkStaticConstMacro( CellDimension, unsigned int, 2 );
-
-    public:
-      itkTypeMacro( QuadEdgeCell, I );
-
-    public:
-      QuadEdgeCell( );
-      QuadEdgeCell( E* entry );
-      virtual ~QuadEdgeCell( );
-
-      /// Implement the standard CellInterface.
-      virtual CellGeometry GetType( ) const;
-      virtual void MakeCopy( CellAutoPointer& other ) const;
-      virtual unsigned int GetDimension( ) const;
-      virtual unsigned int GetNumberOfPoints( ) const;
-      virtual CellFeatureCount GetNumberOfBoundaryFeatures(
-        int dimension
-        ) const;
-      virtual bool GetBoundaryFeature(
-        int dimension, CellFeatureIdentifier fId, CellAutoPointer& ptr
-        );
-      virtual void SetPointIds( PointIdConstIterator first );
-      virtual void SetPointIds(
-        PointIdConstIterator first, PointIdConstIterator last
-        );
-      virtual void AddPointId( PointIdentifier pId );
-      virtual void RemovePointId( PointIdentifier pId );
-      virtual void SetPointIds(
-        int dummy, int num, PointIdConstIterator first
-        );
-      virtual void BuildEdges( );
-      virtual void ClearPoints( );
-      virtual void SetPointId( int localId, PointIdentifier pId );
-
-      // Visitor methods
-      static int GetTopologyId( );
-      virtual void Accept(
-        CellIdentifier cellid,
-        typename itk::CellInterface< PixelType, CellTraits >::
-        MultiVisitor* mv
-        );
-
-      // Iterators
-      virtual PointIdIterator      PointIdsBegin( );
-      virtual PointIdConstIterator PointIdsBegin( ) const;
-      virtual PointIdIterator      PointIdsEnd( );
-      virtual PointIdConstIterator PointIdsEnd( ) const;
-
-      /// QuadEdgeCell-specific interface.
-      virtual E* GetEntryPrimalEdge( );
-      virtual const E* GetEntryPrimalEdge( ) const;
-      virtual void SetEntryPrimalEdge( E* entry );
-
-    private:
-      /// Purposely not implemented.
-    QuadEdgeCell( const Self& );
-      Self& operator=( const Self& );
-
-    protected:
-      E* m_EntryEdge;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#ifndef ITK_MANUAL_INSTANTIATION
-#include <cpExtensions/DataStructures/QuadEdgeCell.hxx>
-#endif // ITK_MANUAL_INSTANTIATION
-
-#endif // __CPEXTENSIONS__DATASTRUCTURES__QUADEDGECELL__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/DataStructures/QuadEdgeCell.hxx b/lib/cpExtensions/DataStructures/QuadEdgeCell.hxx
deleted file mode 100644 (file)
index 7713b3e..0000000
+++ /dev/null
@@ -1,258 +0,0 @@
-#ifndef __CPEXTENSIONS__DATASTRUCTURES__QUADEDGECELL__HXX__
-#define __CPEXTENSIONS__DATASTRUCTURES__QUADEDGECELL__HXX__
-
-// -------------------------------------------------------------------------
-template< class I, class E >
-cpExtensions::DataStructures::QuadEdgeCell< I, E >::
-QuadEdgeCell( )
-  : Superclass( ),
-    m_EntryEdge( NULL )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class I, class E >
-cpExtensions::DataStructures::QuadEdgeCell< I, E >::
-QuadEdgeCell( E* entry )
-  : Superclass( ),
-    m_EntryEdge( entry )
-{
-  this->SetEntryPrimalEdge( entry );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class E >
-cpExtensions::DataStructures::QuadEdgeCell< I, E >::
-~QuadEdgeCell( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class I, class E >
-typename cpExtensions::DataStructures::QuadEdgeCell< I, E >::
-CellGeometry cpExtensions::DataStructures::QuadEdgeCell< I, E >::
-GetType( ) const
-{
-  std::cout << "QuadEdgeCell GetType" << std::endl;
-  std::exit( 1 );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class E >
-void cpExtensions::DataStructures::QuadEdgeCell< I, E >::
-MakeCopy( CellAutoPointer& other ) const
-{
-  std::cout << "QuadEdgeCell MakeCopy" << std::endl;
-  std::exit( 1 );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class E >
-unsigned int cpExtensions::DataStructures::QuadEdgeCell< I, E >::
-GetDimension( ) const
-{
-  std::cout << "QuadEdgeCell GetDimension" << std::endl;
-  std::exit( 1 );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class E >
-unsigned int cpExtensions::DataStructures::QuadEdgeCell< I, E >::
-GetNumberOfPoints( ) const
-{
-  return( this->m_EntryEdge->GetLnextRingSize( ) );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class E >
-typename cpExtensions::DataStructures::QuadEdgeCell< I, E >::
-CellFeatureCount cpExtensions::DataStructures::QuadEdgeCell< I, E >::
-GetNumberOfBoundaryFeatures( int dimension ) const
-{
-  std::cout << "QuadEdgeCell GetNumberOfBoundaryFeatures" << std::endl;
-  std::exit( 1 );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class E >
-bool cpExtensions::DataStructures::QuadEdgeCell< I, E >::
-GetBoundaryFeature(
-  int dimension,
-  CellFeatureIdentifier fId,
-  CellAutoPointer& ptr
-  )
-{
-  std::cout << "QuadEdgeCell GetBoundaryFeature" << std::endl;
-  std::exit( 1 );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class E >
-void cpExtensions::DataStructures::QuadEdgeCell< I, E >::
-SetPointIds( PointIdConstIterator first )
-{
-  std::cout << "QuadEdgeCell SetPointIds" << std::endl;
-  std::exit( 1 );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class E >
-void cpExtensions::DataStructures::QuadEdgeCell< I, E >::
-SetPointIds(
-  PointIdConstIterator first,
-  PointIdConstIterator last
-  )
-{
-  std::cout << "QuadEdgeCell SetPointIds(first,last)" << std::endl;
-  std::exit( 1 );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class E >
-void cpExtensions::DataStructures::QuadEdgeCell< I, E >::
-AddPointId( PointIdentifier pId )
-{
-  std::cout << "QuadEdgeCell AddPointId" << std::endl;
-  std::exit( 1 );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class E >
-void cpExtensions::DataStructures::QuadEdgeCell< I, E >::
-RemovePointId( PointIdentifier pId )
-{
-  std::cout << "QuadEdgeCell RemovePointId" << std::endl;
-  std::exit( 1 );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class E >
-void cpExtensions::DataStructures::QuadEdgeCell< I, E >::
-SetPointIds(
-  int dummy,
-  int num,
-  PointIdConstIterator first
-  )
-{
-  std::cout << "QuadEdgeCell SetPointIds(dummy,num,first)" << std::endl;
-  std::exit( 1 );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class E >
-void cpExtensions::DataStructures::QuadEdgeCell< I, E >::
-BuildEdges( )
-{
-  std::cout << "QuadEdgeCell BuildEdges" << std::endl;
-  std::exit( 1 );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class E >
-void cpExtensions::DataStructures::QuadEdgeCell< I, E >::
-ClearPoints( )
-{
-  std::cout << "QuadEdgeCell ClearPoints" << std::endl;
-  std::exit( 1 );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class E >
-void cpExtensions::DataStructures::QuadEdgeCell< I, E >::
-SetPointId( int localId, PointIdentifier pId )
-{
-  std::cout << "QuadEdgeCell SetPointId(localId,pId)" << std::endl;
-  std::exit( 1 );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class E >
-int cpExtensions::DataStructures::QuadEdgeCell< I, E >::
-GetTopologyId( )
-{
-  // TODO: return( Superclass::POLYGON_CELL );
-  std::cout << "QuadEdgeCell GetTopologyId" << std::endl;
-  std::exit( 1 );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class E >
-void cpExtensions::DataStructures::QuadEdgeCell< I, E >::
-Accept(
-  CellIdentifier cellid,
-  typename itk::CellInterface< PixelType, CellTraits >::MultiVisitor* mv
-  )
-{
-  std::cout << "QuadEdgeCell Accept" << std::endl;
-  std::exit( 1 );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class E >
-typename cpExtensions::DataStructures::QuadEdgeCell< I, E >::
-PointIdIterator cpExtensions::DataStructures::QuadEdgeCell< I, E >::
-PointIdsBegin( )
-{
-  std::cout << "QuadEdgeCell PointIdsBegin" << std::endl;
-  std::exit( 1 );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class E >
-typename cpExtensions::DataStructures::QuadEdgeCell< I, E >::
-PointIdConstIterator
-cpExtensions::DataStructures::QuadEdgeCell< I, E >::
-PointIdsBegin( ) const
-{
-  std::cout << "QuadEdgeCell PointIdsBegin (const)" << std::endl;
-  std::exit( 1 );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class E >
-typename cpExtensions::DataStructures::QuadEdgeCell< I, E >::
-PointIdIterator cpExtensions::DataStructures::QuadEdgeCell< I, E >::
-PointIdsEnd( )
-{
-  std::cout << "QuadEdgeCell PointIdsEnd" << std::endl;
-  std::exit( 1 );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class E >
-typename cpExtensions::DataStructures::QuadEdgeCell< I, E >::
-PointIdConstIterator
-cpExtensions::DataStructures::QuadEdgeCell< I, E >::
-PointIdsEnd( ) const
-{
-  std::cout << "QuadEdgeCell PointIdsEnd (const)" << std::endl;
-  std::exit( 1 );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class E >
-E* cpExtensions::DataStructures::QuadEdgeCell< I, E >::
-GetEntryPrimalEdge( )
-{
-  return( this->m_EntryEdge );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class E >
-const E* cpExtensions::DataStructures::QuadEdgeCell< I, E >::
-GetEntryPrimalEdge( ) const
-{
-  return( this->m_EntryEdge );
-}
-
-// -------------------------------------------------------------------------
-template< class I, class E >
-void cpExtensions::DataStructures::QuadEdgeCell< I, E >::
-SetEntryPrimalEdge( E* entry )
-{
-  this->m_EntryEdge = entry;
-}
-
-#endif // __CPEXTENSIONS__DATASTRUCTURES__QUADEDGECELL__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/DataStructures/QuadEdgeIterators.h b/lib/cpExtensions/DataStructures/QuadEdgeIterators.h
deleted file mode 100644 (file)
index c82ac34..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-#ifndef __CPEXTENSIONS__DATASTRUCTURES__QUADEDGEITERATORS__H__
-#define __CPEXTENSIONS__DATASTRUCTURES__QUADEDGEITERATORS__H__
-
-#include <cstdlib>
-
-// -------------------------------------------------------------------------
-#define cpPluginsQEIteratorsMacro( op, it, cit )        \
-  inline it Begin##op( )                                \
-  { return( it( this, it::Op##op, true ) ); }           \
-  inline it End##op( )                                  \
-  { return( it( this, it::Op##op, false ) ); }          \
-  inline cit Begin##op( ) const                         \
-  { return( cit( this, cit::Op##op, true ) ); }         \
-  inline cit End##op( ) const                           \
-  { return( cit( this, cit::Op##op, false ) ); }
-
-// -------------------------------------------------------------------------
-#define cpPluginsExtensionsQEPointIteratorsMacro( op, it, cit ) \
-  inline Point##it BeginPoint##op( )                            \
-  { return( Point##it( this, it::Op##op, true ) ); }            \
-  inline Point##it EndPoint##op( )                              \
-  { return( Point##it( this, it::Op##op, false ) ); }           \
-  inline Point##cit BeginPoint##op( ) const                     \
-  { return( Point##cit( this, cit::Op##op, true ) ); }          \
-  inline Point##cit EndPoint  ##op( ) const                     \
-  { return( Point##cit( this, cit::Op##op, false ) ); }
-
-// -------------------------------------------------------------------------
-#define cpPluginsExtensionsQEAllIteratorsMacro( op )                    \
-  cpPluginsQEIteratorsMacro( op, Iterator, ConstIterator );             \
-  cpPluginsExtensionsQEPointIteratorsMacro( op, Iterator, ConstIterator );
-
-namespace cpExtensions
-{
-  namespace DataStructures
-  {
-    /**
-     */
-    template< class E >
-    class QuadEdgeBaseIterator
-    {
-    public:
-      typedef QuadEdgeBaseIterator Self;
-      typedef E                    TQuadEdge;
-
-      // Different types of logical iterators
-      enum
-      {
-        OpOnext = 0,
-        OpLnext = 1,
-        OpRnext = 2,
-        OpDnext = 3,
-        OpOprev = 4,
-        OpLprev = 5,
-        OpRprev = 6,
-        OpDprev = 7
-      };
-
-    public:
-      QuadEdgeBaseIterator( E* e, int op = OpOnext, bool start = true );
-      virtual ~QuadEdgeBaseIterator( );
-      Self& operator=( const Self& r );
-
-      E*   GetStartEdge( ) const;
-      E*   GetIterator( ) const;
-      int  GetOpType( ) const;
-      bool GetStart( ) const;
-
-      bool  operator==( Self& r );
-      bool  operator==( const Self& r ) const;
-      bool  operator!=( Self& r );
-      bool  operator!=( const Self& r ) const;
-      Self& operator++( );
-      Self& operator++( int );
-
-    protected:
-      /// Method that should do all the iteration work
-    virtual void _GoToNext( );
-
-    protected:
-      E*   m_StartEdge; /**< Start edge */
-      E*   m_Iterator;  /**< Current iteration position */
-      int  m_OpType;    /**< Operation type */
-      bool m_Start;     /**< Indicates iteration has just started */
-    };
-
-    /**
-     */
-    template< class E >
-    class QuadEdgeIterator
-      : public QuadEdgeBaseIterator< E >
-    {
-    public:
-      typedef QuadEdgeIterator          Self;
-      typedef QuadEdgeBaseIterator< E > Superclass;
-      typedef E                         TQuadEdge;
-
-    public:
-      QuadEdgeIterator(
-        E* e = NULL, int op = Superclass::OpOnext, bool start = true
-        );
-      virtual ~QuadEdgeIterator( );
-      E* operator*( );
-    };
-
-    /**
-     */
-    template< class E >
-    class QuadEdgeConstIterator
-      : public QuadEdgeBaseIterator< const E >
-    {
-    public:
-      typedef QuadEdgeConstIterator           Self;
-      typedef QuadEdgeBaseIterator< const E > Superclass;
-      typedef E                               TQuadEdge;
-
-    public:
-      QuadEdgeConstIterator(
-        const E* e = NULL, int op = Superclass::OpOnext, bool start = true
-        );
-      virtual ~QuadEdgeConstIterator( );
-      const E* operator*( ) const;
-    };
-
-    /**
-     */
-    template< class E >
-    class QuadEdgePointIterator
-      : public QuadEdgeBaseIterator< const E >
-    {
-    public:
-      typedef QuadEdgePointIterator           Self;
-      typedef QuadEdgeBaseIterator< const E > Superclass;
-      typedef E                               TQuadEdge;
-
-    public:
-      QuadEdgePointIterator(
-        const E* e = NULL, int op = Superclass::OpOnext, bool start = true
-        );
-      virtual ~QuadEdgePointIterator( );
-      typename E::TPrimalGeometry& operator*( );
-    };
-
-    /**
-     */
-    template< class E >
-    class QuadEdgePointConstIterator
-      : public QuadEdgeBaseIterator< const E >
-    {
-    public:
-      typedef QuadEdgePointConstIterator      Self;
-      typedef QuadEdgeBaseIterator< const E > Superclass;
-      typedef E                               TQuadEdge;
-
-    public:
-      QuadEdgePointConstIterator(
-        const E* e = NULL, int op = Superclass::OpOnext, bool start = true
-        );
-      virtual ~QuadEdgePointConstIterator( );
-      const typename E::TPrimalGeometry& operator*( ) const;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#ifndef ITK_MANUAL_INSTANTIATION
-#include <cpExtensions/DataStructures/QuadEdgeIterators.hxx>
-#endif // ITK_MANUAL_INSTANTIATION
-
-#endif // __CPEXTENSIONS__DATASTRUCTURES__QUADEDGEITERATORS__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/DataStructures/QuadEdgeIterators.hxx b/lib/cpExtensions/DataStructures/QuadEdgeIterators.hxx
deleted file mode 100644 (file)
index 3255e0d..0000000
+++ /dev/null
@@ -1,275 +0,0 @@
-#ifndef __CPEXTENSIONS__DATASTRUCTURES__QUADEDGEITERATORS__HXX__
-#define __CPEXTENSIONS__DATASTRUCTURES__QUADEDGEITERATORS__HXX__
-
-// -------------------------------------------------------------------------
-template< class E >
-cpExtensions::DataStructures::QuadEdgeBaseIterator< E >::
-QuadEdgeBaseIterator( E* e, int op, bool start )
-  : m_StartEdge( e ),
-    m_Iterator( e ),
-    m_OpType( op ),
-    m_Start( start )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class E >
-cpExtensions::DataStructures::QuadEdgeBaseIterator< E >::
-~QuadEdgeBaseIterator( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class E >
-typename cpExtensions::DataStructures::QuadEdgeBaseIterator< E >::
-Self& cpExtensions::DataStructures::QuadEdgeBaseIterator< E >::
-operator=( const Self& r )
-{
-  if( this != &r )
-  {
-    this->m_StartEdge = r.m_StartEdge;
-    this->m_Iterator = r.m_Iterator;
-    this->m_OpType = r.m_OpType;
-    this->m_Start = r.m_Start;
-
-  } // fi
-  return( *this );
-}
-
-// -------------------------------------------------------------------------
-template< class E >
-E* cpExtensions::DataStructures::QuadEdgeBaseIterator< E >::
-GetStartEdge( ) const
-{
-  return( this->m_StartEdge );
-}
-
-// -------------------------------------------------------------------------
-template< class E >
-E* cpExtensions::DataStructures::QuadEdgeBaseIterator< E >::
-GetIterator( ) const
-{
-  return( this->m_Iterator );
-}
-
-// -------------------------------------------------------------------------
-template< class E >
-int cpExtensions::DataStructures::QuadEdgeBaseIterator< E >::
-GetOpType( ) const
-{
-  return( this->m_OpType );
-}
-
-// -------------------------------------------------------------------------
-template< class E >
-bool cpExtensions::DataStructures::QuadEdgeBaseIterator< E >::
-GetStart( ) const
-{
-  return( this->m_Start );
-}
-
-// -------------------------------------------------------------------------
-template< class E >
-bool cpExtensions::DataStructures::QuadEdgeBaseIterator< E >::
-operator==( Self& r )
-{
-  return(
-    ( this->m_StartEdge == r.m_StartEdge ) &&
-    ( this->m_Iterator  == r.m_Iterator ) &&
-    ( this->m_OpType    == r.m_OpType ) &&
-    ( this->m_Start     == r.m_Start )
-    );
-}
-
-// -------------------------------------------------------------------------
-template< class E >
-bool cpExtensions::DataStructures::QuadEdgeBaseIterator< E >::
-operator==( const Self& r ) const
-{
-  return(
-    ( this->m_StartEdge == r.m_StartEdge ) &&
-    ( this->m_Iterator  == r.m_Iterator ) &&
-    ( this->m_OpType    == r.m_OpType ) &&
-    ( this->m_Start     == r.m_Start )
-    );
-}
-
-// -------------------------------------------------------------------------
-template< class E >
-bool cpExtensions::DataStructures::QuadEdgeBaseIterator< E >::
-operator!=( Self& r )
-{
-  return( !( this->operator==( r ) ) );
-}
-
-// -------------------------------------------------------------------------
-template< class E >
-bool cpExtensions::DataStructures::QuadEdgeBaseIterator< E >::
-operator!=( const Self& r ) const
-{
-  return( !( this->operator==( r ) ) );
-}
-
-// -------------------------------------------------------------------------
-template< class E >
-typename cpExtensions::DataStructures::QuadEdgeBaseIterator< E >::
-Self& cpExtensions::DataStructures::QuadEdgeBaseIterator< E >::
-operator++( )
-{
-  if( this->m_Start )
-  {
-    this->_GoToNext( );
-    this->m_Start = !( this->m_Iterator == this->m_StartEdge );
-
-  } // fi
-  return( *this );
-}
-
-// -------------------------------------------------------------------------
-template< class E >
-typename cpExtensions::DataStructures::QuadEdgeBaseIterator< E >::
-Self& cpExtensions::DataStructures::QuadEdgeBaseIterator< E >::
-operator++( int )
-{
-  if( this->m_Start )
-  {
-    this->_GoToNext( );
-    this->m_Start = !( this->m_Iterator == this->m_StartEdge );
-
-  } // fi
-  return( *this );
-}
-
-// -------------------------------------------------------------------------
-template< class E >
-void cpExtensions::DataStructures::QuadEdgeBaseIterator< E >::
-_GoToNext( )
-{
-  switch( this->m_OpType )
-  {
-  case Self::OpOnext:
-    this->m_Iterator = this->m_Iterator->GetOnext( );
-    break;
-  case Self::OpLnext:
-    this->m_Iterator = this->m_Iterator->GetLnext( );
-    break;
-  case Self::OpRnext:
-    this->m_Iterator = this->m_Iterator->GetRnext( );
-    break;
-  case Self::OpDnext:
-    this->m_Iterator = this->m_Iterator->GetDnext( );
-    break;
-  case Self::OpOprev:
-    this->m_Iterator = this->m_Iterator->GetOprev( );
-    break;
-  case Self::OpLprev:
-    this->m_Iterator = this->m_Iterator->GetLprev( );
-    break;
-  case Self::OpRprev:
-    this->m_Iterator = this->m_Iterator->GetRprev( );
-    break;
-  case Self::OpDprev:
-    this->m_Iterator = this->m_Iterator->GetDprev( );
-    break;
-  default:
-    break;
-  } // hctiws
-}
-
-// -------------------------------------------------------------------------
-template< class E >
-cpExtensions::DataStructures::QuadEdgeIterator< E >::
-QuadEdgeIterator( E* e, int op, bool start )
-  : Superclass( e, op, start )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class E >
-cpExtensions::DataStructures::QuadEdgeIterator< E >::
-~QuadEdgeIterator( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class E >
-E* cpExtensions::DataStructures::QuadEdgeIterator< E >::
-operator*( )
-{
-  return( this->m_Iterator );
-}
-
-// -------------------------------------------------------------------------
-template< class E >
-cpExtensions::DataStructures::QuadEdgeConstIterator< E >::
-QuadEdgeConstIterator( const E* e, int op, bool start )
-  : Superclass( e, op, start )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class E >
-cpExtensions::DataStructures::QuadEdgeConstIterator< E >::
-~QuadEdgeConstIterator( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class E >
-const E* cpExtensions::DataStructures::QuadEdgeConstIterator< E >::
-operator*( ) const
-{
-  return( this->m_Iterator );
-}
-
-// -------------------------------------------------------------------------
-template< class E >
-cpExtensions::DataStructures::QuadEdgePointIterator< E >::
-QuadEdgePointIterator( const E* e, int op, bool start )
-  : Superclass( e, op, start )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class E >
-cpExtensions::DataStructures::QuadEdgePointIterator< E >::
-~QuadEdgePointIterator( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class E >
-typename E::TPrimalGeometry&
-cpExtensions::DataStructures::QuadEdgePointIterator< E >::
-operator*( )
-{
-  return( this->m_Iterator->GetOrigin( ) );
-}
-
-// -------------------------------------------------------------------------
-template< class E >
-cpExtensions::DataStructures::QuadEdgePointConstIterator< E >::
-QuadEdgePointConstIterator( const E* e, int op, bool start )
-  : Superclass( e, op, start )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class E >
-cpExtensions::DataStructures::QuadEdgePointConstIterator< E >::
-~QuadEdgePointConstIterator( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class E >
-const typename E::TPrimalGeometry&
-cpExtensions::DataStructures::QuadEdgePointConstIterator< E >::
-operator*( ) const
-{
-  return( this->m_Iterator->GetOrigin( ) );
-}
-
-#endif // __CPEXTENSIONS__DATASTRUCTURES__QUADEDGEITERATORS__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/DataStructures/QuadEdgeMesh.h b/lib/cpExtensions/DataStructures/QuadEdgeMesh.h
deleted file mode 100644 (file)
index 40cdf1f..0000000
+++ /dev/null
@@ -1,285 +0,0 @@
-#ifndef __CPEXTENSIONS__DATASTRUCTURES__QUADEDGEMESH__H__
-#define __CPEXTENSIONS__DATASTRUCTURES__QUADEDGEMESH__H__
-
-#include <set>
-#include <vector>
-
-#include <itkMesh.h>
-#include <cpExtensions/DataStructures/QuadEdgeCell.h>
-#include <cpExtensions/DataStructures/QuadEdge.h>
-
-namespace cpExtensions
-{
-  namespace DataStructures
-  {
-    /**
-     */
-    template< typename P, unsigned int D = 3, typename T = itk::DefaultStaticMeshTraits< P, D, D > >
-    class QuadEdgeMesh
-      : public itk::Mesh< P, D, T >
-    {
-    public:
-      typedef QuadEdgeMesh                    Self;
-      typedef itk::Mesh< P, D, T >            Superclass;
-      typedef itk::SmartPointer< Self >       Pointer;
-      typedef itk::SmartPointer< const Self > ConstPointer;
-
-      /// Types from superclass
-      typedef typename
-      Superclass::BoundaryAssignmentsContainer
-      BoundaryAssignmentsContainer;
-
-      typedef typename
-      Superclass::BoundaryAssignmentsContainerPointer
-      BoundaryAssignmentsContainerPointer;
-
-      typedef typename Superclass::BoundingBoxType       BoundingBoxType;
-      typedef typename Superclass::CellAutoPointer       CellAutoPointer;
-      typedef typename Superclass::CellsContainer        CellsContainer;
-      typedef typename Superclass::CellDataContainer     CellDataContainer;
-      typedef typename Superclass::CellFeatureCount      CellFeatureCount;
-      typedef typename Superclass::CellFeatureIdentifier CellFeatureIdentifier;
-      typedef typename Superclass::CellIdentifier        CellIdentifier;
-      typedef typename Superclass::CellLinksContainer    CellLinksContainer;
-      typedef typename Superclass::CellMultiVisitorType  CellMultiVisitorType;
-      typedef typename Superclass::CellPixelType         CellPixelType;
-      typedef typename Superclass::CellType              CellType;
-      typedef typename Superclass::PointIdentifier       PointIdentifier;
-      typedef typename Superclass::PointsContainer       PointsContainer;
-      typedef typename Superclass::PointType             PointType;
-
-      /// QuadEdge types (primal and dual)
-      typedef QuadEdge< PointIdentifier, CellIdentifier > TPrimalEdge;
-      typedef typename TPrimalEdge::TDual                 TDualEdge;
-      typedef QuadEdgeCell< CellType, TPrimalEdge >       TQuadEdgeCell;
-
-      /// Memory management objects
-      typedef std::set< typename TPrimalEdge::Pointer > CntPrimalEdges;
-      typedef std::set< typename TDualEdge::Pointer >   CntDualEdges;
-      typedef std::vector< TPrimalEdge* > CntOnextRings;
-
-      /// More geometry types
-      typedef typename PointType::VectorType      VectorType;
-      typedef typename VectorType::ValueType      TScalar;
-      typedef std::vector< VectorType >           CntNormals;
-      typedef typename CntNormals::const_iterator NormalsIterator;
-
-    protected:
-      typedef std::vector< TPrimalEdge* > _TEdges;
-
-    public:
-      itkNewMacro( Self );
-      itkTypeMacro( QuadEdgeMesh, itkMesh );
-
-    public:
-      // Edge related methods
-      TPrimalEdge* FindEdge( const PointIdentifier& a ) const;
-      TPrimalEdge* FindEdge(
-        const PointIdentifier& a, const PointIdentifier& b
-        ) const;
-      TPrimalEdge* FindEntryEdge( const CellIdentifier& i ) const;
-
-      /// New geometric methods
-      const CntNormals& GetPointNormalsContainer( ) const;
-      NormalsIterator BeginPointNormals( ) const;
-      NormalsIterator EndPointNormals( ) const;
-      const VectorType& GetPointNormal( const PointIdentifier& id ) const;
-
-      /// itk::DataObject methods overloading
-      virtual bool RequestedRegionIsOutsideOfTheBufferedRegion( );
-
-      /// itk::PointSet methods overloading
-      virtual void SetPoints( PointsContainer* points );
-      virtual void SetPoint( PointIdentifier id , PointType point );
-
-      /// itk::Mesh methods overloading
-      virtual void PassStructure( Self* inputMesh )
-        {
-          std::cout << "PassStructure" << std::endl;
-          std::exit( 1 );
-        }
-
-      virtual void Initialize( );
-      virtual void Graft( const itk::DataObject* data );
-
-      void SetCellLinks( CellLinksContainer* cellLinks )
-        {
-          std::cout << "SetCellLinks" << std::endl;
-          std::exit( 1 );
-        }
-      virtual CellLinksContainer* GetCellLinks( )
-        {
-          std::cout << "GetCellLinks" << std::endl;
-          std::exit( 1 );
-        }
-      virtual const CellLinksContainer* GetCellLinks( ) const
-        {
-          std::cout << "GetCellLinks (const)" << std::endl;
-          std::exit( 1 );
-        }
-      virtual void SetCells( CellsContainer* cells );
-      virtual void SetCellData( CellDataContainer* data );
-      virtual CellDataContainer* GetCellData( )
-        {
-          std::cout << "GetCellData" << std::endl;
-          std::exit( 1 );
-        }
-      virtual const CellDataContainer* GetCellData( ) const
-        {
-          std::cout << "GetCellData (const)" << std::endl;
-          std::exit( 1 );
-        }
-
-#if !defined( CABLE_CONFIGURATION )
-      virtual void SetBoundaryAssignments(
-        int dimension, BoundaryAssignmentsContainer* container
-        )
-        {
-          std::cout << "SetBoundaryAssignments" << std::endl;
-          std::exit( 1 );
-        }
-      virtual BoundaryAssignmentsContainerPointer
-      GetBoundaryAssignments( int dimension )
-        {
-          std::cout << "GetBoundaryAssignments" << std::endl;
-          std::exit( 1 );
-        }
-      virtual const BoundaryAssignmentsContainerPointer
-      GetBoundaryAssignments( int dimension ) const
-        {
-          std::cout << "GetBoundaryAssignments (const)" << std::endl;
-          std::exit( 1 );
-        }
-#endif
-
-      virtual void SetCell( CellIdentifier id, CellAutoPointer& ptr );
-      virtual void SetCellData( CellIdentifier id, CellPixelType data );
-      virtual bool GetCellData( CellIdentifier id, CellPixelType* data ) const
-        {
-          std::cout << "GetCellData" << std::endl;
-          std::exit( 1 );
-        }
-      virtual void SetBoundaryAssignment(
-        int dimension, CellIdentifier cellId,
-        CellFeatureIdentifier featureId,
-        CellIdentifier boundaryId
-        )
-        {
-          std::cout << "SetBoundaryAssignment" << std::endl;
-          std::exit( 1 );
-        }
-      virtual bool GetBoundaryAssignment(
-        int dimension, CellIdentifier cellId,
-        CellFeatureIdentifier featureId,
-        CellIdentifier* boundaryId
-        ) const
-        {
-          std::cout << "GetBoundaryAssignment" << std::endl;
-          std::exit( 1 );
-        }
-      virtual bool RemoveBoundaryAssignment(
-        int dimension, CellIdentifier cellId,
-        CellFeatureIdentifier featureId
-        )
-        {
-          std::cout << "RemoveBoundaryAssignment" << std::endl;
-          std::exit( 1 );
-        }
-      virtual CellFeatureCount GetNumberOfCellBoundaryFeatures(
-        int dimension,
-        CellIdentifier id
-        ) const
-        {
-          std::cout << "GetNumberOfCellBoundaryFeatures" << std::endl;
-          std::exit( 1 );
-        }
-      virtual bool GetCellBoundaryFeature(
-        int dimension, CellIdentifier id,
-        CellFeatureIdentifier fid,
-        CellAutoPointer& ptr
-        ) const
-        {
-          std::cout << "GetCellBoundaryFeature" << std::endl;
-          std::exit( 1 );
-        }
-      virtual CellIdentifier GetCellBoundaryFeatureNeighbors(
-        int dimension,
-        CellIdentifier id,
-        CellFeatureIdentifier fid,
-        std::set< CellIdentifier >* cellSet )
-        {
-          std::cout << "GetCellBoundaryFeatureNeighbors" << std::endl;
-          std::exit( 1 );
-        }
-      virtual CellIdentifier GetCellNeighbors(
-        CellIdentifier cellId,
-        std::set< CellIdentifier >* cellSet
-        )
-        {
-          std::cout << "GetCellNeighbors" << std::endl;
-          std::exit( 1 );
-        }
-      virtual bool GetAssignedCellBoundaryIfOneExists(
-        int dimension, CellIdentifier id,
-        CellFeatureIdentifier fid,
-        CellAutoPointer& ptr
-        ) const
-        {
-          std::cout << "GetAssignedCellBoundaryIfOneExists" << std::endl;
-          std::exit( 1 );
-        }
-      virtual void BuildCellLinks( ) const;
-
-      virtual void Accept( CellMultiVisitorType* mv ) const
-        {
-          std::cout << "Accept" << std::endl;
-          std::exit( 1 );
-        }
-
-    protected:
-      QuadEdgeMesh( );
-      virtual ~QuadEdgeMesh( );
-
-      virtual void ReleaseCellsMemory( )
-        {
-          std::cout << "ReleaseCellsMemory" << std::endl;
-          std::exit( 1 );
-        }
-
-      inline bool _CheckPoints( const CellAutoPointer& ptr ) const;
-      inline void _DeletePoint( const PointIdentifier& pId );
-      inline TPrimalEdge* _CreateQuadEdge(
-        const PointIdentifier& a, const PointIdentifier& b
-        );
-      inline void _DeleteEdge( TPrimalEdge* edge );
-      inline void _DeleteFace( const CellIdentifier& f );
-      inline void _ConstructEdges(
-        _TEdges& edges, const CellAutoPointer& ptr
-        );
-      virtual VectorType _ComputePointNormal( const TPrimalEdge* e ) const;
-      inline void _ReleaseQuadEdgeObjects( );
-
-    private:
-      QuadEdgeMesh( const Self& );   // Not implemented
-      void operator=( const Self& ); // Not implemented
-
-    protected:
-      CntPrimalEdges m_PrimalEdges;
-      CntDualEdges   m_DualEdges;
-
-      CntOnextRings m_OnextRings;
-
-      CntNormals m_PointNormals;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#ifndef ITK_MANUAL_INSTANTIATION
-#include <cpExtensions/DataStructures/QuadEdgeMesh.hxx>
-#endif // ITK_MANUAL_INSTANTIATION
-
-#endif // __CPEXTENSIONS__DATASTRUCTURES__QUADEDGEMESH__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/DataStructures/QuadEdgeMesh.hxx b/lib/cpExtensions/DataStructures/QuadEdgeMesh.hxx
deleted file mode 100644 (file)
index e4c5eff..0000000
+++ /dev/null
@@ -1,527 +0,0 @@
-#ifndef __CPEXTENSIONS__DATASTRUCTURES__QUADEDGEMESH__HXX__
-#define __CPEXTENSIONS__DATASTRUCTURES__QUADEDGEMESH__HXX__
-
-// -------------------------------------------------------------------------
-template< typename P, unsigned int D, typename T >
-typename cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-TPrimalEdge* cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-FindEdge( const PointIdentifier& a ) const
-{
-  if( a < this->m_OnextRings.size( ) )
-    return( this->m_OnextRings[ a ] );
-  else
-    return( NULL );
-}
-
-// -------------------------------------------------------------------------
-template< typename P, unsigned int D, typename T >
-typename cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-TPrimalEdge* cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-FindEdge( const PointIdentifier& a, const PointIdentifier& b ) const
-{
-  TPrimalEdge* found = NULL;
-  TPrimalEdge* e = this->FindEdge( a );
-  if( e != NULL )
-  {
-    typename TPrimalEdge::Iterator eIt = e->BeginOnext( );
-    for( ; eIt != e->EndOnext( ) && found == NULL; eIt++ )
-      if( ( *eIt )->GetDestination( ) == b )
-        found = *eIt;
-
-  } // fi
-  return( found );
-}
-
-// -------------------------------------------------------------------------
-template< typename P, unsigned int D, typename T >
-typename cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-TPrimalEdge* cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-FindEntryEdge( const CellIdentifier& i ) const
-{
-  if( i < this->GetNumberOfCells( ) )
-  {
-    CellAutoPointer c;
-    this->GetCell( i, c );
-
-    TQuadEdgeCell* ec = dynamic_cast< TQuadEdgeCell* >( c.GetPointer( ) );
-    if( ec != NULL )
-      return( ec->GetEntryPrimalEdge( ) );
-    else
-      return( NULL );
-  }
-  else
-    return( NULL );
-}
-
-// -------------------------------------------------------------------------
-template< typename P, unsigned int D, typename T >
-const typename cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-CntNormals& cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-GetPointNormalsContainer( ) const
-{
-  return( this->m_PointNormals );
-}
-
-// -------------------------------------------------------------------------
-template< typename P, unsigned int D, typename T >
-typename cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-NormalsIterator cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-BeginPointNormals( ) const
-{
-  return( this->m_PointNormals.begin( ) );
-}
-
-// -------------------------------------------------------------------------
-template< typename P, unsigned int D, typename T >
-typename cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-NormalsIterator cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-EndPointNormals( ) const
-{
-  return( this->m_PointNormals.end( ) );
-}
-
-// -------------------------------------------------------------------------
-template< typename P, unsigned int D, typename T >
-const typename cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-VectorType& cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-GetPointNormal( const PointIdentifier& id ) const
-{
-  static const VectorType zero( TScalar( 0 ) );
-  if( id < this->m_PointNormals.size( ) )
-    return( this->m_PointNormals[ id ] );
-  else
-    return( zero );
-}
-
-// -------------------------------------------------------------------------
-template< typename P, unsigned int D, typename T >
-bool cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-RequestedRegionIsOutsideOfTheBufferedRegion( )
-{
-  // Mesh regions don't have meaning with QuadEdges, this is important
-  // in order to guarantee correct pipeline execution
-  return( false );
-}
-
-// -------------------------------------------------------------------------
-template< typename P, unsigned int D, typename T >
-void cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-SetPoints( PointsContainer* points )
-{
-  this->_ReleaseQuadEdgeObjects( );
-  this->m_OnextRings.resize( points->Size( ), NULL );
-  this->m_PointNormals.resize(
-    points->Size( ), VectorType( TScalar( 0 ) )
-    );
-  this->Superclass::SetPoints( points );
-}
-
-// -------------------------------------------------------------------------
-template< typename P, unsigned int D, typename T >
-void cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-SetPoint( PointIdentifier id , PointType point )
-{
-  // If the point is brand new, add some non-existent edges and normals
-  unsigned long N = this->GetNumberOfPoints( );
-  N = ( N < id + 1 )? id + 1: N;
-  if( this->m_OnextRings.size( ) < N )
-  {
-    this->m_OnextRings.resize( N, NULL );
-    this->m_PointNormals.resize( N, VectorType( TScalar( 0 ) ) );
-
-  } // fi
-
-  // Ok pass it to itk
-  this->Superclass::SetPoint( id, point );
-}
-
-// -------------------------------------------------------------------------
-template< typename P, unsigned int D, typename T >
-void cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-Initialize( )
-{
-  this->Superclass::Initialize( );
-  this->_ReleaseQuadEdgeObjects( );
-}
-
-// -------------------------------------------------------------------------
-template< typename P, unsigned int D, typename T >
-void cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-Graft( const itk::DataObject* data )
-{
-  this->Superclass::Graft( data );
-  const Self* mesh = dynamic_cast< const Self* >( data );
-  if( mesh != NULL )
-  {
-    this->_ReleaseQuadEdgeObjects( );
-    this->m_PrimalEdges    = mesh->m_PrimalEdges;
-    this->m_DualEdges      = mesh->m_DualEdges;
-    this->m_OnextRings     = mesh->m_OnextRings;
-    this->m_PointNormals   = mesh->m_PointNormals;
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-template< typename P, unsigned int D, typename T >
-void cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-SetCells( CellsContainer* cells )
-{
-  // Clear cells
-  if( this->GetCells( ) != NULL )
-    this->SetCells( CellsContainer::New( ) );
-  this->_ReleaseQuadEdgeObjects( );
-  this->m_OnextRings.resize( this->GetNumberOfPoints( ), NULL );
-
-  // Copy cells
-  if( cells != NULL )
-  {
-    for( unsigned long cId = 0; cId < cells->Size( ); ++cId )
-    {
-      CellAutoPointer cell( cells->GetElement( cId ), false );
-      this->SetCell( cId, cell );
-
-    } // rof
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-template< typename P, unsigned int D, typename T >
-void cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-SetCellData( CellDataContainer* data )
-{
-  /* TODO
-     No need for CellData in initial application:
-     how should this be overridden?
-  */
-}
-
-// -------------------------------------------------------------------------
-template< typename P, unsigned int D, typename T >
-void cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-SetCell( CellIdentifier id, CellAutoPointer& ptr )
-{
-  // Overwrite an existing cell?
-  if( id < this->GetNumberOfCells( ) )
-  {
-    itkExceptionMacro(
-      << "TODO: What do I do here? Trying to overwrite a cell!"
-      );
-
-  } // fi
-
-  // Do not allow to add vertices or edges as cells for the sake of
-  // correct mesh construction
-  if( ptr->GetNumberOfPoints( ) < 3 )
-  {
-    itkExceptionMacro(
-      << "Face have less than 3 points ("
-      << ptr->GetNumberOfPoints( )
-      << ")"
-      );
-
-  } // fi
-
-  // Fill up geometrical prerrequisites
-  if( !( this->_CheckPoints( ptr ) ) )
-  {
-    itkExceptionMacro( << "Points missing in the mesh" );
-
-  } // fi
-
-  // Get (or create) individual edges
-  _TEdges edges;
-  this->_ConstructEdges( edges, ptr );
-
-  // Configure new face's geometry
-  edges[ 0 ]->SetLnextRingGeometry( id );
-
-  // Update normals
-  typename _TEdges::const_iterator eIt = edges.begin( );
-  for( ; eIt != edges.end( ); ++eIt )
-    this->m_PointNormals[ ( *eIt )->GetOrigin( ) ] =
-      this->_ComputePointNormal( *eIt );
-
-  // Save cell
-  TQuadEdgeCell* qcell = new TQuadEdgeCell( edges[ 0 ] );
-  CellAutoPointer cell;
-  cell.TakeOwnership( qcell );
-  this->Superclass::SetCell( id, cell );
-}
-
-// -------------------------------------------------------------------------
-template< typename P, unsigned int D, typename T >
-void cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-SetCellData( CellIdentifier id, CellPixelType data )
-{
-  /* TODO
-     No need for CellData in initial application:
-     how should this be overridden?
-  */
-}
-
-// -------------------------------------------------------------------------
-template< typename P, unsigned int D, typename T >
-void cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-BuildCellLinks( ) const
-{
-  // This is no longer required when using QuadEdges
-}
-
-// -------------------------------------------------------------------------
-template< typename P, unsigned int D, typename T >
-cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-QuadEdgeMesh( )
-  : Superclass( )
-{
-  this->_ReleaseQuadEdgeObjects( );
-}
-
-// -------------------------------------------------------------------------
-template< typename P, unsigned int D, typename T >
-cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-~QuadEdgeMesh( )
-{
-  this->_ReleaseQuadEdgeObjects( );
-}
-
-// -------------------------------------------------------------------------
-template< typename P, unsigned int D, typename T >
-bool cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-_CheckPoints( const CellAutoPointer& ptr ) const
-{
-  const typename Superclass::PointsContainer* pnts = this->GetPoints( );
-
-  bool all_exist = true;
-  typename CellType::PointIdConstIterator pIt = ptr->PointIdsBegin( );
-  for( ; pIt != ptr->PointIdsEnd( ) && all_exist; ++pIt )
-    all_exist &= pnts->IndexExists( *pIt );
-  return( all_exist );
-}
-
-// -------------------------------------------------------------------------
-template< typename P, unsigned int D, typename T >
-void cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-_DeletePoint( const PointIdentifier& pId )
-{
-  PointIdentifier lastId = this->GetNumberOfPoints( ) - 1;
-  if( lastId < pId )
-    return;
-
-  // Modify point container
-  PointType to_delete = this->GetPoint( pId );
-  PointType last = this->GetPoint( lastId );
-  this->Superclass::SetPoint( pId, last );
-
-  // Modify Onext ring and normals containers
-  this->m_OnextRings[ pId ] = this->m_OnextRings[ lastId ];
-  this->m_PointNormals[ pId ] = this->m_PointNormals[ lastId ];
-  this->m_OnextRings.pop_back( );
-  this->m_PointNormals.pop_back( );
-
-  // Update origins
-  typename TPrimalEdge::Iterator oIt =
-    this->m_OnextRings[ pId ]->BeginOnext( );
-  for( ; oIt != this->m_OnextRings[ pId ]->EndOnext( ); ++oIt )
-    ( *oIt )->SetOrigin( pId );
-
-  // Erase the point
-  this->GetPoints( )->CastToSTLContainer( ).pop_back( );
-}
-
-// -------------------------------------------------------------------------
-template< typename P, unsigned int D, typename T >
-typename cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-TPrimalEdge* cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-_CreateQuadEdge( const PointIdentifier& a, const PointIdentifier& b )
-{
-  // Create brand new object
-  typename TPrimalEdge::Pointer edge = TPrimalEdge::New( );
-  edge->CreateRings( );
-
-  // Configure geometry
-  edge->SetOrigin( a );
-  edge->SetDestination( b );
-
-  // Keep trace of all reserved memory
-  this->m_PrimalEdges.insert( edge );
-  this->m_PrimalEdges.insert( edge->GetSym( ) );
-  this->m_DualEdges.insert( edge->GetRot( ) );
-  this->m_DualEdges.insert( edge->GetInvRot( ) );
-
-  return( edge );
-}
-
-// -------------------------------------------------------------------------
-template< typename P, unsigned int D, typename T >
-void cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-_DeleteEdge( TPrimalEdge* edge )
-{
-  this->m_DualEdges.erase( edge->GetInvRot( ) );
-  this->m_PrimalEdges.erase( edge->GetSym( ) );
-  this->m_DualEdges.erase( edge->GetRot( ) );
-  this->m_PrimalEdges.erase( edge );
-}
-
-// -------------------------------------------------------------------------
-template< typename P, unsigned int D, typename T >
-void cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-_DeleteFace( const CellIdentifier& f )
-{
-  unsigned long cellId = this->GetNumberOfCells( ) - 1;
-  if( cellId < f )
-    return;
-
-  // Exchange desired face with last one
-  CellAutoPointer to_delete, last;
-  this->GetCell( f, to_delete );
-  this->GetCell( cellId, last );
-  this->Superclass::SetCell( f, last );
-  this->Superclass::SetCell( cellId, to_delete );
-
-  // This will delete cell's memory when to_delete is no longer used
-  to_delete.TakeOwnership( );
-
-  // Squeeze container
-  this->GetCells( )->CastToSTLContainer( ).pop_back( );
-}
-
-// -------------------------------------------------------------------------
-template< typename P, unsigned int D, typename T >
-void cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-_ConstructEdges( _TEdges& edges, const CellAutoPointer& ptr )
-{
-  edges.clear( );
-  typename CellType::PointIdConstIterator pIt = ptr->PointIdsBegin( );
-  for( pIt = ptr->PointIdsBegin( ); pIt != ptr->PointIdsEnd( ); ++pIt )
-  {
-    typename CellType::PointIdConstIterator nIt = pIt;
-    ++nIt;
-    if( nIt == ptr->PointIdsEnd( ) )
-      nIt = ptr->PointIdsBegin( );
-
-    TPrimalEdge* edge = this->FindEdge( *pIt, *nIt );
-    if( edge == NULL )
-    {
-      edge = this->_CreateQuadEdge( *pIt, *nIt );
-      if( this->m_OnextRings[ *pIt ] != NULL )
-      {
-        if( this->m_OnextRings[ *pIt ]->IsOriginInternal( ) )
-        {
-          itkExceptionMacro(
-            << "Edge ["
-            << *pIt << ", " << *nIt << "] is already internal."
-            );
-
-        } // fi
-
-        // Put edge in Onext ring
-        typename TPrimalEdge::Iterator eIt =
-          this->m_OnextRings[ *pIt ]->BeginOnext( );
-        while( eIt != this->m_OnextRings[ *pIt ]->EndOnext( ) )
-        {
-          if( !( ( *eIt )->IsLeftSet( ) ) )
-          {
-            TPrimalEdge::Splice( *eIt, edge );
-            eIt = this->m_OnextRings[ *pIt ]->EndOnext( );
-          }
-          else
-            ++eIt;
-
-        } // elihw
-      }
-      else
-        this->m_OnextRings[ *pIt ] = edge;
-    }
-    else
-    {
-      if( edge->IsLeftSet( ) )
-      {
-        itkExceptionMacro(
-          << "Edge ["
-          << edge->GetOrigin( ) << ", "
-          << edge->GetDestination( ) << "] already have a left face ("
-          << edge->GetLeft( )
-          << "). Face already exits (at least in part)."
-          );
-
-      } // fi
-
-    } // fi
-    edges.push_back( edge );
-
-  } // rof
-
-  // Reorder Onext rings
-  typename _TEdges::iterator ecIt;
-  for( ecIt = edges.begin( ); ecIt != edges.end( ); ++ecIt )
-  {
-    TPrimalEdge* e = *ecIt;
-    TPrimalEdge* eOprev;
-    if( ecIt != edges.begin( ) )
-    {
-      typename _TEdges::iterator eOprevIt = ecIt;
-      --eOprevIt;
-      eOprev = ( *eOprevIt )->GetSym( );
-    }
-    else
-      eOprev = edges.back( )->GetSym( );
-    TPrimalEdge::ReorderOnextRing( e, eOprev );
-
-  } // rof
-}
-
-// -------------------------------------------------------------------------
-template< typename P, unsigned int D, typename T >
-typename cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-VectorType cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-_ComputePointNormal( const TPrimalEdge* e ) const
-{
-  VectorType n( TScalar( 0 ) );
-  if( Superclass::PointDimension == 3 )
-  {
-    PointType p0 = this->GetPoint( e->GetOrigin( ) );
-    typename TPrimalEdge::ConstIterator eIt = e->BeginOnext( );
-    unsigned int count = 0;
-    for( ; eIt != e->EndOnext( ); eIt++ )
-    {
-      if( ( *eIt )->IsLeftSet( ) )
-      {
-        typename TPrimalEdge::ConstIterator nIt = eIt;
-        nIt++;
-        if( nIt == e->EndOnext( ) )
-          nIt = e->BeginOnext( );
-
-        VectorType pe = this->GetPoint( ( *eIt )->GetDestination( ) ) - p0;
-        VectorType pn = this->GetPoint( ( *nIt )->GetDestination( ) ) - p0;
-        n[ 0 ] += ( pe[ 1 ] * pn[ 2 ] ) - ( pe[ 2 ] * pn[ 1 ] );
-        n[ 1 ] += ( pe[ 2 ] * pn[ 0 ] ) - ( pe[ 0 ] * pn[ 2 ] );
-        n[ 2 ] += ( pe[ 0 ] * pn[ 1 ] ) - ( pe[ 1 ] * pn[ 0 ] );
-        count++;
-
-      } // fi
-
-    } // rof
-    TScalar nn = n.GetNorm( );
-    if( nn > TScalar( 0 ) && count > 0 )
-      n /= nn * TScalar( count );
-
-  } // fi
-  return( n );
-}
-
-// -------------------------------------------------------------------------
-template< typename P, unsigned int D, typename T >
-void cpExtensions::DataStructures::QuadEdgeMesh< P, D, T >::
-_ReleaseQuadEdgeObjects( )
-{
-  this->m_PrimalEdges.clear( );
-  this->m_OnextRings.clear( );
-  this->m_DualEdges.clear( );
-  this->m_PointNormals.clear( );
-}
-
-#endif // __CPEXTENSIONS__DATASTRUCTURES__QUADEDGEMESH__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/DataStructures/VectorValuesContainer.h b/lib/cpExtensions/DataStructures/VectorValuesContainer.h
deleted file mode 100644 (file)
index eea4e40..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-#ifndef __CPEXTENSIONS__DATASTRUCTURES__VECTORVALUESCONTAINER__H__
-#define __CPEXTENSIONS__DATASTRUCTURES__VECTORVALUESCONTAINER__H__
-
-#include <vector>
-#include <itkSimpleDataObjectDecorator.h>
-#include <itkSmartPointer.h>
-
-namespace cpExtensions
-{
-  namespace DataStructures
-  {
-    /**
-     */
-    template< class T >
-    class VectorValuesContainer
-      : public itk::SimpleDataObjectDecorator< std::vector< T > >
-    {
-    public:
-      typedef std::vector< T >                             TDecorated;
-      typedef VectorValuesContainer                        Self;
-      typedef itk::SimpleDataObjectDecorator< TDecorated > Superclass;
-      typedef itk::SmartPointer< Self >                    Pointer;
-      typedef itk::SmartPointer< const Self >              ConstPointer;
-
-      typedef T TValue;
-      typedef typename TDecorated::iterator          Iterator;
-      typedef typename TDecorated::const_iterator    ConstIterator;
-
-    public:
-      itkNewMacro( Self );
-      itkTypeMacro( VectorValuesContainer, itkSimpleDataObjectDecorator );
-
-    public:
-      void PushBack( const T& v )
-        { this->Get( ).push_back( v ); this->Modified( ); }
-      void PopBack( const T& v )
-        { this->Get( ).pop_back( ); this->Modified( ); }
-      Iterator Begin( )
-        { return( this->Get( ).begin( ) ); }
-      Iterator End( )
-        { return( this->Get( ).end( ) ); }
-      ConstIterator Begin( ) const
-        { return( this->Get( ).begin( ) ); }
-      ConstIterator End( ) const
-        { return( this->Get( ).end( ) ); }
-
-    protected:
-      VectorValuesContainer( )
-        : Superclass( )
-        { }
-      virtual ~VectorValuesContainer( )
-        { }
-
-    private:
-      // Purposely not implemented
-      VectorValuesContainer( const Self& other );
-      Self& operator=( const Self& other );
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#endif // __CPEXTENSIONS__DATASTRUCTURES__VECTORVALUESCONTAINER__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/IO/MementoState.cxx b/lib/cpExtensions/IO/MementoState.cxx
deleted file mode 100644 (file)
index 2af5abf..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
-#include <cpExtensions/IO/MementoState.h>
-
-
-#include <vtkMetaImageReader.h>
-#include <vtkMetaImageWriter.h>
-#include <future>
-
-
-
-
-
-// -------------------------------------------------------------------------
-cpExtensions::IO::MementoState::MementoState()
-{
-  m_maxId = m_Id = 0;
-  m_stateIt = m_stateReady.begin();
-};
-
-// -------------------------------------------------------------------------
-bool
-cpExtensions::IO::MementoState::SetToMemento(cpPlugins::Interface::Image* _img)
-{
-  char base[] = "state";
-  std::ostringstream oss;
-  this->m_Id;
-  oss << this->m_Id;
-  std::string str = oss.str();
-  auto complement = str.c_str();
-
-  std::string fileName(base);
-  fileName.append(complement);
-  fileName.append(".mhd");
-
-  std::string fileNameRaw(base);
-  fileNameRaw.append(complement);
-  fileNameRaw.append(".raw");
-  //save(fileName, fileNameRaw, _img);
-  m_stateReady.insert(m_stateReady.begin() + m_Id, false);
-  std::async(std::launch::async, &MementoState::Save, this, fileName, fileNameRaw, _img);
-
-  m_stateReady[m_Id] = true;
-  m_Id++;
-
-  if (m_Id > m_maxId)
-  {
-    m_maxId = m_Id;
-  }
-
-  return true;
-}
-
-
-// -------------------------------------------------------------------------
-vtkSmartPointer<vtkImageData>
-cpExtensions::IO::MementoState::GetFromMemento(long id)
-{
-  if (id > m_maxId)
-  {
-    return nullptr;
-  }
-
-  char base[] = "state";
-  std::ostringstream oss;
-  oss << id;
-  std::string str = oss.str();
-  auto complement = str.c_str();
-
-  std::string fileName(base);
-  fileName.append(complement);
-  fileName.append(".mhd");
-  return Load(fileName);
-  //std::future<vtkSmartPointer<vtkImageData>> result(std::async(std::launch::async, &MementoState::Load, this, fileName));
-  //return result.get();
-}
-
-// -------------------------------------------------------------------------
-vtkSmartPointer<vtkImageData>
-cpExtensions::IO::MementoState::MementoUndo()
-{
-  char base[] = "state";
-  std::ostringstream oss;
-  oss << --this->m_Id;
-  std::string str = oss.str();
-  auto complement = str.c_str();
-
-  std::string fileName(base);
-  fileName.append(complement);
-  fileName.append(".mhd");
-
-  if (m_stateReady.at(this->m_Id))
-  {
-    return Load(fileName);
-  }
-
-  return nullptr;
-}
-
-
-vtkSmartPointer<vtkImageData>
-cpExtensions::IO::MementoState::MementoRedo()
-{
-  char base[] = "state";
-  std::ostringstream oss;
-  oss << ++this->m_Id;
-  std::string str = oss.str();
-  auto complement = str.c_str();
-
-  std::string fileName(base);
-  fileName.append(complement);
-  fileName.append(".mhd");
-
-  if (m_stateReady.at(this->m_Id) &&
-    this->m_Id <= this->m_maxId)
-  {
-    return Load(fileName);
-  }
-  return nullptr;
-}
-
-// -------------------------------------------------------------------------
-void
-cpExtensions::IO::MementoState::
-Save(const std::string& filename, const std::string& filenameRaw, cpPlugins::Interface::Image* img) {
-
-  vtkSmartPointer<vtkMetaImageWriter> writer =
-    vtkSmartPointer<vtkMetaImageWriter>::New();
-  writer->SetInputData(img->GetVTK< vtkImageData >());
-  writer->SetFileName(filename.c_str());
-  writer->SetRAWFileName(filenameRaw.c_str());
-  writer->Write();
-}
-
-// -------------------------------------------------------------------------
-vtkSmartPointer<vtkImageData>
-cpExtensions::IO::MementoState::Load(const std::string& filename) {
-
-  vtkSmartPointer<vtkMetaImageReader> reader =
-    vtkSmartPointer<vtkMetaImageReader>::New();
-  reader->SetFileName(filename.c_str());
-
-  reader->Update();
-  return reader->GetOutput();
-
-}
-*/
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/IO/MementoState.h b/lib/cpExtensions/IO/MementoState.h
deleted file mode 100644 (file)
index d7430d3..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-#ifndef __CPEXTENSIONS__IO__MEMENTOSTATE__H__
-#define __CPEXTENSIONS__IO__MEMENTOSTATE__H__
-
-/*
-#include <cpExtensions/cpExtensions_Export.h>
-
-
-#include <vector>
-
-
-// vtk stuff
-#include <vtkSmartPointer.h>
-#include <cpExtensions/Visualization/MPRObjects.h>
-
-// Plugins interface
-#include <cpPlugins/Interface/Interface.h>
-#include <cpPlugins/Interface/ProcessObject.h>
-#include <cpPlugins/Interface/Image.h>
-#include <cpPlugins/Interface/ImplicitFunction.h>
-#include <cpPlugins/Interface/Mesh.h>
-
-#include <vtkMetaImageReader.h>
-#include <vtkCommand.h>
-
-namespace cpExtensions
-{
-  namespace IO
-  {
-    class cpExtensions_EXPORT MementoState
-    {
-    private:
-      long m_Id;
-      long m_maxId;
-      std::vector<bool> m_stateReady;
-      std::vector<bool>::iterator m_stateIt;
-    public:
-
-      MementoState();
-      bool SetToMemento(cpPlugins::Interface::Image* _img);
-      vtkSmartPointer<vtkImageData> MementoUndo();
-      vtkSmartPointer<vtkImageData> MementoRedo();
-      vtkSmartPointer<vtkImageData> GetFromMemento(long id);
-    private:
-      void Save(const std::string& filename, const std::string& filenameRaw, cpPlugins::Interface::Image* img);
-      vtkSmartPointer<vtkImageData> Load(const std::string& filename);
-
-    };
-  }
-}
-*/
-//==========================================================================
-
-// -------------------------------------------------------------------------
-/**
- */
-
-
-
-
-
-#endif // __CPEXTENSIONS__IO__MEMENTOSTATE__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/IO/MeshReader.h b/lib/cpExtensions/IO/MeshReader.h
deleted file mode 100644 (file)
index af16293..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-#ifndef __CPEXTENSIONS__IO__MESHREADER__H__
-#define __CPEXTENSIONS__IO__MESHREADER__H__
-
-#include <string>
-#include <itkMeshSource.h>
-
-namespace cpExtensions
-{
-  namespace IO
-  {
-    /**
-     */
-    template< typename M >
-    class MeshReader
-      : public itk::MeshSource< M >
-    {
-    public:
-      typedef MeshReader                      Self;
-      typedef itk::MeshSource< M >            Superclass;
-      typedef itk::SmartPointer< Self >       Pointer;
-      typedef itk::SmartPointer< const Self > ConstPointer;
-
-      typedef M MeshType;
-
-    public:
-      itkNewMacro( Self );
-      itkTypeMacro( MeshReader, itkMeshSource );
-
-      itkSetStringMacro( FileName );
-      itkGetStringMacro( FileName );
-
-    public:
-      virtual itk::ModifiedTimeType GetMTime( ) const;
-
-    protected:
-      MeshReader( );
-      virtual ~MeshReader( );
-
-      virtual void GenerateData( );
-
-      template< class R >
-      void _Read( );
-
-    private:
-      // Purposely not implemented
-      MeshReader( const Self& );
-      Self& operator=( const Self & );
-
-    protected:
-      typename Superclass::Pointer m_Reader;
-      std::string m_FileName;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#ifndef ITK_MANUAL_INSTANTIATION
-#include <cpExtensions/IO/MeshReader.hxx>
-#endif // ITK_MANUAL_INSTANTIATION
-
-#endif // __CPEXTENSIONS__IO__MESHREADER__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/IO/MeshReader.hxx b/lib/cpExtensions/IO/MeshReader.hxx
deleted file mode 100644 (file)
index 8146e6e..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-#ifndef __CPEXTENSIONS__IO__MESHREADER__HXX__
-#define __CPEXTENSIONS__IO__MESHREADER__HXX__
-
-#include <algorithm>
-#include <cpExtensions/IO/WaveFrontOBJReader.h>
-#include <itkVTKPolyDataReader.h>
-
-// -------------------------------------------------------------------------
-template< typename M >
-itk::ModifiedTimeType cpExtensions::IO::MeshReader< M >::
-GetMTime( ) const
-{
-  itk::ModifiedTimeType mtime = this->Superclass::GetMTime( );
-  if( this->m_Reader.IsNotNull( ) )
-  {
-    itk::ModifiedTimeType rtime = this->m_Reader->GetMTime( );
-    mtime = ( rtime < mtime )? rtime: mtime;
-
-  } // fi
-  return( mtime );
-}
-
-// -------------------------------------------------------------------------
-template< typename M >
-cpExtensions::IO::MeshReader< M >::
-MeshReader( )
-  : Superclass( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< typename M >
-cpExtensions::IO::MeshReader< M >::
-~MeshReader( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< typename M >
-void cpExtensions::IO::MeshReader< M >::
-GenerateData( )
-{
-  std::string fn = this->m_FileName;
-  std::transform( fn.begin( ), fn.end( ), fn.begin( ), ::tolower );
-  if( fn.rfind( ".vtk" ) != std::string::npos )
-    this->_Read< itk::VTKPolyDataReader< M > >( );
-  else if( fn.rfind( ".obj" ) != std::string::npos )
-    this->_Read< cpExtensions::IO::WaveFrontOBJReader< M > >( );
-}
-
-// -------------------------------------------------------------------------
-template< typename M >
-template< class R >
-void cpExtensions::IO::MeshReader< M >::
-_Read( )
-{
-  typename R::Pointer reader = NULL;
-  if( this->m_Reader.IsNotNull( ) )
-  {
-    reader = dynamic_cast< R* >( this->m_Reader.GetPointer( ) );
-    if( reader.IsNotNull( ) )
-    {
-      if( reader->GetFileName( ) == this->m_FileName )
-        reader = NULL;
-    }
-    else
-    {
-      reader = R::New( );
-      this->m_Reader = reader;
-
-    } // fi
-  }
-  else
-  {
-    reader = R::New( );
-    this->m_Reader = reader;
-
-  } // fi
-
-  if( reader.IsNotNull( ) )
-  {
-    reader->SetFileName( this->m_FileName );
-    reader->GraftOutput( this->GetOutput( ) );
-    reader->Update( );
-    this->GraftOutput( reader->GetOutput( ) );
-
-  } // fi
-}
-
-#endif // __CPEXTENSIONS__IO__MESHREADER__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/IO/WaveFrontOBJReader.h b/lib/cpExtensions/IO/WaveFrontOBJReader.h
deleted file mode 100644 (file)
index 4cd7446..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-#ifndef __CPEXTENSIONS__IO__WAVEFRONTOBJREADER__H__
-#define __CPEXTENSIONS__IO__WAVEFRONTOBJREADER__H__
-
-#include <string>
-#include <itkIntTypes.h>
-#include <itkMesh.h>
-#include <itkMeshSource.h>
-#include <itkPolygonCell.h>
-
-namespace cpExtensions
-{
-  namespace IO
-  {
-    /**
-     * \class WaveFrontOBJReader
-     * \brief
-     * Reads a wavefront OBJ file and create an itkMesh.
-     *
-     * Caveat1: itkWaveFrontOBJReader will read only vertices and faces.
-     *          Normal, parameters and textures vectors are ignored.
-     *
-     */
-    template< typename M >
-    class WaveFrontOBJReader
-      : public itk::MeshSource< M >
-    {
-    public:
-      typedef WaveFrontOBJReader              Self;
-      typedef itk::MeshSource< M >            Superclass;
-      typedef itk::SmartPointer< Self >       Pointer;
-      typedef itk::SmartPointer< const Self > ConstPointer;
-
-      typedef M                                    MeshType;
-      typedef typename M::MeshTraits               MeshTraits;
-      typedef typename M::PointType                PointType;
-      typedef typename MeshTraits::PixelType       PixelType;
-      typedef typename M::Pointer                  MeshPointer;
-      typedef typename M::CellTraits               CellTraits;
-      typedef typename M::CellIdentifier           CellIdentifier;
-      typedef typename M::CellType                 CellType;
-      typedef typename M::CellAutoPointer          CellAutoPointer;
-      typedef typename M::PointIdentifier          PointIdentifier;
-      typedef typename CellTraits::PointIdIterator PointIdIterator;
-      typedef typename M::PointsContainerPointer   PointsContainerPointer;
-      typedef typename M::PointsContainer          PointsContainer;
-
-      typedef itk::PolygonCell< CellType > TPolygonCell;
-
-    public:
-      itkNewMacro( Self );
-      itkTypeMacro( WaveFrontOBJReader, itkMeshSource );
-
-      itkSetStringMacro( FileName );
-      itkGetStringMacro( FileName );
-
-    protected:
-      WaveFrontOBJReader( );
-      virtual ~WaveFrontOBJReader( );
-
-      virtual void GenerateData( );
-
-    private:
-      // Purposely not implemented
-      WaveFrontOBJReader( const Self& );
-      Self& operator=( const Self & );
-
-    protected:
-      std::string m_FileName;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#ifndef ITK_MANUAL_INSTANTIATION
-#include <cpExtensions/IO/WaveFrontOBJReader.hxx>
-#endif // ITK_MANUAL_INSTANTIATION
-
-#endif // __CPEXTENSIONS__IO__WAVEFRONTOBJREADER__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/IO/WaveFrontOBJReader.hxx b/lib/cpExtensions/IO/WaveFrontOBJReader.hxx
deleted file mode 100644 (file)
index 355f779..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-#ifndef __CPEXTENSIONS__IO__WAVEFRONTOBJREADER__HXX__
-#define __CPEXTENSIONS__IO__WAVEFRONTOBJREADER__HXX__
-
-#include <cstdlib>
-#include <fstream>
-#include <sstream>
-
-// -------------------------------------------------------------------------
-template< typename M >
-cpExtensions::IO::WaveFrontOBJReader< M >::
-WaveFrontOBJReader( )
-  : Superclass( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< typename M >
-cpExtensions::IO::WaveFrontOBJReader< M >::
-~WaveFrontOBJReader( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< typename M >
-void cpExtensions::IO::WaveFrontOBJReader< M >::
-GenerateData( )
-{
-  typedef typename PointType::ValueType TScalar;
-  typename M::Pointer out = this->GetOutput( );
-
-  out->SetCellsAllocationMethod( M::CellsAllocatedDynamicallyCellByCell );
-  if( this->m_FileName == "" )
-  {
-    itkExceptionMacro( << "No input FileName" );
-
-  } // fi
-
-  std::ifstream in( this->m_FileName.c_str( ) );
-  if( !in.is_open( ) )
-  {
-    itkExceptionMacro(
-      << "Unable to open file" << std::endl
-      << "\"" << m_FileName << "\""
-      );
-
-  } // fi
-
-  in.imbue( std::locale::classic( ) );
-  std::string buffer;
-
-  while( !in.eof( ) )
-  {
-    std::getline( in, buffer, '\n' );
-
-    // Tokenize
-    std::stringstream ss( buffer );
-    std::istream_iterator< std::string > it( ss );
-    std::istream_iterator< std::string > end;
-    std::vector< std::string > line( it, end );
-    if( line.size( ) == 0 )
-      continue;
-
-    // Now, we are talking...
-    if( line[ 0 ] == "v" || line[ 0 ] == "V" )
-    {
-      // Add points
-      PointType pnt;
-      pnt.Fill( TScalar( 0 ) );
-
-      if( line.size( ) > 1 && M::PointDimension >= 1 )
-        pnt[ 0 ] = TScalar( std::atof( line[ 1 ].c_str( ) ) );
-      if( line.size( ) > 2 && M::PointDimension >= 2 )
-        pnt[ 1 ] = TScalar( std::atof( line[ 2 ].c_str( ) ) );
-      if( line.size( ) > 3 && M::PointDimension >= 3 )
-        pnt[ 2 ] = TScalar( std::atof( line[ 3 ].c_str( ) ) );
-      if( M::PointDimension >= 4 )
-      {
-        if( line.size( ) > 4 )
-          pnt[ 3 ] = TScalar( std::atof( line[ 4 ].c_str( ) ) );
-        else
-          pnt[ 4 ] = TScalar( 1 );
-
-      } // fi
-      out->SetPoint( out->GetNumberOfPoints( ), pnt );
-    }
-    else if( line[ 0 ] == "f" || line[ 0 ] == "F" )
-    {
-      if( line.size( ) > 3 )
-      {
-        // Add a face
-        CellAutoPointer cell;
-        TPolygonCell* face = new TPolygonCell( );
-
-        for( unsigned int k = 1; k < line.size( ); ++k )
-        {
-          PointIdentifier pId =
-            PointIdentifier(
-              std::atoi(
-                line[ k ].
-                substr( 0, line[ k ].find_first_of( "/" ) ).c_str( )
-                )
-              );
-
-          // In OBJ files, vertices are numbered from 1
-          face->AddPointId( pId - 1 );
-
-        } // rof
-        cell.TakeOwnership( face );
-        out->SetCell( out->GetNumberOfCells( ), cell );
-
-      } // fi
-
-    } // fi
-
-  } // elihw
-
-  // Finish the job
-  in.close( );
-}
-
-#endif // __CPEXTENSIONS__IO__WAVEFRONTOBJREADER__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Interaction/BaseInteractorStyle.cxx b/lib/cpExtensions/Interaction/BaseInteractorStyle.cxx
deleted file mode 100644 (file)
index 6c0ebbe..0000000
+++ /dev/null
@@ -1,568 +0,0 @@
-#include <cpExtensions/Interaction/BaseInteractorStyle.h>
-
-#include <cmath>
-
-#include <vtkCallbackCommand.h>
-#include <vtkCamera.h>
-#include <vtkRenderer.h>
-#include <vtkRenderWindowInteractor.h>
-
-// -------------------------------------------------------------------------
-long cpExtensions::Interaction::BaseInteractorStyle::_TMouseButtonEvent::
-MaxDoubleClick = 350; // ms
-
-// -------------------------------------------------------------------------
-void cpExtensions::Interaction::BaseInteractorStyle::
-SetSetDoubleClickDelay( long delay )
-{
-  Self::_TMouseButtonEvent::MaxDoubleClick = delay;
-}
-
-// -------------------------------------------------------------------------
-vtkObject* cpExtensions::Interaction::BaseInteractorStyle::
-GetAssociatedObject( )
-{
-  return( this->m_AssociatedObject );
-}
-
-// -------------------------------------------------------------------------
-const vtkObject* cpExtensions::Interaction::BaseInteractorStyle::
-GetAssociatedObject( ) const
-{
-  return( this->m_AssociatedObject );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Interaction::BaseInteractorStyle::
-SetAssociatedObject( vtkObject* obj )
-{
-  if( this->m_AssociatedObject != obj )
-  {
-    this->m_AssociatedObject = obj;
-    this->Modified( );
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Interaction::BaseInteractorStyle::
-DelegateTDxEvent( unsigned long event, void* calldata )
-{
-  // TODO
-  std::cerr << "No TDx support at this time!" << std::endl;
-  std::exit( 1 );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Interaction::BaseInteractorStyle::
-OnMouseMove( )
-{
-  // Get current position on the associated actors
-  vtkRenderWindowInteractor* rwi = this->GetInteractor( );
-  if( rwi == NULL )
-    return;
-
-  // Get modifiers
-  bool alt = ( rwi->GetAltKey( ) == 1 );
-  bool ctr = ( rwi->GetControlKey( ) == 1 );
-  bool sft = ( rwi->GetShiftKey( ) == 1 );
-  ButtonID button = this->GetButtonID( );
-
-  // Invoke possible generic events
-  if( button == Self::ButtonID_Right )
-  {
-    if( !alt && !ctr && !sft )
-    {
-      this->FindPokedRenderer(
-        rwi->GetEventPosition( )[ 0 ],
-        rwi->GetEventPosition( )[ 1 ]
-        );
-      this->Dolly( );
-
-    } // fi
-  }
-  else if( button == Self::ButtonID_Middle )
-  {
-    if( !alt && !ctr && !sft )
-    {
-      this->FindPokedRenderer(
-        rwi->GetEventPosition( )[ 0 ],
-        rwi->GetEventPosition( )[ 1 ]
-        );
-      this->Pan( );
-
-    } // fi
-
-  } // fi
-
-  // Get mouse pointer position
-  static int idx[ 2 ];
-  static double pos[ 3 ];
-  if( !( this->_PickPosition( idx, pos ) ) )
-    return;
-
-  // Invoke possible specialized events
-  auto i = this->m_MouseMoveCommands.begin( );
-  for( ; i != this->m_MouseMoveCommands.end( ); ++i )
-    i->first( i->second, button, idx, pos, alt, ctr, sft );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Interaction::BaseInteractorStyle::
-OnMouseWheelForward( )
-{
-  vtkRenderWindowInteractor* rwi = this->GetInteractor( );
-  if( rwi == NULL )
-    return;
-
-  // Invoke possible events
-  auto i = this->m_MouseWheelCommands.begin( );
-  for( ; i != this->m_MouseWheelCommands.end( ); ++i )
-    i->first(
-      i->second, 1,
-      rwi->GetAltKey( ) == 1,
-      rwi->GetControlKey( ) == 1,
-      rwi->GetShiftKey( ) == 1
-      );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Interaction::BaseInteractorStyle::
-OnMouseWheelBackward( )
-{
-  vtkRenderWindowInteractor* rwi = this->GetInteractor( );
-  if( rwi == NULL )
-    return;
-
-  // Invoke possible events
-  auto i = this->m_MouseWheelCommands.begin( );
-  for( ; i != this->m_MouseWheelCommands.end( ); ++i )
-    i->first(
-      i->second, -1,
-      rwi->GetAltKey( ) == 1,
-      rwi->GetControlKey( ) == 1,
-      rwi->GetShiftKey( ) == 1
-      );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Interaction::BaseInteractorStyle::
-OnLeftButtonDown( )
-{
-  this->m_ActiveButton = Self::ButtonID_Left;
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Interaction::BaseInteractorStyle::
-OnLeftButtonUp( )
-{
-  this->m_ActiveButton = Self::ButtonID_None;
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Interaction::BaseInteractorStyle::
-OnMiddleButtonDown( )
-{
-  this->m_ActiveButton = Self::ButtonID_Middle;
-
-  // Get current position on the associated actors
-  vtkRenderWindowInteractor* rwi = this->GetInteractor( );
-  if( rwi == NULL )
-    return;
-
-  // Get modifiers
-  bool alt = ( rwi->GetAltKey( ) == 1 );
-  bool ctr = ( rwi->GetControlKey( ) == 1 );
-  bool sft = ( rwi->GetShiftKey( ) == 1 );
-
-  if( !alt && !ctr && !sft )
-    this->StartPan( );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Interaction::BaseInteractorStyle::
-OnMiddleButtonUp( )
-{
-  this->m_ActiveButton = Self::ButtonID_None;
-
-  // Get current position on the associated actors
-  vtkRenderWindowInteractor* rwi = this->GetInteractor( );
-  if( rwi == NULL )
-    return;
-
-  // Get modifiers
-  bool alt = ( rwi->GetAltKey( ) == 1 );
-  bool ctr = ( rwi->GetControlKey( ) == 1 );
-  bool sft = ( rwi->GetShiftKey( ) == 1 );
-
-  switch( this->State )
-  {
-  case VTKIS_PAN:
-    this->EndPan( );
-    break;
-  default:
-    break;
-  } // hctiws
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Interaction::BaseInteractorStyle::
-OnRightButtonDown( )
-{
-  this->m_ActiveButton = Self::ButtonID_Right;
-
-  // Get current position on the associated actors
-  vtkRenderWindowInteractor* rwi = this->GetInteractor( );
-  if( rwi == NULL )
-    return;
-
-  // Get modifiers
-  bool alt = ( rwi->GetAltKey( ) == 1 );
-  bool ctr = ( rwi->GetControlKey( ) == 1 );
-  bool sft = ( rwi->GetShiftKey( ) == 1 );
-
-  if( !alt && !ctr && !sft )
-    this->StartDolly( );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Interaction::BaseInteractorStyle::
-OnRightButtonUp( )
-{
-  this->m_ActiveButton = Self::ButtonID_None;
-
-  // Get current position on the associated actors
-  vtkRenderWindowInteractor* rwi = this->GetInteractor( );
-  if( rwi == NULL )
-    return;
-
-  // Get modifiers
-  bool alt = ( rwi->GetAltKey( ) == 1 );
-  bool ctr = ( rwi->GetControlKey( ) == 1 );
-  bool sft = ( rwi->GetShiftKey( ) == 1 );
-
-  switch( this->State )
-  {
-  case VTKIS_DOLLY:
-    this->EndDolly( );
-    break;
-  default:
-    break;
-  } // hctiws
-}
-
-// -------------------------------------------------------------------------
-#define cpExtensions_BaseInteractorStyle_Click( S, T )          \
-  void cpExtensions::Interaction::BaseInteractorStyle::         \
-  On##S##T( )                                                   \
-  {                                                             \
-    vtkRenderWindowInteractor* rwi = this->GetInteractor( );    \
-    if( rwi == NULL )                                           \
-      return;                                                   \
-    static int idx[ 2 ];                                        \
-    static double pos[ 3 ];                                     \
-    if( !( this->_PickPosition( idx, pos ) ) )                  \
-      return;                                                   \
-    auto i = this->m_Mouse##T##Commands.begin( );               \
-    for( ; i != this->m_Mouse##T##Commands.end( ); ++i )        \
-      i->first(                                                 \
-        i->second,                                              \
-        Self::ButtonID_##S,                                     \
-        idx, pos,                                               \
-        rwi->GetAltKey( ) == 1,                                 \
-        rwi->GetControlKey( ) == 1,                             \
-        rwi->GetShiftKey( ) == 1                                \
-        );                                                      \
-  }
-
-cpExtensions_BaseInteractorStyle_Click( Left, Click );
-cpExtensions_BaseInteractorStyle_Click( Middle, Click );
-cpExtensions_BaseInteractorStyle_Click( Right, Click );
-cpExtensions_BaseInteractorStyle_Click( Left, DoubleClick );
-cpExtensions_BaseInteractorStyle_Click( Middle, DoubleClick );
-cpExtensions_BaseInteractorStyle_Click( Right, DoubleClick );
-
-// -------------------------------------------------------------------------
-void cpExtensions::Interaction::BaseInteractorStyle::
-OnChar( )
-{
-  vtkRenderWindowInteractor* rwi = this->GetInteractor( );
-  if( rwi == NULL )
-    return;
-
-  // Invoke possible events
-  auto i = this->m_KeyCommands.begin( );
-  for( ; i != this->m_KeyCommands.end( ); ++i )
-    i->first( i->second, rwi->GetKeyCode( ) );
-}
-
-// -------------------------------------------------------------------------
-#define cpExtensions_BaseInteractorStyle_Global( N )            \
-  void cpExtensions::Interaction::BaseInteractorStyle::         \
-  On##N( )                                                      \
-  {                                                             \
-    vtkRenderWindowInteractor* rwi = this->GetInteractor( );    \
-    if( rwi == NULL )                                           \
-      return;                                                   \
-    auto i = this->m_##N##Commands.begin( );                    \
-    for( ; i != this->m_##N##Commands.end( ); ++i )             \
-      i->first( i->second );                                    \
-  }
-
-cpExtensions_BaseInteractorStyle_Global( Expose );
-cpExtensions_BaseInteractorStyle_Global( Configure );
-cpExtensions_BaseInteractorStyle_Global( Enter );
-cpExtensions_BaseInteractorStyle_Global( Leave );
-
-// -------------------------------------------------------------------------
-void cpExtensions::Interaction::BaseInteractorStyle::
-Dolly( )
-{
-  if( this->CurrentRenderer == NULL )
-    return;
-
-  vtkRenderWindowInteractor* rwi = this->GetInteractor( );
-  double *center = this->CurrentRenderer->GetCenter( );
-  int dy = rwi->GetEventPosition( )[ 1 ] - rwi->GetLastEventPosition( )[ 1 ];
-  double dyf = this->m_MotionFactor * dy / center[ 1 ];
-  this->_Dolly( std::pow( 1.1, dyf ) );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Interaction::BaseInteractorStyle::
-Pan( )
-{
-  if( this->CurrentRenderer == NULL )
-    return;
-
-  vtkRenderWindowInteractor* rwi = this->Interactor;
-  double viewFocus[ 4 ], focalDepth, viewPoint[ 3 ];
-  double newPickPoint[ 4 ], oldPickPoint[ 4 ], motionVector[ 3 ];
-
-  // Calculate the focal depth since we'll be using it a lot
-  vtkCamera* camera = this->CurrentRenderer->GetActiveCamera( );
-  camera->GetFocalPoint( viewFocus );
-  this->ComputeWorldToDisplay(
-    viewFocus[ 0 ], viewFocus[ 1 ], viewFocus[ 2 ], viewFocus
-    );
-  focalDepth = viewFocus[ 2 ];
-  this->ComputeDisplayToWorld(
-    rwi->GetEventPosition( )[ 0 ],
-    rwi->GetEventPosition( )[ 1 ],
-    focalDepth,
-    newPickPoint
-    );
-
-  // Has to recalc old mouse point since the viewport has moved,
-  // so can't move it outside the loop
-  this->ComputeDisplayToWorld(
-    rwi->GetLastEventPosition( )[ 0 ],
-    rwi->GetLastEventPosition( )[ 1 ],
-    focalDepth,
-    oldPickPoint
-    );
-
-  // Camera motion is reversed
-  motionVector[ 0 ] = oldPickPoint[ 0 ] - newPickPoint[ 0 ];
-  motionVector[ 1 ] = oldPickPoint[ 1 ] - newPickPoint[ 1 ];
-  motionVector[ 2 ] = oldPickPoint[ 2 ] - newPickPoint[ 2 ];
-
-  camera->GetFocalPoint( viewFocus );
-  camera->GetPosition( viewPoint );
-  camera->SetFocalPoint(
-    motionVector[ 0 ] + viewFocus[ 0 ],
-    motionVector[ 1 ] + viewFocus[ 1 ],
-    motionVector[ 2 ] + viewFocus[ 2 ]
-    );
-  camera->SetPosition(
-    motionVector[ 0 ] + viewPoint[ 0 ],
-    motionVector[ 1 ] + viewPoint[ 1 ],
-    motionVector[ 2 ] + viewPoint[ 2 ]
-    );
-  if( rwi->GetLightFollowCamera( ) )
-    this->CurrentRenderer->UpdateLightsGeometryToFollowCamera( );
-  rwi->Render( );
-}
-
-// -------------------------------------------------------------------------
-cpExtensions::Interaction::BaseInteractorStyle::
-BaseInteractorStyle( )
-  : Superclass( ),
-    m_AssociatedObject( NULL ),
-    m_MotionFactor( double( 10 ) )
-{
-  this->m_LeftButtonEvent.Reset( );
-  this->m_MiddleButtonEvent.Reset( );
-  this->m_RightButtonEvent.Reset( );
-  this->m_ActiveButton = Self::ButtonID_None;
-
-  this->EventCallbackCommand->SetCallback( Self::_ProcessEvents );
-}
-
-// -------------------------------------------------------------------------
-cpExtensions::Interaction::BaseInteractorStyle::
-~BaseInteractorStyle( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Interaction::BaseInteractorStyle::
-_Dolly( double factor )
-{
-  if( this->CurrentRenderer == NULL )
-    return;
-
-  vtkCamera* camera = this->CurrentRenderer->GetActiveCamera( );
-  if( camera->GetParallelProjection( ) == 0 )
-  {
-    camera->Dolly( factor );
-    if( this->AutoAdjustCameraClippingRange )
-      this->CurrentRenderer->ResetCameraClippingRange( );
-  }
-  else
-    camera->SetParallelScale( camera->GetParallelScale( ) / factor );
-  if( this->Interactor->GetLightFollowCamera( ) )
-    this->CurrentRenderer->UpdateLightsGeometryToFollowCamera( );
-  this->Interactor->Render( );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Interaction::BaseInteractorStyle::
-_ProcessEvents(
-  vtkObject* object,
-  unsigned long event,
-  void* clientdata,
-  void* calldata
-  )
-{
-  // Get active style and interactor
-  Self* s = reinterpret_cast< Self* >( clientdata );
-  if( s == NULL )
-    return;
-
-  // Process events
-  switch( event )
-  {
-  case vtkCommand::MouseMoveEvent:
-  {
-    s->OnMouseMove( );
-  }
-  break;
-  case vtkCommand::LeftButtonPressEvent:
-  {
-    unsigned char nc = s->m_LeftButtonEvent.Clicks( );
-    if( nc == 2 )
-      s->OnLeftDoubleClick( );
-    else if( nc == 1 )
-      s->OnLeftClick( );
-    s->OnLeftButtonDown( );
-  }
-  break;
-  case vtkCommand::LeftButtonReleaseEvent:
-  {
-    s->m_LeftButtonEvent.Release( );
-    s->OnLeftButtonUp( );
-  }
-  break;
-  case vtkCommand::MiddleButtonPressEvent:
-  {
-    unsigned char nc = s->m_MiddleButtonEvent.Clicks( );
-    if( nc == 2 )
-      s->OnMiddleDoubleClick( );
-    else if( nc == 1 )
-      s->OnMiddleClick( );
-    s->OnMiddleButtonDown( );
-  }
-  break;
-  case vtkCommand::MiddleButtonReleaseEvent:
-  {
-    s->m_MiddleButtonEvent.Release( );
-    s->OnMiddleButtonUp( );
-  }
-  break;
-  case vtkCommand::RightButtonPressEvent:
-  {
-    unsigned char nc = s->m_RightButtonEvent.Clicks( );
-    if( nc == 2 )
-      s->OnRightDoubleClick( );
-    else if( nc == 1 )
-      s->OnRightClick( );
-    s->OnRightButtonDown( );
-  }
-  break;
-  case vtkCommand::RightButtonReleaseEvent:
-  {
-    s->m_RightButtonEvent.Release( );
-    s->OnRightButtonUp( );
-  }
-  break;
-  case vtkCommand::MouseWheelForwardEvent:
-  {
-    s->OnMouseWheelForward( );
-  }
-  break;
-  case vtkCommand::MouseWheelBackwardEvent:
-  {
-    s->OnMouseWheelBackward( );
-  }
-  break;
-  case vtkCommand::KeyPressEvent:
-  {
-    s->OnKeyDown( );
-    s->OnKeyPress( );
-  }
-  break;
-  case vtkCommand::KeyReleaseEvent:
-  {
-    s->OnKeyUp( );
-    s->OnKeyRelease( );
-  }
-  break;
-  case vtkCommand::CharEvent:
-  {
-    s->OnChar( );
-  }
-  break;
-  case vtkCommand::ExposeEvent:
-  {
-    s->OnExpose( );
-  }
-  break;
-  case vtkCommand::ConfigureEvent:
-  {
-    s->OnConfigure( );
-  }
-  break;
-  case vtkCommand::EnterEvent:
-  {
-    s->OnEnter( );
-  }
-  break;
-  case vtkCommand::LeaveEvent:
-  {
-    s->OnLeave( );
-  }
-  break;
-  case vtkCommand::TimerEvent:
-  {
-    // Do nothing
-  }
-  break;
-  case vtkCommand::DeleteEvent:
-  {
-    s->SetInteractor( 0 );
-  }
-  break;
-  case vtkCommand::TDxMotionEvent:
-  case vtkCommand::TDxButtonPressEvent:
-  case vtkCommand::TDxButtonReleaseEvent:
-  {
-    s->DelegateTDxEvent( event, calldata );
-  }
-  break;
-  default:
-    break;
-  } // hctiws
-}
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Interaction/BaseInteractorStyle.h b/lib/cpExtensions/Interaction/BaseInteractorStyle.h
deleted file mode 100644 (file)
index 815f622..0000000
+++ /dev/null
@@ -1,227 +0,0 @@
-#ifndef __CPEXTENSIONS__INTERACTION__BASEINTERACTORSTYLE__H__
-#define __CPEXTENSIONS__INTERACTION__BASEINTERACTORSTYLE__H__
-
-#include <cpExtensions/cpExtensions_Export.h>
-
-#include <cpPlugins_Config.h>
-#include <chrono>
-#include <map>
-#include <utility>
-
-#include <vtkInteractorStyle.h>
-
-/* =========================================================================
- * Double click algorithm inspired from:
- * http://www.autohotkey.com/board/topic/56493-easiest-way-to-detect-double-clicks/
- * =========================================================================
- */
-
-// -------------------------------------------------------------------------
-#define cpExtensions_BaseInteractorStyle_Commands( C )                  \
-  protected:                                                            \
-  std::map< T##C##Command, void* > m_##C##Commands;                     \
-public:                                                                 \
-  inline void Add##C##Command( T##C##Command c, void* d )               \
-  {                                                                     \
-    if( c != NULL )                                                     \
-    {                                                                   \
-      this->m_##C##Commands[ c ] = d;                                   \
-      this->Modified( );                                                \
-    }                                                                   \
-  }                                                                     \
-  inline void Remove##C##Command( T##C##Command c )                     \
-  {                                                                     \
-    std::map< T##C##Command, void* >::iterator i =                      \
-      this->m_##C##Commands.find( c );                                  \
-    if( i != this->m_##C##Commands.end( ) )                             \
-    {                                                                   \
-      this->m_##C##Commands.erase( i );                                 \
-      this->Modified( );                                                \
-    }                                                                   \
-  }
-
-// -------------------------------------------------------------------------
-#define BaseInteractorStyle_DIFF_TIME                           \
-  std::chrono::duration_cast< std::chrono::milliseconds >(      \
-    std::chrono::system_clock::now( ).time_since_epoch( )       \
-    ).count( )
-
-namespace cpExtensions
-{
-  namespace Interaction
-  {
-    /**
-     */
-    class cpExtensions_EXPORT BaseInteractorStyle
-      : public vtkInteractorStyle
-    {
-    public:
-      typedef BaseInteractorStyle Self;
-      vtkTypeMacro( BaseInteractorStyle, vtkInteractorStyle );
-
-      enum ButtonID
-      {
-        ButtonID_None = 0,
-        ButtonID_Left,
-        ButtonID_Middle,
-        ButtonID_Right
-      };
-
-      // Callbacks types
-      typedef void ( *TMouseCommand )(
-        void*, const ButtonID&, int*, double*, bool, bool, bool
-        );
-      typedef void ( *TMouseWheelCommand )( void*, const int&, bool, bool, bool );
-      typedef void ( *TKeyCommand )( void*, const char& );
-      typedef void ( *TVoidCommand )( void* );
-      typedef TMouseCommand TMouseMoveCommand;
-      typedef TMouseCommand TMouseClickCommand;
-      typedef TMouseCommand TMouseDoubleClickCommand;
-      typedef TVoidCommand  TExposeCommand;
-      typedef TVoidCommand  TConfigureCommand;
-      typedef TVoidCommand  TEnterCommand;
-      typedef TVoidCommand  TLeaveCommand;
-
-      // Associate callbacks for each event
-      cpExtensions_BaseInteractorStyle_Commands( MouseMove );
-      cpExtensions_BaseInteractorStyle_Commands( MouseClick );
-      cpExtensions_BaseInteractorStyle_Commands( MouseDoubleClick );
-      cpExtensions_BaseInteractorStyle_Commands( MouseWheel );
-      cpExtensions_BaseInteractorStyle_Commands( Key );
-      cpExtensions_BaseInteractorStyle_Commands( Expose );
-      cpExtensions_BaseInteractorStyle_Commands( Configure );
-      cpExtensions_BaseInteractorStyle_Commands( Enter );
-      cpExtensions_BaseInteractorStyle_Commands( Leave );
-
-    public:
-      vtkObject* GetAssociatedObject( );
-      const vtkObject* GetAssociatedObject( ) const;
-      void SetAssociatedObject( vtkObject* obj );
-
-      static void SetSetDoubleClickDelay( long delay );
-      void DelegateTDxEvent( unsigned long event, void* calldata );
-
-      // Possible mouse motion events
-      virtual void OnMouseMove( );
-      virtual void OnMouseWheelForward( );
-      virtual void OnMouseWheelBackward( );
-
-      // Possible mouse click-related events
-      inline ButtonID GetButtonID( ) const
-      {
-        return( this->m_ActiveButton );
-      }
-
-      virtual void OnLeftButtonDown( );
-      virtual void OnLeftButtonUp( );
-      virtual void OnMiddleButtonDown( );
-      virtual void OnMiddleButtonUp( );
-      virtual void OnRightButtonDown( );
-      virtual void OnRightButtonUp( );
-
-      virtual void OnLeftClick( );
-      virtual void OnLeftDoubleClick( );
-      virtual void OnMiddleClick( );
-      virtual void OnMiddleDoubleClick( );
-      virtual void OnRightClick( );
-      virtual void OnRightDoubleClick( );
-
-      // Keyboard-related events
-      virtual void OnChar( );
-      virtual void OnKeyDown( )    { }
-      virtual void OnKeyUp( )      { }
-      virtual void OnKeyPress( )   { }
-      virtual void OnKeyRelease( ) { }
-
-      // Other events
-      virtual void OnExpose( );
-      virtual void OnConfigure( );
-      virtual void OnEnter( );
-      virtual void OnLeave( );
-
-      virtual void Dolly( );
-      virtual void Pan( );
-
-    protected:
-      BaseInteractorStyle( );
-      virtual ~BaseInteractorStyle( );
-
-      virtual void _Dolly( double factor );
-
-      // Extension interface
-      virtual bool _PickPosition( int idx[ 2 ], double pos[ 3 ] ) = 0;
-
-      // Main event callback
-      static void _ProcessEvents(
-        vtkObject* object,
-        unsigned long event,
-        void* clientdata,
-        void* calldata
-        );
-
-    private:
-      // Purposely not implemented
-      BaseInteractorStyle( const Self& );
-      Self& operator=( const Self& );
-
-    protected:
-      vtkObject* m_AssociatedObject;
-      double m_MotionFactor;
-
-      /**
-       * Button events
-       */
-      struct _TMouseButtonEvent
-      {
-        static long MaxDoubleClick;
-        long m_LastButtonUp;
-        long m_LastButtonHeld;
-        long m_LastButtonDown;
-
-        inline _TMouseButtonEvent( )
-          { this->Reset( ); }
-        inline void Reset( )
-          {
-            this->m_LastButtonUp = 0;
-            this->m_LastButtonHeld = 0;
-            this->m_LastButtonDown = -1;
-          }
-        inline void Release( )
-          {
-            long c = BaseInteractorStyle_DIFF_TIME;
-            this->m_LastButtonUp = c;
-            this->m_LastButtonHeld = c - this->m_LastButtonDown;
-            this->m_LastButtonDown = -1;
-          }
-        inline unsigned char Clicks( )
-          {
-            unsigned char n = 0;
-            long c = BaseInteractorStyle_DIFF_TIME;
-            if(
-              this->m_LastButtonHeld < MaxDoubleClick &&
-              ( c - this->m_LastButtonUp ) < MaxDoubleClick
-              )
-            {
-              this->Reset( );
-              n = 2;
-            }
-            else
-              n = 1;
-            if( this->m_LastButtonDown < 0 )
-              this->m_LastButtonDown = c;
-            return( n );
-          }
-      };
-      _TMouseButtonEvent m_LeftButtonEvent;
-      _TMouseButtonEvent m_MiddleButtonEvent;
-      _TMouseButtonEvent m_RightButtonEvent;
-      ButtonID           m_ActiveButton;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#endif // __CPEXTENSIONS__INTERACTION__BASEINTERACTORSTYLE__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Interaction/ImageInteractorStyle.cxx b/lib/cpExtensions/Interaction/ImageInteractorStyle.cxx
deleted file mode 100644 (file)
index f2781dc..0000000
+++ /dev/null
@@ -1,259 +0,0 @@
-#include <cpExtensions/Interaction/ImageInteractorStyle.h>
-
-#include <vtkCamera.h>
-#include <vtkCommand.h>
-#include <vtkImageActor.h>
-#include <vtkImageMapper3D.h>
-#include <vtkImageSliceMapper.h>
-#include <vtkPropCollection.h>
-#include <vtkProperty.h>
-#include <vtkRenderWindowInteractor.h>
-#include <vtkRenderer.h>
-
-// -------------------------------------------------------------------------
-/* TODO
-   cpExtensions::Interaction::ImageInteractorStyle::TSeedWidget::
-   TSeedWidget( vtkRenderWindowInteractor* interactor, vtkImageActor* actor )
-   {
-   this->Placer = vtkSmartPointer< vtkImageActorPointPlacer >::New( );
-   this->Handle = vtkSmartPointer< vtkPointHandleRepresentation3D >::New( );
-   this->Representation = vtkSmartPointer< vtkSeedRepresentation >::New( );
-   this->Widget = vtkSmartPointer< SeedWidget >::New( );
-
-   this->Placer->SetImageActor( actor );
-   this->Handle->GetProperty( )->SetColor( 1, 0, 0 );
-   this->Handle->SetPointPlacer( this->Placer );
-   this->Representation->SetHandleRepresentation( this->Handle );
-   this->Widget->SetRepresentation( this->Representation );
-   this->Widget->SetInteractor( interactor );
-   }
-   
-   // -------------------------------------------------------------------------
-   void cpExtensions::Interaction::ImageInteractorStyle::TSeedWidget::
-   On( )
-   {
-   this->Widget->On( );
-   }
-   
-   // -------------------------------------------------------------------------
-   void cpExtensions::Interaction::ImageInteractorStyle::TSeedWidget::
-   Off( )
-   {
-   this->Widget->Off( );
-   }
-*/
-
-// -------------------------------------------------------------------------
-cpExtensions::Interaction::ImageInteractorStyle::
-Self* cpExtensions::Interaction::ImageInteractorStyle::
-New( )
-{
-  return( new Self );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Interaction::ImageInteractorStyle::
-SetCurrentRenderer( vtkRenderer* r )
-{
-  this->Superclass::SetCurrentRenderer( r );
-
-  if( !( this->m_Configured ) )
-  {
-    auto lst = this->m_PropPicker->GetPickList( );
-    if( lst == NULL )
-      return;
-    if( lst->GetNumberOfItems( ) == 1 )
-    {
-      auto actor = dynamic_cast< vtkImageActor* >( lst->GetItemAsObject( 0 ) );
-      if( actor != NULL )
-      {
-        this->_ConfigureCamera( actor );
-        this->Modified( );
-
-      } // fi
-
-    } // fi
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Interaction::ImageInteractorStyle::
-AssociateImageActor( vtkImageActor* actor )
-{
-  if( actor != NULL )
-  {
-    // Update picker
-    this->m_PropPicker->GetPickList( )->RemoveAllItems( );
-    this->m_PropPicker->AddPickList( actor );
-    this->m_Configured = false;
-    this->_ConfigureCamera( actor );
-
-    // Ok, done
-    this->Modified( );
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-/*
-void cpExtensions::Interaction::ImageInteractorStyle::
-SeedWidgetOn( )
-{
-  if( this->m_SeedWidget != NULL ) delete this->m_SeedWidget;
-
-  this->m_PropPicker->GetPickList( )->InitTraversal( );
-  this->m_SeedWidget = new TSeedWidget(
-    this->Interactor,
-    dynamic_cast< vtkImageActor* >(
-      this->m_PropPicker->GetPickList( )->GetNextProp( )
-      )
-    );
-  this->m_SeedWidget->On( );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Interaction::ImageInteractorStyle::
-SeedWidgetOff( )
-{
-  if( this->m_SeedWidget != NULL )
-  {
-    this->m_SeedWidget->Off( );
-    delete this->m_SeedWidget;
-    this->m_SeedWidget = NULL;
-
-  } // fi
-}
-*/
-
-// -------------------------------------------------------------------------
-/*
-void cpExtensions::Interaction::ImageInteractorStyle::
-SetSeedWidgetCommand( vtkCommand* cmd )
-{
-  if( cmd == NULL || this->m_SeedWidget == NULL )
-    return;
-  this->m_SeedWidget->Widget->
-    AddObserver( vtkCommand::PlacePointEvent, cmd );
-}
-
-// -------------------------------------------------------------------------
-unsigned int cpExtensions::Interaction::ImageInteractorStyle::
-GetNumberOfSeeds( ) const
-{
-  if( this->m_SeedWidget != NULL )
-    return( this->m_SeedWidget->Representation->GetNumberOfSeeds( ) );
-  else
-    return( 0 );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Interaction::ImageInteractorStyle::
-GetSeedAsPoint( unsigned int id, double pos[ 3 ] ) const
-{
-  if( this->m_SeedWidget != NULL )
-    this->m_SeedWidget->Representation->GetSeedWorldPosition( id, pos );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Interaction::ImageInteractorStyle::
-GetSeedAsIndex( unsigned int id, int idx[ 3 ] ) const
-{
-     if( this->m_SeedWidget != NULL )
-     this->m_SeedWidget->Representation->GetSeedWorldPosition( id, pos );
-}
-*/
-
-// -------------------------------------------------------------------------
-cpExtensions::Interaction::ImageInteractorStyle::
-ImageInteractorStyle( )
-  : Superclass( ),
-    m_Configured( false )
-    /*
-      ,
-      m_SeedWidget( NULL )
-    */
-{
-  this->m_PropPicker = vtkSmartPointer< vtkPropPicker >::New( );
-  this->m_PropPicker->PickFromListOn( );
-}
-
-// -------------------------------------------------------------------------
-cpExtensions::Interaction::ImageInteractorStyle::
-~ImageInteractorStyle( )
-{
-  // if( this->m_SeedWidget != NULL ) delete this->m_SeedWidget;
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Interaction::ImageInteractorStyle::
-_ConfigureCamera( vtkImageActor* actor )
-{
-  if( this->CurrentRenderer != NULL )
-  {
-    // Update camera
-    auto camera = this->CurrentRenderer->GetActiveCamera( );
-    auto mapper = dynamic_cast< vtkImageSliceMapper* >( actor->GetMapper( ) );
-    if( mapper != NULL && camera != NULL )
-    {
-      double bounds[ 6 ];
-      actor->GetBounds( bounds );
-      camera->ParallelProjectionOn( );
-      camera->SetFocalPoint( double( 0 ), double( 0 ), double( 0 ) );
-      int orientation = mapper->GetOrientation( );
-      switch( orientation )
-      {
-      case 0:
-      {
-        camera->SetPosition( double( 1 ), double( 0 ), double( 0 ) );
-        camera->SetViewUp  ( double( 0 ), double( 1 ), double( 0 ) );
-      }
-      break;
-      case 1:
-      {
-        camera->SetPosition( double( 0 ), double( 1 ), double( 0 ) );
-        camera->SetViewUp  ( double( 0 ), double( 0 ), double( -1 ) );
-      }
-      break;
-      case 2:
-      {
-        camera->SetPosition( double( 0 ), double( 0 ), double( 1 ) );
-        camera->SetViewUp  ( double( 0 ), double( 1 ), double( 0 ) );
-      }
-      break;
-      default:
-        break;
-      } // hctiws
-      this->CurrentRenderer->ResetCamera( );
-      this->m_Configured = true;
-
-    } // fi
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-bool cpExtensions::Interaction::ImageInteractorStyle::
-_PickPosition( int idx[ 2 ], double pos[ 3 ] )
-{
-  vtkRenderWindowInteractor* rwi = this->GetInteractor( );
-  if( rwi == NULL )
-    return( false );
-
-  // Find the renderer where the event has been raised
-  idx[ 0 ] = rwi->GetEventPosition( )[ 0 ];
-  idx[ 1 ] = rwi->GetEventPosition( )[ 1 ];
-  this->FindPokedRenderer( double( idx[ 0 ] ), double( idx[ 1 ] ) );
-
-  // Pick a 3D position
-  int r = this->m_PropPicker->Pick(
-    double( idx[ 0 ] ), double( idx[ 1 ] ), double( 0 ),
-    this->CurrentRenderer
-    );
-  if( r == 0 )
-    return( false );
-  this->m_PropPicker->GetPickPosition( pos );
-  return( true );
-}
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Interaction/ImageInteractorStyle.h b/lib/cpExtensions/Interaction/ImageInteractorStyle.h
deleted file mode 100644 (file)
index c02f65d..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-#ifndef __CPEXTENSIONS__INTERACTION__IMAGEINTERACTORSTYLE__H__
-#define __CPEXTENSIONS__INTERACTION__IMAGEINTERACTORSTYLE__H__
-
-#include <cpExtensions/Interaction/BaseInteractorStyle.h>
-
-#include <vector>
-
-#include <vtkPropPicker.h>
-#include <vtkSmartPointer.h>
-/* TODO
-   #include <vtkImageActorPointPlacer.h>
-   #include <vtkPointHandleRepresentation3D.h>
-   #include <vtkSeedRepresentation.h>
-   #include <cpExtensions/Interaction/SeedWidget.h>
-*/
-
-// Forward definitions
-class vtkCommand;
-class vtkImageActor;
-
-namespace cpExtensions
-{
-  namespace Interaction
-  {
-    /**
-     */
-    class cpExtensions_EXPORT ImageInteractorStyle
-      : public BaseInteractorStyle
-    {
-    public:
-      typedef ImageInteractorStyle Self;
-      vtkTypeMacro( ImageInteractorStyle, BaseInteractorStyle );
-
-      // Callbacks types
-      typedef Superclass::TMouseCommand            TMouseCommand;
-      typedef Superclass::TMouseWheelCommand       TMouseWheelCommand;
-      typedef Superclass::TKeyCommand              TKeyCommand;
-      typedef Superclass::TVoidCommand             TVoidCommand;
-      typedef Superclass::TMouseMoveCommand        TMouseMoveCommand;
-      typedef Superclass::TMouseClickCommand       TMouseClickCommand;
-      typedef Superclass::TMouseDoubleClickCommand TMouseDoubleClickCommand;
-      typedef Superclass::TExposeCommand           TExposeCommand;
-      typedef Superclass::TConfigureCommand        TConfigureCommand;
-      typedef Superclass::TEnterCommand            TEnterCommand;
-      typedef Superclass::TLeaveCommand            TLeaveCommand;
-
-      // Widgets
-      /* TODO
-         struct TSeedWidget
-         {
-         vtkSmartPointer< vtkImageActorPointPlacer >              Placer;
-         vtkSmartPointer< vtkPointHandleRepresentation3D >        Handle;
-         vtkSmartPointer< vtkSeedRepresentation >         Representation;
-         vtkSmartPointer< SeedWidget > Widget;
-
-         TSeedWidget(
-         vtkRenderWindowInteractor* interactor, vtkImageActor* actor
-         );
-         void On( );
-         void Off( );
-         };
-      */
-
-    public:
-      static Self* New( );
-
-      virtual void SetCurrentRenderer( vtkRenderer* r ) VTK_OVERRIDE;
-
-      // Data for local picker
-      virtual void AssociateImageActor( vtkImageActor* actor );
-
-      // Widgets
-      /* TODO
-         void SeedWidgetOn( );
-         void SeedWidgetOff( );
-         void SetSeedWidgetCommand( vtkCommand* cmd );
-         unsigned int GetNumberOfSeeds( ) const;
-         void GetSeedAsPoint( unsigned int id, double pos[ 3 ] ) const;
-         void GetSeedAsIndex( unsigned int id, int pos[ 3 ] ) const;
-      */
-
-    protected:
-      ImageInteractorStyle( );
-      virtual ~ImageInteractorStyle( );
-
-      void _ConfigureCamera( vtkImageActor* actor );
-      virtual bool _PickPosition( int idx[ 2 ], double pos[ 3 ] );
-
-    private:
-      // Purposely not implemented
-      ImageInteractorStyle( const Self& );
-      Self& operator=( const Self& );
-
-    protected:
-      bool m_Configured;
-      vtkSmartPointer< vtkPropPicker > m_PropPicker;
-      /* TODO
-         TSeedWidget* m_SeedWidget;
-      */
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#endif // __CPEXTENSIONS__INTERACTION__IMAGEINTERACTORSTYLE__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Interaction/SeedWidget.cxx b/lib/cpExtensions/Interaction/SeedWidget.cxx
deleted file mode 100644 (file)
index 73d13a5..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-#include <cpExtensions/Interaction/SeedWidget.h>
-
-#include <vtkCallbackCommand.h>
-#include <vtkCommand.h>
-#include <vtkRenderWindowInteractor.h>
-#include <vtkSeedRepresentation.h>
-#include <vtkWidgetEventTranslator.h>
-#include <vtkWidgetRepresentation.h>
-
-// -------------------------------------------------------------------------
-cpExtensions::Interaction::SeedWidget::
-Self* cpExtensions::Interaction::SeedWidget::
-New( )
-{
-  return( new Self );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Interaction::SeedWidget::
-SetInteractor( vtkRenderWindowInteractor* rwi )
-{
-  this->Superclass::SetInteractor( rwi );
-  if( rwi != NULL )
-  {
-    TBaseStyle* s =
-      dynamic_cast< TBaseStyle* >( rwi->GetInteractorStyle( ) );
-    if( s != NULL )
-    {
-      s->AddMouseClickCommand( Self::_Click, this );
-      s->AddMouseDoubleClickCommand( Self::_DoubleClick, this );
-
-    } // fi
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-cpExtensions::Interaction::SeedWidget::
-SeedWidget( )
-  : Superclass( )
-{
-  // Remove default translations
-  vtkWidgetEventTranslator* t = this->GetEventTranslator( );
-  t->RemoveTranslation( vtkCommand::LeftButtonPressEvent );
-  t->RemoveTranslation( vtkCommand::MiddleButtonPressEvent );
-  t->RemoveTranslation( vtkCommand::RightButtonPressEvent );
-}
-
-// -------------------------------------------------------------------------
-cpExtensions::Interaction::SeedWidget::
-~SeedWidget( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Interaction::SeedWidget::
-_Click(
-  void* data, const TBaseStyle::ButtonID& button,
-  int* idx, double* pos, bool alt, bool ctr, bool sft
-  )
-{
-  SeedWidget* self = reinterpret_cast< SeedWidget* >( data );
-  if( self == NULL )
-    return;
-  if( self->WidgetState == vtkSeedWidget::MovingSeed )
-    return;
-
-  int st = self->WidgetRep->ComputeInteractionState( idx[ 0 ], idx[ 1 ] );
-  if( st == vtkSeedRepresentation::NearSeed )
-  {
-    self->WidgetState = vtkSeedWidget::MovingSeed;
-
-    // Invoke an event on ourself for the handles
-    self->InvokeEvent( vtkCommand::LeftButtonPressEvent, NULL );
-    self->Superclass::StartInteraction( );
-    self->InvokeEvent( vtkCommand::StartInteractionEvent, NULL );
-    self->EventCallbackCommand->SetAbortFlag( 1 );
-    self->Render( );
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Interaction::SeedWidget::
-_DoubleClick(
-  void* data, const TBaseStyle::ButtonID& button,
-  int* idx, double* pos, bool alt, bool ctr, bool sft
-  )
-{
-  Self::AddPointAction( reinterpret_cast< vtkAbstractWidget* >( data ) );
-}
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Interaction/SeedWidget.h b/lib/cpExtensions/Interaction/SeedWidget.h
deleted file mode 100644 (file)
index 526ac7e..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-#ifndef __CPEXTENSIONS__INTERACTION__SEEDWIDGET__H__
-#define __CPEXTENSIONS__INTERACTION__SEEDWIDGET__H__
-
-#include <cpExtensions/cpExtensions_Export.h>
-#include <cpExtensions/Interaction/BaseInteractorStyle.h>
-#include <vtkSeedWidget.h>
-
-namespace cpExtensions
-{
-  namespace Interaction
-  {
-    /**
-     */
-    class cpExtensions_EXPORT SeedWidget
-      : public vtkSeedWidget
-    {
-    public:
-      typedef SeedWidget Self;
-      vtkTypeMacro( SeedWidget, vtkSeedWidget );
-
-      typedef cpExtensions::Interaction::BaseInteractorStyle TBaseStyle;
-      typedef TBaseStyle::TMouseCommand TMouseCommand;
-
-    public:
-      static Self* New( );
-
-      virtual void SetInteractor( vtkRenderWindowInteractor* rwi );
-
-    protected:
-      SeedWidget( );
-      virtual ~SeedWidget( );
-
-      static void _Click(
-        void* data, const TBaseStyle::ButtonID& button,
-        int* idx, double* pos, bool alt, bool ctr, bool sft
-        );
-      static void _DoubleClick(
-        void* data, const TBaseStyle::ButtonID& button,
-        int* idx, double* pos, bool alt, bool ctr, bool sft
-        );
-
-    private:
-      // Purposely not implemented
-      SeedWidget( const Self& );
-      Self& operator=( const Self& );
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#endif // __CPEXTENSIONS__INTERACTION__SEEDWIDGET__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Interaction/SphereWidget.cxx b/lib/cpExtensions/Interaction/SphereWidget.cxx
deleted file mode 100644 (file)
index 882c3ca..0000000
+++ /dev/null
@@ -1,263 +0,0 @@
-#include <cpExtensions/Interaction/SphereWidget.h>
-
-#include <vtkCallbackCommand.h>
-#include <vtkCommand.h>
-#include <vtkRenderWindowInteractor.h>
-#include <vtkSeedRepresentation.h>
-#include <vtkWidgetEventTranslator.h>
-#include <vtkWidgetRepresentation.h>
-#include <vtkActor.h>
-#include <vtkSphereRepresentation.h>
-#include <vtkSmartPointer.h>
-#include <vtkSphere.h>
-#include <vtkProperty.h>
-
-// -------------------------------------------------------------------------
-cpExtensions::Interaction::SphereWidget::
-Self* cpExtensions::Interaction::SphereWidget::
-New()
-{
-  return(new Self);
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Interaction::SphereWidget::
-SetInteractor(vtkRenderWindowInteractor* rwi)
-{
-  this->Superclass::SetInteractor(rwi);
-  TBaseStyle* s = dynamic_cast<TBaseStyle*>(rwi->GetInteractorStyle());
-  if (s != NULL)
-  {    
-    s->AddKeyCommand(Self::_KeyPress, this);
-    s->AddMouseMoveCommand(Self::_MouseMove, this);
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-cpExtensions::Interaction::SphereWidget::
-SphereWidget()
-: Superclass()
-{
-  //this->SetAxis(0);
-
-  this->SetTranslation(0);
-  this->SetRadius(7);
-
-  this->SetPhiResolution(10);
-  this->SetThetaResolution(20);
-
-  this->SetRepresentationToWireframe();
-}
-
-// -------------------------------------------------------------------------
-cpExtensions::Interaction::SphereWidget::
-~SphereWidget()
-{
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Interaction::SphereWidget::
-_Click(
-void* data, const TBaseStyle::ButtonID& button,
-int* idx, double* pos, bool alt, bool ctr, bool sft
-)
-{
-  SphereWidget* self = reinterpret_cast<SphereWidget*>(data);
-  self->Superclass::EndInteraction();
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Interaction::SphereWidget::
-_DoubleClick(
-void* data, const TBaseStyle::ButtonID& button,
-int* idx, double* pos, bool alt, bool ctr, bool sft
-)
-{
-
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Interaction::SphereWidget::
-_MouseMove(
-void* data, const TBaseStyle::ButtonID& button,
-int* idx, double* pos, bool alt, bool ctr, bool sft
-)
-{
-  /*SphereWidget* self = reinterpret_cast<SphereWidget*>(data);
-  self->Superclass::StartInteraction();*/
-}
-
-void cpExtensions::Interaction::SphereWidget::SetAxis(int axis)
-{
-  this->m_axis = axis;
-}
-
-
-void cpExtensions::Interaction::SphereWidget::SetAxis(void* data, int axis)
-{
-  SphereWidget* self = reinterpret_cast<SphereWidget*>(data);
-  self->SetAxis(axis);
-}
-
-int cpExtensions::Interaction::SphereWidget::GetAxis()
-{
-  return this->m_axis;
-}
-
-int cpExtensions::Interaction::SphereWidget::GetAxis(void* data)
-{
-  SphereWidget* self = reinterpret_cast<SphereWidget*>(data);
-  return self->GetAxis();
-}
-
-double* cpExtensions::Interaction::SphereWidget::GetPosition()
-{
-  return this->SphereActor->GetPosition();
-}
-
-double* cpExtensions::Interaction::SphereWidget::GetPosition(void* data)
-{
-  SphereWidget* self = reinterpret_cast<SphereWidget*>(data);
-  return self->GetPosition();
-}
-
-void cpExtensions::Interaction::SphereWidget::SetCenter(double * center)
-{
-  //this->Superclass::SetCenter(center);
-  this->SphereActor->SetPosition(center);
-  this->SphereActor->Modified();
-  this->Modified();
-  this->GetInteractor()->Render();
-}
-
-void cpExtensions::Interaction::SphereWidget::SetCenter(void* data, double * center)
-{
-  SphereWidget* self = reinterpret_cast<SphereWidget*>(data);
-  
-  //self->Superclass::SetCenter(center);
-  self->SphereActor->SetPosition(center);
-  self->SphereActor->Modified();
-  self->Modified();
-  self->GetInteractor()->Render();
-
-  std::cout << "sphere: {" << center[0] << " , " << center[1] << " , " << center[2] << "} " << std::endl;
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Interaction::SphereWidget::_KeyPress(void* data, const char& key)
-{
-  SphereWidget* self = reinterpret_cast<SphereWidget*>(data);
-  self->Superclass::StartInteraction();
-
-  double * center = self->SphereActor->GetPosition();
-
-  auto radius = self->GetRadius();
-
-  auto axis = self->GetAxis();
-
-  switch (key)
-  {
-  case 122: // Z & z
-  case 90:
-    radius += 0.1;
-   
-    break;
-  case 88:  // X & x
-  case 120:
-    radius -= 0.1;
-   
-    break;
-  case 119: // W & w
-  case 87:
-    if (axis == 0)
-    {
-      center[2] += 1;
-    } else if (axis == 1)
-    {
-      center[2] += 1;
-    } else
-    {
-      center[1] -= 1;
-    }
-   
-   
-    break;
-  case 83: // S & s
-  case 115:
-    if (axis == 0)
-    {
-      center[2] -= 1;
-    }
-    else if (axis == 1)
-    {
-      center[2] -= 1;
-    }
-    else
-    {
-      center[1] += 1;
-    }
-   
-    break;
-  case 65: // A & a
-  case 97:
-    if (axis == 0)
-    {
-      center[1] -= 1;
-    }
-    else if (axis == 1)
-    {
-      center[0] -= 1;
-    }
-    else
-    {
-      center[0] += 1;
-    }
-   
-    break;
-  case 100: // D & d
-  case 68:
-    if (axis == 0)
-    {
-      center[1] += 1;
-    }
-    else if (axis == 1)
-    {
-      center[0] += 1;
-    }
-    else
-    {
-      center[0] -= 1;
-    }
-   
-    break;
-  //case 81: // Q & q
-  //case 113:
-  //  center[2] += 1;
-  //
-  //  break;
-  //case 69: // E & e
-  //case 101:
-  //  center[2] -= 1;
-  //
-  //  break;
-
-  default:
-    break;
-  }
-
-
-  self->SetRadius(radius);
-  self->SetCenter(data, center);
-  self->Modified();
-  self->GetInteractor()->Render();
-  self->EndInteraction();
-}
-
-
-
-
-
-
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Interaction/SphereWidget.h b/lib/cpExtensions/Interaction/SphereWidget.h
deleted file mode 100644 (file)
index 9afae7c..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-#ifndef __CPEXTENSIONS__INTERACTION__SphereWidget__H__
-#define __CPEXTENSIONS__INTERACTION__SphereWidget__H__
-
-#include <cpExtensions/cpExtensions_Export.h>
-#include <cpExtensions/Interaction/BaseInteractorStyle.h>
-#include <vtkSphereWidget.h>
-
-namespace cpExtensions
-{
-  namespace Interaction
-  {
-    /**
-     */
-    class cpExtensions_EXPORT SphereWidget
-      : public vtkSphereWidget
-    {
-    public:
-      typedef SphereWidget Self;
-      vtkTypeMacro( SphereWidget, vtkSphereWidget );
-
-      typedef cpExtensions::Interaction::BaseInteractorStyle TBaseStyle;
-      typedef TBaseStyle::TMouseCommand TMouseCommand;
-      typedef TBaseStyle::TKeyCommand TKeyCommand;
-
-    public:
-      static Self* New( );
-
-      virtual void SetInteractor( vtkRenderWindowInteractor* rwi );
-      void SetCenter(double* center);
-      void SetAxis(int axis);
-      int GetAxis();
-      double * GetPosition();
-    protected:
-      SphereWidget( );
-      virtual ~SphereWidget( );
-
-      static void _Click(
-        void* data, const TBaseStyle::ButtonID& button,
-        int* idx, double* pos, bool alt, bool ctr, bool sft
-        );
-      static void _DoubleClick(
-        void* data, const TBaseStyle::ButtonID& button,
-        int* idx, double* pos, bool alt, bool ctr, bool sft
-        );
-      static void _MouseMove(
-        void* data, const TBaseStyle::ButtonID& button,
-        int* idx, double* pos, bool alt, bool ctr, bool sft
-        );
-     
-      static void _KeyPress(void* data, const char& key);
-       
-      static void SetCenter(void* data, double* center);
-
-      static void SetAxis(void* data, int axis);
-      static int GetAxis(void* data);
-      static double * GetPosition(void* data);
-    private:
-      int m_axis;
-
-      // Purposely not implemented
-      SphereWidget( const Self& );
-      Self& operator=( const Self& );
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#endif // __CPEXTENSIONS__INTERACTION__SphereWidget__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/QT/SimpleMPRWidget.cxx b/lib/cpExtensions/QT/SimpleMPRWidget.cxx
deleted file mode 100644 (file)
index fb4a063..0000000
+++ /dev/null
@@ -1,408 +0,0 @@
-#include <cpExtensions/QT/SimpleMPRWidget.h>
-
-#ifdef cpExtensions_QT4
-
-#include <cpExtensions/ui_SimpleMPRWidget.h>
-#include <vtkImageProperty.h>
-#include <vtkRenderer.h>
-#include <vtkGenericOpenGLRenderWindow.h>
-
-// -------------------------------------------------------------------------
-cpExtensions::QT::SimpleMPRWidget::_3DInteractorStyle*
-cpExtensions::QT::SimpleMPRWidget::_3DInteractorStyle::
-New( )
-{
-  return( new _3DInteractorStyle( ) );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::QT::SimpleMPRWidget::_3DInteractorStyle::
-OnKeyPress( )
-{
-  vtkRenderWindowInteractor* i = this->Interactor;
-  std::string key = i->GetKeySym( );
-  if( key == "r" || key == "R" )
-  {
-    this->CurrentRenderer->ResetCamera( );
-    i->Render( );
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-cpExtensions::QT::SimpleMPRWidget::
-SimpleMPRWidget( QWidget* parent )
-  : QWidget( parent ),
-    m_UI( new Ui::SimpleMPRWidget )
-{
-  this->m_UI->setupUi( this );
-
-  // Configure VTK widgets
-  this->m_VTK[ 0 ] = this->m_UI->VTK_X;
-  this->m_VTK[ 1 ] = this->m_UI->VTK_Y;
-  this->m_VTK[ 2 ] = this->m_UI->VTK_Z;
-  this->m_VTK[ 3 ] = this->m_UI->VTK_3D;
-  for( unsigned int i = 0; i < 4; ++i )
-  {
-    this->m_Renderers[ i ] = vtkSmartPointer< vtkRenderer >::New( );
-    this->m_VTK[ i ]->GetRenderWindow( )->
-      AddRenderer( this->m_Renderers[ i ] );
-
-  } // rof
-  vtkSmartPointer< _3DInteractorStyle > style =
-    vtkSmartPointer< _3DInteractorStyle >::New( );
-  this->m_VTK[ 3 ]->GetRenderWindow( )->
-    GetInteractor( )->SetInteractorStyle( style );
-  style->SetCurrentRenderer( this->m_Renderers[ 3 ] );
-
-  // Connect slots
-  QObject::connect(
-    this->m_UI->TopSplitter, SIGNAL( splitterMoved( int, int ) ),
-    this, SLOT( _SyncBottom( int, int ) )
-    );
-  QObject::connect(
-    this->m_UI->BottomSplitter, SIGNAL( splitterMoved( int, int ) ),
-    this, SLOT( _SyncTop( int, int ) )
-    );
-}
-
-// -------------------------------------------------------------------------
-cpExtensions::QT::SimpleMPRWidget::
-~SimpleMPRWidget( )
-{
-  this->Clear( );
-  delete this->m_UI;
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::QT::SimpleMPRWidget::
-Clear( )
-{
-  for( unsigned int i = 0; i < 4; ++i )
-    this->m_Renderers[ i ]->RemoveAllViewProps( );
-  for( unsigned int i = 0; i < 3; ++i )
-  {
-    if( this->m_2DSlices[ i ].GetPointer( ) != NULL )
-      this->m_2DSlices[ i ]->Clear( );
-    if( this->m_3DSlices[ i ].GetPointer( ) != NULL )
-      this->m_3DSlices[ i ]->Clear( );
-
-  } // rof
-  this->m_NamedActors.clear( );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::QT::SimpleMPRWidget::
-SetMainImage( vtkImageData* image, const std::string& name )
-{
-  this->Clear( );
-  for( unsigned int i = 0; i < 3; ++i )
-  {
-    this->m_2DSlices[ i ] = vtkSmartPointer< TSliceActors >::New( );
-    this->m_2DSlices[ i ]->SetInputData( image, i );
-    this->m_2DSlices[ i ]->PushInto( this->m_Renderers[ i ] );
-    this->m_VTK[ i ]->GetRenderWindow( )->GetInteractor( )->
-      SetInteractorStyle( this->m_2DSlices[ i ]->GetStyle( ) );
-
-    this->m_3DSlices[ i ] = vtkSmartPointer< TSliceActors >::New( );
-    this->m_3DSlices[ i ]->SetInputData( image, i );
-    this->m_3DSlices[ i ]->PushInto( this->m_Renderers[ 3 ] );
-    this->m_3DSlices[ i ]->SetStyle(
-      dynamic_cast< vtkInteractorStyle* >(
-        this->m_Renderers[ 3 ]->GetRenderWindow( )->
-        GetInteractor( )->GetInteractorStyle( )
-        )
-      );
-
-    this->m_NamedActors[ name ].insert(
-      this->m_2DSlices[ i ]->GetImageActor( )
-      );
-    this->m_NamedActors[ name ].insert(
-      this->m_3DSlices[ i ]->GetImageActor( )
-      );
-
-  } // rof
-  this->_AssociateSlices( );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::QT::SimpleMPRWidget::
-SetMainActor( vtkImageActor* actor, const std::string& name )
-{
-  this->Clear( );
-  vtkImageData* image = NULL;
-  int interp = actor->GetProperty( )->GetInterpolationType( );
-  for( unsigned int i = 0; i < 3; ++i )
-  {
-    this->m_2DSlices[ i ] = vtkSmartPointer< TSliceActors >::New( );
-    if( i == 0 )
-    {
-      this->m_2DSlices[ i ]->SetInputActor( actor, i );
-      image = this->m_2DSlices[ i ]->GetInputData( );
-    }
-    else
-      this->m_2DSlices[ i ]->SetInputData( image, i );
-    this->m_2DSlices[ i ]->PushInto( this->m_Renderers[ i ] );
-    this->m_VTK[ i ]->GetRenderWindow( )->GetInteractor( )->
-      SetInteractorStyle( this->m_2DSlices[ i ]->GetStyle( ) );
-
-    this->m_3DSlices[ i ] = vtkSmartPointer< TSliceActors >::New( );
-    this->m_3DSlices[ i ]->SetInputData( image, i );
-    this->m_3DSlices[ i ]->PushInto( this->m_Renderers[ 3 ] );
-    this->m_3DSlices[ i ]->SetStyle(
-      dynamic_cast< vtkInteractorStyle* >(
-        this->m_Renderers[ 3 ]->GetRenderWindow( )->
-        GetInteractor( )->GetInteractorStyle( )
-        )
-      );
-
-    this->m_NamedActors[ name ].insert(
-      this->m_2DSlices[ i ]->GetImageActor( )
-      );
-    this->m_NamedActors[ name ].insert(
-      this->m_3DSlices[ i ]->GetImageActor( )
-      );
-    this->m_2DSlices[ i ]->GetImageActor( )->
-      GetProperty( )->SetInterpolationType( interp );
-    this->m_3DSlices[ i ]->GetImageActor( )->
-      GetProperty( )->SetInterpolationType( interp );
-
-  } // rof
-  this->_AssociateSlices( );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::QT::SimpleMPRWidget::
-AddImage( vtkImageData* image, const std::string& name )
-{
-  std::cerr << "SimpleMPR: adding image" << std::endl;
-  std::exit( 1 );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::QT::SimpleMPRWidget::
-AddImageActor( vtkImageActor* actor, const std::string& name )
-{
-  unsigned int i = 0;
-  bool cont = true;
-  while( i < 3 && cont )
-  {
-    if( this->m_2DSlices[ i ].GetPointer( ) != NULL )
-    {
-      if( this->m_2DSlices[ i ]->GetImageActor( ) != NULL )
-      {
-        // TODO: add image actor
-      }
-      else
-        cont = false;
-
-    } // fi
-    i++;
-
-  } // rof
-
-  // Add if no actors were found
-  if( cont )
-    this->SetMainActor( actor, name );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::QT::SimpleMPRWidget::
-AddMesh( vtkPolyData* mesh, const std::string& name )
-{
-  std::cerr << "SimpleMPR: adding mesh" << std::endl;
-  std::exit( 1 );
-  /* TODO
-     PolyDataActor a;
-     a.Configure( mesh );
-     this->m_PolyDatas[ mesh ] = a;
-     this->m_Renderers[ 3 ]->AddViewProp( a.Actor );
-
-     bool has_main_image = false;
-     for( unsigned int i = 0; i < 3; ++i )
-     {
-     if( this->m_2DSlices[ i ].GetPointer( ) != NULL )
-     {
-     if( this->m_2DSlices[ i ]->GetInputData( ) != NULL )
-     {
-     has_main_image = true;
-     this->m_2DSlices[ i ]->AddMesh( mesh );
-     this->m_2DSlices[ i ]->Render( );
-
-     } // fi
-
-     } // fi
-
-     } // rof
-     if( !has_main_image )
-     this->m_Renderers[ 3 ]->ResetCamera( );
-     this->m_VTK[ 3 ]->GetRenderWindow( )->Render( );
-  */
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::QT::SimpleMPRWidget::
-AddMeshActor( vtkProp3D* actor, const std::string& name )
-{
-  if( actor != NULL )
-  {
-    this->m_Renderers[ 3 ]->AddViewProp( actor );
-    this->m_VTK[ 3 ]->GetRenderWindow( )->Render( );
-    this->m_NamedActors[ name ].insert( actor );
-    if( this->m_Renderers[ 3 ]->GetViewProps( )->GetNumberOfItems( ) == 1 )
-    {
-      this->m_Renderers[ 3 ]->ResetCamera( );
-      this->m_VTK[ 3 ]->GetRenderWindow( )->Render( );
-
-    } // fi
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::QT::SimpleMPRWidget::
-AddActor( vtkProp* actor, const std::string& name )
-{
-  auto ia = dynamic_cast< vtkImageActor* >( actor );
-  if( ia == NULL )
-  {
-    auto ma = dynamic_cast< vtkProp3D* >( actor );
-    if( ma != NULL )
-      this->AddMeshActor( ma, name );
-  }
-  else
-    this->AddImageActor( ia, name );
-}
-
-// -------------------------------------------------------------------------
-const cpExtensions::QT::SimpleMPRWidget::
-TActors& cpExtensions::QT::SimpleMPRWidget::
-GetActors( const std::string& name ) const
-{
-  static const TActors empty;
-  auto i = this->m_NamedActors.find( name );
-  if( i != this->m_NamedActors.end( ) )
-    return( i->second );
-  else
-    return( empty );
-}
-
-// -------------------------------------------------------------------------
-vtkRenderWindowInteractor* cpExtensions::QT::SimpleMPRWidget::
-GetInteractor( unsigned int i )
-{
-  if( i < 4 )
-    return( this->m_VTK[ i ]->GetRenderWindow( )->GetInteractor( ) );
-  else
-    return( NULL );
-}
-
-// -------------------------------------------------------------------------
-vtkRenderer* cpExtensions::QT::SimpleMPRWidget::
-GetRenderer( unsigned int i )
-{
-  if( i < 4 )
-    return( this->m_Renderers[ i ] );
-  else
-    return( NULL );
-}
-
-// -------------------------------------------------------------------------
-vtkRenderWindow* cpExtensions::QT::SimpleMPRWidget::
-GetRenderWindow( unsigned int i )
-{
-  if( i < 4 )
-  {
-    if( this->m_Renderers[ i ].GetPointer( ) != NULL )
-      return( this->m_Renderers[ i ]->GetRenderWindow( ) );
-    else
-      return( NULL );
-  }
-  else
-    return( NULL );
-}
-
-// -------------------------------------------------------------------------
-/* TODO
-   std::vector< std::pair< vtkImageActor*, vtkRenderer* > >
-   cpExtensions::QT::SimpleMPRWidget::
-   GetMainImageActors( )
-   {
-   std::vector< std::pair< vtkImageActor*, vtkRenderer* > > actors;
-   for( unsigned int i = 0; i < 3; ++i )
-   {
-   actors.push_back(
-   std::pair< vtkImageActor*, vtkRenderer* >(
-   this->m_2DSlices[ i ]->GetImageActor( ),
-   this->m_Renderers[ i ]
-   )
-   );
-   actors.push_back(
-   std::pair< vtkImageActor*, vtkRenderer* >(
-   this->m_3DSlices[ i ]->GetImageActor( ),
-   this->m_Renderers[ 3 ]
-   )
-   );
-
-   } // rof
-   return( actors );
-   }
-*/
-
-// -------------------------------------------------------------------------
-/* TODO
-   vtkActor* cpExtensions::QT::SimpleMPRWidget::
-   GetActor( vtkPolyData* mesh )
-   {
-   auto i = this->m_PolyDatas.find( mesh );
-   if( i != this->m_PolyDatas.end( ) )
-   return( i->second.Actor.GetPointer( ) );
-   else
-   return( NULL );
-   }
-*/
-
-// -------------------------------------------------------------------------
-void cpExtensions::QT::SimpleMPRWidget::
-_AssociateSlices( )
-{
-  for( unsigned int i = 0; i < 3; ++i )
-  {
-    for( unsigned int j = 0; j < 3; ++j )
-    {
-      if( i != j )
-        this->m_2DSlices[ i ]->AssociateSlice( this->m_2DSlices[ j ] );
-      this->m_2DSlices[ i ]->AssociateSlice( this->m_3DSlices[ j ] );
-
-    } // rof
-
-  } // rof
-  for( unsigned int i = 0; i < 3; ++i )
-  {
-    this->m_2DSlices[ i ]->GetStyle( )->
-      SetCurrentRenderer( this->m_Renderers[ i ] );
-    this->m_Renderers[ i ]->ResetCamera( );
-    this->m_VTK[ i ]->GetRenderWindow( )->Render( );
-
-  } // rof
-  this->m_Renderers[ 3 ]->ResetCamera( );
-  this->m_VTK[ 3 ]->GetRenderWindow( )->Render( );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::QT::SimpleMPRWidget::
-_SyncBottom( int a, int b )
-{
-  this->m_UI->BottomSplitter->setSizes( this->m_UI->TopSplitter->sizes( ) );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::QT::SimpleMPRWidget::
-_SyncTop( int a, int b )
-{
-  this->m_UI->TopSplitter->setSizes( this->m_UI->BottomSplitter->sizes( ) );
-}
-
-#endif // cpExtensions_QT4
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/QT/SimpleMPRWidget.h b/lib/cpExtensions/QT/SimpleMPRWidget.h
deleted file mode 100644 (file)
index 4b1ceb7..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-#ifndef __CPEXTENSIONS__QT__SIMPLEMPRWIDGET__H__
-#define __CPEXTENSIONS__QT__SIMPLEMPRWIDGET__H__
-
-#include <cpExtensions/Config.h>
-
-#ifdef cpExtensions_QT4
-
-#include <map>
-#include <set>
-#include <QWidget>
-#include <vtkInteractorStyleTrackballCamera.h>
-#include <vtkRenderWindowInteractor.h>
-#include <vtkProp.h>
-#include <vtkSmartPointer.h>
-#include <cpExtensions/Visualization/ImageSliceActors.h>
-
-#define cpExtensions_MAX_POLYS 65535
-
-// -------------------------------------------------------------------------
-class QVTKWidget2;
-
-namespace Ui
-{
-  class SimpleMPRWidget;
-}
-
-// -------------------------------------------------------------------------
-namespace cpExtensions
-{
-  namespace QT
-  {
-    /**
-     */
-    class cpExtensions_EXPORT SimpleMPRWidget
-      : public QWidget
-    {
-      Q_OBJECT;
-
-    public:
-      typedef SimpleMPRWidget Self;
-
-      struct TActorCmp
-      {
-        bool operator()(
-          const vtkSmartPointer< vtkProp >& a,
-          const vtkSmartPointer< vtkProp >& b
-          ) const
-          { return( a.GetPointer( ) < b.GetPointer( ) ); }
-      };
-      typedef std::set< vtkSmartPointer< vtkProp >, TActorCmp >  TActors;
-      typedef std::map< std::string, TActors >              TNamedActors;
-      typedef cpExtensions::Visualization::ImageSliceActors TSliceActors;
-
-    protected:
-      /**
-       */
-      class _3DInteractorStyle
-        : public vtkInteractorStyleTrackballCamera
-      {
-      public:
-        vtkTypeMacro(
-          _3DInteractorStyle, vtkInteractorStyleTrackballCamera
-          );
-
-      public:
-        static _3DInteractorStyle* New( );
-        virtual void OnChar( )       { }
-        virtual void OnKeyDown( )    { }
-        virtual void OnKeyUp( )      { }
-        virtual void OnKeyRelease( ) { }
-        virtual void OnKeyPress( );
-      };
-
-    public:
-      explicit SimpleMPRWidget( QWidget* parent = 0 );
-      virtual ~SimpleMPRWidget( );
-
-      // Data management
-      void Clear( );
-      void SetMainImage( vtkImageData* image, const std::string& name );
-      void SetMainActor( vtkImageActor* actor, const std::string& name );
-      void AddImage( vtkImageData* image, const std::string& name );
-      void AddImageActor( vtkImageActor* actor, const std::string& name );
-      void AddMesh( vtkPolyData* mesh, const std::string& name );
-      void AddMeshActor( vtkProp3D* actor, const std::string& name );
-      void AddActor( vtkProp* actor, const std::string& name );
-      const TActors& GetActors( const std::string& name ) const;
-
-      // Visual objects
-      vtkRenderWindowInteractor* GetInteractor( unsigned int i );
-      vtkRenderer* GetRenderer( unsigned int i );
-      vtkRenderWindow* GetRenderWindow( unsigned int i );
-
-    protected:
-      void _AssociateSlices( );
-
-    private slots:
-      void _SyncBottom( int a, int b );
-      void _SyncTop( int a, int b );
-
-    protected:
-      Ui::SimpleMPRWidget* m_UI;
-      QVTKWidget2*         m_VTK[ 4 ];
-
-      vtkSmartPointer< vtkRenderer >  m_Renderers[ 4 ];
-      vtkSmartPointer< TSliceActors > m_2DSlices[ 3 ];
-      vtkSmartPointer< TSliceActors > m_3DSlices[ 3 ];
-
-      TNamedActors m_NamedActors;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#endif // cpExtensions_QT4
-
-#endif // __CPEXTENSIONS__QT__SIMPLEMPRWIDGET__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/QT/SimpleMPRWidget.ui b/lib/cpExtensions/QT/SimpleMPRWidget.ui
deleted file mode 100644 (file)
index 254d94d..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>SimpleMPRWidget</class>
- <widget class="QWidget" name="SimpleMPRWidget">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>424</width>
-    <height>424</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Form</string>
-  </property>
-  <layout class="QGridLayout" name="gridLayout">
-   <item row="0" column="0">
-    <widget class="QSplitter" name="QuadSplitter">
-     <property name="minimumSize">
-      <size>
-       <width>406</width>
-       <height>406</height>
-      </size>
-     </property>
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <widget class="QSplitter" name="TopSplitter">
-      <property name="minimumSize">
-       <size>
-        <width>406</width>
-        <height>200</height>
-       </size>
-      </property>
-      <property name="orientation">
-       <enum>Qt::Horizontal</enum>
-      </property>
-      <widget class="QVTKWidget2" name="VTK_Y">
-       <property name="minimumSize">
-        <size>
-         <width>200</width>
-         <height>200</height>
-        </size>
-       </property>
-      </widget>
-      <widget class="QVTKWidget2" name="VTK_X">
-       <property name="minimumSize">
-        <size>
-         <width>200</width>
-         <height>200</height>
-        </size>
-       </property>
-      </widget>
-     </widget>
-     <widget class="QSplitter" name="BottomSplitter">
-      <property name="minimumSize">
-       <size>
-        <width>406</width>
-        <height>200</height>
-       </size>
-      </property>
-      <property name="orientation">
-       <enum>Qt::Horizontal</enum>
-      </property>
-      <widget class="QVTKWidget2" name="VTK_Z">
-       <property name="minimumSize">
-        <size>
-         <width>200</width>
-         <height>200</height>
-        </size>
-       </property>
-      </widget>
-      <widget class="QVTKWidget2" name="VTK_3D">
-       <property name="minimumSize">
-        <size>
-         <width>200</width>
-         <height>200</height>
-        </size>
-       </property>
-      </widget>
-     </widget>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>QVTKWidget2</class>
-   <extends>QWidget</extends>
-   <header>QVTKWidget2.h</header>
-   <container>1</container>
-  </customwidget>
- </customwidgets>
- <resources/>
- <connections/>
-</ui>
diff --git a/lib/cpExtensions/Visualization/ImageBlender.cxx b/lib/cpExtensions/Visualization/ImageBlender.cxx
deleted file mode 100644 (file)
index 44a08ab..0000000
+++ /dev/null
@@ -1,239 +0,0 @@
-#include <cpExtensions/Visualization/ImageBlender.h>
-
-#include <vtkDataObject.h>
-#include <vtkImageData.h>
-#include <vtkImageIterator.h>
-#include <vtkImageProgressIterator.h>
-#include <vtkInformation.h>
-#include <vtkInformationVector.h>
-
-// -------------------------------------------------------------------------
-cpExtensions::Visualization::ImageBlender::
-Self* cpExtensions::Visualization::ImageBlender::
-New( )
-{
-  return( new Self( ) );
-}
-
-// -------------------------------------------------------------------------
-unsigned int cpExtensions::Visualization::ImageBlender::
-GetNumberOfInputs( )
-{
-  unsigned int np = this->GetNumberOfInputPorts( );
-  unsigned int ni = 0;
-  for( unsigned int p = 0; p < np; ++p )
-    ni += this->GetNumberOfInputConnections( p );
-  return( ni );
-}
-
-// -------------------------------------------------------------------------
-cpExtensions::Visualization::ImageBlender::
-ImageBlender( )
-  : Superclass( )
-{
-  this->SetNumberOfInputPorts( 1 );
-}
-
-// -------------------------------------------------------------------------
-cpExtensions::Visualization::ImageBlender::
-~ImageBlender( )
-{
-}
-
-// -------------------------------------------------------------------------
-int cpExtensions::Visualization::ImageBlender::
-RequestInformation(
-  vtkInformation* request,
-  vtkInformationVector** inputVector,
-  vtkInformationVector* outputVector
-  )
-{
-  if( this->GetNumberOfInputConnections( 0 ) == 0 )
-    return( 0 );
-
-  vtkDataObject::SetPointDataActiveScalarInfo(
-    outputVector->GetInformationObject( 0 ),
-    VTK_UNSIGNED_CHAR,
-    1
-    );
-  return( 1 );
-}
-
-// -------------------------------------------------------------------------
-int cpExtensions::Visualization::ImageBlender::
-RequestData(
-  vtkInformation* request,
-  vtkInformationVector** inputVector,
-  vtkInformationVector* outputVector
-  )
-{
-  this->m_Ranges.clear( );
-  for( int i = 0; i < this->GetNumberOfInputPorts( ); ++i )
-  {
-    vtkInformationVector* portInfo = inputVector[ i ];
-    for( int j = 0; j < portInfo->GetNumberOfInformationObjects( ); ++j )
-    {
-      vtkInformation* info = portInfo->GetInformationObject( j );
-      vtkImageData* image = vtkImageData::SafeDownCast(
-        info->Get( vtkDataObject::DATA_OBJECT( ) )
-        );
-      if( image != NULL )
-      {
-        double r[ 2 ];
-        image->GetScalarRange( r );
-        this->m_Ranges.push_back( r[ 0 ] );
-        this->m_Ranges.push_back( r[ 1 ] );
-      }
-      else
-      {
-        this->m_Ranges.push_back( double( 0 ) );
-        this->m_Ranges.push_back( double( 0 ) );
-
-      } // fi
-
-    } // rof
-
-  } // rof
-  return(
-    this->Superclass::RequestData( request, inputVector, outputVector )
-    );
-}
-
-// -------------------------------------------------------------------------
-// Description:
-// This templated function executes the filter for any type of data.
-template< class T >
-void cpExtensions_Visualization_ImageBlender_Execute(
-  cpExtensions::Visualization::ImageBlender* self,
-  vtkImageData** inDatas, int numInputs,
-  const std::vector< double >& ranges, vtkImageData* outData,
-  int outExt[ 6 ], int id, T* really_not_used
-  )
-{
-  vtkImageIterator< T > inItsFast[ 256 ];
-  T* inSIFast[ 256 ];
-  vtkImageProgressIterator< T > outIt( outData, outExt, self, id );
-  vtkImageIterator< T >* inIts;
-  T** inSI;
-  if( numInputs < 256 )
-  {
-    inIts = inItsFast;
-    inSI = inSIFast;
-  }
-  else
-  {
-    inIts = new vtkImageIterator< T >[ numInputs ];
-    inSI = new T*[ numInputs ];
-
-  } // fi
-
-  // Loop through all input ImageData to initialize iterators
-  for( int i = 0; i < numInputs; ++i )
-    inIts[ i ].Initialize( inDatas[ i ], outExt );
-
-  // Loop through output pixels
-  while( !outIt.IsAtEnd( ) )
-  {
-    for( int j = 0; j < numInputs; ++j )
-      inSI[ j ] = inIts[ j ].BeginSpan( );
-
-    T* outSI = outIt.BeginSpan( );
-    T* outSIEnd = outIt.EndSpan( );
-
-    // Pixel operation
-    while( outSI != outSIEnd )
-    {
-      // Input 0 is ignored: it is just used to guarantee sizes all over
-      // the result
-      double vmax = double( 0 );
-      for( int k = 1; k < numInputs; ++k )
-      {
-        double v =
-          ( ( double( k ) * double( *inSI[ k ] ) ) - ranges[ k << 1 ] ) /
-          ( ranges[ ( k << 1 ) + 1 ] - ranges[ k << 1 ] );
-        vmax = ( vmax < v )? v: vmax;
-
-      } // rof
-      *outSI = static_cast< T >( vmax );
-      outSI++;
-      for( int l = 0; l < numInputs; ++l )
-        inSI[ l ]++;
-
-    } // elihw
-    for( int j = 0; j < numInputs; ++j )
-      inIts[ j ].NextSpan( );
-    outIt.NextSpan( );
-
-  } // elihw
-
-  if( numInputs >= 256)
-  {
-    delete [] inIts;
-    delete [] inSI;
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Visualization::ImageBlender::
-ThreadedRequestData(
-  vtkInformation* request,
-  vtkInformationVector** inputVector,
-  vtkInformationVector* outputVector,
-  vtkImageData*** inData, vtkImageData** outData,
-  int outExt[ 6 ], int id
-  )
-{
-  if( inData[ 0 ][ 0 ] == NULL )
-  {
-    vtkErrorMacro( << "Input " << 0 << " must be specified." );
-    return;
-
-  } // fi
-
-  int numInputs = this->GetNumberOfInputConnections( 0 );
-  int scalarType = inData[ 0 ][ 0 ]->GetScalarType( );
-  int numComp = inData[ 0 ][ 0 ]->GetNumberOfScalarComponents( );
-  for( int i = 1; i < numInputs; ++i )
-  {
-    int otherType = inData[ 0 ][ i ]->GetScalarType( );
-    int otherComp = inData[ 0 ][ i ]->GetNumberOfScalarComponents( );
-    if( otherType != scalarType || otherComp != numComp )
-    {
-      if( id == 0 )
-        vtkErrorMacro(
-          "ThreadedRequestData: Input " << i
-          << " has " << otherComp << " components of type "
-          << otherType << ", but input 0 has " << numComp
-          << " components of type " << scalarType
-          );
-      return;
-
-    } // fi
-
-  } // rof
-
-  switch( scalarType )
-  {
-    vtkTemplateMacro(
-      cpExtensions_Visualization_ImageBlender_Execute(
-        this, inData[ 0 ], numInputs, this->m_Ranges,
-        outData[ 0 ], outExt, id, static_cast< VTK_TT* >( 0 )
-        )
-      );
-  default:
-    if( id == 0 )
-      vtkErrorMacro( << "Execute: Unknown ScalarType" );
-    return;
-  } // hctiws
-}
-
-// -------------------------------------------------------------------------
-int cpExtensions::Visualization::ImageBlender::
-FillInputPortInformation( int i, vtkInformation* info )
-{
-  info->Set( vtkAlgorithm::INPUT_IS_REPEATABLE( ), 1 );
-  return( this->Superclass::FillInputPortInformation( i,info ) );
-}
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Visualization/ImageBlender.h b/lib/cpExtensions/Visualization/ImageBlender.h
deleted file mode 100644 (file)
index e4bf27c..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef __CPEXTENSIONS__VISUALIZATION__IMAGEBLENDER__H__
-#define __CPEXTENSIONS__VISUALIZATION__IMAGEBLENDER__H__
-
-#include <cpExtensions/cpExtensions_Export.h>
-
-#include <vector>
-
-#include <vtkThreadedImageAlgorithm.h>
-
-namespace cpExtensions
-{
-  namespace Visualization
-  {
-    /**
-     * @note: Based on vtkImageWeightedSum
-     */
-    class cpExtensions_EXPORT ImageBlender
-      : public vtkThreadedImageAlgorithm
-    {
-    public:
-      typedef ImageBlender Self;
-      vtkTypeMacro( ImageBlender, vtkThreadedImageAlgorithm );
-
-    public:
-      static Self* New( );
-
-      unsigned int GetNumberOfInputs( );
-
-    protected:
-      ImageBlender( );
-      virtual ~ImageBlender( );
-
-      int RequestInformation(
-        vtkInformation* request,
-        vtkInformationVector** inputVector,
-        vtkInformationVector* outputVector
-        );
-      int RequestData(
-        vtkInformation* request,
-        vtkInformationVector** inputVector,
-        vtkInformationVector* outputVector
-        );
-      void ThreadedRequestData(
-        vtkInformation* request,
-        vtkInformationVector** inputVector,
-        vtkInformationVector* outputVector,
-        vtkImageData*** inData, vtkImageData** outData,
-        int outExt[ 6 ], int id
-        );
-      int FillInputPortInformation( int i, vtkInformation* info );
-
-    private:
-      // Purposely not implemented.
-      ImageBlender( const Self& other );
-      void operator=( const Self& other );
-
-    protected:
-      std::vector< double > m_Ranges;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#endif //  __CPEXTENSIONS__VISUALIZATION__IMAGEBLENDER__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Visualization/ImageIndexesContainerToPolyData.h b/lib/cpExtensions/Visualization/ImageIndexesContainerToPolyData.h
deleted file mode 100644 (file)
index 5129512..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-#ifndef __CPEXTENSIONS__VISUALIZATION__IMAGEINDEXESCONTAINERTOPOLYDATA__H__
-#define __CPEXTENSIONS__VISUALIZATION__IMAGEINDEXESCONTAINERTOPOLYDATA__H__
-
-#include <vtkPolyDataAlgorithm.h>
-#include <itkImageBase.h>
-
-namespace cpExtensions
-{
-  namespace Visualization
-  {
-    /**
-     */
-    template< class _TIndexes >
-    class ImageIndexesContainerToPolyData
-      : public vtkPolyDataAlgorithm
-    {
-    public:
-      typedef ImageIndexesContainerToPolyData Self;
-
-      typedef _TIndexes TIndexes;
-      typedef typename TIndexes::ComponentType TContainer;
-      typedef typename TContainer::value_type  TIndex;
-      typedef itk::ImageBase< TIndex::Dimension > TImage;
-
-    public:
-      vtkTypeMacro( ImageIndexesContainerToPolyData, vtkPolyDataAlgorithm );
-
-    public:
-      static Self* New( );
-
-      const TIndexes* GetInput( ) const;
-      const TImage* GetReferenceImage( ) const;
-      void SetInput( const TIndexes* c );
-      void SetReferenceImage( const TImage* i );
-
-    protected:
-      ImageIndexesContainerToPolyData( );
-      virtual ~ImageIndexesContainerToPolyData( );
-
-      int RequestData(
-        vtkInformation* information,
-        vtkInformationVector** input,
-        vtkInformationVector* output
-        );
-      int RequestInformation(
-        vtkInformation* information,
-        vtkInformationVector** input,
-        vtkInformationVector* output
-        );
-
-    private:
-      // Purposely not implemented
-      ImageIndexesContainerToPolyData( const Self& );
-      void operator=( const Self& );
-
-    protected:
-      const TIndexes* m_Indexes;
-      const TImage*   m_ReferenceImage;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#ifndef ITK_MANUAL_INSTANTIATION
-#include <cpExtensions/Visualization/ImageIndexesContainerToPolyData.hxx>
-#endif // ITK_MANUAL_INSTANTIATION
-
-#endif //  __CPEXTENSIONS__VISUALIZATION__IMAGEINDEXESCONTAINERTOPOLYDATA__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Visualization/ImageIndexesContainerToPolyData.hxx b/lib/cpExtensions/Visualization/ImageIndexesContainerToPolyData.hxx
deleted file mode 100644 (file)
index a1403ce..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-#ifndef __CPEXTENSIONS__VISUALIZATION__IMAGEINDEXESCONTAINERTOPOLYDATA__HXX__
-#define __CPEXTENSIONS__VISUALIZATION__IMAGEINDEXESCONTAINERTOPOLYDATA__HXX__
-
-#include <vtkInformation.h>
-#include <vtkInformationVector.h>
-
-// -------------------------------------------------------------------------
-template< class _TIndexes >
-typename cpExtensions::Visualization::ImageIndexesContainerToPolyData< _TIndexes >::
-Self* cpExtensions::Visualization::ImageIndexesContainerToPolyData< _TIndexes >::
-New( )
-{
-  return( new Self( ) );
-}
-
-// -------------------------------------------------------------------------
-template< class _TIndexes >
-const typename cpExtensions::Visualization::ImageIndexesContainerToPolyData< _TIndexes >::
-TIndexes* cpExtensions::Visualization::ImageIndexesContainerToPolyData< _TIndexes >::
-GetInput( ) const
-{
-  return( this->m_Indexes );
-}
-
-// -------------------------------------------------------------------------
-template< class _TIndexes >
-const typename cpExtensions::Visualization::ImageIndexesContainerToPolyData< _TIndexes >::
-TImage* cpExtensions::Visualization::ImageIndexesContainerToPolyData< _TIndexes >::
-GetReferenceImage( ) const
-{
-  return( this->m_ReferenceImage );
-}
-
-// -------------------------------------------------------------------------
-template< class _TIndexes >
-void cpExtensions::Visualization::ImageIndexesContainerToPolyData< _TIndexes >::
-SetInput( const TIndexes* c )
-{
-  if( this->m_Indexes != c )
-  {
-    this->m_Indexes = c;
-    this->Modified( );
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-template< class _TIndexes >
-void cpExtensions::Visualization::ImageIndexesContainerToPolyData< _TIndexes >::
-SetReferenceImage( const TImage* i )
-{
-  if( this->m_ReferenceImage != i )
-  {
-    this->m_ReferenceImage = i;
-    this->Modified( );
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-template< class _TIndexes >
-cpExtensions::Visualization::ImageIndexesContainerToPolyData< _TIndexes >::
-ImageIndexesContainerToPolyData( )
-  : vtkPolyDataAlgorithm( ),
-    m_Indexes( NULL ),
-    m_ReferenceImage( NULL )
-{
-  this->SetNumberOfInputPorts( 0 );
-}
-
-// -------------------------------------------------------------------------
-template< class _TIndexes >
-cpExtensions::Visualization::ImageIndexesContainerToPolyData< _TIndexes >::
-~ImageIndexesContainerToPolyData( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class _TIndexes >
-int cpExtensions::Visualization::ImageIndexesContainerToPolyData< _TIndexes >::
-RequestData(
-  vtkInformation* information,
-  vtkInformationVector** input,
-  vtkInformationVector* output
-  )
-{
-  static const unsigned int dim = TIndex::Dimension;
-
-  if( this->m_Indexes == NULL )
-    return( 0 );
-
-  // Get output
-  vtkInformation* info = output->GetInformationObject( 0 );
-  vtkPolyData* out = vtkPolyData::SafeDownCast(
-    info->Get( vtkDataObject::DATA_OBJECT( ) )
-    );
-
-  // Get input data
-  auto& lst = this->m_Indexes->Get( );
-
-  // Prepare points
-  vtkPoints* points = out->GetPoints( );
-  if( points == NULL )
-  {
-    points = vtkPoints::New( );
-    out->SetPoints( points );
-    points->Delete( );
-
-  } // fi
-  points->SetNumberOfPoints( lst.size( ) );
-
-  // Prepare cells
-  vtkSmartPointer< vtkCellArray > verts =
-    vtkSmartPointer< vtkCellArray >::New( );
-
-  for( unsigned int i = 0; i < lst.size( ); ++i )
-  {
-    auto idx = lst[ i ];
-    if( this->m_ReferenceImage != NULL )
-    {
-      typename TImage::PointType pnt;
-      this->m_ReferenceImage->TransformIndexToPhysicalPoint( idx, pnt );
-      if( dim == 1 )
-        points->SetPoint( i, pnt[ 0 ], 0, 0 );
-      else if( dim == 2 )
-        points->SetPoint( i, pnt[ 0 ], pnt[ 1 ], 0 );
-      else
-        points->SetPoint( i, pnt[ 0 ], pnt[ 1 ], pnt[ 2 ] );
-    }
-    else
-    {
-      if( dim == 1 )
-        points->SetPoint( i, idx[ 0 ], 0, 0 );
-      else if( dim == 2 )
-        points->SetPoint( i, idx[ 0 ], idx[ 1 ], 0 );
-      else
-        points->SetPoint( i, idx[ 0 ], idx[ 1 ], idx[ 2 ] );
-
-    } // fi
-    verts->InsertNextCell( 1 );
-    verts->InsertCellPoint( i );
-
-  } // rof
-  out->SetPoints( points );
-  out->SetVerts( verts );
-  return( 1 );
-}
-
-// -------------------------------------------------------------------------
-template< class _TIndexes >
-int
-cpExtensions::Visualization::ImageIndexesContainerToPolyData< _TIndexes >::
-RequestInformation(
-  vtkInformation* information,
-  vtkInformationVector** input,
-  vtkInformationVector* output
-  )
-{
-  vtkInformation* info = output->GetInformationObject( 0 );
-  /* TODO
-     info->Set(
-     vtkStreamingDemandDrivenPipeline::MAXIMUM_NUMBER_OF_PIECES( ), -1
-     );
-  */
-
-  if( this->m_Indexes != NULL && this->m_ReferenceImage != NULL )
-  {
-    /* TODO
-       typename C::TScalar len = this->m_RGC->GetTotalLength( );
-       typename C::TScalar s0 = this->m_RGC->Gets0( );
-       typename C::TPoint p0 = this->m_RGC->Axis( s0 );
-       typename C::TPoint p1 = this->m_RGC->Axis( s0 + len );
-
-       info->Set(
-       vtkStreamingDemandDrivenPipeline::WHOLE_BOUNDING_BOX( ),
-       double( p0[ 0 ] ), double( p1[ 0 ] ),
-       double( p0[ 1 ] ), double( p1[ 1 ] ),
-       double( p0[ 2 ] ), double( p1[ 2 ] )
-       );
-    */
-
-  } // fi
-  return( 1 );
-}
-
-#endif //  __CPEXTENSIONS__VISUALIZATION__IMAGEINDEXESCONTAINERTOPOLYDATA__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Visualization/ImageSliceActors.cxx b/lib/cpExtensions/Visualization/ImageSliceActors.cxx
deleted file mode 100644 (file)
index 838cc84..0000000
+++ /dev/null
@@ -1,658 +0,0 @@
-#include <cpExtensions/Visualization/ImageSliceActors.h>
-
-#include <sstream>
-#include <vtkCamera.h>
-#include <vtkImageData.h>
-#include <vtkImageProperty.h>
-#include <vtkPlane.h>
-#include <vtkProperty.h>
-#include <vtkRenderer.h>
-#include <vtkRenderWindow.h>
-#include <vtkTextProperty.h>
-
-// -------------------------------------------------------------------------
-cpExtensions::Visualization::ImageSliceActors::
-Self* cpExtensions::Visualization::ImageSliceActors::
-New( )
-{
-  return( new Self( ) );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Visualization::ImageSliceActors::
-Clear( )
-{
-  this->RemoveAllItems( );
-
-  // Main image
-  this->m_Mapper = vtkSmartPointer< vtkImageSliceMapper >::New( );
-  this->m_Actor = vtkSmartPointer< vtkImageActor >::New( );
-  this->m_Actor->SetMapper( this->m_Mapper );
-
-  // Cursor
-  this->m_Cursor.Create( );
-  this->m_Cursor.Actor->GetProperty( )->SetColor( 1, 1, 0 );
-
-  // Text
-  this->m_TextBuffer[ 0 ] = '\0';
-  this->m_TextActor = vtkSmartPointer< vtkTextActor >::New( );
-  this->m_TextActor->SetTextScaleModeToNone( );
-  vtkTextProperty* textprop = this->m_TextActor->GetTextProperty( );
-  textprop->SetColor( 1, 1, 0 );
-  textprop->SetFontFamilyToCourier( );
-  textprop->SetFontSize( 18 );
-  textprop->BoldOff( );
-  textprop->ItalicOff( );
-  textprop->ShadowOff( );
-  textprop->SetJustificationToLeft( );
-  textprop->SetVerticalJustificationToBottom( );
-  vtkCoordinate* coord = this->m_TextActor->GetPositionCoordinate( );
-  coord->SetCoordinateSystemToNormalizedViewport( );
-  coord->SetValue( 0.01, 0.05 );
-
-  // Configure style
-  vtkSmartPointer< TStyle > st = vtkSmartPointer< TStyle >::New( );
-  st->SetAssociatedObject( this );
-  st->AddMouseMoveCommand( Self::_MouseMoveCommand, this );
-  st->AddMouseClickCommand( Self::_MouseClickCommand, this );
-  st->AddMouseWheelCommand( Self::_MouseWheelCommand, this );
-  st->AddKeyCommand( Self::_KeyCommand, this );
-  st->AddEnterCommand( Self::_EnterCommand, this );
-  st->AddLeaveCommand( Self::_LeaveCommand, this );
-  this->m_Style = st;
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Visualization::ImageSliceActors::
-SetInputConnection( vtkAlgorithmOutput* aout, int orientation )
-{
-  if( aout == NULL )
-    return;
-  this->m_Mapper->SetInputConnection( aout );
-  this->_ConfigureInput( orientation );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Visualization::ImageSliceActors::
-SetInputData( vtkImageData* data, int orientation )
-{
-  if( data == NULL )
-    return;
-  this->m_Mapper->SetInputData( data );
-  this->_ConfigureInput( orientation );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Visualization::ImageSliceActors::
-SetInputActor( vtkProp* actor, int orientation )
-{
-  auto real_actor = dynamic_cast< vtkImageActor* >( actor );
-  if( real_actor == NULL )
-    return;
-  auto real_mapper =
-    dynamic_cast< vtkImageSliceMapper* >( real_actor->GetMapper( ) );
-  if( real_mapper == NULL )
-    return;
-  this->m_Actor = real_actor;
-  this->m_Mapper = real_mapper;
-  this->_ConfigureInput( orientation );
-}
-
-// -------------------------------------------------------------------------
-vtkImageData* cpExtensions::Visualization::ImageSliceActors::
-GetInputData( )
-{
-  if( this->m_Mapper.GetPointer( ) != NULL )
-    return( this->m_Mapper->GetInput( ) );
-  else
-    return( NULL );
-}
-
-// -------------------------------------------------------------------------
-vtkImageActor* cpExtensions::Visualization::ImageSliceActors::
-GetImageActor( )
-{
-  return( this->m_Actor.GetPointer( ) );
-}
-
-// -------------------------------------------------------------------------
-const vtkImageActor* cpExtensions::Visualization::ImageSliceActors::
-GetImageActor( ) const
-{
-  return( this->m_Actor.GetPointer( ) );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Visualization::ImageSliceActors::
-AddMesh( vtkPolyData* mesh )
-{
-  SourceActor< vtkCutter > a;
-  a.Create( );
-  a.Source->SetInputData( mesh );
-  a.Source->SetCutFunction( this->m_Mapper->GetSlicePlane( ) );
-  a.Source->SetValue( 0, 0 );
-  a.Source->GenerateTrianglesOff( );
-  a.Source->Update( );
-  a.Modified( );
-  this->m_Meshes[ mesh ] = a;
-  this->AddItem( a.Actor );
-
-  auto ren = this->m_Style->GetCurrentRenderer( );
-  if( ren != NULL )
-    if( ren->HasViewProp( this->m_Actor ) )
-      ren->AddViewProp( a.Actor );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Visualization::ImageSliceActors::
-AssociateSlice( Self* slice )
-{
-  this->m_AssociatedSlices.push_back( slice );
-  this->Modified( );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Visualization::ImageSliceActors::
-CleanAssociatedSlices( )
-{
-  this->m_AssociatedSlices.clear( );
-  this->Modified( );
-}
-
-// -------------------------------------------------------------------------
-cpExtensions::Interaction::ImageInteractorStyle*
-cpExtensions::Visualization::ImageSliceActors::
-GetStyle( )
-{
-  return( dynamic_cast< TStyle* >( this->m_Style.GetPointer( ) ) );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Visualization::ImageSliceActors::
-SetStyle( vtkInteractorStyle* st )
-{
-  this->m_Style = st;
-  this->Modified( );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Visualization::ImageSliceActors::
-PushInto( vtkRenderer* ren )
-{
-  this->InitTraversal( );
-  vtkProp* prop;
-  while( ( prop = this->GetNextProp( ) ) != NULL )
-    ren->AddViewProp( prop );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Visualization::ImageSliceActors::
-PopFrom( vtkRenderer* ren )
-{
-  this->InitTraversal( );
-  vtkProp* prop;
-  while( ( prop = this->GetNextProp( ) ) != NULL )
-    ren->RemoveViewProp( prop );
-}
-
-// -------------------------------------------------------------------------
-long cpExtensions::Visualization::ImageSliceActors::
-GetSliceNumber( ) const
-{
-  if( this->m_Mapper.GetPointer( ) != NULL )
-    return( this->m_Mapper->GetSliceNumber( ) );
-  else
-    return( -1 );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Visualization::ImageSliceActors::
-SetSliceNumber( long slice )
-{
-  if( this->m_Mapper.GetPointer( ) == NULL )
-    return;
-
-  // Get orientation
-  int a = this->m_Mapper->GetOrientation( );
-
-  // Check extent
-  int ext[ 6 ];
-  this->m_Mapper->GetInput( )->GetExtent( ext );
-  long rs = slice;
-  rs = ( rs > ext[ a << 1 ] )? rs: ext[ a << 1 ];
-  rs = ( rs < ext[ ( a << 1 ) + 1 ] )? rs: ext[ ( a << 1 ) + 1 ];
-
-  // Update pipeline
-  this->m_Mapper->SetSliceNumber( rs );
-
-  // Update display extent (this isn't done automatically)
-  ext[ a << 1 ] = ext[ ( a << 1 ) + 1 ] = rs;
-  this->m_Actor->SetDisplayExtent( ext );
-
-  this->m_Mapper->Modified( );
-  this->m_Actor->Modified( );
-  this->_ConfigureCursor( );
-  this->Modified( );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Visualization::ImageSliceActors::
-ShowPixelText( double* pos )
-{
-  if( this->m_Mapper.GetPointer( ) != NULL )
-  {
-    char axis;
-    int axId = this->m_Mapper->GetOrientation( );
-    if     ( axId == 0 ) axis = 'X';
-    else if( axId == 1 ) axis = 'Y';
-    else if( axId == 2 ) axis = 'Z';
-    long slice = this->GetSliceNumber( );
-
-    vtkImageData* image = this->m_Actor->GetInput( );
-    int ijk[ 3 ];
-    double pcoords[ 3 ];
-    image->ComputeStructuredCoordinates( pos, ijk, pcoords );
-    ijk[ axId ] = slice;
-
-    int ext[ 6 ];
-    image->GetExtent( ext );
-    if(
-      ext[ 0 ] <= ijk[ 0 ] && ijk[ 0 ] <= ext[ 1 ] &&
-      ext[ 2 ] <= ijk[ 1 ] && ijk[ 1 ] <= ext[ 3 ] &&
-      ext[ 4 ] <= ijk[ 2 ] && ijk[ 2 ] <= ext[ 5 ]
-      )
-    {
-      int nScl = image->GetNumberOfScalarComponents( );
-      std::stringstream str;
-      str
-        << "[" << ijk[ 0 ]
-        << "," << ijk[ 1 ]
-        << "," << ijk[ 2 ] << "]=(";
-      str <<
-        image->GetScalarComponentAsFloat( ijk[ 0 ], ijk[ 1 ], ijk[ 2 ], 0 );
-      for( int n = 1; n < nScl; ++n )
-        str
-          << " "
-          << image->GetScalarComponentAsFloat(
-            ijk[ 0 ], ijk[ 1 ], ijk[ 2 ], n
-            );
-      str << ")";
-
-#if defined(WIN32)
-      sprintf_s(
-        this->m_TextBuffer, MAX_TEXT_BUFFER, "Axis: %c (%d)\nPixel %s",
-        axis, slice, str.str( ).c_str( )
-        );
-#else // defined(WIN32)
-      std::sprintf(
-        this->m_TextBuffer, "Axis: %c (%ld)\nPixel %s",
-        axis, slice, str.str( ).c_str( )
-        );
-#endif // defined(WIN32)
-    } // fi
-  }
-  else
-    this->m_TextBuffer[ 0 ] = '\0';
-  this->m_TextActor->SetInput( this->m_TextBuffer );
-  this->m_TextActor->Modified( );
-  this->Modified( );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Visualization::ImageSliceActors::
-GetScalarRange( double r[ 2 ] ) const
-{
-  r[ 0 ] = this->m_ScalarRange[ 0 ];
-  r[ 1 ] = this->m_ScalarRange[ 1 ];
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Visualization::ImageSliceActors::
-SetScalarRange( const double& a, const double& b )
-{
-  this->m_ManualScalarRange = true;
-  this->m_ScalarRange[ 0 ] = a;
-  this->m_ScalarRange[ 1 ] = b;
-  this->SetWindowLevel( 1, 0.5 );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Visualization::ImageSliceActors::
-UnsetScalarRange( )
-{
-  auto image = this->m_Actor->GetInput( );
-  if( image != NULL )
-  {
-    double r[ 2 ];
-    image->GetScalarRange( r );
-    this->SetScalarRange( r[ 0 ], r[ 1 ] );
-
-  } // fi
-  this->m_ManualScalarRange = false;
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Visualization::ImageSliceActors::
-SetWindowLevel( const double& w, const double& l )
-{
-  static const double _0 = double( 0 );
-  static const double _1 = double( 1 );
-
-  double rw = ( w < _0 )? _0: ( ( w > _1 )? _1: w );
-  double rl = ( l < _0 )? _0: ( ( l > _1 )? _1: l );
-
-  double d = this->m_ScalarRange[ 1 ] - this->m_ScalarRange[ 0 ];
-  rw *= d;
-  rl *= d;
-  rl += this->m_ScalarRange[ 0 ];
-
-  if( this->m_Actor.GetPointer( ) != NULL )
-  {
-    this->m_Actor->GetProperty( )->SetColorWindow( rw );
-    this->m_Actor->GetProperty( )->SetColorLevel( rl );
-    this->Modified( );
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-double cpExtensions::Visualization::ImageSliceActors::
-GetWindow( ) const
-{
-  if( this->m_Actor.GetPointer( ) != NULL )
-    return( this->m_Actor->GetProperty( )->GetColorWindow( ) );
-  else
-    return( double( 0 ) );
-}
-
-// -------------------------------------------------------------------------
-double cpExtensions::Visualization::ImageSliceActors::
-GetLevel( ) const
-{
-  if( this->m_Actor.GetPointer( ) != NULL )
-    return( this->m_Actor->GetProperty( )->GetColorLevel( ) );
-  else
-    return( double( 0 ) );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Visualization::ImageSliceActors::
-Render( )
-{
-  auto ren = this->m_Style->GetCurrentRenderer( );
-  if( ren == NULL )
-    return;
-  auto win = ren->GetRenderWindow( );
-  if( win == NULL )
-    return;
-  win->Render( );
-}
-
-// -------------------------------------------------------------------------
-cpExtensions::Visualization::ImageSliceActors::
-ImageSliceActors( )
-  : Superclass( ),
-    m_ManualScalarRange( false )
-{
-  this->Clear( );
-}
-
-// -------------------------------------------------------------------------
-cpExtensions::Visualization::ImageSliceActors::
-~ImageSliceActors( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Visualization::ImageSliceActors::
-_ConfigureInput( int orientation )
-{
-  // Prepare main image
-  this->m_Mapper->SetOrientation( orientation );
-  this->m_Mapper->Update( );
-  this->m_Actor->GetProperty( )->SetOpacity( 0.8 );
-  this->m_Actor->Modified( );
-  auto st = this->GetStyle( );
-  if( st != NULL )
-    st->AssociateImageActor( this->m_Actor );
-  this->AddItem( this->m_Actor );
-
-  // Prepare main cursor
-  this->_ConfigureCursor( );
-  this->AddItem( this->m_Cursor.Actor );
-
-  // Prepare window/level
-  if( !( this->m_ManualScalarRange ) )
-    this->UnsetScalarRange( );
-
-  // Add all other actors
-  this->AddItem( this->m_TextActor );
-
-  // Put it in the first slice
-  auto image = this->m_Mapper->GetInput( );
-  int ext[ 6 ];
-  image->GetExtent( ext );
-  this->SetSliceNumber( ext[ orientation << 1 ] );
-
-  /*
-    if( this->m_Style.GetPointer( ) != NULL )
-    this->AddItem( this->m_Actor );
-
-    this->SetSliceNumber( this->GetSliceNumberMinValue( ) );
-    this->ResetCursor( );
-    this->Modified( );
-
-    // Reset cursors
-    this->ResetCursor( );
-    this->ResetAxesCursor( );
-
-    // Update window/level ranges
-    vtkImageData* data = this->GetInputImage( );
-    if( data != NULL )
-    {
-    double r[ 2 ];
-    data->GetScalarRange( r );
-    this->m_WLRange[ 0 ] = double( 0 );
-    this->m_WLRange[ 1 ] = r[ 1 ] - r[ 0 ];
-    this->m_WLRange[ 2 ] = r[ 0 ];
-    this->m_WLRange[ 3 ] = r[ 1 ];
-    this->ResetWindowLevel( );
-
-    // Configure blender
-    this->m_BlenderBase = vtkSmartPointer< vtkImageData >::New( );
-    this->m_BlenderBase->ShallowCopy( data );
-    this->m_BlenderBase->AllocateScalars( VTK_UNSIGNED_CHAR, 1 );
-    std::memset(
-    this->m_BlenderBase->GetScalarPointer( ), 0,
-    this->m_BlenderBase->GetActualMemorySize( )
-    );
-    this->m_Blender->AddInputData( this->m_BlenderBase );
-
-    } // fi
-  */
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Visualization::ImageSliceActors::
-_ConfigureCursor( )
-{
-  int a = this->m_Mapper->GetOrientation( );
-  double bounds[ 6 ];
-  this->m_Actor->GetBounds( bounds );
-  bounds[   a << 1       ] += 1e-5;
-  bounds[ ( a << 1 ) + 1 ] += 1e-5;
-
-  this->m_Cursor.Source->SetModelBounds( bounds );
-  this->m_Cursor.Source->AllOn( );
-  this->m_Cursor.Actor->GetProperty( )->SetOpacity( 1 );
-  this->m_Cursor.Actor->GetProperty( )->SetLineWidth( 3 );
-  this->m_Cursor.Modified( );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Visualization::ImageSliceActors::
-_MouseMoveCommand(
-  void* data,
-  const TStyle::ButtonID& btn,
-  int* idx, double* pos,
-  bool alt, bool ctr, bool sft
-  )
-{
-  ImageSliceActors* self = reinterpret_cast< ImageSliceActors* >( data );
-  if( self == NULL )
-    return;
-
-  if( btn == TStyle::ButtonID_None )
-  {
-    self->ShowPixelText( pos );
-    self->m_Cursor.Source->SetFocalPoint( pos );
-    self->m_Cursor.Source->Modified( );
-    self->m_Cursor.Modified( );
-    self->Render( );
-  }
-  else if( btn == TStyle::ButtonID_Right )
-  {
-    if( !alt && !ctr && sft )
-    {
-      int a0 = self->m_Mapper->GetOrientation( );
-      int a1 = ( a0 + 1 ) % 3;
-      int a2 = ( a0 + 2 ) % 3;
-      double dx = pos[ a1 ] - self->m_StartMouseEvent[ a1 ];
-      double dy = pos[ a2 ] - self->m_StartMouseEvent[ a2 ];
-      double bounds[ 6 ];
-      self->m_Actor->GetBounds( bounds );
-      dx /= bounds[ ( a1 << 1 ) + 1 ] - bounds[ a1 << 1 ];
-      dy /= bounds[ ( a2 << 1 ) + 1 ] - bounds[ a2 << 1 ];
-      double w = self->m_StartWindow + dx;
-      double l = self->m_StartLevel + dy;
-
-      self->SetWindowLevel( w, l );
-      self->Render( );
-      for(
-        auto aIt = self->m_AssociatedSlices.begin( );
-        aIt != self->m_AssociatedSlices.end( );
-        ++aIt
-        )
-      {
-        ( *aIt )->SetWindowLevel( w, l );
-        ( *aIt )->Render( );
-
-      } // rof
-
-    } // fi
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Visualization::ImageSliceActors::
-_MouseClickCommand(
-  void* data,
-  const TStyle::ButtonID& btn,
-  int* idx, double* pos,
-  bool alt, bool ctr, bool sft
-  )
-{
-  ImageSliceActors* self = reinterpret_cast< ImageSliceActors* >( data );
-  if( self == NULL )
-    return;
-
-  self->m_StartMouseEvent[ 0 ] = pos[ 0 ];
-  self->m_StartMouseEvent[ 1 ] = pos[ 1 ];
-  self->m_StartMouseEvent[ 2 ] = pos[ 2 ];
-
-  if( btn == TStyle::ButtonID_Right )
-  {
-    if( !alt && !ctr && sft )
-    {
-      double r[ 2 ];
-      self->GetScalarRange( r );
-      double d = r[ 1 ] - r[ 0 ];
-      self->m_StartWindow = self->GetWindow( ) / d;
-      self->m_StartLevel = ( self->GetLevel( ) - r[ 0 ] ) / d;
-
-    } // fi
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Visualization::ImageSliceActors::
-_MouseWheelCommand(
-  void* data,
-  const int& dir, bool alt, bool ctr, bool sft
-  )
-{
-  ImageSliceActors* self = reinterpret_cast< ImageSliceActors* >( data );
-  if( self == NULL )
-    return;
-  auto ren = self->m_Style->GetCurrentRenderer( );
-  if( ren == NULL )
-    return;
-  auto cam = ren->GetActiveCamera( );
-  if( cam == NULL )
-    return;
-  auto win = ren->GetRenderWindow( );
-  if( win == NULL )
-    return;
-
-  // Get previous values
-  int a = self->m_Mapper->GetOrientation( );
-  double bounds[ 6 ];
-  self->m_Actor->GetBounds( bounds );
-  double prev_pos = bounds[ a << 1 ];
-
-  // Move slice
-  long slice = self->GetSliceNumber( ) + dir * ( ( sft )? 10: 1 );
-  self->SetSliceNumber( slice );
-  self->m_Actor->GetBounds( bounds );
-
-  // Reset camera
-  double cam_pos[ 3 ];
-  cam->GetPosition( cam_pos );
-  cam_pos[ a ] += bounds[ a << 1 ] - prev_pos;
-  cam->SetPosition( cam_pos );
-
-  // Update text
-  self->ShowPixelText( self->m_Cursor.Source->GetFocalPoint( ) );
-
-  // Update all
-  win->Render( );
-  for(
-    auto aIt = self->m_AssociatedSlices.begin( );
-    aIt != self->m_AssociatedSlices.end( );
-    ++aIt
-    )
-  {
-    if( ( *aIt )->m_Mapper->GetOrientation( ) == a )
-    {
-      ( *aIt )->SetSliceNumber( slice );
-      ( *aIt )->Render( );
-
-    } // fi
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Visualization::ImageSliceActors::
-_KeyCommand(
-  void* data,
-  const char& key
-  )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Visualization::ImageSliceActors::
-_EnterCommand( void* data )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Visualization::ImageSliceActors::
-_LeaveCommand( void* data )
-{
-}
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Visualization/ImageSliceActors.h b/lib/cpExtensions/Visualization/ImageSliceActors.h
deleted file mode 100644 (file)
index 6aca9db..0000000
+++ /dev/null
@@ -1,190 +0,0 @@
-#ifndef __CPEXTENSIONS__VISUALIZATION__IMAGESLICEACTORS__H__
-#define __CPEXTENSIONS__VISUALIZATION__IMAGESLICEACTORS__H__
-
-#include <cpExtensions/cpExtensions_Export.h>
-
-#include <cpExtensions/Interaction/ImageInteractorStyle.h>
-#include <map>
-#include <vtkActor.h>
-#include <vtkCursor3D.h>
-#include <vtkCutter.h>
-#include <vtkImageActor.h>
-#include <vtkImageSliceMapper.h>
-#include <vtkPolyDataMapper.h>
-#include <vtkPropCollection.h>
-#include <vtkTextActor.h>
-#include <vtkSmartPointer.h>
-
-#define MAX_TEXT_BUFFER 1024
-
-class vtkAlgorithmOutput;
-class vtkImageData;
-class vtkRenderer;
-
-namespace cpExtensions
-{
-  namespace Visualization
-  {
-    /**
-     */
-    class cpExtensions_EXPORT ImageSliceActors
-      : public vtkPropCollection
-    {
-    public:
-      typedef ImageSliceActors Self;
-      typedef cpExtensions::Interaction::ImageInteractorStyle TStyle;
-      typedef TStyle::TMouseCommand            TMouseCommand;
-      typedef TStyle::TMouseWheelCommand       TMouseWheelCommand;
-      typedef TStyle::TKeyCommand              TKeyCommand;
-      typedef TStyle::TVoidCommand             TVoidCommand;
-      typedef TStyle::TMouseMoveCommand        TMouseMoveCommand;
-      typedef TStyle::TMouseClickCommand       TMouseClickCommand;
-      typedef TStyle::TMouseDoubleClickCommand TMouseDoubleClickCommand;
-      typedef TStyle::TExposeCommand           TExposeCommand;
-      typedef TStyle::TConfigureCommand        TConfigureCommand;
-      typedef TStyle::TEnterCommand            TEnterCommand;
-      typedef TStyle::TLeaveCommand            TLeaveCommand;
-      typedef void ( *TSlicesCommand )( double*, int, void* );
-      typedef void ( *TWindowLevelCommand )( double, double, void* );
-      typedef TVoidCommand TRenderCommand;
-
-      template< class _TSource >
-        struct SourceActor
-      {
-        vtkSmartPointer< _TSource >          Source;
-        vtkSmartPointer< vtkPolyDataMapper > Mapper;
-        vtkSmartPointer< vtkActor >          Actor;
-        void Create( )
-          {
-            this->Source = vtkSmartPointer< _TSource >::New( );
-            this->Mapper = vtkSmartPointer< vtkPolyDataMapper >::New( );
-            this->Actor = vtkSmartPointer< vtkActor >::New( );
-            this->Mapper->SetInputConnection( this->Source->GetOutputPort( ) );
-            this->Actor->SetMapper( this->Mapper );
-          }
-        void Modified( )
-          {
-            this->Source->Modified( );
-            this->Mapper->Modified( );
-            this->Actor->Modified( );
-          }
-      };
-
-    public:
-      vtkTypeMacro( ImageSliceActors, vtkPropCollection );
-
-      cpExtensions_BaseInteractorStyle_Commands( Slices );
-      cpExtensions_BaseInteractorStyle_Commands( WindowLevel );
-      cpExtensions_BaseInteractorStyle_Commands( Render );
-
-    public:
-      static Self* New( );
-
-      void Clear( );
-      void SetInputConnection( vtkAlgorithmOutput* aout, int orientation );
-      void SetInputData( vtkImageData* data, int orientation );
-      void SetInputActor( vtkProp* actor, int orientation );
-      vtkImageData* GetInputData( );
-
-      vtkImageActor* GetImageActor( );
-      const vtkImageActor* GetImageActor( ) const;
-
-      void AddMesh( vtkPolyData* mesh );
-
-      void AssociateSlice( Self* slice );
-      void CleanAssociatedSlices( );
-
-      TStyle* GetStyle( );
-      void SetStyle( vtkInteractorStyle* st );
-
-      void PushInto( vtkRenderer* ren );
-      void PopFrom( vtkRenderer* ren );
-
-      long GetSliceNumber( ) const;
-      void SetSliceNumber( long slice );
-
-      void ShowPixelText( double* pos );
-
-      void GetScalarRange( double r[ 2 ] ) const;
-      void SetScalarRange( const double& a, const double& b );
-      void UnsetScalarRange( );
-      void SetWindowLevel( const double& w, const double& l );
-      double GetWindow( ) const;
-      double GetLevel( ) const;
-
-      void Render( );
-
-    protected:
-      ImageSliceActors( );
-      virtual ~ImageSliceActors( );
-
-      void _ConfigureInput( int orientation );
-      void _ConfigureCursor( );
-
-      // Events
-      static void _MouseMoveCommand(
-        void* data,
-        const TStyle::ButtonID& btn,
-        int* idx, double* pos,
-        bool alt, bool ctr, bool sft
-        );
-      static void _MouseClickCommand(
-        void* data,
-        const TStyle::ButtonID& btn,
-        int* idx, double* pos,
-        bool alt, bool ctr, bool sft
-        );
-      static void _MouseWheelCommand(
-        void* data,
-        const int& dir, bool alt, bool ctr, bool sft
-        );
-      static void _KeyCommand(
-        void* data,
-        const char& key
-        );
-      static void _EnterCommand( void* data );
-      static void _LeaveCommand( void* data );
-
-    private:
-      // Purposely not implemented
-      ImageSliceActors( const Self& );
-      Self& operator=( const Self& );
-
-    protected:
-      // Main image
-      vtkSmartPointer< vtkImageSliceMapper > m_Mapper;
-      vtkSmartPointer< vtkImageActor >       m_Actor;
-
-      // Secondary slices
-      std::vector< vtkSmartPointer< Self > > m_AssociatedSlices;
-
-      // Associated meshes
-      std::map< vtkPolyData*, SourceActor< vtkCutter > > m_Meshes;
-
-      // Cursor
-      SourceActor< vtkCursor3D > m_Cursor;
-
-      // Text
-      char                            m_TextBuffer[ MAX_TEXT_BUFFER ];
-      vtkSmartPointer< vtkTextActor > m_TextActor;
-
-      // WindowLevel
-      double m_ScalarRange[ 2 ];
-      bool m_ManualScalarRange;
-
-      // Style
-      vtkSmartPointer< vtkInteractorStyle > m_Style;
-
-      // Events-related data
-      double m_StartMouseEvent[ 3 ];
-      double m_StartWindow;
-      double m_StartLevel;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#endif // __CPEXTENSIONS__VISUALIZATION__IMAGESLICEACTORS__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Visualization/MeshMapper.h b/lib/cpExtensions/Visualization/MeshMapper.h
deleted file mode 100644 (file)
index c6aee51..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-#ifndef __CPEXTENSIONS__VISUALIZATION__MESHMAPPER__H__
-#define __CPEXTENSIONS__VISUALIZATION__MESHMAPPER__H__
-
-#include <itkConceptChecking.h>
-#include <vtkMapper.h>
-
-class vtkActor;
-class vtkInformation;
-class vtkRenderer;
-
-namespace cpExtensions
-{
-  namespace Visualization
-  {
-    /**
-     */
-    template< class M >
-    class MeshMapper
-      : public vtkMapper
-    {
-    public:
-      typedef MeshMapper Self;
-      vtkTypeMacro( MeshMapper, vtkMapper );
-
-      typedef M                             TMesh;
-      typedef typename M::PointType         TPoint;
-      typedef typename TPoint::VectorType   TVector;
-      typedef typename TPoint::CoordRepType TScalar;
-      itkStaticConstMacro( Dimension, unsigned int, M::PointDimension );
-
-      // Begin concept checking
-#ifdef ITK_USE_CONCEPT_CHECKING
-      /* TODO
-         itkConceptMacro(
-         InputMeshIsTwoOrThreeimensionalCheck,
-         ( itk::Concept::SameDimensionOrMinusOne< Self::Dimension, 3 > )
-         );
-         itkConceptMacro(
-         ScalarTypeHasFloatResolution,
-         ( itk::Concept::IsFloatingPoint< TScalar > )
-         );
-      */
-#endif
-      // End concept checking
-
-    public:
-      // TODO: static Self* New( );
-      virtual void ShallowCopy( vtkAbstractMapper* m );
-
-      virtual void SetInputData( M* in );
-      virtual M* GetInput( );
-      virtual const M* GetInput( ) const;
-
-      virtual double* GetBounds( );
-      virtual void GetBounds( double bounds[ 6 ] );
-
-      virtual void RenderPiece( vtkRenderer* aren, vtkActor* act ) = 0;
-      virtual void Render( vtkRenderer* aren, vtkActor* act );
-      virtual void Update( );
-      virtual void Update( int port );
-
-      virtual void MapDataArrayToVertexAttribute(
-        const char* vertexAttributeName,
-        const char* dataArrayName,
-        int fieldAssociation,
-        int componentno = -1
-        );
-      virtual void MapDataArrayToMultiTextureAttribute(
-        int unit,
-        const char* dataArrayName,
-        int fieldAssociation,
-        int componentno = -1
-        );
-      virtual void RemoveVertexAttributeMapping(
-        const char* vertexAttributeName
-        );
-      virtual void RemoveAllVertexAttributeMappings( );
-
-    protected:
-      MeshMapper( );
-      virtual ~MeshMapper( );
-
-      virtual void ComputeBounds( );
-      virtual int FillInputPortInformation( int port, vtkInformation* info );
-
-    private:
-      // These methods aren't supposed to be implemented
-      MeshMapper( const Self& other );
-      Self& operator=( const Self& other );
-
-    protected:
-      typename M::Pointer Mesh;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#ifndef ITK_MANUAL_INSTANTIATION
-#include <cpExtensions/Visualization/MeshMapper.hxx>
-#endif // ITK_MANUAL_INSTANTIATION
-
-#endif // __CPEXTENSIONS__VISUALIZATION__MESHMAPPER__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Visualization/MeshMapper.hxx b/lib/cpExtensions/Visualization/MeshMapper.hxx
deleted file mode 100644 (file)
index 4374ffe..0000000
+++ /dev/null
@@ -1,224 +0,0 @@
-#ifndef __CPEXTENSIONS__VISUALIZATION__MESHMAPPER__HXX__
-#define __CPEXTENSIONS__VISUALIZATION__MESHMAPPER__HXX__
-
-#include <vtkInformation.h>
-#include <vtkMath.h>
-
-// TODO: #include <cpExtensions/Visualization/OpenGLMeshMapper.h>
-
-// -------------------------------------------------------------------------
-/* TODO
-   template< class M >
-   typename cpExtensions::Visualization::MeshMapper< M >::
-   Self* cpExtensions::Visualization::MeshMapper< M >::
-   New( )
-   {
-   return(
-   cpExtensions::Visualization::OpenGLMeshMapper< M >::New( )
-   );
-   }
-*/
-
-// -------------------------------------------------------------------------
-template< class M >
-void cpExtensions::Visualization::MeshMapper< M >::
-ShallowCopy( vtkAbstractMapper* m )
-{
-  Self* mapper = Self::SafeDownCast( m );
-  if( m != NULL )
-    this->SetInputData( mapper->GetInput( ) );
-  this->vtkMapper::ShallowCopy( m );
-}
-
-// -------------------------------------------------------------------------
-template< class M >
-void cpExtensions::Visualization::MeshMapper< M >::
-SetInputData( M* in )
-{
-  if( this->Mesh != in )
-  {
-    this->Mesh = in;
-    this->Modified( );
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-template< class M >
-M* cpExtensions::Visualization::MeshMapper< M >::
-GetInput( )
-{
-  return( this->Mesh );
-}
-
-// -------------------------------------------------------------------------
-template< class M >
-const M* cpExtensions::Visualization::MeshMapper< M >::
-GetInput( ) const
-{
-  return( this->Mesh );
-}
-
-// -------------------------------------------------------------------------
-template< class M >
-double* cpExtensions::Visualization::MeshMapper< M >::
-GetBounds( )
-{
-  // do we have an input
-  if( this->Mesh.IsNull( ) )
-  {
-    vtkMath::UninitializeBounds( this->Bounds );
-    return( this->Bounds );
-  }
-  else
-  {
-    this->Mesh->Update( );
-    this->ComputeBounds( );
-
-    if( !vtkMath::AreBoundsInitialized( this->Bounds ) )
-      return( NULL );
-    return( this->Bounds );
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-template< class M >
-void cpExtensions::Visualization::MeshMapper< M >::
-GetBounds( double bounds[ 6 ] )
-{
-  this->Superclass::GetBounds( bounds );
-}
-
-// -------------------------------------------------------------------------
-template< class M >
-void cpExtensions::Visualization::MeshMapper< M >::
-Render( vtkRenderer* aren, vtkActor* act )
-{
-  if( this->Mesh.IsNull( ) )
-  {
-    vtkErrorMacro( "Mapper has no input." );
-    return;
-
-  } // fi
-  this->RenderPiece( aren, act );
-}
-
-// -------------------------------------------------------------------------
-template< class M >
-void cpExtensions::Visualization::MeshMapper< M >::
-Update( )
-{
-  // TODO:
-  std::cout << "Update( )" << std::endl;
-}
-
-// -------------------------------------------------------------------------
-template< class M >
-void cpExtensions::Visualization::MeshMapper< M >::
-Update( int port )
-{
-  // TODO:
-  std::cout << "Update( port = " << port << " ) "<< std::endl;
-}
-
-// -------------------------------------------------------------------------
-template< class M >
-void cpExtensions::Visualization::MeshMapper< M >::
-MapDataArrayToVertexAttribute(
-  const char* vertexAttributeName,
-  const char* dataArrayName,
-  int fieldAssociation,
-  int componentno
-  )
-{
-  vtkErrorMacro( "Not implemented at this level..." );
-}
-
-// -------------------------------------------------------------------------
-template< class M >
-void cpExtensions::Visualization::MeshMapper< M >::
-MapDataArrayToMultiTextureAttribute(
-  int unit,
-  const char* dataArrayName,
-  int fieldAssociation,
-  int componentno
-  )
-{
-  vtkErrorMacro( "Not implemented at this level..." );
-}
-
-// -------------------------------------------------------------------------
-template< class M >
-void cpExtensions::Visualization::MeshMapper< M >::
-RemoveVertexAttributeMapping( const char* vertexAttributeName )
-{
-  vtkErrorMacro( "Not implemented at this level..." );
-}
-
-// -------------------------------------------------------------------------
-template< class M >
-void cpExtensions::Visualization::MeshMapper< M >::
-RemoveAllVertexAttributeMappings( )
-{
-  vtkErrorMacro( "Not implemented at this level..." );
-}
-
-// -------------------------------------------------------------------------
-template< class M >
-cpExtensions::Visualization::MeshMapper< M >::
-MeshMapper( )
-  : Superclass( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class M >
-cpExtensions::Visualization::MeshMapper< M >::
-~MeshMapper( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class M >
-void cpExtensions::Visualization::MeshMapper< M >::
-ComputeBounds( )
-{
-  static const TScalar _0 = TScalar( 0 );
-  if( this->Mesh.IsNotNull( ) )
-  {
-    const typename M::BoundingBoxType* bb = this->Mesh->GetBoundingBox( );
-    TPoint minP = bb->GetMinimum( );
-    TPoint maxP = bb->GetMaximum( );
-    this->Bounds[ 0 ] = double( ( Self::Dimension >= 1 )? minP[ 0 ]: _0 );
-    this->Bounds[ 1 ] = double( ( Self::Dimension >= 1 )? maxP[ 0 ]: _0 );
-    this->Bounds[ 2 ] = double( ( Self::Dimension >= 2 )? minP[ 1 ]: _0 );
-    this->Bounds[ 3 ] = double( ( Self::Dimension >= 2 )? maxP[ 1 ]: _0 );
-    this->Bounds[ 4 ] = double( ( Self::Dimension >= 3 )? minP[ 2 ]: _0 );
-    this->Bounds[ 5 ] = double( ( Self::Dimension >= 3 )? maxP[ 2 ]: _0 );
-  }
-  else
-  {
-    this->Bounds[ 0 ] =
-      this->Bounds[ 1 ] =
-      this->Bounds[ 2 ] =
-      this->Bounds[ 3 ] =
-      this->Bounds[ 4 ] =
-      this->Bounds[ 5 ] =
-      double( 0 );
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-template< class M >
-int cpExtensions::Visualization::MeshMapper< M >::
-FillInputPortInformation( int port, vtkInformation* info )
-{
-  info->Set( vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE( ), "itk::Mesh" );
-  return( 1 );
-}
-
-#endif // __CPEXTENSIONS__VISUALIZATION__MESHMAPPER__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Visualization/OpenGLMeshMapper.h b/lib/cpExtensions/Visualization/OpenGLMeshMapper.h
deleted file mode 100644 (file)
index ff80ce3..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-#ifndef __CPEXTENSIONS__VISUALIZATION__OPENGLMESHMAPPER__H__
-#define __CPEXTENSIONS__VISUALIZATION__OPENGLMESHMAPPER__H__
-
-#include <vector>
-
-#include <cpExtensions/Visualization/MeshMapper.h>
-
-namespace cpExtensions
-{
-  namespace Visualization
-  {
-    /**
-     */
-    template< class M >
-    class OpenGLMeshMapper
-      : public MeshMapper< M >
-    {
-    public:
-      typedef OpenGLMeshMapper Self;
-      vtkTypeMacro( OpenGLMeshMapper, MeshMapper< M > );
-
-      typedef typename Superclass::TMesh   TMesh;
-      typedef typename Superclass::TPoint  TPoint;
-      typedef typename Superclass::TVector TVector;
-      typedef typename Superclass::TScalar TScalar;
-
-    protected:
-      typedef unsigned int                            TIndex;
-      typedef typename M::CellType                    TCell;
-      typedef typename M::CellsContainer              TCellsContainer;
-      typedef typename TCellsContainer::ConstIterator TCellIt;
-
-    public:
-      virtual const char* GetNameOfClass( ) const
-        { return( "cpExtensions::OpenGLMeshMapper" ); }
-      static Self* New( );
-
-      virtual void RenderPiece( vtkRenderer* aren, vtkActor* act );
-      virtual void ReleaseGraphicsResources( vtkWindow* win );
-      virtual int Draw( vtkRenderer* aren, vtkActor* act );
-
-    protected:
-      OpenGLMeshMapper( );
-      virtual ~OpenGLMeshMapper( );
-
-      bool _ConfigureOpenGL( );
-
-    private:
-      // Purposely not implemented
-      OpenGLMeshMapper( const Self& other );
-      Self& operator=( const Self& other );
-
-    protected:
-      vtkIdType TotalCells;
-      // TODO: vtkSmartPointer< vtkOpenGLTexture > InternalColorTexture;
-
-      bool FirstRendering;
-
-      bool VBOSupported;
-      unsigned int VBOID1, VBOID2;
-
-      std::vector< unsigned int > Sizes;
-      std::vector< TIndex > Indices;
-      long IndexElementType;
-      long ElementValueType;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#ifndef ITK_MANUAL_INSTANTIATION
-#include <cpExtensions/Visualization/OpenGLMeshMapper.hxx>
-#endif // ITK_MANUAL_INSTANTIATION
-
-#endif // __CPEXTENSIONS__VISUALIZATION__OPENGLMESHMAPPER__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Visualization/OpenGLMeshMapper.hxx b/lib/cpExtensions/Visualization/OpenGLMeshMapper.hxx
deleted file mode 100644 (file)
index ab2fc60..0000000
+++ /dev/null
@@ -1,672 +0,0 @@
-#ifndef __CPEXTENSIONS__VISUALIZATION__OPENGLMESHMAPPER__HXX__
-#define __CPEXTENSIONS__VISUALIZATION__OPENGLMESHMAPPER__HXX__
-
-#include <algorithm>
-#include <string>
-
-#include <vtkCommand.h>
-#include <vtkImageData.h>
-#include <vtkOpenGLRenderer.h>
-#include <vtkProperty.h>
-#include <vtkRenderWindow.h>
-#include <vtkTimerLog.h>
-#include <vtkUnsignedCharArray.h>
-
-#include <vtkOpenGL.h>
-#include <vtkOpenGLError.h>
-#define GL_GLEXT_PROTOTYPES
-#include <GL/glext.h>
-
-#ifdef _WIN32
-
-PFNGLGENBUFFERSARBPROC           pglGenBuffers = 0;
-PFNGLBINDBUFFERARBPROC           pglBindBuffer = 0;
-PFNGLBUFFERDATAARBPROC           pglBufferData = 0;
-PFNGLBUFFERSUBDATAARBPROC        pglBufferSubData = 0;
-PFNGLDELETEBUFFERSARBPROC        pglDeleteBuffers = 0;
-PFNGLGETBUFFERPARAMETERIVARBPROC pglGetBufferParameteriv = 0;
-PFNGLMAPBUFFERARBPROC            pglMapBuffer = 0;
-PFNGLUNMAPBUFFERARBPROC          pglUnmapBuffer = 0;
-
-#define glGenBuffers           pglGenBuffers
-#define glBindBuffer           pglBindBuffer
-#define glBufferData           pglBufferData
-#define glBufferSubData        pglBufferSubData
-#define glDeleteBuffers        pglDeleteBuffers
-#define glGetBufferParameteriv pglGetBufferParameteriv
-#define glMapBuffer            pglMapBuffer
-#define glUnmapBuffer          pglUnmapBuffer
-
-#endif // _WIN32
-
-// some definitions for what the polydata has in it
-#define CPPLUGINS_VTK_PDM_NORMALS            0x0001
-#define CPPLUGINS_VTK_PDM_COLORS             0x0002
-#define CPPLUGINS_VTK_PDM_TCOORDS            0x0004
-#define CPPLUGINS_VTK_PDM_CELL_COLORS        0x0008
-#define CPPLUGINS_VTK_PDM_CELL_NORMALS       0x0010
-#define CPPLUGINS_VTK_PDM_POINT_TYPE_FLOAT   0x0020
-#define CPPLUGINS_VTK_PDM_POINT_TYPE_DOUBLE  0x0040
-#define CPPLUGINS_VTK_PDM_NORMAL_TYPE_FLOAT  0x0080
-#define CPPLUGINS_VTK_PDM_NORMAL_TYPE_DOUBLE 0x0100
-#define CPPLUGINS_VTK_PDM_TCOORD_TYPE_FLOAT  0x0200
-#define CPPLUGINS_VTK_PDM_TCOORD_TYPE_DOUBLE 0x0400
-#define CPPLUGINS_VTK_PDM_TCOORD_1D          0x0800
-#define CPPLUGINS_VTK_PDM_OPAQUE_COLORS      0x1000
-#define CPPLUGINS_VTK_PDM_USE_FIELD_DATA     0x2000
-
-// -------------------------------------------------------------------------
-template< class M >
-typename cpExtensions::Visualization::OpenGLMeshMapper< M >::
-Self* cpExtensions::Visualization::OpenGLMeshMapper< M >::
-New( )
-{
-  return( new Self( ) );
-}
-
-// -------------------------------------------------------------------------
-template< class M >
-void cpExtensions::Visualization::OpenGLMeshMapper< M >::
-RenderPiece( vtkRenderer* aren, vtkActor* act )
-{
-  vtkOpenGLClearErrorMacro( );
-
-  // Is the renderer correctly initialized?
-  if( aren->GetRenderWindow( )->CheckAbortStatus( ) )
-    return;
-
-  // Get input mesh ( and check it )
-  M* in = this->GetInput( );
-  if( !in )
-  {
-    vtkErrorMacro( << "No input!" );
-    return;
-
-  } // fi
-  unsigned long numPts = in->GetNumberOfPoints( );
-  if( numPts == 0 )
-  {
-    vtkDebugMacro( << "No points!" );
-    return;
-
-  } // fi
-
-  // Update input, if needed
-  this->InvokeEvent( vtkCommand::StartEvent, NULL );
-  if( !this->Static )
-    in->Update( );
-  this->InvokeEvent( vtkCommand::EndEvent, NULL );
-
-  // Update some visualization objects
-  if( !this->LookupTable )
-    this->CreateDefaultLookupTable( );
-  aren->GetRenderWindow( )->MakeCurrent( );
-
-  // Check clipping planes
-  int numClipPlanes = this->GetNumberOfClippingPlanes( );
-  if( numClipPlanes > 6 )
-  {
-    vtkErrorMacro( << "OpenGL has a limit of 6 clipping planes" );
-    numClipPlanes = 6;
-
-  } // fi
-
-  // Add all the clipping planes
-  double eq[ 4 ];
-  GLenum clipPlaneId;
-  for( int i = 0; i < numClipPlanes; i++ )
-  {
-    this->GetClippingPlaneInDataCoords( act->GetMatrix( ), i, eq );
-
-    clipPlaneId = static_cast< GLenum >( GL_CLIP_PLANE0 + i );
-    glEnable( clipPlaneId );
-    glClipPlane( clipPlaneId, eq );
-
-  } // rof
-
-  // Configure opacity
-  this->MapScalars( act->GetProperty( )->GetOpacity( ) );
-
-  // Configure textures
-  if( this->ColorTextureMap )
-  {
-    /* TODO
-       if( !this->InternalColorTexture )
-       {
-       this->InternalColorTexture =
-       vtkSmartPointer< vtkOpenGLTexture >::New( );
-       this->InternalColorTexture->RepeatOff( );
-
-       } // fi
-       this->InternalColorTexture->SetInputData( this->ColorTextureMap );
-    */
-
-    // Keep color from interacting with texture.
-    float info[ 4 ] = { float( 1 ), float( 1 ), float( 1 ), float( 1 ) };
-    glMaterialfv( GL_FRONT_AND_BACK, GL_DIFFUSE, info );
-
-  } // fi
-
-  int noAbort = 1;
-  bool renderNeeded = !this->ImmediateModeRendering;
-  renderNeeded     &= !this->GetGlobalImmediateModeRendering( );
-
-  // Something has changed in the pipeline?
-  if(
-    this->GetMTime( ) > this->BuildTime ||
-    in->GetMTime( ) > this->BuildTime ||
-    act->GetProperty( )->GetMTime( ) > this->BuildTime ||
-    aren->GetRenderWindow( ) != this->LastWindow
-    )
-  {
-    // Update visualization objects
-    this->ReleaseGraphicsResources( aren->GetRenderWindow( ) );
-    this->LastWindow = aren->GetRenderWindow( );
-
-    if( renderNeeded )
-    {
-      // Load textures
-      /* TODO
-         if( this->ColorTextureMap )
-         this->InternalColorTexture->Load( aren );
-      */
-
-      // Time the actual drawing
-      this->Timer->StartTimer( );
-      noAbort = this->Draw( aren, act );
-      this->Timer->StopTimer( );
-
-    } // fi
-
-    if( noAbort )
-      this->BuildTime.Modified( );
-  }
-  else
-  {
-    // If nothing changed, just draw the mapped mesh
-    if( renderNeeded )
-    {
-      // Load textures
-      /* TODO
-         if( this->ColorTextureMap )
-         this->InternalColorTexture->Load( aren );
-      */
-
-      // Time the actual drawing
-      this->Timer->StartTimer( );
-      this->Draw( aren, act );
-      this->Timer->StopTimer( );
-
-    } // fi
-
-  } // fi
-
-  // if we are in immediate mode rendering we always
-  // want to draw the primitives here
-  if( !renderNeeded )
-  {
-    // Load textures
-    /* TODO
-       if( this->ColorTextureMap )
-       this->InternalColorTexture->Load( aren );
-    */
-
-    // Time the actual drawing
-    this->Timer->StartTimer( );
-    this->Draw( aren, act );
-    this->Timer->StopTimer( );
-
-  } // fi
-  this->TimeToDraw = this->Timer->GetElapsedTime( );
-
-  // If the timer is not accurate enough, set it to a small
-  // time so that it is not zero
-  if( this->TimeToDraw == double( 0 ) )
-    this->TimeToDraw = double( 1e-3 );
-
-  for( int c = 0; c < numClipPlanes; c++ )
-  {
-    GLenum clipPlaneId = static_cast< GLenum >( GL_CLIP_PLANE0 + c );
-    glDisable( clipPlaneId );
-
-  } // rof
-  vtkOpenGLCheckErrorMacro( "failed after RenderPiece\n" );
-}
-
-// -------------------------------------------------------------------------
-template< class M >
-void cpExtensions::Visualization::OpenGLMeshMapper< M >::
-ReleaseGraphicsResources( vtkWindow* win )
-{
-  if( win && win->GetMapped( ) )
-  {
-    win->MakeCurrent( );
-    vtkOpenGLCheckErrorMacro( "failed after ReleaseGraphicsResources" );
-
-  } // fi
-  this->LastWindow = NULL;
-
-  // TAKEN FROM BASIC vtkOpenGLPolyDataMapper:
-  // We may not want to do this here.
-  /* TODO
-     if( this->InternalColorTexture )
-     this->InternalColorTexture->ReleaseGraphicsResources( win );
-  */
-}
-
-// -------------------------------------------------------------------------
-template< class M >
-int cpExtensions::Visualization::OpenGLMeshMapper< M >::
-Draw( vtkRenderer* aren, vtkActor* act )
-{
-  vtkOpenGLClearErrorMacro( );
-
-  // First and second initialization check
-  if( this->FirstRendering )
-    this->FirstRendering = !( this->_ConfigureOpenGL( ) );
-  if( this->FirstRendering )
-    return( 0 );
-
-  vtkOpenGLRenderer* ren = static_cast< vtkOpenGLRenderer* >( aren );
-  int rep, interpolation;
-  float tran;
-  vtkProperty* prop;
-  vtkUnsignedCharArray* c = NULL;
-  int tDim;
-  int noAbort = 1;
-  M* input = this->GetInput( );
-  int cellScalars = 0;
-  vtkIdType cellNum = 0;
-  int cellNormals;
-  int resolve = 0, zResolve = 0;
-  double zRes = 0.0;
-
-  // get the property
-  prop = act->GetProperty( );
-
-  // get the transparency
-  tran = prop->GetOpacity( );
-
-  // if the primitives are invisable then get out of here
-  if( tran <= 0.0 )
-    return( noAbort );
-
-  // get the representation ( e.g., surface / wireframe / points )
-  rep = prop->GetRepresentation( );
-
-  // get the shading interpolation
-  interpolation = prop->GetInterpolation( );
-
-  // are they cell or point scalars
-  if( this->Colors )
-  {
-    c = this->Colors;
-    if(
-      (
-        this->ScalarMode == VTK_SCALAR_MODE_USE_CELL_DATA ||
-        this->ScalarMode == VTK_SCALAR_MODE_USE_CELL_FIELD_DATA ||
-        this->ScalarMode == VTK_SCALAR_MODE_USE_FIELD_DATA ||
-        !input->GetPointData( )
-        ) &&
-      this->ScalarMode != VTK_SCALAR_MODE_USE_POINT_FIELD_DATA
-      )
-      cellScalars = 1;
-
-  } // fi
-
-  cellNormals = 1;
-
-  // if we are doing vertex colors then set lmcolor to adjust
-  // the current materials ambient and diffuse values using
-  // vertex color commands otherwise tell it not to.
-  glDisable( GL_COLOR_MATERIAL );
-  if( c )
-  {
-    GLenum lmcolorMode;
-    if( this->ScalarMaterialMode == VTK_MATERIALMODE_DEFAULT )
-    {
-      if( prop->GetAmbient( ) > prop->GetDiffuse( ) )
-        lmcolorMode = GL_AMBIENT;
-      else
-        lmcolorMode = GL_DIFFUSE;
-    }
-    else if( this->ScalarMaterialMode == VTK_MATERIALMODE_AMBIENT_AND_DIFFUSE )
-      lmcolorMode = GL_AMBIENT_AND_DIFFUSE;
-    else if( this->ScalarMaterialMode == VTK_MATERIALMODE_AMBIENT )
-      lmcolorMode = GL_AMBIENT;
-    else // if( this->ScalarMaterialMode == VTK_MATERIALMODE_DIFFUSE )
-      lmcolorMode = GL_DIFFUSE;
-    glColorMaterial( GL_FRONT_AND_BACK, lmcolorMode );
-    glEnable( GL_COLOR_MATERIAL );
-
-  } // fi
-
-  unsigned long idx = 0;
-  if( c )
-  {
-    idx |= CPPLUGINS_VTK_PDM_COLORS;
-    if( c->GetName( ) )
-      idx |= CPPLUGINS_VTK_PDM_OPAQUE_COLORS;
-  } // fi
-  if( cellScalars )
-    idx |= CPPLUGINS_VTK_PDM_CELL_COLORS;
-  if( cellNormals )
-    idx |= CPPLUGINS_VTK_PDM_CELL_NORMALS;
-  if( this->ScalarMode == VTK_SCALAR_MODE_USE_FIELD_DATA )
-    idx |= CPPLUGINS_VTK_PDM_USE_FIELD_DATA;
-
-  // store the types in the index
-  if( typeid( typename M::CoordRepType ) == typeid( float ) )
-    idx |= CPPLUGINS_VTK_PDM_POINT_TYPE_FLOAT;
-  else if( typeid( typename M::CoordRepType ) == typeid( double ) )
-    idx |= CPPLUGINS_VTK_PDM_POINT_TYPE_DOUBLE;
-
-  if( typeid( typename M::CoordRepType ) == typeid( float ) )
-    idx |= CPPLUGINS_VTK_PDM_NORMAL_TYPE_FLOAT;
-  else if( typeid( typename M::CoordRepType ) == typeid( double ) )
-    idx |= CPPLUGINS_VTK_PDM_NORMAL_TYPE_DOUBLE;
-
-  if( this->GetResolveCoincidentTopology( ) )
-  {
-    resolve = 1;
-    if( this->GetResolveCoincidentTopology( ) == VTK_RESOLVE_SHIFT_ZBUFFER )
-    {
-      zResolve = 1;
-      zRes = this->GetResolveCoincidentTopologyZShift( );
-    }
-    else
-    {
-#ifdef GL_VERSION_1_1
-      double f, u;
-      glEnable( GL_POLYGON_OFFSET_FILL );
-      this->GetResolveCoincidentTopologyPolygonOffsetParameters( f, u );
-      glPolygonOffset( f, u );
-#endif
-    } // fi
-
-  } // fi
-
-  // we need to know the total number of cells so that we can
-  // report progress
-  this->TotalCells = input->GetNumberOfCells( );
-
-  // Actual render
-  if( this->VBOSupported )
-  {
-    glBindBuffer( GL_ARRAY_BUFFER, GLuint( this->VBOID1 ) );
-
-    void* ptr = glMapBuffer( GL_ARRAY_BUFFER, GL_READ_WRITE );
-    if( ptr != NULL )
-    {
-      // Copy source points to OpenGL buffer
-      const TPoint* src =
-        input->GetPoints( )->CastToSTLContainer( ).data( );
-      TPoint* dest = reinterpret_cast< TPoint* >( ptr );
-      if( dest != NULL )
-        std::copy( src, src + input->GetNumberOfPoints( ), dest );
-      glUnmapBuffer( GL_ARRAY_BUFFER );
-
-    } // fi
-
-    std::size_t pSize = input->GetNumberOfPoints( ) * sizeof( TPoint );
-
-    // Bind vertices, normals and indices
-    glNormalPointer( this->ElementValueType, 0, ( void* )( pSize ) );
-    glVertexPointer( 3, this->ElementValueType, 0, 0 );
-    glBindBuffer( GL_ELEMENT_ARRAY_BUFFER, GLuint( this->VBOID2 ) );
-
-    // Prepare to render polygons
-    glEnableClientState( GL_NORMAL_ARRAY );
-    glEnableClientState( GL_VERTEX_ARRAY );
-
-    // Iterate over all input cells
-    unsigned int accum = 0;
-    const TCellsContainer* cells = input->GetCells( );
-    TCellIt cIt = cells->Begin( );
-    for( unsigned int nCell = 0; cIt != cells->End( ); nCell++, cIt++ )
-    {
-      const TCell* cell = cIt.Value( );
-      unsigned int nPoints = this->Sizes[ nCell ];
-
-      // Infere rendering mode
-      GLenum mode;
-      switch( prop->GetRepresentation( ) )
-      {
-      case VTK_SURFACE:
-      {
-        switch( nPoints )
-        {
-        case  1: mode = GL_POINTS;    break;
-        case  2: mode = GL_LINES;     break;
-        case  3: mode = GL_TRIANGLES; break;
-        case  4: mode = GL_QUADS;     break;
-        default: mode = GL_POLYGON;   break;
-        } // hctiws
-        // TODO: GL_LINE_STRIP,
-        // TODO: GL_LINE_LOOP,
-        // TODO: GL_TRIANGLE_STRIP,
-        // TODO: GL_TRIANGLE_FAN,
-        // TODO: GL_QUAD_STRIP,
-      }
-      break;
-      case VTK_WIREFRAME: mode = GL_LINE_LOOP; break;
-      case VTK_POINTS: default: mode = GL_POINTS; break;
-      } // hctiws
-
-      // Actual draw all elements
-      if( nPoints < 3 )
-        glDisable( GL_LIGHTING );
-
-      if( nPoints == 2 && zResolve )
-        glDepthRange( zRes, 1. );
-
-      glDrawElements(
-        mode, nPoints, this->IndexElementType, ( GLuint* )( 0 ) + accum
-        );
-      accum += nPoints;
-
-      if( nPoints < 3 )
-        glEnable( GL_LIGHTING );
-
-    } // rof
-
-    glDisableClientState( GL_VERTEX_ARRAY );
-    glDisableClientState( GL_NORMAL_ARRAY );
-
-    glBindBuffer( GL_ARRAY_BUFFER, 0 );
-    glBindBuffer( GL_ELEMENT_ARRAY_BUFFER, 0 );
-  }
-  else
-  {
-    std::cout << "Not VBO rendering!!!" << std::endl;
-
-  } // fi
-
-  if( resolve )
-  {
-    if( zResolve )
-      glDepthRange( 0., 1. );
-    else
-    {
-#ifdef GL_VERSION_1_1
-      glDisable( GL_POLYGON_OFFSET_FILL );
-#endif
-    } // fi
-
-  } // fi
-  vtkOpenGLCheckErrorMacro( "failed after Draw" );
-  this->UpdateProgress( 1.0 );
-  return( noAbort );
-}
-
-// -------------------------------------------------------------------------
-template< class M >
-cpExtensions::Visualization::OpenGLMeshMapper< M >::
-OpenGLMeshMapper( )
-  : Superclass( ),
-    TotalCells( 0 ),
-    FirstRendering( true ),
-    VBOID1( 0 ),
-    VBOID2( 0 )
-{
-  // Infere index element type
-  switch( sizeof( TIndex ) )
-  {
-  case 1 : this->IndexElementType = GL_UNSIGNED_BYTE;  break;
-  case 2 : this->IndexElementType = GL_UNSIGNED_SHORT; break;
-  case 4 : this->IndexElementType = GL_UNSIGNED_INT;   break;
-  default: this->IndexElementType = GL_UNSIGNED_BYTE;  break;
-  } // hctiws
-
-  // Infere point value type
-  if( typeid( TScalar ) == typeid( float ) )
-    this->ElementValueType = GL_FLOAT;
-  else
-    this->ElementValueType = GL_DOUBLE;
-}
-
-// -------------------------------------------------------------------------
-template< class M >
-cpExtensions::Visualization::OpenGLMeshMapper< M >::
-~OpenGLMeshMapper( )
-{
-  if( this->LastWindow )
-    this->ReleaseGraphicsResources( this->LastWindow );
-  if( this->VBOSupported )
-  {
-    GLuint id1 = GLuint( this->VBOID1 );
-    GLuint id2 = GLuint( this->VBOID2 );
-    if( id1 != GLuint( 0 ) ) glDeleteBuffers( 1, &id1 );
-    if( id2 != GLuint( 0 ) ) glDeleteBuffers( 1, &id2 );
-    this->VBOID1 = this->VBOID2 = 0;
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-template< class M >
-bool cpExtensions::Visualization::OpenGLMeshMapper< M >::
-_ConfigureOpenGL( )
-{
-  M* input = this->GetInput( );
-  if( input == NULL )
-    return( false );
-
-#ifdef _WIN32
-  // Get pointers to GL functions
-  glGenBuffers = reinterpret_cast< PFNGLGENBUFFERSARBPROC >
-    ( wglGetProcAddress( "glGenBuffers" ) );
-  glBindBuffer = reinterpret_cast< PFNGLBINDBUFFERARBPROC >
-    ( wglGetProcAddress( "glBindBuffer" ) );
-  glBufferData = reinterpret_cast< PFNGLBUFFERDATAARBPROC >
-    ( wglGetProcAddress( "glBufferData" ) );
-  glBufferSubData = reinterpret_cast< PFNGLBUFFERSUBDATAARBPROC >
-    ( wglGetProcAddress( "glBufferSubData" ) );
-  glDeleteBuffers = reinterpret_cast< PFNGLDELETEBUFFERSARBPROC >
-    ( wglGetProcAddress( "glDeleteBuffers" ) );
-  glGetBufferParameteriv =
-    reinterpret_cast< PFNGLGETBUFFERPARAMETERIVARBPROC >
-    ( wglGetProcAddress( "glGetBufferParameteriv" ) );
-  glMapBuffer = reinterpret_cast< PFNGLMAPBUFFERARBPROC >
-    ( wglGetProcAddress( "glMapBuffer" ) );
-  glUnmapBuffer = reinterpret_cast< PFNGLUNMAPBUFFERARBPROC >
-    ( wglGetProcAddress( "glUnmapBuffer" ) );
-
-  // Check once again VBO extension
-  if(
-    glGenBuffers != NULL &&
-    glBindBuffer != NULL &&
-    glBufferData != NULL &&
-    glBufferSubData != NULL &&
-    glMapBuffer != NULL &&
-    glUnmapBuffer != NULL &&
-    glDeleteBuffers != NULL &&
-    glGetBufferParameteriv != NULL
-    )
-    this->VBOSupported = true;
-  else
-    this->VBOSupported = false;
-#else // _WIN32
-  // Check if VBO ( Vertex Buffer Object ) is supported
-  std::string str = ( const char* )( glGetString( GL_EXTENSIONS ) );
-  this->VBOSupported =
-    ( str.find( "GL_ARB_vertex_buffer_object" ) != std::string::npos );
-#endif // _WIN32 
-
-  if( this->VBOSupported )
-  {
-    // Create points and normals buffers
-    GLuint id1;
-    std::size_t pSize = input->GetNumberOfPoints( ) * sizeof( TPoint );
-    std::size_t nSize =
-      input->GetPointNormalsContainer( ).size( ) * sizeof( TVector );
-    const TPoint* verts =
-      input->GetPoints( )->CastToSTLContainer( ).data( );
-    const TVector* norms = input->GetPointNormalsContainer( ).data( );
-    glGenBuffers( 1, &id1 );
-    glBindBuffer( GL_ARRAY_BUFFER, id1 );
-    glBufferData( GL_ARRAY_BUFFER, pSize + nSize, 0, GL_STREAM_DRAW );
-    glBufferSubData( GL_ARRAY_BUFFER, 0, pSize, verts );
-    glBufferSubData( GL_ARRAY_BUFFER, pSize, nSize, norms );
-    this->VBOID1 = ( unsigned int )( id1 );
-
-    // Create indices buffer
-    const TCellsContainer* cells = input->GetCells( );
-    if( cells == NULL )
-    {
-      itkExceptionMacro(
-        << "This QuadEdgeMesh does not have any cells!"
-        );
-
-    } // fi
-
-    TCellIt cIt;
-    unsigned int cellPointsCount = 0;
-    this->Sizes.clear( );
-    for( cIt = cells->Begin( ); cIt != cells->End( ); cIt++ )
-    {
-      this->Sizes.push_back( cIt.Value( )->GetNumberOfPoints( ) );
-      cellPointsCount += this->Sizes.back( );
-
-    } // rof
-    this->Indices.resize( cellPointsCount );
-    unsigned int indId = 0;
-    for( cIt = cells->Begin( ); cIt != cells->End( ); cIt++ )
-    {
-      const typename M::TQuadEdgeCell* cell =
-        dynamic_cast< const typename M::TQuadEdgeCell* >( cIt.Value( ) );
-      const typename M::TPrimalEdge* edge =
-        cell->GetEntryPrimalEdge( );
-      typename M::TPrimalEdge::ConstIterator iIt = edge->BeginLnext( );
-      for( ; iIt != edge->EndLnext( ); ++iIt )
-        this->Indices[ indId++ ] = ( *iIt )->GetOrigin( );
-
-    } // fi
-
-    // Attach index buffer to VBO
-    std::size_t iSize = std::size_t( this->Indices.size( ) );
-    iSize            *= sizeof( TIndex );
-    const unsigned int* indices = this->Indices.data( );
-    GLuint id2;
-    glGenBuffers( 1, &id2 );
-    glBindBuffer( GL_ARRAY_BUFFER, id2 );
-    glBufferData( GL_ARRAY_BUFFER, iSize, indices, GL_STATIC_DRAW );
-
-    int bSize;
-    glGetBufferParameteriv( GL_ARRAY_BUFFER, GL_BUFFER_SIZE, &bSize );
-    if( iSize != bSize )
-    {
-      glDeleteBuffers( 1, &id2 );
-      id2 = 0;
-      vtkErrorMacro( << "Data size mismatch with input array" );
-
-    } // fi
-    this->VBOID2 = ( unsigned int )( id2 );
-
-  } // fi
-  return( true );
-}
-
-#endif // __CPEXTENSIONS__VISUALIZATION__OPENGLMESHMAPPER__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Visualization/PolyLineParametricPathToPolyData.h b/lib/cpExtensions/Visualization/PolyLineParametricPathToPolyData.h
deleted file mode 100644 (file)
index cfc481e..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-#ifndef __CPEXTENSIONS__VISUALIZATION__POLYLINEPARAMETRICPATHTOPOLYDATA__H__
-#define __CPEXTENSIONS__VISUALIZATION__POLYLINEPARAMETRICPATHTOPOLYDATA__H__
-
-#include <vtkPolyDataAlgorithm.h>
-#include <itkImageBase.h>
-
-namespace cpExtensions
-{
-  namespace Visualization
-  {
-    /**
-     */
-    template< class _TPolyLine >
-    class PolyLineParametricPathToPolyData
-      : public vtkPolyDataAlgorithm
-    {
-    public:
-      typedef PolyLineParametricPathToPolyData Self;
-
-      typedef _TPolyLine TPolyLine;
-      typedef itk::ImageBase< TPolyLine::PathDimension > TImage;
-
-    public:
-      vtkTypeMacro( PolyLineParametricPathToPolyData, vtkPolyDataAlgorithm );
-
-    public:
-      static Self* New( );
-
-      const TPolyLine* GetInput( ) const;
-      const TImage* GetReferenceImage( ) const;
-      void SetInput( const TPolyLine* pl );
-      void SetReferenceImage( const TImage* i );
-
-    protected:
-      PolyLineParametricPathToPolyData( );
-      virtual ~PolyLineParametricPathToPolyData( );
-
-      int RequestData(
-        vtkInformation* information,
-        vtkInformationVector** input,
-        vtkInformationVector* output
-        );
-      int RequestInformation(
-        vtkInformation* information,
-        vtkInformationVector** input,
-        vtkInformationVector* output
-        );
-
-    private:
-      // Purposely not implemented
-      PolyLineParametricPathToPolyData( const Self& );
-      void operator=( const Self& );
-
-    protected:
-      const TPolyLine* m_PolyLine;
-      const TImage* m_ReferenceImage;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#ifndef ITK_MANUAL_INSTANTIATION
-#include <cpExtensions/Visualization/PolyLineParametricPathToPolyData.hxx>
-#endif // ITK_MANUAL_INSTANTIATION
-
-#endif //  __CPEXTENSIONS__VISUALIZATION__POLYLINEPARAMETRICPATHTOPOLYDATA__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Visualization/PolyLineParametricPathToPolyData.hxx b/lib/cpExtensions/Visualization/PolyLineParametricPathToPolyData.hxx
deleted file mode 100644 (file)
index e3d23c7..0000000
+++ /dev/null
@@ -1,213 +0,0 @@
-#ifndef __CPEXTENSIONS__VISUALIZATION__POLYLINEPARAMETRICPATHTOPOLYDATA__HXX__
-#define __CPEXTENSIONS__VISUALIZATION__POLYLINEPARAMETRICPATHTOPOLYDATA__HXX__
-
-#include <vtkCellArray.h>
-#include <vtkInformation.h>
-#include <vtkInformationVector.h>
-#include <vtkSmartPointer.h>
-
-// -------------------------------------------------------------------------
-template< class _TPolyLine >
-typename
-cpExtensions::Visualization::PolyLineParametricPathToPolyData< _TPolyLine >::
-Self*
-cpExtensions::Visualization::PolyLineParametricPathToPolyData< _TPolyLine >::
-New( )
-{
-  return( new Self( ) );
-}
-
-// -------------------------------------------------------------------------
-template< class _TPolyLine >
-const typename
-cpExtensions::Visualization::PolyLineParametricPathToPolyData< _TPolyLine >::
-TPolyLine*
-cpExtensions::Visualization::PolyLineParametricPathToPolyData< _TPolyLine >::
-GetInput( ) const
-{
-  return( this->m_PolyLine );
-}
-
-// -------------------------------------------------------------------------
-template< class _TPolyLine >
-const typename
-cpExtensions::Visualization::PolyLineParametricPathToPolyData< _TPolyLine >::
-TImage*
-cpExtensions::Visualization::PolyLineParametricPathToPolyData< _TPolyLine >::
-GetReferenceImage( ) const
-{
-  return( this->m_ReferenceImage );
-}
-
-// -------------------------------------------------------------------------
-template< class _TPolyLine >
-void
-cpExtensions::Visualization::PolyLineParametricPathToPolyData< _TPolyLine >::
-SetInput( const TPolyLine* pl )
-{
-  if( this->m_PolyLine != pl )
-  {
-    this->m_PolyLine = pl;
-    this->Modified( );
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-template< class _TPolyLine >
-void
-cpExtensions::Visualization::PolyLineParametricPathToPolyData< _TPolyLine >::
-SetReferenceImage( const TImage* i )
-{
-  if( this->m_ReferenceImage != i )
-  {
-    this->m_ReferenceImage = i;
-    this->Modified( );
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-template< class _TPolyLine >
-cpExtensions::Visualization::PolyLineParametricPathToPolyData< _TPolyLine >::
-PolyLineParametricPathToPolyData( )
-  : vtkPolyDataAlgorithm( ),
-    m_PolyLine( NULL ),
-    m_ReferenceImage( NULL )
-{
-  this->SetNumberOfInputPorts( 0 );
-}
-
-// -------------------------------------------------------------------------
-template< class _TPolyLine >
-cpExtensions::Visualization::PolyLineParametricPathToPolyData< _TPolyLine >::
-~PolyLineParametricPathToPolyData( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class _TPolyLine >
-int
-cpExtensions::Visualization::PolyLineParametricPathToPolyData< _TPolyLine >::
-RequestData(
-  vtkInformation* information,
-  vtkInformationVector** input,
-  vtkInformationVector* output
-  )
-{
-  static const unsigned int dim = _TPolyLine::PathDimension;
-
-  if( this->m_PolyLine == NULL )
-    return( 0 );
-
-  // Get output
-  vtkInformation* info = output->GetInformationObject( 0 );
-  vtkPolyData* out = vtkPolyData::SafeDownCast(
-    info->Get( vtkDataObject::DATA_OBJECT( ) )
-    );
-
-  // Get input data
-  auto lst = this->m_PolyLine->GetVertexList( );
-
-  // Prepare points
-  vtkPoints* points = out->GetPoints( );
-  if( points == NULL )
-  {
-    points = vtkPoints::New( );
-    out->SetPoints( points );
-    points->Delete( );
-
-  } // fi
-  points->SetNumberOfPoints( lst->Size( ) );
-
-  // Prepare cells
-  /* TODO
-     vtkSmartPointer< vtkCellArray > verts =
-     vtkSmartPointer< vtkCellArray >::New( );
-  */
-  vtkSmartPointer< vtkCellArray > lines =
-    vtkSmartPointer< vtkCellArray >::New( );
-
-  for( unsigned int i = 0; i < lst->Size( ); ++i )
-  {
-    auto idx = lst->GetElement( i );
-    if( this->m_ReferenceImage != NULL )
-    {
-      typename TImage::PointType pnt;
-      this->m_ReferenceImage->TransformContinuousIndexToPhysicalPoint( idx, pnt );
-      if( dim == 1 )
-        points->SetPoint( i, pnt[ 0 ], 0, 0 );
-      else if( dim == 2 )
-        points->SetPoint( i, pnt[ 0 ], pnt[ 1 ], 0 );
-      else
-        points->SetPoint( i, pnt[ 0 ], pnt[ 1 ], pnt[ 2 ] );
-    }
-    else
-    {
-      if( dim == 1 )
-        points->SetPoint( i, idx[ 0 ], 0, 0 );
-      else if( dim == 2 )
-        points->SetPoint( i, idx[ 0 ], idx[ 1 ], 0 );
-      else
-        points->SetPoint( i, idx[ 0 ], idx[ 1 ], idx[ 2 ] );
-
-    } // fi
-    /* TODO
-       verts->InsertNextCell( 1 );
-       verts->InsertCellPoint( i );
-    */
-    if( i > 0 )
-    {
-      lines->InsertNextCell( 2 );
-      lines->InsertCellPoint( i - 1 );
-      lines->InsertCellPoint( i );
-
-    } // fi
-
-  } // rof
-  out->SetPoints( points );
-  // TODO: out->SetVerts( verts );
-  out->SetLines( lines );
-  return( 1 );
-}
-
-// -------------------------------------------------------------------------
-template< class _TPolyLine >
-int
-cpExtensions::Visualization::PolyLineParametricPathToPolyData< _TPolyLine >::
-RequestInformation(
-  vtkInformation* information,
-  vtkInformationVector** input,
-  vtkInformationVector* output
-  )
-{
-  vtkInformation* info = output->GetInformationObject( 0 );
-  /* TODO
-     info->Set(
-     vtkStreamingDemandDrivenPipeline::MAXIMUM_NUMBER_OF_PIECES( ), -1
-     );
-  */
-
-  if( this->m_PolyLine != NULL && this->m_ReferenceImage != NULL )
-  {
-    /* TODO
-       typename C::TScalar len = this->m_RGC->GetTotalLength( );
-       typename C::TScalar s0 = this->m_RGC->Gets0( );
-       typename C::TPoint p0 = this->m_RGC->Axis( s0 );
-       typename C::TPoint p1 = this->m_RGC->Axis( s0 + len );
-
-       info->Set(
-       vtkStreamingDemandDrivenPipeline::WHOLE_BOUNDING_BOX( ),
-       double( p0[ 0 ] ), double( p1[ 0 ] ),
-       double( p0[ 1 ] ), double( p1[ 1 ] ),
-       double( p0[ 2 ] ), double( p1[ 2 ] )
-       );
-    */
-
-  } // fi
-  return( 1 );
-}
-
-#endif //  __CPEXTENSIONS__VISUALIZATION__POLYLINEPARAMETRICPATHTOPOLYDATA__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Visualization/SeedWidgetCorrector.cxx b/lib/cpExtensions/Visualization/SeedWidgetCorrector.cxx
deleted file mode 100644 (file)
index f76cc9f..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-#include <cpExtensions/Visualization/SeedWidgetCorrector.h>
-
-#include <vtkCellPicker.h>
-#include <vtkSeedWidget.h>
-
-#include <vtkHandleRepresentation.h>
-#include <vtkHandleWidget.h>
-#include <vtkRenderWindowInteractor.h>
-
-// -------------------------------------------------------------------------
-cpExtensions::Visualization::SeedWidgetCorrector*
-cpExtensions::Visualization::SeedWidgetCorrector::
-New( )
-{
-  return( new cpExtensions::Visualization::SeedWidgetCorrector );
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Visualization::SeedWidgetCorrector::
-Configure( vtkCellPicker* picker )
-{
-  this->m_Picker = picker;
-}
-
-// -------------------------------------------------------------------------
-void cpExtensions::Visualization::SeedWidgetCorrector::
-Execute( vtkObject* caller, unsigned long eventId, void* arguments )
-{
-  vtkSeedWidget* wdg = dynamic_cast< vtkSeedWidget* >( caller );
-  if( wdg == NULL || this->m_Picker == NULL )
-    return;
-
-  if( eventId == vtkCommand::PlacePointEvent )
-  {
-    // Get newly added handle and its associated objects
-    int hId = *( reinterpret_cast< int* >( arguments ) );
-    vtkHandleWidget* hWdg = wdg->GetSeed( hId );
-    if( hWdg == NULL )
-      return;
-    vtkHandleRepresentation* hRep =
-      dynamic_cast< vtkHandleRepresentation* >( hWdg->GetRepresentation( ) );
-    if( hRep == NULL )
-      return;
-
-    // Get clicked point and 3D scene
-    double p[ 3 ];
-    hRep->GetDisplayPosition( p );
-    vtkRenderWindowInteractor* iren = wdg->GetInteractor( );
-    if( iren == NULL )
-      return;
-    vtkRenderer* ren =
-      iren->FindPokedRenderer( int( p[ 0 ] ), int( p[ 1 ] ) );
-    if( ren == NULL )
-      return;
-
-    // Correct point with given picker
-    double q[ 3 ];
-    this->m_Picker->Pick( p[ 0 ], p[ 1 ], p[ 2 ], ren );
-    this->m_Picker->GetPickPosition( q );
-    hRep->SetWorldPosition( q );
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-cpExtensions::Visualization::SeedWidgetCorrector::
-SeedWidgetCorrector( )
-  : vtkCommand( ),
-    m_Picker( NULL )
-{
-}
-
-// -------------------------------------------------------------------------
-cpExtensions::Visualization::SeedWidgetCorrector::
-~SeedWidgetCorrector( )
-{
-}
-
-// eof - $RCSfile$
diff --git a/lib/cpExtensions/Visualization/SeedWidgetCorrector.h b/lib/cpExtensions/Visualization/SeedWidgetCorrector.h
deleted file mode 100644 (file)
index 541d60c..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef __CPEXTENSIONS__VISUALIZATION__SEEDWIDGETCORRECTOR__H__
-#define __CPEXTENSIONS__VISUALIZATION__SEEDWIDGETCORRECTOR__H__
-
-#include <cpExtensions/cpExtensions_Export.h>
-
-#include <vtkCommand.h>
-
-class vtkCellPicker;
-class vtkSeedWidget;
-
-namespace cpExtensions
-{
-  namespace Visualization
-  {
-    /**
-     */
-    class cpExtensions_EXPORT SeedWidgetCorrector
-      : public vtkCommand
-    {
-    public:
-      static SeedWidgetCorrector* New( );
-
-      void Configure( vtkCellPicker* picker );
-
-      virtual void Execute(
-        vtkObject* caller,
-        unsigned long eventId,
-        void* arguments
-        );
-
-    protected:
-      SeedWidgetCorrector( );
-      virtual ~SeedWidgetCorrector( );
-
-    protected:
-      vtkCellPicker* m_Picker;
-    };
-
-  } // ecapseman
-
-} // ecapseman
-
-#endif // __CPEXTENSIONS__VISUALIZATION__SEEDWIDGETCORRECTOR__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpPipelineEditor/BaseQtMainWindow.cxx b/lib/cpPipelineEditor/BaseQtMainWindow.cxx
deleted file mode 100644 (file)
index 1cc22c3..0000000
+++ /dev/null
@@ -1,531 +0,0 @@
-#include <cpPipelineEditor/BaseQtMainWindow.h>
-
-#include <cpExtensions/QT/SimpleMPRWidget.h>
-#include <cpPlugins/ActorPropertiesQtDialog.h>
-#include <cpPipelineEditor/Editor.h>
-#include <vtkRenderer.h>
-#include <QApplication>
-#include <QColorDialog>
-#include <QDir>
-#include <QFileDialog>
-#include <QFileInfo>
-#include <QMessageBox>
-#include <QTreeWidget>
-
-// -------------------------------------------------------------------------
-bool cpPipelineEditor::BaseQtMainWindow::_TBlocker::
-eventFilter( QObject* obj, QEvent* event )
-{
-  return( true ); // -> Block all events
-  /* NOTE: this should be the correct implementation:
-     switch( event->type( ) )
-     {
-     //list event you want to prevent here ...
-     case QEvent::KeyPress:
-     case QEvent::KeyRelease:
-     case QEvent::MouseButtonRelease:
-     case QEvent::MouseButtonPress:
-     case QEvent::MouseButtonDblClick:
-     //...
-     return( true );
-     } // hctiws
-     return( this->QObject::eventFilter( obj, event ) );
-  */
-}
-
-// -------------------------------------------------------------------------
-cpPipelineEditor::BaseQtMainWindow::
-BaseQtMainWindow(
-  int argc, char* argv[],
-  QApplication* app,
-  QWidget* parent
-  )
-  : Superclass( parent ),
-    m_Application( app ),
-    m_PluginsPath( "." ),
-    m_Interface( NULL ),
-    m_Workspace( NULL ),
-    m_TreeWidget( NULL ),
-    m_Editor( NULL ),
-    m_MPR( NULL )
-{
-  this->m_ApplicationPath = ".";
-  QFileInfo info( argv[ 0 ] );
-  if( info.exists( ) )
-    this->m_ApplicationPath = info.canonicalPath( ).toStdString( );
-}
-
-// -------------------------------------------------------------------------
-cpPipelineEditor::BaseQtMainWindow::
-~BaseQtMainWindow( )
-{
-  if( this->m_Workspace != NULL )
-    delete this->m_Workspace;
-  delete this->m_Interface;
-}
-
-// -------------------------------------------------------------------------
-void cpPipelineEditor::BaseQtMainWindow::
-_Configure(
-  QTreeWidget* tree,
-  cpExtensions::QT::SimpleMPRWidget* mpr,
-  cpPipelineEditor::Editor* editor
-  )
-{
-  if( this->m_Interface != NULL )
-  {
-    delete this->m_Interface;
-    this->m_Interface = NULL;
-
-  } // fi
-
-  try
-  {
-    this->m_Interface = new cpPlugins::Interface( );
-    this->m_Interface->GuessAccesiblePlugins( );
-  }
-  catch( std::exception& err )
-  {
-    if( this->m_Interface != NULL )
-      delete this->m_Interface;
-    this->m_Interface = NULL;
-    QMessageBox::critical(
-      this,
-      "Error creating plugins interface",
-      err.what( )
-      );
-    std::exit( 1 );
-
-  } // yrt
-
-  // Try to load plugins from executable dir
-  this->_LoadPluginsFromPath( this->m_ApplicationPath );
-
-  // Finish configuration
-  this->m_TreeWidget = tree;
-  if( this->m_TreeWidget != NULL )
-    this->_UpdateLoadedPlugins( );
-  this->m_Editor = editor;
-  this->m_MPR = mpr;
-  this->_CreateWorkspace( );
-}
-
-// -------------------------------------------------------------------------
-void cpPipelineEditor::BaseQtMainWindow::
-_CreateWorkspace( )
-{
-  if( this->m_Workspace != NULL )
-    delete this->m_Workspace;
-  this->m_Workspace = new cpPlugins::Workspace( );
-  this->m_Workspace->SetInterface( this->m_Interface );
-  if( this->m_Editor != NULL )
-    this->m_Editor->setWorkspace( this->m_Workspace );
-  if( this->m_MPR != NULL )
-    this->m_Workspace->SetMPRViewer( this->m_MPR );
-}
-
-// -------------------------------------------------------------------------
-void cpPipelineEditor::BaseQtMainWindow::
-_LoadPlugins( const std::string& filename )
-{
-  try
-  {
-    this->m_Interface->LoadPluginFile( filename );
-    this->_UpdateLoadedPlugins( );
-  }
-  catch( std::exception& err )
-  {
-    QMessageBox::critical(
-      this,
-      "Error loading plugins path",
-      err.what( )
-      );
-
-  } // yrt
-}
-
-// -------------------------------------------------------------------------
-void cpPipelineEditor::BaseQtMainWindow::
-_LoadPluginsFromPath( const std::string& path )
-{
-  try
-  {
-    this->m_Interface->LoadPluginDir( path );
-    this->_UpdateLoadedPlugins( );
-  }
-  catch( std::exception& err )
-  {
-    QMessageBox::critical(
-      this,
-      "Error loading plugins path",
-      err.what( )
-      );
-
-  } // yrt
-}
-
-// -------------------------------------------------------------------------
-void cpPipelineEditor::BaseQtMainWindow::
-_UpdateLoadedPlugins( )
-{
-  this->_Block( );
-  auto filters = this->m_Interface->GetFilters( );
-  if( filters.size( ) == 0 )
-  {
-    this->_UnBlock( );
-    QMessageBox::critical(
-      this,
-      "Error loading default plugins",
-      "No plugins loaded: remember to load some!!!"
-      );
-    return;
-
-  } // fi
-
-  if( this->m_TreeWidget != NULL )
-  {
-    for( auto cIt = filters.begin( ); cIt != filters.end( ); ++cIt )
-    {
-      // Create or get category
-      QList< QTreeWidgetItem* > cat_items =
-        this->m_TreeWidget->findItems(
-          cIt->first.c_str( ), Qt::MatchExactly | Qt::MatchRecursive
-          );
-      QTreeWidgetItem* cat = NULL;
-      if( cat_items.size( ) == 0 )
-      {
-        cat = new QTreeWidgetItem(
-          ( QTreeWidgetItem* )( NULL ), QStringList( cIt->first.c_str( ) )
-          );
-        this->m_TreeWidget->addTopLevelItem( cat );
-      }
-      else
-        cat = cat_items[ 0 ];
-
-      // Create filters
-      auto fIt = cIt->second.begin( );
-      for( ; fIt != cIt->second.end( ); ++fIt )
-      {
-        QList< QTreeWidgetItem* > filter_items =
-          this->m_TreeWidget->findItems(
-            fIt->c_str( ), Qt::MatchExactly | Qt::MatchRecursive
-            );
-        auto fiIt = filter_items.begin( );
-        auto found_fiIt = filter_items.end( );
-        for( ; fiIt != filter_items.end( ); ++fiIt )
-          if( ( *fiIt )->parent( ) == cat )
-            found_fiIt = fiIt;
-
-        // Add filter
-        if( found_fiIt == filter_items.end( ) )
-          QTreeWidgetItem* filter = new QTreeWidgetItem(
-            cat, QStringList( fIt->c_str( ) )
-            );
-
-      } // rof
-
-    } // rof
-
-  } // fi
-  this->_UnBlock( );
-}
-
-// -------------------------------------------------------------------------
-void cpPipelineEditor::BaseQtMainWindow::
-_Block( )
-{
-  this->m_Application->setOverrideCursor( Qt::WaitCursor );
-  this->m_Application->installEventFilter( &( this->m_Blocker ) );
-}
-
-// -------------------------------------------------------------------------
-void cpPipelineEditor::BaseQtMainWindow::
-_UnBlock( )
-{
-  while( this->m_Application->overrideCursor( ) )
-    this->m_Application->restoreOverrideCursor( );
-  this->m_Application->removeEventFilter( &( this->m_Blocker ) );
-}
-
-// -------------------------------------------------------------------------
-void cpPipelineEditor::BaseQtMainWindow::
-_LoadWorkspace( const std::string& filename )
-{
-  this->_CreateWorkspace( );
-  std::string err = this->m_Workspace->LoadWorkspace( filename );
-  if( err != "" )
-  {
-    QMessageBox::critical(
-      this,
-      QMessageBox::tr( "Error loading workspace" ),
-      QMessageBox::tr( err.c_str( ) )
-      );
-  }
-  else
-  {
-    if( this->m_Editor != NULL )
-      this->m_Editor->setWorkspace( this->m_Workspace );
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-void cpPipelineEditor::BaseQtMainWindow::
-_SaveWorkspace( const std::string& filename )
-{
-  if( this->m_Workspace != NULL )
-  {
-    std::string err = this->m_Workspace->SaveWorkspace( filename );
-    if( err != "" )
-      QMessageBox::critical(
-        this,
-        QMessageBox::tr( "Error saving workspace" ),
-        QMessageBox::tr( err.c_str( ) )
-        );
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-void cpPipelineEditor::BaseQtMainWindow::
-_ShowData( const std::string& filter_name, const std::string& output_name )
-{
-  if( this->m_MPR == NULL || this->m_Workspace == NULL )
-    return;
-
-  auto output = this->m_Workspace->GetOutput( filter_name, output_name );
-  if( output != NULL )
-  {
-    this->_Block( );
-    auto actor = output->GetVTKActor( );
-    if( actor != NULL )
-    {
-      this->m_MPR->AddActor(
-        actor, output_name + std::string( "@" ) + filter_name
-        );
-      this->_UnBlock( );
-    }
-    else
-    {
-      this->_UnBlock( );
-      QMessageBox::critical(
-        this,
-        QMessageBox::tr( "Error showing data" ),
-        QMessageBox::tr( "Unknown VTK conversion." )
-        );
-
-    } // fi
-  }
-  else
-    QMessageBox::critical(
-      this,
-      QMessageBox::tr( "Error showing data" ),
-      QMessageBox::tr( "Unknown port name." )
-      );
-}
-
-// -------------------------------------------------------------------------
-void cpPipelineEditor::BaseQtMainWindow::
-_HideData( const std::string& filter, const std::string& output )
-{
-  std::cout << "BaseQtMainWindow::HideData" << std::endl;
-  /* TODO
-   */
-}
-
-// -------------------------------------------------------------------------
-void cpPipelineEditor::BaseQtMainWindow::
-_DataProperties(
-  const std::string& filter_name, const std::string& output_name
-  )
-{
-  if( this->m_MPR == NULL || this->m_Workspace == NULL )
-    return;
-
-  auto output = this->m_Workspace->GetOutput( filter_name, output_name );
-  if( output != NULL )
-  {
-    this->_Block( );
-    auto actors = this->m_MPR->GetActors(
-      output_name + std::string( "@" ) + filter_name
-      );
-    auto dlg = new cpPlugins::ActorPropertiesQtDialog( NULL );
-    for( auto i = actors.begin( ); i != actors.end( ); ++i )
-      dlg->addActor( *i );
-    dlg->addRenderWindow( this->m_MPR->GetRenderWindow( 0 ) );
-    dlg->addRenderWindow( this->m_MPR->GetRenderWindow( 1 ) );
-    dlg->addRenderWindow( this->m_MPR->GetRenderWindow( 2 ) );
-    dlg->addRenderWindow( this->m_MPR->GetRenderWindow( 3 ) );
-    this->_UnBlock( );
-    dlg->exec( );
-  }
-  else
-    QMessageBox::critical(
-      this,
-      QMessageBox::tr( "Error showing data" ),
-      QMessageBox::tr( "Unknown port name." )
-      );
-}
-
-// -------------------------------------------------------------------------
-void cpPipelineEditor::BaseQtMainWindow::
-_BackgroundProperties( unsigned int i )
-{
-  if( this->m_MPR == NULL )
-    return;
-
-  QColor color =
-    QColorDialog::getColor(
-      QColor( 0, 0, 0 ),
-      this,
-      "Select Color",
-      QColorDialog::DontUseNativeDialog
-      );
-  if( color.isValid( ) )
-  {
-    double r = double( color.red( ) ) / double( 255 );
-    double g = double( color.green( ) ) / double( 255 );
-    double b = double( color.blue( ) ) / double( 255 );
-    if( i >= 4 )
-    {
-      unsigned int maxId = ( i == 4 )? 3: 4;
-      for( unsigned int j = 0; j < maxId; ++j )
-      {
-        auto ren = this->m_MPR->GetRenderer( j );
-        if( ren != NULL )
-        {
-          ren->SetBackground( r, g, b );
-          ren->Render( );
-
-        } // fi
-
-      } // rof
-    }
-    else
-    {
-      auto ren = this->m_MPR->GetRenderer( i );
-      if( ren != NULL )
-      {
-        ren->SetBackground( r, g, b );
-        ren->Render( );
-
-      } // fi
-
-    } // fi
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-void cpPipelineEditor::BaseQtMainWindow::
-_InteractiveLoadPlugins( )
-{
-  QFileDialog dlg( this );
-  dlg.setFileMode( QFileDialog::ExistingFiles );
-  dlg.setDirectory( this->m_PluginsPath.c_str( ) );
-
-  std::stringstream filter;
-  std::string suffix = std::string( cpPlugins_LIB_EXT );
-  filter << "Plugins file (*." << cpPlugins_LIB_EXT << ");;All files (*)";
-  dlg.setNameFilter( filter.str( ).c_str( ) );
-  dlg.setDefaultSuffix( suffix.c_str( ) );
-  if( !( dlg.exec( ) ) )
-    return;
-  QStringList names = dlg.selectedFiles( );
-  for( auto qIt = names.begin( ); qIt != names.end( ); ++qIt )
-    this->_LoadPlugins( qIt->toStdString( ) );
-}
-
-// -------------------------------------------------------------------------
-void cpPipelineEditor::BaseQtMainWindow::
-_InteractiveLoadPluginsFromPath( )
-{
-  QFileDialog d( this );
-  d.setFileMode( QFileDialog::DirectoryOnly );
-  d.setDirectory( this->m_PluginsPath.c_str( ) );
-  if( !( d.exec( ) ) )
-    return;
-  this->_LoadPluginsFromPath( d.selectedFiles( ).begin( )->toStdString( ) );
-}
-
-// -------------------------------------------------------------------------
-void cpPipelineEditor::BaseQtMainWindow::
-_InteractiveLoadWorkspace( )
-{
-  QFileDialog dlg( this );
-  dlg.setFileMode( QFileDialog::ExistingFile );
-  dlg.setDirectory( "." );
-  dlg.setNameFilter(
-    QFileDialog::tr( "Workspace file (*.wxml);;All files (*)" )
-    );
-  dlg.setDefaultSuffix( QFileDialog::tr( "wxml" ) );
-  if( !( dlg.exec( ) ) )
-    return;
-  this->_LoadWorkspace( dlg.selectedFiles( ).begin( )->toStdString( ) );
-}
-
-// -------------------------------------------------------------------------
-void cpPipelineEditor::BaseQtMainWindow::
-_InteractiveSaveWorkspace( )
-{
-  if( this->m_Workspace != NULL )
-  {
-    QFileDialog dlg( this );
-    dlg.setFileMode( QFileDialog::AnyFile );
-    dlg.setDirectory( "." );
-    dlg.setAcceptMode( QFileDialog::AcceptSave );
-    dlg.setNameFilter(
-      QFileDialog::tr( "Workspace file (*.wxml);;All files (*)" )
-      );
-    dlg.setDefaultSuffix( QFileDialog::tr( "wxml" ) );
-    if( !( dlg.exec( ) ) )
-      return;
-    this->_SaveWorkspace( dlg.selectedFiles( ).begin( )->toStdString( ) );
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-void cpPipelineEditor::BaseQtMainWindow::
-_ExecFilter( const std::string& filter_name )
-{
-  if( this->m_Workspace == NULL )
-    return;
-
-  this->_Block( );
-  try
-  {
-    this->m_Workspace->Execute( filter_name );
-    this->_UnBlock( );
-  }
-  catch( itk::ExceptionObject& err1 )
-  {
-    this->_UnBlock( );
-    QMessageBox::critical(
-      this,
-      QMessageBox::tr( "Error executing filter" ),
-      QMessageBox::tr( err1.GetDescription( ) )
-      );
-  }
-  catch( std::exception& err2 )
-  {
-    this->_UnBlock( );
-    QMessageBox::critical(
-      this,
-      QMessageBox::tr( "Error executing filter" ),
-      QMessageBox::tr( err2.what( ) )
-      );
-  }
-  catch( ... )
-  {
-    this->_UnBlock( );
-    QMessageBox::critical(
-      this,
-      QMessageBox::tr( "Error executing filter" ),
-      QMessageBox::tr( "Unknown error" )
-      );
-
-  } // yrt
-}
-
-// eof - $RCSfile$
diff --git a/lib/cpPipelineEditor/BaseQtMainWindow.h b/lib/cpPipelineEditor/BaseQtMainWindow.h
deleted file mode 100644 (file)
index 786349a..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-#ifndef __CPPIPELINEEDITOR__BASEQTMAINWINDOW__H__
-#define __CPPIPELINEEDITOR__BASEQTMAINWINDOW__H__
-
-#include <cpPipelineEditor/cpPipelineEditor_Export.h>
-#include <QMainWindow>
-#include <cpPlugins/Interface.h>
-#include <cpPlugins/Workspace.h>
-
-namespace cpExtensions
-{
-  namespace QT
-  {
-    class SimpleMPRWidget;
-  }
-}
-class QTreeWidget;
-
-namespace cpPipelineEditor
-{
-  class Editor;
-
-  /**
-   */
-  class cpPipelineEditor_EXPORT BaseQtMainWindow
-    : public QMainWindow
-  {
-    Q_OBJECT;
-
-  public:
-    typedef BaseQtMainWindow Self;
-    typedef QMainWindow      Superclass;
-
-  protected:
-    /**
-     */
-    class _TBlocker
-      : public QObject
-    {
-    protected:
-      virtual bool eventFilter( QObject* obj, QEvent* event ) ITK_OVERRIDE;
-    };
-
-  public:
-    explicit BaseQtMainWindow(
-      int argc, char* argv[],
-      QApplication* app,
-      QWidget* parent = NULL
-      );
-    virtual ~BaseQtMainWindow( );
-
-  protected:
-    void _Configure(
-      QTreeWidget* tree,
-      cpExtensions::QT::SimpleMPRWidget* mpr,
-      cpPipelineEditor::Editor* editor
-      );
-    void _CreateWorkspace( );
-    void _LoadPlugins( const std::string& filename );
-    void _LoadPluginsFromPath( const std::string& path );
-    void _UpdateLoadedPlugins( );
-    void _Block( );
-    void _UnBlock( );
-
-    void _LoadWorkspace( const std::string& filename );
-    void _SaveWorkspace( const std::string& filename );
-
-    void _ShowData(
-      const std::string& filter_name, const std::string& output_name
-      );
-    void _HideData(
-      const std::string& filter_name, const std::string& output_name
-      );
-    void _DataProperties(
-      const std::string& filter_name, const std::string& output_name
-      );
-    void _BackgroundProperties( unsigned int i );
-
-  protected slots:
-    void _InteractiveLoadPlugins( );
-    void _InteractiveLoadPluginsFromPath( );
-    void _InteractiveLoadWorkspace( );
-    void _InteractiveSaveWorkspace( );
-    void _ExecFilter( const std::string& filter_name );
-
-  protected:
-    QApplication* m_Application;
-    _TBlocker     m_Blocker;
-    std::string   m_PluginsPath;
-    std::string   m_ApplicationPath;
-
-    cpPlugins::Interface* m_Interface;
-    cpPlugins::Workspace* m_Workspace;
-
-    QTreeWidget* m_TreeWidget;
-    Editor*      m_Editor;
-    cpExtensions::QT::SimpleMPRWidget* m_MPR;
-  };
-
-} // ecapseman
-
-#endif // __CPPIPELINEEDITOR__BASEQTMAINWINDOW__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpPipelineEditor/Block.cxx b/lib/cpPipelineEditor/Block.cxx
deleted file mode 100644 (file)
index 07fdfb9..0000000
+++ /dev/null
@@ -1,317 +0,0 @@
-#include "Block.h"\r
-\r
-#include <QPen>\r
-#include <QGraphicsScene>\r
-#include <QGraphicsSceneContextMenuEvent>\r
-#include <QFontMetrics>\r
-#include <QMenu>\r
-#include <QPainter>\r
-#include <QStyleOptionGraphicsItem>\r
-#include <QGraphicsWidget>\r
-\r
-#include <cpPlugins/ParametersQtDialog.h>\r
-\r
-#include "Port.h"\r
-#include "Connection.h"\r
-#include "Editor.h"\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor::Block::\r
-Block(\r
-  TFilter* filter, const QString& name,\r
-  QGraphicsItem* parent, QGraphicsScene* scene\r
-  )\r
-  : Superclass( parent, scene ),\r
-    m_HorzMargin( 20 ),\r
-    m_VertMargin( 5 ),\r
-    m_NamePort( NULL ),\r
-    m_Filter( filter ),\r
-    m_Editor( NULL )\r
-{\r
-  QPainterPath p;\r
-  p.addRoundedRect( -50, -15, 100, 30, 5, 5 );\r
-\r
-  this->setPath( p );\r
-  this->setPen( QPen( Qt::darkGreen ) );\r
-  this->setBrush( Qt::green );\r
-  this->setFlag( QGraphicsItem::ItemIsMovable );\r
-  this->setFlag( QGraphicsItem::ItemIsSelectable );\r
-\r
-  this->m_Width = this->m_HorzMargin;\r
-  this->m_Height = this->m_VertMargin;\r
-\r
-  // Configure names\r
-  this->setNamePort( name );\r
-  this->_setTypeInfo( this->m_Filter->GetClassName( ) );\r
-\r
-  // Add input ports\r
-  auto inputs = this->m_Filter->GetInputsNames( );\r
-  for( auto iIt = inputs.begin( ); iIt != inputs.end( ); ++iIt )\r
-    this->addInputPort( iIt->c_str( ) );\r
-\r
-  // Add output ports\r
-  auto outputs = this->m_Filter->GetOutputsNames( );\r
-  for( auto oIt = outputs.begin( ); oIt != outputs.end( ); ++oIt )\r
-    this->addOutputPort( oIt->c_str( ) );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor::Block::\r
-~Block( )\r
-{\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor::Block::\r
-TFilter* cpPipelineEditor::Block::\r
-filter( )\r
-{\r
-  return( this->m_Filter );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-const cpPipelineEditor::Block::\r
-TFilter* cpPipelineEditor::Block::\r
-filter( ) const\r
-{\r
-  return( this->m_Filter );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor::Editor* cpPipelineEditor::Block::\r
-editor( )\r
-{\r
-  return( this->m_Editor );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-const cpPipelineEditor::Editor* cpPipelineEditor::Block::\r
-editor( ) const\r
-{\r
-  return( this->m_Editor );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpPipelineEditor::Block::\r
-setEditor( cpPipelineEditor::Editor* editor )\r
-{\r
-  this->m_Editor = editor;\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpPipelineEditor::Block::\r
-setNamePort( const QString& txt )\r
-{\r
-  if( this->m_NamePort == NULL )\r
-    this->m_NamePort = new NamePort( this );\r
-  this->m_NamePort->setName( txt );\r
-  this->_configPort( this->m_NamePort );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor::InputPort* cpPipelineEditor::Block::\r
-addInputPort( const QString& txt )\r
-{\r
-  InputPort* ip = new InputPort( this );\r
-  ip->setExtendedName(\r
-    (\r
-      txt.toStdString( ) +\r
-      std::string( "@" ) +\r
-      this->namePort( ).toStdString( )\r
-      ).c_str( )\r
-    );\r
-  ip->setName( txt );\r
-  this->m_InputPorts[ txt.toStdString( ) ] = ip;\r
-  this->_configPort( ip );\r
-  return( ip );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor::OutputPort* cpPipelineEditor::Block::\r
-addOutputPort( const QString& txt )\r
-{\r
-  OutputPort* op = new OutputPort( this );\r
-  op->setExtendedName(\r
-    (\r
-      txt.toStdString( ) +\r
-      std::string( "@" ) +\r
-      this->namePort( ).toStdString( )\r
-      ).c_str( )\r
-    );\r
-  op->setName( txt );\r
-  this->m_OutputPorts[ txt.toStdString( ) ] = op;\r
-  this->_configPort( op );\r
-  return( op );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor::InputPort* cpPipelineEditor::Block::\r
-inputPort( const QString& txt )\r
-{\r
-  auto i = this->m_InputPorts.find( txt.toStdString( ) );\r
-  if( i != this->m_InputPorts.end( ) )\r
-    return( i->second );\r
-  else\r
-    return( NULL );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor::OutputPort* cpPipelineEditor::Block::\r
-outputPort( const QString& txt )\r
-{\r
-  auto o = this->m_OutputPorts.find( txt.toStdString( ) );\r
-  if( o != this->m_OutputPorts.end( ) )\r
-    return( o->second );\r
-  else\r
-    return( NULL );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-QString cpPipelineEditor::Block::\r
-namePort( ) const\r
-{\r
-  return( this->m_NamePort->name( ) );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-const cpPipelineEditor::InputPort* cpPipelineEditor::Block::\r
-inputPort( const QString& txt ) const\r
-{\r
-  auto i = this->m_InputPorts.find( txt.toStdString( ) );\r
-  if( i != this->m_InputPorts.end( ) )\r
-    return( i->second );\r
-  else\r
-    return( NULL );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-const cpPipelineEditor::OutputPort* cpPipelineEditor::Block::\r
-outputPort( const QString& txt ) const\r
-{\r
-  auto o = this->m_OutputPorts.find( txt.toStdString( ) );\r
-  if( o != this->m_OutputPorts.end( ) )\r
-    return( o->second );\r
-  else\r
-    return( NULL );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpPipelineEditor::Block::\r
-paint(\r
-  QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget\r
-  )\r
-{\r
-  Q_UNUSED( option );\r
-  Q_UNUSED( widget );\r
-\r
-  if( this->isSelected( ) )\r
-  {\r
-    painter->setPen( QPen( Qt::darkYellow ) );\r
-    painter->setBrush( Qt::yellow );\r
-  }\r
-  else\r
-  {\r
-    painter->setPen( QPen( Qt::darkGreen ) );\r
-    painter->setBrush( Qt::green );\r
-\r
-  } // fi\r
-  painter->drawPath( this->path( ) );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-QVariant cpPipelineEditor::Block::\r
-itemChange( GraphicsItemChange change, const QVariant& value )\r
-{\r
-  return( value );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpPipelineEditor::Block::\r
-_setTypeInfo( const QString& txt )\r
-{\r
-  this->setToolTip( txt );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpPipelineEditor::Block::\r
-_configPort( Port* port )\r
-{\r
-  port->setBlock( this );\r
-\r
-  QFontMetrics fm( this->scene( )->font( ) );\r
-  this->m_Width = 0;\r
-  foreach( QGraphicsItem* i, this->children( ) )\r
-  {\r
-    Port* p = dynamic_cast< Port* >( i );\r
-    if( p == NULL )\r
-      continue;\r
-    int w = fm.width( p->name( ) ) + ( 4 * p->radius( ) );\r
-    if( w > this->m_Width - this->m_HorzMargin )\r
-      this->m_Width = w + this->m_HorzMargin;\r
-\r
-  } // rof\r
-  int h = fm.height( );\r
-  this->m_Height = this->m_InputPorts.size( ) + this->m_OutputPorts.size( );\r
-  this->m_Height += 3;\r
-  this->m_Height *= h;\r
-\r
-  QPainterPath pth;\r
-  pth.addRoundedRect(\r
-    -this->m_Width / 2,\r
-    -this->m_Height / 2,\r
-    this->m_Width,\r
-    this->m_Height, 5, 5\r
-    );\r
-  this->setPath( pth );\r
-\r
-  int y = -this->m_Height / 2 + this->m_VertMargin + port->radius( );\r
-  foreach( QGraphicsItem* i, this->children( ) )\r
-  {\r
-    Port* p = dynamic_cast< Port* >( i );\r
-    if( p == NULL )\r
-      continue;\r
-\r
-    if( dynamic_cast< NamePort* >( i ) != NULL )\r
-    {\r
-      i->setPos( -this->m_Width / 2 + port->radius( ), y );\r
-      y += h;\r
-    }\r
-    else if( dynamic_cast< InputPort* >( i ) != NULL )\r
-      i->setPos( -this->m_Width / 2 - 2 * port->radius( ), y );\r
-    else if( dynamic_cast< OutputPort* >( i ) != NULL )\r
-      i->setPos( this->m_Width / 2, y );\r
-    y += h;\r
-\r
-  } // rof\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpPipelineEditor::Block::\r
-mouseReleaseEvent( QGraphicsSceneMouseEvent* evt )\r
-{\r
-  if( this->m_Filter != NULL )\r
-    this->m_Filter->SetViewCoords(\r
-      this->scenePos( ).x( ), this->scenePos( ).y( )\r
-      );\r
-  this->Superclass::mouseReleaseEvent( evt );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpPipelineEditor::Block::\r
-contextMenuEvent( QGraphicsSceneContextMenuEvent* evt )\r
-{\r
-  QMenu menu;\r
-  QAction* configureAction = menu.addAction( "Configure" );\r
-  QAction* updateAction = menu.addAction( "Update" );\r
-  QAction* selectedAction = menu.exec( evt->screenPos( ) );\r
-\r
-  if( selectedAction == configureAction )\r
-  {\r
-    auto dlg = this->m_Filter->CreateQtDialog( );\r
-    dlg->exec( );\r
-  }\r
-  else if( selectedAction == updateAction )\r
-    this->m_Editor->updateFilter( this->namePort( ).toStdString( ) );\r
-}\r
-\r
-// eof - $RCSfile$\r
diff --git a/lib/cpPipelineEditor/Block.h b/lib/cpPipelineEditor/Block.h
deleted file mode 100644 (file)
index 6ee84f6..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-#ifndef __CPPIPELINEEDITOR__BLOCK__H__\r
-#define __CPPIPELINEEDITOR__BLOCK__H__\r
-\r
-#include <cpPipelineEditor/cpPipelineEditor_Export.h>\r
-#include <QGraphicsPathItem>\r
-#include <cpPlugins/ProcessObject.h>\r
-\r
-namespace cpPipelineEditor\r
-{\r
-  class Editor;\r
-  class Port;\r
-  class NamePort;\r
-  class InputPort;\r
-  class OutputPort;\r
-\r
-  /**\r
-   */\r
-  class cpPipelineEditor_EXPORT Block\r
-    : public QGraphicsPathItem\r
-  {\r
-  public:\r
-    typedef Block                    Self;\r
-    typedef QGraphicsPathItem        Superclass;\r
-    typedef cpPlugins::ProcessObject TFilter;\r
-  \r
-  public:\r
-    enum { Type = QGraphicsItem::UserType + 6 };\r
-\r
-    Block(\r
-      TFilter* filter, const QString& name,\r
-      QGraphicsItem* parent = NULL, QGraphicsScene* scene = NULL\r
-      );\r
-    virtual ~Block( );\r
-\r
-    TFilter* filter( );\r
-    const TFilter* filter( ) const;\r
-\r
-    Editor* editor( );\r
-    const Editor* editor( ) const;\r
-    void setEditor( Editor* editor );\r
-\r
-    void setNamePort( const QString& txt );\r
-    InputPort* addInputPort( const QString& txt );\r
-    OutputPort* addOutputPort( const QString& txt );\r
-\r
-    InputPort* inputPort( const QString& txt );\r
-    OutputPort* outputPort( const QString& txt );\r
-\r
-    QString namePort( ) const;\r
-    const InputPort* inputPort( const QString& txt ) const;\r
-    const OutputPort* outputPort( const QString& txt ) const;\r
-\r
-    inline int type( ) const\r
-      { return( this->Type ); }\r
-\r
-    virtual void paint(\r
-      QPainter* painter,\r
-      const QStyleOptionGraphicsItem* option,\r
-      QWidget* widget\r
-      );\r
-\r
-  protected:\r
-    QVariant itemChange( GraphicsItemChange change, const QVariant& value );\r
-    void _setTypeInfo( const QString& txt );\r
-    void _configPort( Port* port );\r
-\r
-    virtual void mouseReleaseEvent( QGraphicsSceneMouseEvent* evt );\r
-    virtual void contextMenuEvent( QGraphicsSceneContextMenuEvent* evt );\r
-\r
-  private:\r
-    int m_HorzMargin;\r
-    int m_VertMargin;\r
-    int m_Width;\r
-    int m_Height;\r
-\r
-    NamePort* m_NamePort;\r
-    std::map< std::string, InputPort* >  m_InputPorts;\r
-    std::map< std::string, OutputPort* > m_OutputPorts;\r
-\r
-    TFilter* m_Filter;\r
-    Editor*  m_Editor;\r
-  };\r
-\r
-} // ecapseman\r
-\r
-#endif // __CPPIPELINEEDITOR__BLOCK__H__\r
-\r
-// eof - $RCSfile$\r
diff --git a/lib/cpPipelineEditor/CMakeLists.txt b/lib/cpPipelineEditor/CMakeLists.txt
deleted file mode 100644 (file)
index 5820042..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-SET(lib_NAME cpPipelineEditor)
-
-## ===============
-## = Source code =
-## ===============
-
-FILE(GLOB lib_HEADERS_H   "*.h")
-FILE(GLOB lib_HEADERS_HPP "*.hpp")
-FILE(GLOB lib_HEADERS_HXX "*.hxx")
-FILE(GLOB lib_SOURCES_C   "*.c")
-FILE(GLOB lib_SOURCES_CPP "*.cpp")
-FILE(GLOB lib_SOURCES_CXX "*.cxx")
-SET(
-  lib_QT_Headers
-  Canvas.h
-  Editor.h
-  BaseQtMainWindow.h
-  )
-
-## =====================
-## = Compilation rules =
-## =====================
-
-QT4_WRAP_CPP(lib_QT_Wrapped_MOC_Sources ${lib_QT_Headers})
-
-ADD_LIBRARY(
-  ${lib_NAME}
-  SHARED
-  ${lib_SOURCES_C}
-  ${lib_SOURCES_CPP}
-  ${lib_SOURCES_CXX}
-  ${lib_QT_Wrapped_MOC_Sources}
-  )
-SET_TARGET_PROPERTIES(
-  ${lib_NAME} PROPERTIES
-  VERSION "${prj_VER}"
-  SOVERSION "${prj_sVER}"
-  )
-GENERATE_EXPORT_HEADER(
-  ${lib_NAME}
-  BASE_NAME ${lib_NAME}
-  EXPORT_MACRO_NAME ${lib_NAME}_EXPORT
-  EXPORT_FILE_NAME ${PROJECT_BINARY_DIR}/lib/${lib_NAME}/${lib_NAME}_Export.h
-  STATIC_DEFINE ${lib_NAME}_BUILT_AS_STATIC
-  )
-TARGET_LINK_LIBRARIES(
-  ${lib_NAME}
-  ${QT_LIBRARIES}
-  cpPlugins
-  )
-
-## ========================
-## -- Installation rules --
-## ========================
-
-## eof - $RCSfile$
diff --git a/lib/cpPipelineEditor/Canvas.cxx b/lib/cpPipelineEditor/Canvas.cxx
deleted file mode 100644 (file)
index 90f1285..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-#include "Canvas.h"
-#include "Editor.h"
-#include "Block.h"
-#include "Connection.h"
-#include "Port.h"
-
-#include <QDragEnterEvent>
-#include <QWheelEvent>
-#include <QTreeWidget>
-
-// -------------------------------------------------------------------------
-cpPipelineEditor::Canvas::
-Canvas( QWidget* parent )
-  : QGraphicsView( parent )
-{
-  QGraphicsScene* scene = new QGraphicsScene( this );
-  this->setScene( scene );
-  this->setRenderHint( QPainter::Antialiasing );
-  this->setAcceptDrops( true );
-
-  this->m_Editor = new Editor( this );
-  this->m_Editor->install( scene );
-}
-
-// -------------------------------------------------------------------------
-cpPipelineEditor::Canvas::
-~Canvas( )
-{
-}
-
-// -------------------------------------------------------------------------
-cpPipelineEditor::
-Editor* cpPipelineEditor::Canvas::
-editor( )
-{
-  return( this->m_Editor );
-}
-
-// -------------------------------------------------------------------------
-const cpPipelineEditor::
-Editor* cpPipelineEditor::Canvas::
-editor( ) const
-{
-  return( this->m_Editor );
-}
-
-// -------------------------------------------------------------------------
-void cpPipelineEditor::Canvas::
-keyPressEvent( QKeyEvent* event )
-{
-  static const int del_key = 16777223;
-  if( event->key( ) == del_key )
-  {
-    auto _items = this->items( );
-    auto i = _items.begin( );
-    while( i != _items.end( ) )
-    {
-      if( ( *i )->isSelected( ) )
-      {
-        Block* b = dynamic_cast< Block* >( *i );
-        Connection* c = dynamic_cast< Connection* >( *i );
-        if( b != NULL )
-        {
-          if( this->m_Editor->deleteFilter( b->namePort( ).toStdString( ) ) )
-            delete b;
-        }
-        else if( c != NULL )
-        {
-          if(
-            this->m_Editor->deleteConnection(
-              c->port1( )->block( )->namePort( ).toStdString( ),
-              c->port2( )->block( )->namePort( ).toStdString( ),
-              c->port1( )->name( ).toStdString( ),
-              c->port2( )->name( ).toStdString( )
-              )
-            )
-            delete c;
-
-        } // fi
-        i = _items.end( );
-      }
-      else
-        i++;
-
-    } // elihw
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-void cpPipelineEditor::Canvas::
-wheelEvent( QWheelEvent* event )
-{
-  this->_scaleView(
-    std::pow( double( 2 ), event->delta( ) / double( 240 ) )
-    );
-}
-
-// -------------------------------------------------------------------------
-void cpPipelineEditor::Canvas::
-dragEnterEvent( QDragEnterEvent* event )
-{
-  const QMimeData* mime = event->mimeData( );
-  if( mime->hasFormat( "application/x-qabstractitemmodeldatalist" ) )
-    event->acceptProposedAction( );
-}
-
-// -------------------------------------------------------------------------
-void cpPipelineEditor::Canvas::
-dragLeaveEvent( QDragLeaveEvent* event )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpPipelineEditor::Canvas::
-dragMoveEvent( QDragMoveEvent* event )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpPipelineEditor::Canvas::
-dropEvent( QDropEvent* event )
-{
-  const QMimeData* mime = event->mimeData( );
-  if( !( mime->hasFormat( "application/x-qabstractitemmodeldatalist" ) ) )
-    return;
-
-  event->acceptProposedAction( );
-  auto tree = dynamic_cast< QTreeWidget* >( event->source( ) );
-  if( tree == NULL )
-    return;
-
-  QList< QTreeWidgetItem* > items = tree->selectedItems( );
-  for( auto iIt = items.begin( ); iIt != items.end( ); ++iIt )
-  {
-    auto parent = ( *iIt )->parent( );
-    if( parent != NULL )
-      this->m_Editor->createFilter(
-        parent->text( 0 ).toStdString( ),
-        ( *iIt )->text( 0 ).toStdString( ),
-        this->mapToScene( event->pos( ) )
-        );
-
-  } // rof
-}
-
-// -------------------------------------------------------------------------
-void cpPipelineEditor::Canvas::
-_scaleView( qreal scaleFactor )
-{
-  qreal factor = this->transform( ).
-    scale( scaleFactor, scaleFactor ).
-    mapRect( QRectF( 0, 0, 1, 1 ) ).
-    width( );
-  if( factor < qreal( 0.07 ) || factor > qreal( 100 ) )
-    return;
-  this->scale( scaleFactor, scaleFactor );
-}
-
-// eof - $RCSfile$
diff --git a/lib/cpPipelineEditor/Canvas.h b/lib/cpPipelineEditor/Canvas.h
deleted file mode 100644 (file)
index eb57a23..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-#ifndef __CPPIPELINEEDITOR__CANVAS__H__
-#define __CPPIPELINEEDITOR__CANVAS__H__
-
-#include <cpPipelineEditor/cpPipelineEditor_Export.h>
-#include <QtGui/QGraphicsView>
-
-namespace cpPipelineEditor
-{
-  // Some other forward declarations
-  class Block;
-  class Connection;
-  class Editor;
-
-  /**
-   */
-  class cpPipelineEditor_EXPORT Canvas
-    : public QGraphicsView
-  {
-    Q_OBJECT;
-
-  public:
-    Canvas( QWidget* parent = 0 );
-    virtual ~Canvas( );
-
-    Editor* editor( );
-    const Editor* editor( ) const;
-
-  protected:
-    /* TODO
-       void timerEvent( QTimerEvent* event );
-    */
-    void keyPressEvent( QKeyEvent* event );
-    void wheelEvent( QWheelEvent* event );
-
-    void dragEnterEvent( QDragEnterEvent* event );
-    void dragLeaveEvent( QDragLeaveEvent* event );
-    void dragMoveEvent( QDragMoveEvent* event );
-    void dropEvent( QDropEvent* event );
-
-    void _scaleView( qreal scaleFactor );
-
-  protected:
-    Editor* m_Editor;
-  };
-
-} // ecapseman
-
-#endif // __CPPIPELINEEDITOR__CANVAS__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpPipelineEditor/Connection.cxx b/lib/cpPipelineEditor/Connection.cxx
deleted file mode 100644 (file)
index 0d5eea2..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-#include "Connection.h"\r
-#include "Port.h"\r
-\r
-#include <QBrush>\r
-#include <QPen>\r
-#include <QGraphicsScene>\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor::Connection::\r
-Connection( QGraphicsItem* parent, QGraphicsScene* scene )\r
-  : Superclass( parent, scene )\r
-{\r
-  this->setPen( QPen( Qt::black, 2 ) );\r
-  this->setBrush( Qt::NoBrush );\r
-  this->setZValue( -1 );\r
-  this->m_Port1 = NULL;\r
-  this->m_Port2 = NULL;\r
-  this->setFlag( QGraphicsItem::ItemIsSelectable );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor::Connection::\r
-~Connection( )\r
-{\r
-  if( this->m_Port1 != NULL )\r
-    this->m_Port1->connections( ).\r
-      remove( this->m_Port1->connections( ).indexOf( this ) );\r
-\r
-  if( this->m_Port2 != NULL )\r
-    this->m_Port2->setConnection( NULL );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpPipelineEditor::Connection::\r
-setPos1( const QPointF& p )\r
-{\r
-  this->m_Pos1 = p;\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpPipelineEditor::Connection::\r
-setPos2( const QPointF& p )\r
-{\r
-  this->m_Pos2 = p;\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpPipelineEditor::Connection::\r
-setPort1( OutputPort* p )\r
-{\r
-  if( p != NULL )\r
-  {\r
-    p->connections( ).append( this );\r
-    this->m_Port1 = p;\r
-\r
-  } // fi\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpPipelineEditor::Connection::\r
-setPort2( InputPort* p )\r
-{\r
-  if( p != NULL )\r
-  {\r
-    if( p->connection( ) == NULL )\r
-    {\r
-      p->setConnection( this );\r
-      this->m_Port2 = p;\r
-\r
-    } // fi\r
-\r
-  } // fi\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpPipelineEditor::Connection::\r
-updatePosFromPorts( )\r
-{\r
-  if( this->m_Port1 != NULL )\r
-    this->m_Pos1 =\r
-      this->m_Port1->scenePos( ) +\r
-      QPointF( this->m_Port1->radius( ), this->m_Port1->radius( ) );\r
-  if( this->m_Port2 != NULL )\r
-    this->m_Pos2 =\r
-      this->m_Port2->scenePos( ) +\r
-      QPointF( this->m_Port2->radius( ), this->m_Port2->radius( ) );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpPipelineEditor::Connection::\r
-updatePath( )\r
-{\r
-  QPainterPath p;\r
-  p.moveTo( this->m_Pos1 );\r
-\r
-  qreal dx = this->m_Pos2.x( ) - this->m_Pos1.x( );\r
-  qreal dy = this->m_Pos2.y( ) - this->m_Pos1.y( );\r
-  QPointF c1( this->m_Pos1.x( ) + dx * 0.25, this->m_Pos1.y( ) + dy * 0.1 );\r
-  QPointF c2( this->m_Pos1.x( ) + dx * 0.75, this->m_Pos1.y( ) + dy * 0.9 );\r
-  p.cubicTo( c1, c2, this->m_Pos2 );\r
-\r
-  this->setPath( p );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor::OutputPort* cpPipelineEditor::Connection::\r
-port1( ) const\r
-{\r
-  return( this->m_Port1 );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor::InputPort* cpPipelineEditor::Connection::\r
-port2( ) const\r
-{\r
-  return( this->m_Port2 );\r
-}\r
-\r
-#include <QPainter>\r
-\r
-// -------------------------------------------------------------------------\r
-void cpPipelineEditor::Connection::\r
-paint(\r
-  QPainter* painter,\r
-  const QStyleOptionGraphicsItem* option,\r
-  QWidget* widget\r
-  )\r
-{\r
-  Q_UNUSED( option );\r
-  Q_UNUSED( widget );\r
-\r
-  if( this->isSelected( ) )\r
-    painter->setPen( QPen( Qt::red, 5 ) );\r
-  else\r
-    painter->setPen( QPen( Qt::black, 2 ) );\r
-  this->setBrush( Qt::NoBrush );\r
-  painter->drawPath( this->path( ) );\r
-}\r
-\r
-// eof - $RCSfile$\r
diff --git a/lib/cpPipelineEditor/Connection.h b/lib/cpPipelineEditor/Connection.h
deleted file mode 100644 (file)
index 94b8676..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-#ifndef __CPPIPELINEEDITOR__CONNECTION__H__\r
-#define __CPPIPELINEEDITOR__CONNECTION__H__\r
-\r
-#include <cpPipelineEditor/cpPipelineEditor_Export.h>\r
-#include <QGraphicsPathItem>\r
-\r
-namespace cpPipelineEditor\r
-{\r
-  class InputPort;\r
-  class OutputPort;\r
-\r
-  /**\r
-   */\r
-  class cpPipelineEditor_EXPORT Connection\r
-    : public QGraphicsPathItem\r
-  {\r
-  public:\r
-    typedef Connection     Self;\r
-    typedef QGraphicsPathItem Superclass;\r
-\r
-  public:\r
-    enum { Type = QGraphicsItem::UserType + 5 };\r
-\r
-    Connection( QGraphicsItem* parent = 0, QGraphicsScene* scene = 0 );\r
-    virtual ~Connection( );\r
-\r
-    void setPos1( const QPointF& p );\r
-    void setPos2( const QPointF& p );\r
-    void setPort1( OutputPort* p );\r
-    void setPort2( InputPort* p );\r
-    void updatePosFromPorts( );\r
-    void updatePath( );\r
-    OutputPort* port1( ) const;\r
-    InputPort* port2( ) const;\r
-\r
-    inline int type( ) const\r
-      { return( this->Type ); }\r
-\r
-    virtual void paint(\r
-      QPainter* painter,\r
-      const QStyleOptionGraphicsItem* option,\r
-      QWidget* widget\r
-      );\r
-\r
-  private:\r
-    QPointF m_Pos1;\r
-    QPointF m_Pos2;\r
-    OutputPort* m_Port1;\r
-    InputPort*  m_Port2;\r
-  };\r
-\r
-} // ecapseman\r
-\r
-#endif // __CPPIPELINEEDITOR__CONNECTION__H__\r
-\r
-// eof - $RCSfile$\r
diff --git a/lib/cpPipelineEditor/Editor.cxx b/lib/cpPipelineEditor/Editor.cxx
deleted file mode 100644 (file)
index 289ee46..0000000
+++ /dev/null
@@ -1,616 +0,0 @@
-#include "Editor.h"\r
-\r
-#include <QGraphicsScene>\r
-#include <QEvent>\r
-#include <QGraphicsSceneContextMenuEvent>\r
-#include <QGraphicsSceneDragDropEvent>\r
-#include <QGraphicsSceneHelpEvent>\r
-#include <QGraphicsSceneHoverEvent>\r
-#include <QGraphicsSceneMouseEvent>\r
-#include <QGraphicsSceneMoveEvent>\r
-#include <QGraphicsSceneResizeEvent>\r
-#include <QGraphicsSceneWheelEvent>\r
-#include <QInputDialog>\r
-#include <QMessageBox>\r
-\r
-#include "Port.h"\r
-#include "Connection.h"\r
-#include "Block.h"\r
-\r
-// -------------------------------------------------------------------------\r
-#define cpPipelineEditor_Editor_Callback_SWITCH( E, e )                 \\r
-  case QEvent::GraphicsScene##E:                                        \\r
-  {                                                                     \\r
-    QGraphicsScene##E##Event* evt =                                     \\r
-      dynamic_cast< QGraphicsScene##E##Event* >( e );                   \\r
-    if( evt != NULL )                                                   \\r
-      this->_##E##_cbk( evt );                                          \\r
-  }                                                                     \\r
-  break;\r
-\r
-// -------------------------------------------------------------------------\r
-#define cpPipelineEditor_Editor_Callback_CODE( E )                      \\r
-  void cpPipelineEditor::Editor::_##E##_cbk( QGraphicsScene##E##Event* evt )\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor::Editor::\r
-Editor( QObject* parent )\r
-  : Superclass( parent ),\r
-    m_ActualConnection( NULL ),\r
-    m_Workspace( NULL )\r
-{\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor::Editor::\r
-~Editor( )\r
-{\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor::Editor::\r
-TWorkspace* cpPipelineEditor::Editor::\r
-workspace( )\r
-{\r
-  return( this->m_Workspace );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-const cpPipelineEditor::Editor::\r
-TWorkspace* cpPipelineEditor::Editor::\r
-workspace( ) const\r
-{\r
-  return( this->m_Workspace );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpPipelineEditor::Editor::\r
-setWorkspace( TWorkspace* ws )\r
-{\r
-  this->m_Workspace = ws;\r
-  this->m_Graph = TGraph::New( );\r
-\r
-  // Create blocks\r
-  auto vIt = this->m_Workspace->GetGraph( )->BeginVertices( );\r
-  auto vIt_end = this->m_Workspace->GetGraph( )->EndVertices( );\r
-  for( ; vIt != vIt_end; ++vIt )\r
-  {\r
-    auto b = this->_createBlock(\r
-      dynamic_cast< TFilter* >( vIt->second.GetPointer( ) ),\r
-      vIt->first.c_str( ),\r
-      QPointF( vIt->second->GetViewX( ), vIt->second->GetViewY( ) )\r
-      );\r
-    if( b != NULL )\r
-      this->m_Graph->SetVertex( vIt->first, b );\r
-\r
-  } // rof\r
-\r
-  // Add edges\r
-  auto rIt = this->m_Workspace->GetGraph( )->BeginEdgesRows( );\r
-  auto rIt_end = this->m_Workspace->GetGraph( )->EndEdgesRows( );\r
-  for( ; rIt != rIt_end; ++rIt )\r
-  {\r
-    Block* orig = this->m_Graph->GetVertex( rIt->first );\r
-    auto cIt = rIt->second.begin( );\r
-    for( ; cIt != rIt->second.end( ); ++cIt )\r
-    {\r
-      Block* dest = this->m_Graph->GetVertex( cIt->first );\r
-      auto eIt = cIt->second.begin( );\r
-      for( ; eIt != cIt->second.end( ); ++eIt )\r
-      {\r
-        OutputPort* op = orig->outputPort( eIt->first.c_str( ) );\r
-        InputPort* ip = dest->inputPort( eIt->second.c_str( ) );\r
-        if( op == NULL || ip == NULL )\r
-          continue;\r
-\r
-        Connection* c = new Connection( 0, this->m_Scene );\r
-        c->setPort1( op );\r
-        c->setPort2( ip );\r
-        c->updatePosFromPorts( );\r
-        c->updatePath( );\r
-        this->m_Graph->AddEdge( rIt->first, cIt->first, c );\r
-\r
-      } // rof\r
-\r
-    } // rof\r
-\r
-  } // rof\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-std::string cpPipelineEditor::Editor::\r
-createFilter(\r
-  const std::string& category,\r
-  const std::string& filter,\r
-  const QPointF& pnt\r
-  )\r
-{\r
-  std::string name = filter;\r
-  while( this->m_Workspace->HasFilter( name ) )\r
-    name += std::string( "_" );\r
-  if( this->m_Workspace->CreateFilter( category, filter, name ) )\r
-  {\r
-    auto b = this->_createBlock(\r
-      this->m_Workspace->GetFilter( name ),\r
-      name.c_str( ),\r
-      pnt\r
-      );\r
-    return( name );\r
-  }\r
-  else\r
-    return( "" );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-bool cpPipelineEditor::Editor::\r
-deleteFilter( const std::string& name )\r
-{\r
-  std::cout << name << std::endl;\r
-  return( false );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-bool cpPipelineEditor::Editor::\r
-deleteConnection(\r
-  const std::string& src, const std::string& des,\r
-  const std::string& in, const std::string& out\r
-  )\r
-{\r
-  std::cout\r
-    << src << " "\r
-    << des << " "\r
-    << in << " "\r
-    << out << std::endl;\r
-  return( false );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpPipelineEditor::Editor::\r
-install( QGraphicsScene* s )\r
-{\r
-  s->installEventFilter( this );\r
-  this->m_Scene = s;\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-QGraphicsItem* cpPipelineEditor::Editor::\r
-itemAt( const QPointF& pos )\r
-{\r
-  QList< QGraphicsItem* > items =\r
-    this->m_Scene->items( QRectF( pos - QPointF( 1, 1 ), QSize( 3, 3 ) ) );\r
-\r
-  foreach( QGraphicsItem* item, items )\r
-    if( item->type( ) > QGraphicsItem::UserType )\r
-      return( item );\r
-  return( NULL );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor::Block* cpPipelineEditor::Editor::\r
-_createBlock( TFilter* f, const QString& name, const QPointF& pnt )\r
-{\r
-  if( f == NULL )\r
-    return( NULL );\r
-\r
-  // Add block\r
-  Block* b = new Block( f, name, 0, this->m_Scene );\r
-  b->setEditor( this );\r
-  b->setPos( pnt );\r
-\r
-  // Mark exposed inputs\r
-  auto& e_in = this->m_Workspace->GetExposedInputPorts( );\r
-  auto f_in = f->GetInputsNames( );\r
-  for( auto iIt = f_in.begin( ); iIt != f_in.end( ); ++iIt )\r
-  {\r
-    auto eIt = e_in.begin( );\r
-    auto fIt = e_in.end( );\r
-    for( ; eIt != e_in.end( ) && fIt == e_in.end( ); ++eIt )\r
-      if( eIt->second.second == *iIt )\r
-        fIt = eIt;\r
-    if( fIt == e_in.end( ) )\r
-      continue;\r
-    \r
-    auto port = b->inputPort( iIt->c_str( ) );\r
-    port->setExtendedName( fIt->first.c_str( ) );\r
-    port->setExtend( true );\r
-\r
-  } // rof\r
-\r
-  // Mark exposed outputs\r
-  auto& e_out = this->m_Workspace->GetExposedOutputPorts( );\r
-  auto f_out = f->GetOutputsNames( );\r
-  for( auto iIt = f_out.begin( ); iIt != f_out.end( ); ++iIt )\r
-  {\r
-    auto eIt = e_out.begin( );\r
-    auto fIt = e_out.end( );\r
-    for( ; eIt != e_out.end( ) && fIt == e_out.end( ); ++eIt )\r
-      if( eIt->second.second == *iIt )\r
-        fIt = eIt;\r
-    if( fIt == e_out.end( ) )\r
-      continue;\r
-    \r
-    auto port = b->outputPort( iIt->c_str( ) );\r
-    port->setExtendedName( fIt->first.c_str( ) );\r
-    port->setExtend( true );\r
-\r
-  } // rof\r
-\r
-  return( b );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-bool cpPipelineEditor::Editor::\r
-eventFilter( QObject* o, QEvent* e )\r
-{\r
-  // Event type\r
-  switch( int( e->type( ) ) )\r
-  {\r
-    cpPipelineEditor_Editor_Callback_SWITCH( ContextMenu, e );\r
-    cpPipelineEditor_Editor_Callback_SWITCH( DragEnter, e );\r
-    cpPipelineEditor_Editor_Callback_SWITCH( DragLeave, e );\r
-    cpPipelineEditor_Editor_Callback_SWITCH( DragMove, e );\r
-    cpPipelineEditor_Editor_Callback_SWITCH( Drop, e );\r
-    cpPipelineEditor_Editor_Callback_SWITCH( Help, e );\r
-    cpPipelineEditor_Editor_Callback_SWITCH( HoverEnter, e );\r
-    cpPipelineEditor_Editor_Callback_SWITCH( HoverLeave, e );\r
-    cpPipelineEditor_Editor_Callback_SWITCH( HoverMove, e );\r
-    cpPipelineEditor_Editor_Callback_SWITCH( MouseDoubleClick, e );\r
-    cpPipelineEditor_Editor_Callback_SWITCH( MouseMove, e );\r
-    cpPipelineEditor_Editor_Callback_SWITCH( MousePress, e );\r
-    cpPipelineEditor_Editor_Callback_SWITCH( MouseRelease, e );\r
-    cpPipelineEditor_Editor_Callback_SWITCH( Move, e );\r
-    cpPipelineEditor_Editor_Callback_SWITCH( Resize, e );\r
-    cpPipelineEditor_Editor_Callback_SWITCH( Wheel, e );\r
-  default:\r
-    break;\r
-  } // hctiws\r
-  return( this->Superclass::eventFilter( o, e ) );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpPipelineEditor::Editor::\r
-updateFilter( const std::string& filter_name )\r
-{\r
-  emit execFilter( filter_name );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpPipelineEditor::Editor::\r
-showOutputData(\r
-  const std::string& filter_name, const std::string& output_name\r
-  )\r
-{\r
-  emit showFilterOutput( filter_name, output_name );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpPipelineEditor::Editor::\r
-hideOutputData(\r
-  const std::string& filter_name, const std::string& output_name\r
-  )\r
-{\r
-  emit hideFilterOutput( filter_name, output_name );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpPipelineEditor::Editor::\r
-visualPropertiesOutputData(\r
-  const std::string& filter_name, const std::string& output_name\r
-  )\r
-{\r
-  emit visualPropertiesFilterOutput( filter_name, output_name );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor_Editor_Callback_CODE( ContextMenu )\r
-{\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor_Editor_Callback_CODE( DragEnter )\r
-{\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor_Editor_Callback_CODE( DragLeave )\r
-{\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor_Editor_Callback_CODE( DragMove )\r
-{\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor_Editor_Callback_CODE( Drop )\r
-{\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor_Editor_Callback_CODE( Help )\r
-{\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor_Editor_Callback_CODE( HoverEnter )\r
-{\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor_Editor_Callback_CODE( HoverLeave )\r
-{\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor_Editor_Callback_CODE( HoverMove )\r
-{\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor_Editor_Callback_CODE( MouseDoubleClick )\r
-{\r
-  QGraphicsItem* item = this->itemAt( evt->scenePos( ) );\r
-  if( item == NULL )\r
-    return;\r
-\r
-  switch( evt->button( ) )\r
-  {\r
-  case Qt::LeftButton:\r
-  {\r
-    Block* block = dynamic_cast< Block* >( item );\r
-    Port* port = dynamic_cast< Port* >( item );\r
-    Connection* conn = dynamic_cast< Connection* >( item );\r
-\r
-    if( block != NULL )\r
-    {\r
-      QString old_name = block->namePort( );\r
-      bool ok;\r
-      QString new_name =\r
-        QInputDialog::getText(\r
-          dynamic_cast< QWidget* >( this->parent( ) ),\r
-          "Change filter name",\r
-          "Filter name:",\r
-          QLineEdit::Normal,\r
-          old_name,\r
-          &ok\r
-          );\r
-      if( ok && !new_name.isEmpty( ) && old_name != new_name )\r
-      {\r
-        ok = this->m_Graph->RenameVertex(\r
-          old_name.toStdString( ),\r
-          new_name.toStdString( )\r
-          );\r
-        block->setNamePort( new_name );\r
-        this->m_Workspace->RenameFilter(\r
-          old_name.toStdString( ),\r
-          new_name.toStdString( )\r
-          );\r
-\r
-      } // fi\r
-    }\r
-    else if( port != NULL )\r
-    {\r
-      if( evt->modifiers( ) == Qt::ControlModifier )\r
-      {\r
-        port->setExtend( !( port->isExtended( ) ) );\r
-        InputPort* in_port = dynamic_cast< InputPort* >( port );\r
-        OutputPort* out_port = dynamic_cast< OutputPort* >( port );\r
-        if( port->isExtended( ) )\r
-        {\r
-          if( in_port != NULL )\r
-          {\r
-            this->m_Workspace->ExposeInputPort(\r
-              in_port->extendedName( ).toStdString( ),\r
-              in_port->block( )->namePort( ).toStdString( ),\r
-              in_port->name( ).toStdString( )\r
-              );\r
-          }\r
-          else if( out_port != NULL )\r
-          {\r
-            this->m_Workspace->ExposeOutputPort(\r
-              out_port->extendedName( ).toStdString( ),\r
-              out_port->block( )->namePort( ).toStdString( ),\r
-              out_port->name( ).toStdString( )\r
-              );\r
-\r
-          } // fi\r
-        }\r
-        else\r
-        {\r
-          if( in_port != NULL )\r
-            this->m_Workspace->HideInputPort(\r
-              in_port->extendedName( ).toStdString( )\r
-              );\r
-          else if( out_port != NULL )\r
-            this->m_Workspace->HideOutputPort(\r
-              out_port->extendedName( ).toStdString( )\r
-              );\r
-\r
-        } // fi\r
-        this->m_Scene->update( );\r
-      }\r
-      else if( evt->modifiers( ) == Qt::NoModifier )\r
-      {\r
-        if( port->isExtended( ) )\r
-        {\r
-          QString old_name = port->extendedName( );\r
-          bool ok;\r
-          QString new_name =\r
-            QInputDialog::getText(\r
-              dynamic_cast< QWidget* >( this->parent( ) ),\r
-              "Change filter name",\r
-              "Filter name:",\r
-              QLineEdit::Normal,\r
-              old_name,\r
-              &ok\r
-              );\r
-          if( ok && !new_name.isEmpty( ) && old_name != new_name )\r
-          {\r
-            port->setExtendedName( new_name );\r
-            InputPort* in_port = dynamic_cast< InputPort* >( port );\r
-            OutputPort* out_port = dynamic_cast< OutputPort* >( port );\r
-            if( in_port != NULL )\r
-              this->m_Workspace->\r
-                RenameExposedInputPort(\r
-                  old_name.toStdString( ),\r
-                  new_name.toStdString( )\r
-                  );\r
-            else if( out_port != NULL )\r
-              this->m_Workspace->\r
-                RenameExposedOutputPort(\r
-                  old_name.toStdString( ),\r
-                  new_name.toStdString( )\r
-                  );\r
-            this->m_Scene->update( );\r
-\r
-          } // fi\r
-\r
-        } // fi\r
-\r
-      } // fi\r
-    }\r
-    else if( conn != NULL )\r
-    {\r
-    } // fi\r
-  }\r
-  break;\r
-  /* TODO:\r
-     case Qt::RightButton:\r
-     {\r
-     }\r
-     break;\r
-     case Qt::MiddleButton:\r
-     {\r
-     }\r
-     break;\r
-  */\r
-  default:\r
-    break;\r
-  } // hctiws\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor_Editor_Callback_CODE( MouseMove )\r
-{\r
-  if( this->m_ActualConnection != NULL )\r
-  {\r
-    if( this->m_ActualConnection->port1( ) == NULL )\r
-      this->m_ActualConnection->setPos1( evt->scenePos( ) );\r
-    else if( this->m_ActualConnection->port2( ) == NULL )\r
-      this->m_ActualConnection->setPos2( evt->scenePos( ) );\r
-    this->m_ActualConnection->updatePath( );\r
-\r
-  } // fi\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor_Editor_Callback_CODE( MousePress )\r
-{\r
-  InputPort* in_port =\r
-    dynamic_cast< InputPort* >( this->itemAt( evt->scenePos( ) ) );\r
-  OutputPort* out_port =\r
-    dynamic_cast< OutputPort* >( this->itemAt( evt->scenePos( ) ) );\r
-  if( in_port == NULL && out_port == NULL )\r
-    return;\r
-\r
-  switch( evt->button( ) )\r
-  {\r
-  case Qt::LeftButton:\r
-  {\r
-    if( out_port != NULL )\r
-    {\r
-      if( out_port->block( ) != NULL )\r
-      {\r
-        // Start new connection\r
-        this->m_ActualConnection = new Connection( 0, this->m_Scene );\r
-        this->m_ActualConnection->setPort1( out_port );\r
-        this->m_ActualConnection->setPos1( out_port->scenePos( ) );\r
-        this->m_ActualConnection->setPos2( evt->scenePos( ) );\r
-        this->m_ActualConnection->updatePosFromPorts( );\r
-        this->m_ActualConnection->updatePath( );\r
-\r
-      } // fi\r
-\r
-    } // fi\r
-  }\r
-  break;\r
-  default:\r
-    break;\r
-\r
-  } // hctiws\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor_Editor_Callback_CODE( MouseRelease )\r
-{\r
-  if( this->m_ActualConnection == NULL )\r
-    return;\r
-\r
-  switch( evt->button( ) )\r
-  {\r
-  case Qt::LeftButton:\r
-  {\r
-    InputPort* port2 =\r
-      dynamic_cast< InputPort* >( this->itemAt( evt->scenePos( ) ) );\r
-    if( port2 != NULL )\r
-    {\r
-      OutputPort* port1 =\r
-        dynamic_cast< OutputPort* >( this->m_ActualConnection->port1( ) );\r
-      if( port1 != NULL )\r
-      {\r
-        if(\r
-          port1->block( ) != port2->block( ) &&\r
-          !port2->hasConnection( ) &&\r
-          !port1->isConnected( port2 ) &&\r
-          !port2->isExtended( )\r
-          )\r
-        {\r
-          this->m_ActualConnection->setPos2( port2->scenePos( ) );\r
-          this->m_ActualConnection->setPort2( port2 );\r
-          this->m_ActualConnection->updatePosFromPorts( );\r
-          this->m_ActualConnection->updatePath( );\r
-\r
-          this->m_Workspace->Connect(\r
-            port1->block( )->namePort( ).toStdString( ),\r
-            port2->block( )->namePort( ).toStdString( ),\r
-            port1->name( ).toStdString( ),\r
-            port2->name( ).toStdString( )\r
-            );\r
-          this->m_Graph->AddEdge(\r
-            port1->block( )->namePort( ).toStdString( ),\r
-            port2->block( )->namePort( ).toStdString( ),\r
-            this->m_ActualConnection\r
-            );\r
-        }\r
-        else\r
-          delete this->m_ActualConnection;\r
-      }\r
-      else\r
-        delete this->m_ActualConnection;\r
-    }\r
-    else\r
-      delete this->m_ActualConnection;\r
-    this->m_ActualConnection = NULL;\r
-  }\r
-  break;\r
-  default:\r
-    break;\r
-  } // hctisw\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor_Editor_Callback_CODE( Move )\r
-{\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor_Editor_Callback_CODE( Resize )\r
-{\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor_Editor_Callback_CODE( Wheel )\r
-{\r
-}\r
-\r
-// eof - $RCSfile$\r
diff --git a/lib/cpPipelineEditor/Editor.h b/lib/cpPipelineEditor/Editor.h
deleted file mode 100644 (file)
index cea95cb..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-#ifndef __CPPIPELINEEDITOR__EDITOR__H__\r
-#define __CPPIPELINEEDITOR__EDITOR__H__\r
-\r
-#include <cpPipelineEditor/cpPipelineEditor_Export.h>\r
-#include <cpExtensions/DataStructures/Graph.h>\r
-#include <cpPlugins/Workspace.h>\r
-#include <QObject>\r
-#include <QPointF>\r
-\r
-class QGraphicsScene;\r
-class QGraphicsSceneMouseEvent;\r
-class QGraphicsItem;\r
-class QGraphicsSceneContextMenuEvent;\r
-class QGraphicsSceneDragDropEvent;\r
-class QGraphicsSceneHelpEvent;\r
-class QGraphicsSceneHoverEvent;\r
-class QGraphicsSceneMouseEvent;\r
-class QGraphicsSceneMoveEvent;\r
-class QGraphicsSceneResizeEvent;\r
-class QGraphicsSceneWheelEvent;\r
-\r
-// -------------------------------------------------------------------------\r
-#define cpPipelineEditor_Editor_Callback_DCL( E )       \\r
-  void _##E##_cbk( QGraphicsScene##E##Event* e );\r
-\r
-namespace cpPipelineEditor\r
-{\r
-  class Connection;\r
-  class Block;\r
-\r
-  /**\r
-   */\r
-  class cpPipelineEditor_EXPORT Editor\r
-    : public QObject\r
-  {\r
-    Q_OBJECT;\r
-\r
-  public:\r
-    typedef Editor Self;\r
-    typedef QObject      Superclass;\r
-\r
-    typedef cpPlugins::Workspace     TWorkspace;\r
-    typedef cpPlugins::ProcessObject TFilter;\r
-    typedef\r
-      cpExtensions::DataStructures::\r
-      Graph< Block*, Connection*, std::string > TGraph;\r
-\r
-  public:\r
-    explicit Editor( QObject* parent = 0 );\r
-    virtual ~Editor( );\r
-\r
-    TWorkspace* workspace( );\r
-    const TWorkspace* workspace( ) const;\r
-    void setWorkspace( TWorkspace* ws );\r
-\r
-    std::string createFilter(\r
-      const std::string& category, const std::string& filter,\r
-      const QPointF& pnt = QPointF( qreal( 0 ), qreal( 0 ) )\r
-      );\r
-    bool deleteFilter( const std::string& name );\r
-    bool deleteConnection(\r
-      const std::string& src, const std::string& des,\r
-      const std::string& in, const std::string& out\r
-      );\r
-\r
-    void install( QGraphicsScene* s );\r
-    bool eventFilter( QObject* o, QEvent* e );\r
-\r
-    void updateFilter( const std::string& filter_name );\r
-    void showOutputData(\r
-      const std::string& filter_name,\r
-      const std::string& output_name\r
-      );\r
-    void hideOutputData(\r
-      const std::string& filter_name,\r
-      const std::string& output_name\r
-      );\r
-    void visualPropertiesOutputData(\r
-      const std::string& filter_name,\r
-      const std::string& output_name\r
-      );\r
-\r
-  signals:\r
-    void execFilter( const std::string& filter_name );\r
-    void showFilterOutput(\r
-      const std::string& filter_name,\r
-      const std::string& output_name\r
-      );\r
-    void hideFilterOutput(\r
-      const std::string& filter_name,\r
-      const std::string& output_name\r
-      );\r
-    void visualPropertiesFilterOutput(\r
-      const std::string& filter_name,\r
-      const std::string& output_name\r
-      );\r
-\r
-  private:\r
-    QGraphicsItem* itemAt( const QPointF& pos );\r
-\r
-    inline Block* _createBlock(\r
-      TFilter* f, const QString& name, const QPointF& pnt\r
-      );\r
-\r
-  protected:\r
-    typedef QGraphicsSceneDragDropEvent QGraphicsSceneDragEnterEvent;\r
-    typedef QGraphicsSceneDragDropEvent QGraphicsSceneDragLeaveEvent;\r
-    typedef QGraphicsSceneDragDropEvent QGraphicsSceneDragMoveEvent;\r
-    typedef QGraphicsSceneDragDropEvent QGraphicsSceneDropEvent;\r
-    typedef QGraphicsSceneHoverEvent    QGraphicsSceneHoverEnterEvent;\r
-    typedef QGraphicsSceneHoverEvent    QGraphicsSceneHoverMoveEvent;\r
-    typedef QGraphicsSceneHoverEvent    QGraphicsSceneHoverLeaveEvent;\r
-    typedef QGraphicsSceneMouseEvent    QGraphicsSceneMouseDoubleClickEvent;\r
-    typedef QGraphicsSceneMouseEvent    QGraphicsSceneMouseMoveEvent;\r
-    typedef QGraphicsSceneMouseEvent    QGraphicsSceneMousePressEvent;\r
-    typedef QGraphicsSceneMouseEvent    QGraphicsSceneMouseReleaseEvent;\r
-\r
-    cpPipelineEditor_Editor_Callback_DCL( ContextMenu );\r
-    cpPipelineEditor_Editor_Callback_DCL( DragEnter );\r
-    cpPipelineEditor_Editor_Callback_DCL( DragLeave );\r
-    cpPipelineEditor_Editor_Callback_DCL( DragMove );\r
-    cpPipelineEditor_Editor_Callback_DCL( Drop );\r
-    cpPipelineEditor_Editor_Callback_DCL( Help );\r
-    cpPipelineEditor_Editor_Callback_DCL( HoverEnter );\r
-    cpPipelineEditor_Editor_Callback_DCL( HoverLeave );\r
-    cpPipelineEditor_Editor_Callback_DCL( HoverMove );\r
-    cpPipelineEditor_Editor_Callback_DCL( MouseDoubleClick );\r
-    cpPipelineEditor_Editor_Callback_DCL( MouseMove );\r
-    cpPipelineEditor_Editor_Callback_DCL( MousePress );\r
-    cpPipelineEditor_Editor_Callback_DCL( MouseRelease );\r
-    cpPipelineEditor_Editor_Callback_DCL( Move );\r
-    cpPipelineEditor_Editor_Callback_DCL( Resize );\r
-    cpPipelineEditor_Editor_Callback_DCL( Wheel );\r
-\r
-  private:\r
-    QGraphicsScene* m_Scene;\r
-    Connection* m_ActualConnection;\r
-\r
-    TWorkspace* m_Workspace;\r
-    TGraph::Pointer m_Graph;\r
-  };\r
-\r
-} // ecapseman\r
-\r
-#endif // __CPPIPELINEEDITOR__EDITOR__H__\r
-\r
-// eof - $RCSfile$\r
diff --git a/lib/cpPipelineEditor/Port.cxx b/lib/cpPipelineEditor/Port.cxx
deleted file mode 100644 (file)
index 1eb2c78..0000000
+++ /dev/null
@@ -1,305 +0,0 @@
-#include "Port.h"\r
-#include "Connection.h"\r
-#include "Block.h"\r
-#include "Editor.h"\r
-\r
-#include <QGraphicsScene>\r
-#include <QGraphicsSceneContextMenuEvent>\r
-#include <QFontMetrics>\r
-#include <QMenu>\r
-#include <QPainter>\r
-#include <QPen>\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor::Port::\r
-Port( QGraphicsItem* parent, QGraphicsScene* scene )\r
-  : Superclass( parent, scene ),\r
-    m_Radius( 5 ),\r
-    m_Margin( 2 )\r
-{\r
-  this->m_Label = new QGraphicsTextItem( this );\r
-  this->m_ExtendedLabel = new QGraphicsTextItem( this );\r
-  this->setExtend( false );\r
-\r
-  QPainterPath p;\r
-  p.addEllipse( 0, 0, 2 * this->m_Radius, 2 * this->m_Radius );\r
-\r
-  this->setPath( p );\r
-  this->setPen( QPen( Qt::darkRed ) );\r
-  this->setBrush( Qt::red );\r
-  this->setFlag( QGraphicsItem::ItemSendsScenePositionChanges );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor::Port::\r
-~Port( )\r
-{\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpPipelineEditor::Port::\r
-setBlock( Block* b )\r
-{\r
-  this->m_Block = b;\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpPipelineEditor::Port::\r
-setName( const QString& n )\r
-{\r
-  this->m_Label->setPlainText( n );\r
-  this->_updateLabels( );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpPipelineEditor::Port::\r
-setExtendedName( const QString& n )\r
-{\r
-  this->m_ExtendedLabel->setPlainText( n );\r
-  this->_updateLabels( );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpPipelineEditor::Port::\r
-setExtend( bool extend )\r
-{\r
-  // Do nothing!\r
-  this->m_IsExtended = false;\r
-  this->m_ExtendedLabel->setVisible( false );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpPipelineEditor::Port::\r
-paint(\r
-  QPainter* painter,\r
-  const QStyleOptionGraphicsItem* option,\r
-  QWidget* widget\r
-  )\r
-{\r
-  Q_UNUSED( option );\r
-  Q_UNUSED( widget );\r
-\r
-  if( this->isExtended( ) )\r
-  {\r
-    painter->setPen( QPen( Qt::darkBlue ) );\r
-    painter->setBrush( Qt::blue );\r
-  }\r
-  else\r
-  {\r
-    painter->setPen( QPen( Qt::darkRed ) );\r
-    painter->setBrush( Qt::red );\r
-\r
-  } // fi\r
-  painter->drawPath( this->path( ) );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor::NamePort::\r
-NamePort( QGraphicsItem* parent, QGraphicsScene* scene )\r
-  : Superclass( parent, scene )\r
-{\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor::NamePort::\r
-~NamePort( )\r
-{\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpPipelineEditor::NamePort::\r
-_updateLabels( )\r
-{\r
-  QFont font( this->scene( )->font( ) );\r
-  font.setBold( true );\r
-  this->m_Label->setFont( font );\r
-  this->m_ExtendedLabel->setFont( font );\r
-  this->setPath( QPainterPath( ) );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-bool cpPipelineEditor::NamePort::\r
-isConnected( Port* other )\r
-{\r
-  return( false );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor::InputPort::\r
-InputPort( QGraphicsItem* parent, QGraphicsScene* scene )\r
-  : Superclass( parent, scene ),\r
-    m_Connection( NULL )\r
-{\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor::InputPort::\r
-~InputPort( )\r
-{\r
-  if( this->m_Connection != NULL )\r
-    delete this->m_Connection;\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpPipelineEditor::InputPort::\r
-_updateLabels( )\r
-{\r
-  QFontMetrics fm( this->scene( )->font( ) );\r
-  this->m_Label->setPos( this->m_Radius * 2, -fm.height( ) / 2 );\r
-  this->m_ExtendedLabel->setPos(\r
-    -fm.width( this->extendedName( ) ) - this->m_Radius * 2,\r
-    -fm.height( ) / 2\r
-    );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpPipelineEditor::InputPort::\r
-setExtend( bool extend )\r
-{\r
-  if( this->m_Connection == NULL )\r
-  {\r
-    this->m_IsExtended = extend;\r
-    this->m_ExtendedLabel->setVisible( extend );\r
-  }\r
-  else\r
-    this->Superclass::setExtend( false );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-bool cpPipelineEditor::InputPort::\r
-isConnected( Port* other )\r
-{\r
-  if( this->m_Connection != NULL )\r
-    return(\r
-      this->m_Connection->port1( ) == other &&\r
-      this->m_Connection->port2( ) == this\r
-      );\r
-  else\r
-    return( false );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpPipelineEditor::InputPort::\r
-setConnection( Connection* c )\r
-{\r
-  this->m_Connection = c;\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-QVariant cpPipelineEditor::InputPort::\r
-itemChange( GraphicsItemChange change, const QVariant& value )\r
-{\r
-  if( change == ItemScenePositionHasChanged )\r
-  {\r
-    if( this->m_Connection != NULL )\r
-    {\r
-      this->m_Connection->updatePosFromPorts( );\r
-      this->m_Connection->updatePath( );\r
-\r
-    } // fi\r
-\r
-  } // fi\r
-  return( value );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor::OutputPort::\r
-OutputPort( QGraphicsItem* parent, QGraphicsScene* scene )\r
-  : Superclass( parent, scene )\r
-{\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpPipelineEditor::OutputPort::\r
-~OutputPort( )\r
-{\r
-  foreach( Connection* conn, this->m_Connections )\r
-    delete conn;\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpPipelineEditor::OutputPort::\r
-_updateLabels( )\r
-{\r
-  QFontMetrics fm( this->scene( )->font( ) );\r
-  this->m_Label->setPos(\r
-    -fm.width( this->name( ) ) - this->m_Radius * 2, -fm.height( ) / 2\r
-    );\r
-  this->m_ExtendedLabel->setPos( this->m_Radius * 2, -fm.height( ) / 2 );\r
-\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpPipelineEditor::OutputPort::\r
-setExtend( bool extend )\r
-{\r
-  this->m_IsExtended = extend;\r
-  this->m_ExtendedLabel->setVisible( extend );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-bool cpPipelineEditor::OutputPort::\r
-isConnected( Port* other )\r
-{\r
-  auto i = this->m_Connections.begin( );\r
-  bool conn = false;\r
-  for( ; i != this->m_Connections.end( ) && !conn; ++i )\r
-    conn |= ( ( *i )->port1( ) == this && ( *i )->port2( ) == other );\r
-  return( conn );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-QVariant cpPipelineEditor::OutputPort::\r
-itemChange( GraphicsItemChange change, const QVariant& value )\r
-{\r
-  if( change == ItemScenePositionHasChanged )\r
-  {\r
-    foreach( Connection* conn, this->m_Connections )\r
-    {\r
-      conn->updatePosFromPorts( );\r
-      conn->updatePath( );\r
-\r
-    } // rof\r
-\r
-  } // fi\r
-  return( value );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpPipelineEditor::OutputPort::\r
-contextMenuEvent( QGraphicsSceneContextMenuEvent* evt )\r
-{\r
-  if( this->m_Block == NULL )\r
-    return;\r
-  \r
-  QMenu menu;\r
-  QAction* showAction = menu.addAction( "Show" );\r
-  QAction* hideAction = menu.addAction( "Hide" );\r
-  QAction* propertiesAction = menu.addAction( "Properties" );\r
-  QAction* selectedAction = menu.exec( evt->screenPos( ) );\r
-\r
-  if( selectedAction == showAction )\r
-  {\r
-    this->m_Block->editor( )->showOutputData(\r
-      this->m_Block->namePort( ).toStdString( ),\r
-      this->name( ).toStdString( )\r
-      );\r
-  }\r
-  else if( selectedAction == hideAction )\r
-  {\r
-    this->m_Block->editor( )->hideOutputData(\r
-      this->m_Block->namePort( ).toStdString( ),\r
-      this->name( ).toStdString( )\r
-      );\r
-  }\r
-  else if( selectedAction == propertiesAction )\r
-  {\r
-    this->m_Block->editor( )->visualPropertiesOutputData(\r
-      this->m_Block->namePort( ).toStdString( ),\r
-      this->name( ).toStdString( )\r
-      );\r
-\r
-  } // fi\r
-}\r
-\r
-// eof - $RCSfile$\r
diff --git a/lib/cpPipelineEditor/Port.h b/lib/cpPipelineEditor/Port.h
deleted file mode 100644 (file)
index 4daafd0..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-#ifndef __CPPIPELINEEDITOR__PORT__H__\r
-#define __CPPIPELINEEDITOR__PORT__H__\r
-\r
-#include <cpPipelineEditor/cpPipelineEditor_Export.h>\r
-#include <QGraphicsPathItem>\r
-\r
-namespace cpPipelineEditor\r
-{\r
-  class Block;\r
-  class Connection;\r
-\r
-  /**\r
-   */\r
-  class cpPipelineEditor_EXPORT Port\r
-    : public QGraphicsPathItem\r
-  {\r
-  public:\r
-    typedef Port Self;\r
-    typedef QGraphicsPathItem Superclass;\r
-\r
-    enum { Type = QGraphicsItem::UserType + 1 };\r
-\r
-  public:\r
-    Port( QGraphicsItem* parent = NULL, QGraphicsScene* scene = NULL );\r
-    virtual ~Port( );\r
-\r
-    void setBlock( Block* b );\r
-    inline Block* block( ) const\r
-      { return( this->m_Block ); }\r
-\r
-    virtual void setName( const QString& n );\r
-    virtual void setExtendedName( const QString& n );\r
-    inline QString name( ) const\r
-      { return( this->m_Label->toPlainText( ) ); }\r
-    inline QString extendedName( ) const\r
-      { return( this->m_ExtendedLabel->toPlainText( ) ); }\r
-\r
-    inline int radius( ) const\r
-      { return( this->m_Radius ); }\r
-\r
-    inline bool isExtended( ) const\r
-      { return( this->m_IsExtended ); }\r
-    virtual void setExtend( bool extend );\r
-\r
-    virtual bool isConnected( Port* other ) = 0;\r
-    inline int type( ) const\r
-      { return( this->Type ); }\r
-\r
-    virtual void paint(\r
-      QPainter* painter,\r
-      const QStyleOptionGraphicsItem* option,\r
-      QWidget* widget\r
-      );\r
-\r
-  protected:\r
-    virtual void _updateLabels( ) { }\r
-\r
-  protected:\r
-    Block* m_Block;\r
-\r
-    int  m_Radius;\r
-    int  m_Margin;\r
-    bool m_IsExtended;\r
-\r
-    QGraphicsTextItem* m_Label;\r
-    QGraphicsTextItem* m_ExtendedLabel;\r
-  };\r
-\r
-  /**\r
-   */\r
-  class NamePort\r
-    : public Port\r
-  {\r
-  public:\r
-    typedef NamePort Self;\r
-    typedef Port     Superclass;\r
-\r
-    enum { Type = Superclass::Type + 1 };\r
-\r
-  public:\r
-    NamePort( QGraphicsItem* parent = NULL, QGraphicsScene* scene = NULL );\r
-    virtual ~NamePort( );\r
-\r
-    virtual bool isConnected( Port* other );\r
-    inline int type( ) const\r
-      { return( this->Type ); }\r
-\r
-  protected:\r
-    virtual void _updateLabels( );\r
-  };\r
-\r
-  /**\r
-   */\r
-  class InputPort\r
-    : public Port\r
-  {\r
-  public:\r
-    typedef InputPort Self;\r
-    typedef Port      Superclass;\r
-\r
-    enum { Type = Superclass::Type + 3 };\r
-\r
-  public:\r
-    InputPort( QGraphicsItem* parent = NULL, QGraphicsScene* scene = NULL );\r
-    virtual ~InputPort( );\r
-\r
-    virtual void setExtend( bool extend );\r
-\r
-    virtual bool isConnected( Port* other );\r
-    inline int type( ) const\r
-      { return( this->Type ); }\r
-\r
-    void setConnection( Connection* c );\r
-    inline Connection* connection( )\r
-      { return( this->m_Connection ); }\r
-    inline const Connection* connection( ) const\r
-      { return( this->m_Connection ); }\r
-    inline bool hasConnection( ) const\r
-      { return( this->m_Connection != NULL ); }\r
-\r
-  protected:\r
-    QVariant itemChange( GraphicsItemChange change, const QVariant& value );\r
-    virtual void _updateLabels( );\r
-\r
-  protected:\r
-    Connection* m_Connection;\r
-  };\r
-\r
-  /**\r
-   */\r
-  class OutputPort\r
-    : public Port\r
-  {\r
-  public:\r
-    typedef OutputPort Self;\r
-    typedef Port       Superclass;\r
-\r
-    enum { Type = Superclass::Type + 4 };\r
-\r
-  public:\r
-    OutputPort( QGraphicsItem* parent = NULL, QGraphicsScene* scene = NULL );\r
-    virtual ~OutputPort( );\r
-\r
-    virtual void setExtend( bool extend );\r
-\r
-    virtual bool isConnected( Port* other );\r
-    inline int type( ) const\r
-      { return( this->Type ); }\r
-\r
-    inline QVector< Connection* >& connections( )\r
-      { return( this->m_Connections ); }\r
-    inline const QVector< Connection* >& connections( ) const\r
-      { return( this->m_Connections ); }\r
-\r
-  protected:\r
-    QVariant itemChange( GraphicsItemChange change, const QVariant& value );\r
-    virtual void _updateLabels( );\r
-\r
-    virtual void contextMenuEvent( QGraphicsSceneContextMenuEvent* evt );\r
-\r
-  protected:\r
-    QVector< Connection* > m_Connections;\r
-  };\r
-\r
-} // ecapseman\r
-\r
-#endif // __CPPIPELINEEDITOR__PORT__H__\r
-\r
-// eof - $RCSfile$\r
diff --git a/lib/cpPlugins/ActorAxesProperties.cxx b/lib/cpPlugins/ActorAxesProperties.cxx
deleted file mode 100644 (file)
index 373f2e2..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-#include <cpPlugins/ActorAxesProperties.h>
-
-#ifdef cpPlugins_QT4
-
-#include <cpPlugins/ui_ActorAxesProperties.h>
-
-#include <QColorDialog>
-#include <itkVector.h>
-#include <vtkAxesActor.h>
-#include <vtkCaptionActor2D.h>
-#include <vtkMatrix4x4.h>
-#include <vtkTextProperty.h>
-
-// -------------------------------------------------------------------------
-cpPlugins::ActorAxesProperties::
-ActorAxesProperties( QWidget* parent )
-  : cpPlugins::ActorProperties( parent ),
-    m_UI( new Ui::ActorAxesProperties )
-{
-  this->m_UI->setupUi( this );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::ActorAxesProperties::
-~ActorAxesProperties( )
-{
-  delete this->m_UI;
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::ActorAxesProperties::
-addActor( vtkProp* obj )
-{
-  auto actor = dynamic_cast< vtkAxesActor* >( obj );
-  if( actor != NULL )
-  {
-    this->m_Actors.insert( obj );
-    if( this->m_Actors.size( ) == 1 )
-      this->_updateWidgets( );
-    return( true );
-  }
-  else
-    return( false );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ActorAxesProperties::
-_updateWidgets( )
-{
-  auto actor =
-    dynamic_cast< vtkAxesActor* >( this->m_Actors.begin( )->GetPointer( ) );
-  if( actor == NULL )
-    return;
-
-  // Get properties
-  std::string xtext( actor->GetXAxisLabelText( ) );
-  std::string ytext( actor->GetYAxisLabelText( ) );
-  std::string ztext( actor->GetZAxisLabelText( ) );
-  double scale = actor->GetScale( )[ 0 ];
-  auto prop = actor->GetXAxisCaptionActor2D( )->GetCaptionTextProperty( );
-  double rgb[ 3 ];
-  prop->GetColor( rgb );
-  rgb[ 0 ] *= double( 255 );
-  rgb[ 1 ] *= double( 255 );
-  rgb[ 2 ] *= double( 255 );
-
-  // Set widget values
-  auto palette = this->m_UI->TextColor->palette( );
-  palette.setColor(
-    QPalette::Button, QColor( rgb[ 0 ], rgb[ 1 ], rgb[ 2 ] )
-    );
-  this->m_UI->TextColor->setAutoFillBackground( true );
-  this->m_UI->TextColor->setPalette( palette );
-
-  this->m_UI->XText->setText( xtext.c_str( ) );
-  this->m_UI->YText->setText( ytext.c_str( ) );
-  this->m_UI->ZText->setText( ztext.c_str( ) );
-  this->m_UI->Scale->setValue( scale );
-
-  // Connect stuff
-  this->connect(
-    this->m_UI->Scale, SIGNAL( valueChanged( double ) ),
-    this, SLOT( _Scale( double ) )
-    );
-  this->connect(
-    this->m_UI->XText, SIGNAL( textChanged( const QString& ) ),
-    this, SLOT( _TextChanged( const QString& ) )
-    );
-  this->connect(
-    this->m_UI->YText, SIGNAL( textChanged( const QString& ) ),
-    this, SLOT( _TextChanged( const QString& ) )
-    );
-  this->connect(
-    this->m_UI->ZText, SIGNAL( textChanged( const QString& ) ),
-    this, SLOT( _TextChanged( const QString& ) )
-    );
-  this->connect(
-    this->m_UI->TextColor, SIGNAL( clicked( ) ),
-    this, SLOT( _TextColor( ) )
-    );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ActorAxesProperties::
-_Scale( double v )
-{
-  itk::Vector< double, 3 > x, y, z;
-  auto aIt = this->m_Actors.begin( );
-  for( ; aIt != this->m_Actors.end( ); ++aIt )
-  {
-    auto ma = dynamic_cast< vtkAxesActor* >( aIt->GetPointer( ) );
-    auto matrix = ma->GetUserMatrix( );
-    for( unsigned int d = 0; d < 3; ++d )
-    {
-      x[ d ] = matrix->GetElement( d, 0 );
-      y[ d ] = matrix->GetElement( d, 1 );
-      z[ d ] = matrix->GetElement( d, 2 );
-
-    } // rof
-    auto nx = x.GetNorm( );
-    auto ny = y.GetNorm( );
-    auto nz = z.GetNorm( );
-    if( nx > double( 0 ) ) x /= nx;
-    if( ny > double( 0 ) ) y /= ny;
-    if( nz > double( 0 ) ) z /= nz;
-    x *= v;
-    y *= v;
-    z *= v;
-    for( unsigned int d = 0; d < 3; ++d )
-    {
-      matrix->SetElement( d, 0, x[ d ] );
-      matrix->SetElement( d, 1, y[ d ] );
-      matrix->SetElement( d, 2, z[ d ] );
-
-    } // rof
-    ma->Modified( );
-
-  } // rof
-  this->_render( );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ActorAxesProperties::
-_TextChanged( const QString& text )
-{
-  auto obj = this->sender( );
-  auto aIt = this->m_Actors.begin( );
-  auto str = text.toStdString( );
-  for( ; aIt != this->m_Actors.end( ); ++aIt )
-  {
-    auto ma = dynamic_cast< vtkAxesActor* >( aIt->GetPointer( ) );
-    if( obj == this->m_UI->XText )
-      ma->SetXAxisLabelText( str.c_str( ) );
-    else if( obj == this->m_UI->YText )
-      ma->SetYAxisLabelText( str.c_str( ) );
-    else if( obj == this->m_UI->ZText )
-      ma->SetZAxisLabelText( str.c_str( ) );
-    ma->Modified( );
-
-  } // rof
-  this->_render( );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ActorAxesProperties::
-_TextColor( )
-{
-  if( this->m_Actors.size( ) == 0 )
-    return;
-  QPalette pal = this->m_UI->TextColor->palette( );
-  QColor color =
-    QColorDialog::getColor(
-      pal.color( QPalette::Button ),
-      this,
-      "Select Color",
-      QColorDialog::DontUseNativeDialog
-      );
-  if( color.isValid( ) )
-  {
-    pal.setColor( QPalette::Button, color );
-    this->m_UI->TextColor->setAutoFillBackground( true );
-    this->m_UI->TextColor->setPalette( pal );
-    this->m_UI->TextColor->update( );
-
-    double rgb[ 3 ];
-    rgb[ 0 ] = double( color.red( ) ) / double( 255 );
-    rgb[ 1 ] = double( color.green( ) ) / double( 255 );
-    rgb[ 2 ] = double( color.blue( ) ) / double( 255 );
-    auto aIt = this->m_Actors.begin( );
-    for( ; aIt != this->m_Actors.end( ); ++aIt )
-    {
-      auto ma = dynamic_cast< vtkAxesActor* >( aIt->GetPointer( ) );
-      ma->GetXAxisCaptionActor2D( )->GetCaptionTextProperty( )->SetColor( rgb );
-      ma->GetYAxisCaptionActor2D( )->GetCaptionTextProperty( )->SetColor( rgb );
-      ma->GetZAxisCaptionActor2D( )->GetCaptionTextProperty( )->SetColor( rgb );
-      ma->GetXAxisCaptionActor2D( )->Modified( );
-      ma->GetYAxisCaptionActor2D( )->Modified( );
-      ma->GetZAxisCaptionActor2D( )->Modified( );
-      ma->Modified( );
-
-    } // rof
-    this->_render( );
-
-  } // fi
-}
-
-#endif // cpPlugins_QT4
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/ActorAxesProperties.h b/lib/cpPlugins/ActorAxesProperties.h
deleted file mode 100644 (file)
index 244b597..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-#ifndef __CPPLUGINS__ACTORAXESPROPERTIES__H__
-#define __CPPLUGINS__ACTORAXESPROPERTIES__H__
-
-#include <cpPlugins/ActorProperties.h>
-
-#ifdef cpPlugins_QT4
-
-#include <QWidget>
-
-// -------------------------------------------------------------------------
-namespace Ui
-{
-  class ActorAxesProperties;
-}
-
-// -------------------------------------------------------------------------
-namespace cpPlugins
-{
-  /**
-   */
-  class cpPlugins_EXPORT ActorAxesProperties
-    : public ActorProperties
-  {
-    Q_OBJECT;
-
-  public:
-    explicit ActorAxesProperties( QWidget* parent = 0 );
-    virtual ~ActorAxesProperties( );
-
-    virtual bool addActor( vtkProp* obj ) ITK_OVERRIDE;
-
-  protected:
-    virtual void _updateWidgets( ) ITK_OVERRIDE;
-
-  protected slots:
-    void _Scale( double v );
-    void _TextChanged( const QString& text );
-    void _TextColor( );
-
-  protected:
-    Ui::ActorAxesProperties* m_UI;
-  };
-
-} // ecapseman
-
-#endif // cpPlugins_QT4
-
-#endif // __CPPLUGINS__ACTORAXESPROPERTIES__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/ActorAxesProperties.ui b/lib/cpPlugins/ActorAxesProperties.ui
deleted file mode 100644 (file)
index 078f1bb..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>ActorAxesProperties</class>
- <widget class="QWidget" name="ActorAxesProperties">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>339</width>
-    <height>223</height>
-   </rect>
-  </property>
-  <property name="minimumSize">
-   <size>
-    <width>339</width>
-    <height>223</height>
-   </size>
-  </property>
-  <property name="maximumSize">
-   <size>
-    <width>339</width>
-    <height>223</height>
-   </size>
-  </property>
-  <property name="windowTitle">
-   <string>Form</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <item>
-      <widget class="QLabel" name="label">
-       <property name="minimumSize">
-        <size>
-         <width>39</width>
-         <height>17</height>
-        </size>
-       </property>
-       <property name="maximumSize">
-        <size>
-         <width>39</width>
-         <height>17</height>
-        </size>
-       </property>
-       <property name="text">
-        <string>Scale:</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QDoubleSpinBox" name="Scale">
-       <property name="decimals">
-        <number>4</number>
-       </property>
-       <property name="minimum">
-        <double>0.000100000000000</double>
-       </property>
-       <property name="maximum">
-        <double>100000.000000000000000</double>
-       </property>
-       <property name="value">
-        <double>1.000000000000000</double>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_2">
-     <item>
-      <widget class="QLabel" name="label_2">
-       <property name="minimumSize">
-        <size>
-         <width>44</width>
-         <height>17</height>
-        </size>
-       </property>
-       <property name="maximumSize">
-        <size>
-         <width>44</width>
-         <height>17</height>
-        </size>
-       </property>
-       <property name="text">
-        <string>X text:</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QLineEdit" name="XText"/>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_3">
-     <item>
-      <widget class="QLabel" name="label_3">
-       <property name="minimumSize">
-        <size>
-         <width>44</width>
-         <height>17</height>
-        </size>
-       </property>
-       <property name="maximumSize">
-        <size>
-         <width>44</width>
-         <height>17</height>
-        </size>
-       </property>
-       <property name="text">
-        <string>Y text:</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QLineEdit" name="YText"/>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_4">
-     <item>
-      <widget class="QLabel" name="label_4">
-       <property name="minimumSize">
-        <size>
-         <width>43</width>
-         <height>17</height>
-        </size>
-       </property>
-       <property name="maximumSize">
-        <size>
-         <width>43</width>
-         <height>17</height>
-        </size>
-       </property>
-       <property name="text">
-        <string>Z text:</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QLineEdit" name="ZText"/>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QPushButton" name="TextColor">
-     <property name="text">
-      <string>Text color</string>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>
diff --git a/lib/cpPlugins/ActorImageProperties.cxx b/lib/cpPlugins/ActorImageProperties.cxx
deleted file mode 100644 (file)
index 7ff91d0..0000000
+++ /dev/null
@@ -1,245 +0,0 @@
-#include <cpPlugins/ActorImageProperties.h>
-
-#ifdef cpPlugins_QT4
-
-#include <cpPlugins/ui_ActorImageProperties.h>
-
-#include <vtkImageActor.h>
-#include <vtkImageData.h>
-#include <vtkImageMapper3D.h>
-#include <vtkImageProperty.h>
-
-// -------------------------------------------------------------------------
-cpPlugins::ActorImageProperties::
-ActorImageProperties( QWidget* parent )
-  : cpPlugins::ActorProperties( parent ),
-    m_UI( new Ui::ActorImageProperties )
-{
-  this->m_UI->setupUi( this );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::ActorImageProperties::
-~ActorImageProperties( )
-{
-  delete this->m_UI;
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::ActorImageProperties::
-addActor( vtkProp* obj )
-{
-  auto actor = dynamic_cast< vtkImageActor* >( obj );
-  if( actor != NULL )
-  {
-    this->m_Actors.insert( obj );
-    if( this->m_Actors.size( ) == 1 )
-      this->_updateWidgets( );
-    return( true );
-  }
-  else
-    return( false );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ActorImageProperties::
-_updateWidgets( )
-{
-  auto actor =
-    dynamic_cast< vtkImageActor* >( this->m_Actors.begin( )->GetPointer( ) );
-  if( actor == NULL )
-    return;
-
-  // Get properties
-  auto prop = actor->GetProperty( );
-  auto mapper = actor->GetMapper( );
-  auto image = mapper->GetInput( );
-  double r[ 2 ];
-  image->GetScalarRange( r );
-  double win = prop->GetColorWindow( );
-  double lev = prop->GetColorLevel( );
-  double op = prop->GetOpacity( );
-  int interp = prop->GetInterpolationType( );
-
-  this->m_UI->ValueWindow->setMinimum( 0 );
-  this->m_UI->ValueWindow->setMaximum( r[ 1 ] - r[ 0 ] );
-  this->m_UI->ValueLevel->setMinimum( r[ 0 ] );
-  this->m_UI->ValueLevel->setMaximum( r[ 1 ] );
-  this->m_UI->ValueWindow->setValue( win );
-  this->m_UI->ValueLevel->setValue( lev );
-
-  double w = win / ( r[ 1 ] - r[ 0 ] );
-  double l = ( lev - r[ 0 ] ) / ( r[ 1 ] - r[ 0 ] );
-
-  op *= double( this->m_UI->Opacity->maximum( ) );
-  this->m_UI->Opacity->setValue( int( op ) );
-
-  w *= double( this->m_UI->Window->maximum( ) );
-  this->m_UI->Window->setValue( int( w ) );
-
-  l *= double( this->m_UI->Level->maximum( ) );
-  this->m_UI->Level->setValue( int( l ) );
-
-  if( interp == VTK_CUBIC_INTERPOLATION )
-    this->m_UI->Interpolation->setCurrentIndex( 0 );
-  else if( interp == VTK_LINEAR_INTERPOLATION )
-    this->m_UI->Interpolation->setCurrentIndex( 1 );
-  else if( interp == VTK_NEAREST_INTERPOLATION )
-    this->m_UI->Interpolation->setCurrentIndex( 2 );
-
-  // Connect stuff
-  this->connect(
-    this->m_UI->Opacity, SIGNAL( valueChanged( int ) ),
-    this, SLOT( _Opacity( int ) )
-    );
-  this->connect(
-    this->m_UI->Window, SIGNAL( valueChanged( int ) ),
-    this, SLOT( _Window( int ) )
-    );
-  this->connect(
-    this->m_UI->Level, SIGNAL( valueChanged( int ) ),
-    this, SLOT( _Level( int ) )
-    );
-  this->connect(
-    this->m_UI->ValueWindow, SIGNAL( valueChanged( double ) ),
-    this, SLOT( _Window( double ) )
-    );
-  this->connect(
-    this->m_UI->ValueLevel, SIGNAL( valueChanged( double ) ),
-    this, SLOT( _Level( double ) )
-    );
-  this->connect(
-    this->m_UI->Interpolation, SIGNAL( currentIndexChanged( int ) ),
-    this, SLOT( _Interpolation( int ) )
-    );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ActorImageProperties::
-_Opacity( int v )
-{
-  double op = double( v ) / double( this->m_UI->Opacity->maximum( ) );
-  auto aIt = this->m_Actors.begin( );
-  for( ; aIt != this->m_Actors.end( ); ++aIt )
-  {
-    auto ma = dynamic_cast< vtkImageActor* >( aIt->GetPointer( ) );
-    ma->GetProperty( )->SetOpacity( op );
-    ma->Modified( );
-
-  } // rof
-  this->_render( );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ActorImageProperties::
-_Window( int v )
-{
-  double x = this->m_UI->ValueWindow->minimum( );
-  double y = this->m_UI->ValueWindow->maximum( );
-  double z = double( v ) / double( this->m_UI->Window->maximum( ) );
-  double w = ( ( y - x ) * z ) + x;
-  bool prev = this->m_UI->ValueWindow->blockSignals( true );
-  this->m_UI->ValueWindow->setValue( w );
-  this->m_UI->ValueWindow->blockSignals( prev );
-  auto aIt = this->m_Actors.begin( );
-  for( ; aIt != this->m_Actors.end( ); ++aIt )
-  {
-    auto ma = dynamic_cast< vtkImageActor* >( aIt->GetPointer( ) );
-    ma->GetProperty( )->SetColorWindow( w );
-    ma->Modified( );
-
-  } // rof
-  this->_render( );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ActorImageProperties::
-_Level( int v )
-{
-  double x = this->m_UI->ValueLevel->minimum( );
-  double y = this->m_UI->ValueLevel->maximum( );
-  double z = double( v ) / double( this->m_UI->Level->maximum( ) );
-  double l = ( ( y - x ) * z ) + x;
-  bool prev = this->m_UI->ValueLevel->blockSignals( true );
-  this->m_UI->ValueLevel->setValue( l );
-  this->m_UI->ValueLevel->blockSignals( prev );
-  auto aIt = this->m_Actors.begin( );
-  for( ; aIt != this->m_Actors.end( ); ++aIt )
-  {
-    auto ma = dynamic_cast< vtkImageActor* >( aIt->GetPointer( ) );
-    ma->GetProperty( )->SetColorLevel( l );
-    ma->Modified( );
-
-  } // rof
-  this->_render( );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ActorImageProperties::
-_Window( double v )
-{
-  auto aIt = this->m_Actors.begin( );
-  for( ; aIt != this->m_Actors.end( ); ++aIt )
-  {
-    auto ma = dynamic_cast< vtkImageActor* >( aIt->GetPointer( ) );
-    ma->GetProperty( )->SetColorWindow( v );
-    ma->Modified( );
-
-  } // rof
-  this->_render( );
-
-  double x = this->m_UI->ValueWindow->minimum( );
-  double y = this->m_UI->ValueWindow->maximum( );
-  double z = ( v - x ) / ( y - x );
-  double w = double( z ) * double( this->m_UI->Window->maximum( ) );
-  bool prev = this->m_UI->Window->blockSignals( true );
-  this->m_UI->Window->setValue( int( w ) );
-  this->m_UI->Window->blockSignals( prev );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ActorImageProperties::
-_Level( double v )
-{
-  auto aIt = this->m_Actors.begin( );
-  for( ; aIt != this->m_Actors.end( ); ++aIt )
-  {
-    auto ma = dynamic_cast< vtkImageActor* >( aIt->GetPointer( ) );
-    ma->GetProperty( )->SetColorLevel( v );
-    ma->Modified( );
-
-  } // rof
-  this->_render( );
-
-  double x = this->m_UI->ValueLevel->minimum( );
-  double y = this->m_UI->ValueLevel->maximum( );
-  double z = ( v - x ) / ( y - x );
-  double l = double( z ) * double( this->m_UI->Level->maximum( ) );
-  bool prev = this->m_UI->Level->blockSignals( true );
-  this->m_UI->Level->setValue( int( l ) );
-  this->m_UI->Level->blockSignals( prev );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ActorImageProperties::
-_Interpolation( int v )
-{
-  int interp = VTK_NEAREST_INTERPOLATION;
-  if     ( v == 0 ) interp = VTK_CUBIC_INTERPOLATION;
-  else if( v == 1 ) interp = VTK_LINEAR_INTERPOLATION;
-  else if( v == 2 ) interp = VTK_NEAREST_INTERPOLATION;
-
-  auto aIt = this->m_Actors.begin( );
-  for( ; aIt != this->m_Actors.end( ); ++aIt )
-  {
-    auto ma = dynamic_cast< vtkImageActor* >( aIt->GetPointer( ) );
-    ma->GetProperty( )->SetInterpolationType( interp );
-    ma->Modified( );
-
-  } // rof
-  this->_render( );
-}
-
-#endif // cpPlugins_QT4
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/ActorImageProperties.h b/lib/cpPlugins/ActorImageProperties.h
deleted file mode 100644 (file)
index 5c55562..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-#ifndef __CPPLUGINS__ACTORIMAGEPROPERTIES__H__
-#define __CPPLUGINS__ACTORIMAGEPROPERTIES__H__
-
-#include <cpPlugins/ActorProperties.h>
-
-#ifdef cpPlugins_QT4
-
-#include <QWidget>
-
-// -------------------------------------------------------------------------
-namespace Ui
-{
-  class ActorImageProperties;
-}
-
-// -------------------------------------------------------------------------
-namespace cpPlugins
-{
-  /**
-   */
-  class cpPlugins_EXPORT ActorImageProperties
-    : public ActorProperties
-  {
-    Q_OBJECT;
-
-  public:
-    explicit ActorImageProperties( QWidget* parent = 0 );
-    virtual ~ActorImageProperties( );
-
-    virtual bool addActor( vtkProp* obj ) ITK_OVERRIDE;
-
-  protected:
-    virtual void _updateWidgets( ) ITK_OVERRIDE;
-
-  protected slots:
-    void _Opacity( int v );
-    void _Window( int v );
-    void _Level( int v );
-    void _Window( double v );
-    void _Level( double v );
-    void _Interpolation( int v );
-
-  protected:
-    Ui::ActorImageProperties* m_UI;
-  };
-
-} // ecapseman
-
-#endif // cpPlugins_QT4
-
-#endif // __CPPLUGINS__ACTORIMAGEPROPERTIES__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/ActorImageProperties.ui b/lib/cpPlugins/ActorImageProperties.ui
deleted file mode 100644 (file)
index 249a055..0000000
+++ /dev/null
@@ -1,215 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>ActorImageProperties</class>
- <widget class="QWidget" name="ActorImageProperties">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>626</width>
-    <height>158</height>
-   </rect>
-  </property>
-  <property name="minimumSize">
-   <size>
-    <width>626</width>
-    <height>158</height>
-   </size>
-  </property>
-  <property name="maximumSize">
-   <size>
-    <width>626</width>
-    <height>158</height>
-   </size>
-  </property>
-  <property name="windowTitle">
-   <string>Form</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <item>
-      <widget class="QLabel" name="label">
-       <property name="minimumSize">
-        <size>
-         <width>92</width>
-         <height>17</height>
-        </size>
-       </property>
-       <property name="maximumSize">
-        <size>
-         <width>92</width>
-         <height>17</height>
-        </size>
-       </property>
-       <property name="text">
-        <string>Interpolation:</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QComboBox" name="Interpolation">
-       <item>
-        <property name="text">
-         <string>Cubic</string>
-        </property>
-       </item>
-       <item>
-        <property name="text">
-         <string>Linear</string>
-        </property>
-       </item>
-       <item>
-        <property name="text">
-         <string>Nearest</string>
-        </property>
-       </item>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_2">
-     <item>
-      <widget class="QLabel" name="label_2">
-       <property name="minimumSize">
-        <size>
-         <width>59</width>
-         <height>17</height>
-        </size>
-       </property>
-       <property name="maximumSize">
-        <size>
-         <width>59</width>
-         <height>17</height>
-        </size>
-       </property>
-       <property name="text">
-        <string>Window:</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QDoubleSpinBox" name="ValueWindow">
-       <property name="decimals">
-        <number>4</number>
-       </property>
-       <property name="minimum">
-        <double>-100000.000000000000000</double>
-       </property>
-       <property name="maximum">
-        <double>100000.000000000000000</double>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QSlider" name="Window">
-       <property name="minimum">
-        <number>0</number>
-       </property>
-       <property name="maximum">
-        <number>1000</number>
-       </property>
-       <property name="value">
-        <number>0</number>
-       </property>
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_3">
-     <item>
-      <widget class="QLabel" name="label_4">
-       <property name="minimumSize">
-        <size>
-         <width>39</width>
-         <height>17</height>
-        </size>
-       </property>
-       <property name="maximumSize">
-        <size>
-         <width>39</width>
-         <height>17</height>
-        </size>
-       </property>
-       <property name="text">
-        <string>Level:</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QDoubleSpinBox" name="ValueLevel">
-       <property name="decimals">
-        <number>4</number>
-       </property>
-       <property name="minimum">
-        <double>-100000.000000000000000</double>
-       </property>
-       <property name="maximum">
-        <double>100000.000000000000000</double>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QSlider" name="Level">
-       <property name="minimum">
-        <number>0</number>
-       </property>
-       <property name="maximum">
-        <number>1000</number>
-       </property>
-       <property name="value">
-        <number>0</number>
-       </property>
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_4">
-     <item>
-      <widget class="QLabel" name="label_3">
-       <property name="minimumSize">
-        <size>
-         <width>55</width>
-         <height>17</height>
-        </size>
-       </property>
-       <property name="maximumSize">
-        <size>
-         <width>55</width>
-         <height>17</height>
-        </size>
-       </property>
-       <property name="text">
-        <string>Opacity:</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QSlider" name="Opacity">
-       <property name="maximum">
-        <number>100</number>
-       </property>
-       <property name="value">
-        <number>100</number>
-       </property>
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>
diff --git a/lib/cpPlugins/ActorPolyDataProperties.cxx b/lib/cpPlugins/ActorPolyDataProperties.cxx
deleted file mode 100644 (file)
index 5fd9fe1..0000000
+++ /dev/null
@@ -1,254 +0,0 @@
-#include <cpPlugins/ActorPolyDataProperties.h>
-
-#ifdef cpPlugins_QT4
-
-#include <cpPlugins/ui_ActorPolyDataProperties.h>
-#include <QColorDialog>
-#include <vtkActor.h>
-#include <vtkMapper.h>
-#include <vtkProperty.h>
-
-// -------------------------------------------------------------------------
-cpPlugins::ActorPolyDataProperties::
-ActorPolyDataProperties( QWidget* parent )
-  : cpPlugins::ActorProperties( parent ),
-    m_UI( new Ui::ActorPolyDataProperties )
-{
-  this->m_UI->setupUi( this );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::ActorPolyDataProperties::
-~ActorPolyDataProperties( )
-{
-  delete this->m_UI;
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::ActorPolyDataProperties::
-addActor( vtkProp* obj )
-{
-  auto actor = dynamic_cast< vtkActor* >( obj );
-  if( actor != NULL )
-  {
-    this->m_Actors.insert( obj );
-    if( this->m_Actors.size( ) == 1 )
-      this->_updateWidgets( );
-    return( true );
-  }
-  else
-    return( false );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ActorPolyDataProperties::
-_updateWidgets( )
-{
-  auto actor =
-    dynamic_cast< vtkActor* >( this->m_Actors.begin( )->GetPointer( ) );
-  if( actor == NULL )
-    return;
-
-  // Get properties
-  auto mapp = actor->GetMapper( );
-  auto prop = actor->GetProperty( );
-  double rgb[ 3 ];
-  prop->GetColor( rgb );
-  rgb[ 0 ] *= double( 255 );
-  rgb[ 1 ] *= double( 255 );
-  rgb[ 2 ] *= double( 255 );
-  double op = prop->GetOpacity( );
-  double lw = prop->GetLineWidth( );
-  double ps = prop->GetPointSize( );
-  bool sv = ( mapp->GetScalarVisibility( ) == 1 );
-  int rep = prop->GetRepresentation( );
-
-  // Set widget values
-  auto palette = this->m_UI->Color->palette( );
-  palette.setColor(
-    QPalette::Button, QColor( rgb[ 0 ], rgb[ 1 ], rgb[ 2 ] )
-    );
-  this->m_UI->Color->setAutoFillBackground( true );
-  this->m_UI->Color->setPalette( palette );
-
-  op *= double( this->m_UI->Opacity->maximum( ) );
-  this->m_UI->Opacity->setValue( int( op ) );
-  this->m_UI->LineWidth->setValue( int( lw ) );
-  this->m_UI->PointSize->setValue( int( ps ) );
-  this->m_UI->ScalarVisibility->setChecked( sv );
-
-  if( rep == VTK_POINTS )
-    this->m_UI->Representation->setCurrentIndex( 0 );
-  else if( rep == VTK_WIREFRAME )
-    this->m_UI->Representation->setCurrentIndex( 1 );
-  else if( rep == VTK_SURFACE )
-    this->m_UI->Representation->setCurrentIndex( 2 );
-
-  // Connect stuff
-  this->connect(
-    this->m_UI->ScalarVisibility, SIGNAL( stateChanged( int ) ),
-    this, SLOT( _ScalarVisibility( int ) )
-    );
-  this->connect(
-    this->m_UI->Color, SIGNAL( clicked( ) ),
-    this, SLOT( _Color( ) )
-    );
-  this->connect(
-    this->m_UI->Opacity, SIGNAL( valueChanged( int ) ),
-    this, SLOT( _Opacity( int ) )
-    );
-  this->connect(
-    this->m_UI->LineWidth, SIGNAL( valueChanged( int ) ),
-    this, SLOT( _LineWidth( int ) )
-    );
-  this->connect(
-    this->m_UI->PointSize, SIGNAL( valueChanged( int ) ),
-    this, SLOT( _PointSize( int ) )
-    );
-  this->connect(
-    this->m_UI->Representation, SIGNAL( currentIndexChanged( int ) ),
-    this, SLOT( _Representation( int ) )
-    );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ActorPolyDataProperties::
-_ScalarVisibility( int v )
-{
-  if( this->m_Actors.size( ) == 0 )
-    return;
-  QPalette pal = this->m_UI->Color->palette( );
-  QColor color = pal.color( QPalette::Button );
-  double rgb[ 3 ];
-  rgb[ 0 ] = double( color.red( ) ) / double( 255 );
-  rgb[ 1 ] = double( color.green( ) ) / double( 255 );
-  rgb[ 2 ] = double( color.blue( ) ) / double( 255 );
-
-  auto aIt = this->m_Actors.begin( );
-  for( ; aIt != this->m_Actors.end( ); ++aIt )
-  {
-    auto ma = dynamic_cast< vtkActor* >( aIt->GetPointer( ) );
-    if( !( this->m_UI->ScalarVisibility->isChecked( ) ) )
-    {
-      ma->GetMapper( )->ScalarVisibilityOff( );
-      ma->GetProperty( )->SetColor( rgb );
-    }
-    else
-      ma->GetMapper( )->ScalarVisibilityOn( );
-    ma->Modified( );
-
-  } // rof
-  this->_render( );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ActorPolyDataProperties::
-_Color( )
-{
-  if( this->m_Actors.size( ) == 0 )
-    return;
-  QPalette pal = this->m_UI->Color->palette( );
-  QColor color =
-    QColorDialog::getColor(
-      pal.color( QPalette::Button ),
-      this,
-      "Select Color",
-      QColorDialog::DontUseNativeDialog
-      );
-  if( color.isValid( ) )
-  {
-    pal.setColor( QPalette::Button, color );
-    this->m_UI->Color->setAutoFillBackground( true );
-    this->m_UI->Color->setPalette( pal );
-    this->m_UI->Color->update( );
-    this->_ScalarVisibility( 0 );
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ActorPolyDataProperties::
-_Opacity( int v )
-{
-  double op = double( v ) / double( this->m_UI->Opacity->maximum( ) );
-  auto aIt = this->m_Actors.begin( );
-  for( ; aIt != this->m_Actors.end( ); ++aIt )
-  {
-    auto ma = dynamic_cast< vtkActor* >( aIt->GetPointer( ) );
-    ma->GetProperty( )->SetOpacity( op );
-    ma->Modified( );
-
-  } // rof
-  this->_render( );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ActorPolyDataProperties::
-_LineWidth( int v )
-{
-  auto aIt = this->m_Actors.begin( );
-  for( ; aIt != this->m_Actors.end( ); ++aIt )
-  {
-    auto ma = dynamic_cast< vtkActor* >( aIt->GetPointer( ) );
-    ma->GetProperty( )->SetLineWidth( v );
-    ma->Modified( );
-
-  } // rof
-  this->_render( );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ActorPolyDataProperties::
-_PointSize( int v )
-{
-  auto aIt = this->m_Actors.begin( );
-  for( ; aIt != this->m_Actors.end( ); ++aIt )
-  {
-    auto ma = dynamic_cast< vtkActor* >( aIt->GetPointer( ) );
-    ma->GetProperty( )->SetPointSize( v );
-    ma->Modified( );
-
-  } // rof
-  this->_render( );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ActorPolyDataProperties::
-_Representation( int v )
-{
-  int rep = VTK_POINTS + VTK_WIREFRAME + VTK_SURFACE;
-  if     ( v == 0 ) rep = VTK_POINTS;
-  else if( v == 1 ) rep = VTK_WIREFRAME;
-  else if( v == 2 ) rep = VTK_SURFACE;
-
-    auto aIt = this->m_Actors.begin( );
-    for( ; aIt != this->m_Actors.end( ); ++aIt )
-    {
-      auto ma = dynamic_cast< vtkActor* >( aIt->GetPointer( ) );
-      auto prop = ma->GetProperty( );
-      if( rep != VTK_POINTS && rep != VTK_WIREFRAME && rep != VTK_SURFACE )
-      {
-        double rgb[ 3 ];
-        prop->GetColor( rgb );
-        rgb[ 0 ] = double( 1 ) - rgb[ 0 ];
-        rgb[ 1 ] = double( 1 ) - rgb[ 1 ];
-        rgb[ 2 ] = double( 1 ) - rgb[ 2 ];
-        prop->SetRepresentation( VTK_SURFACE );
-        prop->SetEdgeColor( rgb );
-        prop->EdgeVisibilityOn( );
-      }
-      else
-      {
-        prop->EdgeVisibilityOff( );
-        prop->SetRepresentation( rep );
-
-      } // fi
-      ma->Modified( );
-
-    } // rof
-  this->_render( );
-}
-
-#endif // cpPlugins_QT4
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/ActorPolyDataProperties.h b/lib/cpPlugins/ActorPolyDataProperties.h
deleted file mode 100644 (file)
index 457ee50..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-#ifndef __CPPLUGINS__ACTORPOLYDATAPROPERTIES__H__
-#define __CPPLUGINS__ACTORPOLYDATAPROPERTIES__H__
-
-#include <cpPlugins/ActorProperties.h>
-
-#ifdef cpPlugins_QT4
-
-#include <QWidget>
-
-// -------------------------------------------------------------------------
-namespace Ui
-{
-  class ActorPolyDataProperties;
-}
-
-// -------------------------------------------------------------------------
-namespace cpPlugins
-{
-  /**
-   */
-  class cpPlugins_EXPORT ActorPolyDataProperties
-    : public ActorProperties
-  {
-    Q_OBJECT;
-
-  public:
-    explicit ActorPolyDataProperties( QWidget* parent = 0 );
-    virtual ~ActorPolyDataProperties( );
-
-    virtual bool addActor( vtkProp* obj ) ITK_OVERRIDE;
-
-  protected:
-    virtual void _updateWidgets( ) ITK_OVERRIDE;
-
-  protected slots:
-    void _ScalarVisibility( int v );
-    void _Color( );
-    void _Opacity( int v );
-    void _LineWidth( int v );
-    void _PointSize( int v );
-    void _Representation( int v );
-
-  protected:
-    Ui::ActorPolyDataProperties* m_UI;
-  };
-
-} // ecapseman
-
-#endif // cpPlugins_QT4
-
-#endif // __CPPLUGINS__ACTORPOLYDATAPROPERTIES__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/ActorPolyDataProperties.ui b/lib/cpPlugins/ActorPolyDataProperties.ui
deleted file mode 100644 (file)
index 08ec1a8..0000000
+++ /dev/null
@@ -1,233 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>ActorPolyDataProperties</class>
- <widget class="QWidget" name="ActorPolyDataProperties">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>398</width>
-    <height>193</height>
-   </rect>
-  </property>
-  <property name="minimumSize">
-   <size>
-    <width>398</width>
-    <height>193</height>
-   </size>
-  </property>
-  <property name="maximumSize">
-   <size>
-    <width>398</width>
-    <height>193</height>
-   </size>
-  </property>
-  <property name="windowTitle">
-   <string>Form</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <item>
-      <widget class="QLabel" name="label_4">
-       <property name="minimumSize">
-        <size>
-         <width>107</width>
-         <height>17</height>
-        </size>
-       </property>
-       <property name="maximumSize">
-        <size>
-         <width>107</width>
-         <height>17</height>
-        </size>
-       </property>
-       <property name="text">
-        <string>Representation:</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QComboBox" name="Representation">
-       <item>
-        <property name="text">
-         <string>Points</string>
-        </property>
-       </item>
-       <item>
-        <property name="text">
-         <string>Wireframe</string>
-        </property>
-       </item>
-       <item>
-        <property name="text">
-         <string>Surface</string>
-        </property>
-       </item>
-       <item>
-        <property name="text">
-         <string>Surface with edges</string>
-        </property>
-       </item>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_2">
-     <item>
-      <widget class="QLabel" name="label">
-       <property name="minimumSize">
-        <size>
-         <width>73</width>
-         <height>17</height>
-        </size>
-       </property>
-       <property name="maximumSize">
-        <size>
-         <width>73</width>
-         <height>17</height>
-        </size>
-       </property>
-       <property name="text">
-        <string>Line width:</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QSlider" name="LineWidth">
-       <property name="minimum">
-        <number>1</number>
-       </property>
-       <property name="maximum">
-        <number>10</number>
-       </property>
-       <property name="value">
-        <number>1</number>
-       </property>
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_3">
-     <item>
-      <widget class="QLabel" name="label_2">
-       <property name="minimumSize">
-        <size>
-         <width>68</width>
-         <height>17</height>
-        </size>
-       </property>
-       <property name="maximumSize">
-        <size>
-         <width>68</width>
-         <height>17</height>
-        </size>
-       </property>
-       <property name="text">
-        <string>Point size:</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QSlider" name="PointSize">
-       <property name="minimum">
-        <number>1</number>
-       </property>
-       <property name="maximum">
-        <number>10</number>
-       </property>
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_4">
-     <item>
-      <widget class="QLabel" name="label_3">
-       <property name="minimumSize">
-        <size>
-         <width>55</width>
-         <height>17</height>
-        </size>
-       </property>
-       <property name="maximumSize">
-        <size>
-         <width>55</width>
-         <height>17</height>
-        </size>
-       </property>
-       <property name="text">
-        <string>Opacity:</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QSlider" name="Opacity">
-       <property name="maximum">
-        <number>100</number>
-       </property>
-       <property name="value">
-        <number>100</number>
-       </property>
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_5">
-     <item>
-      <widget class="QCheckBox" name="ScalarVisibility">
-       <property name="minimumSize">
-        <size>
-         <width>135</width>
-         <height>22</height>
-        </size>
-       </property>
-       <property name="maximumSize">
-        <size>
-         <width>135</width>
-         <height>22</height>
-        </size>
-       </property>
-       <property name="text">
-        <string>Scalar visibility?</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QPushButton" name="Color">
-       <property name="minimumSize">
-        <size>
-         <width>98</width>
-         <height>27</height>
-        </size>
-       </property>
-       <property name="maximumSize">
-        <size>
-         <width>16777215</width>
-         <height>27</height>
-        </size>
-       </property>
-       <property name="text">
-        <string>Color</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>
diff --git a/lib/cpPlugins/ActorProperties.cxx b/lib/cpPlugins/ActorProperties.cxx
deleted file mode 100644 (file)
index eeb2de1..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-#include <cpPlugins/ActorProperties.h>
-
-#ifdef cpPlugins_QT4
-
-// -------------------------------------------------------------------------
-cpPlugins::ActorProperties::
-ActorProperties( QWidget* parent )
-  : QWidget( parent )
-{
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::ActorProperties::
-~ActorProperties( )
-{
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::ActorProperties::
-addRenderWindow( vtkRenderWindow* win )
-{
-  if( win == NULL )
-    return( false );
-  this->m_Windows.insert( win );
-  return( true );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ActorProperties::
-_render( )
-{
-  for( auto i = this->m_Windows.begin( ); i != this->m_Windows.end( ); ++i )
-    ( *i )->Render( );
-}
-
-#endif // cpPlugins_QT4
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/ActorProperties.h b/lib/cpPlugins/ActorProperties.h
deleted file mode 100644 (file)
index 9bf68e4..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-#ifndef __CPPLUGINS__ACTORPROPERTIES__H__
-#define __CPPLUGINS__ACTORPROPERTIES__H__
-
-#include <cpPlugins/Config.h>
-
-#ifdef cpPlugins_QT4
-
-#include <set>
-#include <QWidget>
-#include <vtkProp.h>
-#include <vtkRenderWindow.h>
-#include <vtkSmartPointer.h>
-
-// -------------------------------------------------------------------------
-namespace cpPlugins
-{
-  /**
-   */
-  class cpPlugins_EXPORT ActorProperties
-    : public QWidget
-  {
-    Q_OBJECT;
-
-  public:
-    template< class _TObj >
-    struct TCmp
-    {
-      bool operator()(
-        const vtkSmartPointer< _TObj >& a,
-        const vtkSmartPointer< _TObj >& b ) const
-        { return( a.GetPointer( ) < b.GetPointer( ) ); }
-    };
-    typedef vtkSmartPointer< vtkProp >                         TActor;
-    typedef vtkSmartPointer< vtkRenderWindow >                 TRenderWindow;
-    typedef std::set< TActor, TCmp< vtkProp > >                TActors;
-    typedef std::set< TRenderWindow, TCmp< vtkRenderWindow > > TWindows;
-
-  public:
-    explicit ActorProperties( QWidget* parent = 0 );
-    virtual ~ActorProperties( );
-
-    virtual bool addActor( vtkProp* obj ) = 0;
-    bool addRenderWindow( vtkRenderWindow* win );
-    void _render( );
-
-  protected:
-    virtual void _updateWidgets( ) = 0;
-
-  protected:
-    TActors  m_Actors;
-    TWindows m_Windows;
-  };
-
-} // ecapseman
-
-#endif // cpPlugins_QT4
-
-#endif // __CPPLUGINS__ACTORPROPERTIES__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/ActorPropertiesQtDialog.cxx b/lib/cpPlugins/ActorPropertiesQtDialog.cxx
deleted file mode 100644 (file)
index d126c3f..0000000
+++ /dev/null
@@ -1,689 +0,0 @@
-#include <cpPlugins/ActorPropertiesQtDialog.h>
-
-#ifdef cpPlugins_QT4
-
-#include <cpPlugins/ActorAxesProperties.h>
-#include <cpPlugins/ActorImageProperties.h>
-#include <cpPlugins/ActorPolyDataProperties.h>
-
-#include <vtkActor.h>
-#include <vtkAxesActor.h>
-#include <vtkImageActor.h>
-/*
-  #include <vtkImageData.h>
-  #include <vtkImageProperty.h>
-  #include <vtkMapper.h>
-  #include <vtkProperty.h>
-
-  #include <QCheckBox>
-  #include <QColorDialog>
-  #include <QDoubleSpinBox>
-  #include <QPushButton>
-  #include <QSlider>
-*/
-
-// -------------------------------------------------------------------------
-cpPlugins::ActorPropertiesQtDialog::
-ActorPropertiesQtDialog( QWidget* parent, Qt::WindowFlags f )
-  : QDialog( parent, f ),
-    m_MainWidget( NULL )
-{
-  this->m_Title = new QLabel( this );
-  this->m_Title->setText( "Visualization properties" );
-  this->m_MainLayout = new QGridLayout( this );
-  this->m_ToolsLayout = new QVBoxLayout( );
-  this->m_ToolsLayout->addWidget( this->m_Title );
-  this->m_MainLayout->addLayout( this->m_ToolsLayout, 0, 0, 1, 1 );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::ActorPropertiesQtDialog::
-~ActorPropertiesQtDialog( )
-{
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::ActorPropertiesQtDialog::
-addActor( vtkProp* obj )
-{
-  if( this->m_MainWidget == NULL )
-  {
-    std::stringstream title;
-    title << "Parameters for an object of class";
-    auto mesh = dynamic_cast< vtkActor* >( obj );
-    auto axes = dynamic_cast< vtkAxesActor* >( obj );
-    auto image = dynamic_cast< vtkImageActor* >( obj );
-    if( mesh != NULL )
-    {
-      title << "\"Mesh\"";
-      this->m_MainWidget = new cpPlugins::ActorPolyDataProperties( this );
-    }
-    else if( axes != NULL )
-    {
-      title << "\"Axes\"";
-      this->m_MainWidget = new cpPlugins::ActorAxesProperties( this );
-    }
-    else if( image != NULL )
-    {
-      title << "\"Image\"";
-      this->m_MainWidget = new cpPlugins::ActorImageProperties( this );
-    }
-    /* TODO
-       else if( axes != NULL )
-    */
-
-    if( this->m_MainWidget != NULL )
-    {
-      this->m_Title->setText( title.str( ).c_str( ) );
-      this->m_ToolsLayout->addWidget( this->m_MainWidget );
-      this->m_Buttons = new QDialogButtonBox( QDialogButtonBox::Ok );
-      this->connect(
-        this->m_Buttons, SIGNAL( accepted( ) ), this, SLOT( accept( ) )
-        );
-      this->connect(
-        this->m_Buttons, SIGNAL( rejected( ) ), this, SLOT( reject( ) )
-        );
-      this->m_ToolsLayout->addWidget( this->m_Buttons );
-
-    } // fi
-
-  } // fi
-
-  if( this->m_MainWidget != NULL )
-    return( this->m_MainWidget->addActor( obj ) );
-  else
-    return( false );
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::ActorPropertiesQtDialog::
-addRenderWindow( vtkRenderWindow* win )
-{
-  if( this->m_MainWidget != NULL && win != NULL )
-    return( this->m_MainWidget->addRenderWindow( win ) );
-  else
-    return( false );
-}
-
-// -------------------------------------------------------------------------
-int cpPlugins::ActorPropertiesQtDialog::
-exec( )
-{
-  int ret = this->QDialog::exec( );
-  /* TODO
-     if( ret == 1 )
-     this->updateParameters( );
-     else
-     this->updateView( );
-  */
-  return( ret );
-}
-
-// -------------------------------------------------------------------------
-/* TODO
-void cpPlugins::ActorPropertiesQtDialog::
-_addButtons( )
-{
-  // Add buttons
-  this->m_Buttons = new QDialogButtonBox( QDialogButtonBox::Ok );
-  this->connect(
-    this->m_Buttons, SIGNAL( accepted( ) ), this, SLOT( accept( ) )
-    );
-  this->connect(
-    this->m_Buttons, SIGNAL( rejected( ) ), this, SLOT( reject( ) )
-    );
-  this->m_ToolsLayout->addWidget( this->m_Buttons );
-  this->m_WidgetsUpdated = true;
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ActorPropertiesQtDialog::
-_updateWidgets( )
-{
-  if( this->m_WidgetsUpdated || this->m_Actors.size( ) == 0 )
-    return;
-  bool     s = this->_configureForAxes( );
-  if( !s ) s = this->_configureForImage( );
-  if( !s ) s = this->_configureForMesh( );
-  this->_addButtons( );
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::ActorPropertiesQtDialog::
-_configureForAxes( )
-{
-  if( this->m_Actors.size( ) == 0 )
-    return( false );
-  auto actor =
-    dynamic_cast< vtkAxesActor* >( this->m_Actors.begin( )->GetPointer( ) );
-  if( actor == NULL )
-    return( false );
-
-  // Set dialog title
-  std::stringstream title;
-  title << "Parameters for an object of class \"Axes\"";
-  this->m_Title->setText( title.str( ).c_str( ) );
-
-  return( true );
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::ActorPropertiesQtDialog::
-_configureForImage( )
-{
-  if( this->m_Actors.size( ) == 0 )
-    return( false );
-  auto actor =
-    dynamic_cast< vtkImageActor* >( this->m_Actors.begin( )->GetPointer( ) );
-  if( actor == NULL )
-    return( false );
-  auto image = actor->GetInput( );
-  if( image == NULL )
-    return( false );
-
-  // Get properties
-  auto prop = actor->GetProperty( );
-  double r[ 2 ];
-  image->GetScalarRange( r );
-  double w = actor->GetProperty( )->GetColorWindow( );
-  double l = actor->GetProperty( )->GetColorLevel( );
-  double sw = double( 1000 ) * w / ( r[ 1 ] - r[ 0 ] );
-  double sl = double( 1000 ) * ( l - r[ 0 ] ) / ( r[ 1 ] - r[ 0 ] );
-  double op = double( 10 ) * prop->GetOpacity( );
-
-  // Set dialog title
-  std::stringstream title;
-  title << "Parameters for an object of class \"Image\"";
-  this->m_Title->setText( title.str( ).c_str( ) );
-
-  // Create widgets
-  QDoubleSpinBox* win_box = new QDoubleSpinBox( this );
-  win_box->setObjectName( "win_box" );
-  win_box->setDecimals( 3 );
-  win_box->setMinimum( 0 );
-  win_box->setMaximum( r[ 1 ] - r[ 0 ] );
-  win_box->setValue( w );
-  win_box->connect(
-    win_box, SIGNAL( valueChanged( double ) ),
-    this, SLOT( _boxWindow( double ) )
-    );
-
-  QSlider* win_sld = new QSlider( Qt::Horizontal, this );
-  win_sld->setObjectName( "win_sld" );
-  win_sld->setRange( 0, 1000 );
-  win_sld->setValue( ( unsigned int )( sw ) );
-  win_sld->connect(
-    win_sld, SIGNAL( valueChanged( int ) ),
-    this, SLOT( _sldWindow( int ) )
-    );
-
-  QHBoxLayout* win_layout = new QHBoxLayout( );
-  QLabel* win_label = new QLabel( this );
-  win_label->setText( QString( "Window: " ) );
-  win_layout->addWidget( win_label );
-  win_layout->addWidget( win_box );
-  win_layout->addWidget( win_sld );
-  this->m_ToolsLayout->addLayout( win_layout );
-
-  QDoubleSpinBox* lev_box = new QDoubleSpinBox( this );
-  lev_box->setObjectName( "lev_box" );
-  lev_box->setDecimals( 3 );
-  lev_box->setMinimum( r[ 0 ] );
-  lev_box->setMaximum( r[ 1 ] );
-  lev_box->setValue( l );
-  lev_box->connect(
-    lev_box, SIGNAL( valueChanged( double ) ),
-    this, SLOT( _boxLevel( double ) )
-    );
-
-  QSlider* lev_sld = new QSlider( Qt::Horizontal, this );
-  lev_sld->setObjectName( "lev_sld" );
-  lev_sld->setRange( 0, 1000 );
-  lev_sld->setValue( ( unsigned int )( sl ) );
-  lev_sld->connect(
-    lev_sld, SIGNAL( valueChanged( int ) ),
-    this, SLOT( _sldLevel( int ) )
-    );
-
-  QHBoxLayout* lev_layout = new QHBoxLayout( );
-  QLabel* lev_label = new QLabel( this );
-  lev_label->setText( QString( "Level: " ) );
-  lev_layout->addWidget( lev_label );
-  lev_layout->addWidget( lev_box );
-  lev_layout->addWidget( lev_sld );
-  this->m_ToolsLayout->addLayout( lev_layout );
-
-  // Configure generic objects
-  QSlider* op_sld = new QSlider( Qt::Horizontal, this );
-  op_sld->setObjectName( "op_sld" );
-  op_sld->setRange( 0, 10 );
-  op_sld->setValue( ( unsigned int )( op ) );
-  op_sld->connect(
-    op_sld, SIGNAL( valueChanged( int ) ),
-    this, SLOT( _sldOpacity( int ) )
-    );
-
-  QHBoxLayout* op_layout = new QHBoxLayout( );
-  QLabel* op_label = new QLabel( this );
-  op_label->setText( QString( "Opacity: " ) );
-  op_layout->addWidget( op_label );
-  op_layout->addWidget( op_sld );
-  this->m_ToolsLayout->addLayout( op_layout );
-
-  return( true );
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::ActorPropertiesQtDialog::
-_configureForMesh( )
-{
-  if( this->m_Actors.size( ) == 0 )
-    return( false );
-  auto actor =
-    dynamic_cast< vtkActor* >( this->m_Actors.begin( )->GetPointer( ) );
-  if( actor == NULL )
-    return( false );
-  auto prop = actor->GetProperty( );
-
-  // Set dialog title
-  std::stringstream title;
-  title << "Parameters for an object of class \"Mesh\"";
-  this->m_Title->setText( title.str( ).c_str( ) );
-
-  // Input boxes
-  QSpinBox* ps_box = new QSpinBox( this );
-  ps_box->setObjectName( "ps_box" );
-  ps_box->setMinimum( 1 );
-  ps_box->setMaximum( 100 );
-  ps_box->setValue( prop->GetPointSize( ) );
-  ps_box->connect(
-    ps_box, SIGNAL( valueChanged( int ) ),
-    this, SLOT( _boxPointSize( int ) )
-    );
-
-  QHBoxLayout* ps_layout = new QHBoxLayout( );
-  QLabel* ps_label = new QLabel( this );
-  ps_label->setText( QString( "Point size: " ) );
-  ps_layout->addWidget( ps_label );
-  ps_layout->addWidget( ps_box );
-  this->m_ToolsLayout->addLayout( ps_layout );
-
-  QSpinBox* lw_box = new QSpinBox( this );
-  lw_box->setObjectName( "lw_box" );
-  lw_box->setMinimum( 1 );
-  lw_box->setMaximum( 100 );
-  lw_box->setValue( prop->GetLineWidth( ) );
-  lw_box->connect(
-    lw_box, SIGNAL( valueChanged( int ) ),
-    this, SLOT( _boxLineWidth( int ) )
-    );
-
-  QHBoxLayout* lw_layout = new QHBoxLayout( );
-  QLabel* lw_label = new QLabel( this );
-  lw_label->setText( QString( "Line width: " ) );
-  lw_layout->addWidget( lw_label );
-  lw_layout->addWidget( lw_box );
-  this->m_ToolsLayout->addLayout( lw_layout );
-
-  QCheckBox* sv_box = new QCheckBox( this );
-  sv_box->setObjectName( "sv_box" );
-  sv_box->setText( "Scalar visibility: " );
-  sv_box->setChecked( ( actor->GetMapper( )->GetScalarVisibility( ) == 1 ) );
-  sv_box->connect(
-    sv_box, SIGNAL( stateChanged( int ) ),
-    this, SLOT( _scalarVisibility( int ) )
-    );
-
-  QHBoxLayout* sv_layout = new QHBoxLayout( );
-  sv_layout->addWidget( sv_box );
-  this->m_ToolsLayout->addLayout( sv_layout );
-
-  double cr, cg, cb;
-  prop->GetColor( cr, cg, cb );
-  cr *= double( 255 );
-  cg *= double( 255 );
-  cb *= double( 255 );
-
-  QPushButton* color_button = new QPushButton( "Color", this );
-  color_button->setObjectName( "color_button" );
-  QPalette color_palette = color_button->palette( );
-  color_palette.setColor( QPalette::Button, QColor( cr, cg, cb ) );
-  color_button->setAutoFillBackground( true );
-  color_button->setPalette( color_palette );
-  color_button->update( );
-  color_button->connect(
-    color_button, SIGNAL( clicked( ) ),
-    this, SLOT( _color( ) )
-    );
-
-  QHBoxLayout* color_layout = new QHBoxLayout( );
-  color_layout->addWidget( color_button );
-  this->m_ToolsLayout->addLayout( color_layout );
-
-  // Configure generic objects
-  QSlider* op_sld = new QSlider( Qt::Horizontal, this );
-  op_sld->setObjectName( "op_sld" );
-  op_sld->setRange( 0, 10 );
-  op_sld->setValue(
-    ( unsigned int )( prop->GetOpacity( ) * double( 10 ) )
-    );
-  op_sld->connect(
-    op_sld, SIGNAL( valueChanged( int ) ),
-    this, SLOT( _sldOpacity( int ) )
-    );
-
-  QHBoxLayout* op_layout = new QHBoxLayout( );
-  QLabel* op_label = new QLabel( this );
-  op_label->setText( QString( "Opacity: " ) );
-  op_layout->addWidget( op_label );
-  op_layout->addWidget( op_sld );
-  this->m_ToolsLayout->addLayout( op_layout );
-
-  return( true );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ActorPropertiesQtDialog::
-_setWindow( double w )
-{
-  if( this->m_Actors.size( ) == 0 )
-    return;
-  auto aIt = this->m_Actors.begin( );
-  for( ; aIt != this->m_Actors.end( ); ++aIt )
-  {
-    auto actor = dynamic_cast< vtkImageActor* >( aIt->GetPointer( ) );
-    if( actor != NULL )
-    {
-      actor->GetProperty( )->SetColorWindow( w );
-      actor->Modified( );
-
-    } // fi
-
-  } // rof
-  this->_render( );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ActorPropertiesQtDialog::
-_setLevel( double l )
-{
-  if( this->m_Actors.size( ) == 0 )
-    return;
-  auto aIt = this->m_Actors.begin( );
-  for( ; aIt != this->m_Actors.end( ); ++aIt )
-  {
-    auto actor = dynamic_cast< vtkImageActor* >( aIt->GetPointer( ) );
-    if( actor != NULL )
-    {
-      actor->GetProperty( )->SetColorLevel( l );
-      actor->Modified( );
-
-    } // fi
-
-  } // rof
-  this->_render( );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ActorPropertiesQtDialog::
-_render( )
-{
-  for( auto i = this->m_Windows.begin( ); i != this->m_Windows.end( ); ++i )
-    ( *i )->Render( );
-}
-
-// -------------------------------------------------------------------------
-template< class _TActor >
-bool cpPlugins::ActorPropertiesQtDialog::
-_addActor( vtkProp* obj )
-{
-  auto new_obj = dynamic_cast< _TActor* >( obj );
-  auto pre_obj =
-    dynamic_cast< _TActor* >( this->m_Actors.begin( )->GetPointer( ) );
-  if( new_obj != NULL && pre_obj != NULL )
-  {
-    this->m_Actors.insert( obj );
-    this->m_WidgetsUpdated = false;
-    return( true );
-  }
-  else
-    return( false );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ActorPropertiesQtDialog::
-_boxWindow( double v )
-{
-  auto* box = this->findChild< QDoubleSpinBox* >( "win_box" );
-  auto* sld = this->findChild< QSlider* >( "win_sld" );
-  if( box == NULL || sld == NULL )
-    return;
-
-  double min = double( sld->minimum( ) );
-  double max = double( sld->maximum( ) );
-  double vmin = box->minimum( );
-  double vmax = box->maximum( );
-  double s = ( v - vmin ) / ( vmax - vmin );
-  s = ( ( max - min ) * s ) + min;
-
-  bool o = sld->blockSignals( true );
-  sld->setValue( ( unsigned int )( s ) );
-  sld->blockSignals( o );
-  this->_setWindow( v );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ActorPropertiesQtDialog::
-_sldWindow( int v )
-{
-  auto* box = this->findChild< QDoubleSpinBox* >( "win_box" );
-  auto* sld = this->findChild< QSlider* >( "win_sld" );
-  if( box == NULL || sld == NULL )
-    return;
-
-  double min = double( sld->minimum( ) );
-  double max = double( sld->maximum( ) );
-  double vmin = box->minimum( );
-  double vmax = box->maximum( );
-  double s = ( double( v ) - min ) / ( max - min );
-  s = ( ( vmax - vmin ) * s ) + vmin;
-
-  bool o = box->blockSignals( true );
-  box->setValue( s );
-  box->blockSignals( o );
-  this->_setWindow( s );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ActorPropertiesQtDialog::
-_boxLevel( double v )
-{
-  auto* box = this->findChild< QDoubleSpinBox* >( "lev_box" );
-  auto* sld = this->findChild< QSlider* >( "lev_sld" );
-  if( box == NULL || sld == NULL )
-    return;
-
-  double min = double( sld->minimum( ) );
-  double max = double( sld->maximum( ) );
-  double vmin = box->minimum( );
-  double vmax = box->maximum( );
-  double s = ( v - vmin ) / ( vmax - vmin );
-  s = ( ( max - min ) * s ) + min;
-
-  bool o = sld->blockSignals( true );
-  sld->setValue( ( unsigned int )( s ) );
-  sld->blockSignals( o );
-  this->_setLevel( v );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ActorPropertiesQtDialog::
-_sldLevel( int v )
-{
-  auto* box = this->findChild< QDoubleSpinBox* >( "lev_box" );
-  auto* sld = this->findChild< QSlider* >( "lev_sld" );
-  if( box == NULL || sld == NULL )
-    return;
-
-  double min = double( sld->minimum( ) );
-  double max = double( sld->maximum( ) );
-  double vmin = box->minimum( );
-  double vmax = box->maximum( );
-  double s = ( double( v ) - min ) / ( max - min );
-  s = ( ( vmax - vmin ) * s ) + vmin;
-
-  bool o = box->blockSignals( true );
-  box->setValue( s );
-  box->blockSignals( o );
-  this->_setLevel( s );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ActorPropertiesQtDialog::
-_sldOpacity( int v )
-{
-  if( this->m_Actors.size( ) == 0 )
-    return;
-  auto* sld = this->findChild< QSlider* >( "op_sld" );
-  if( sld == NULL )
-    return;
-
-  double min = double( sld->minimum( ) );
-  double max = double( sld->maximum( ) );
-  double s = ( double( v ) - min ) / ( max - min );
-
-  auto aIt = this->m_Actors.begin( );
-  for( ; aIt != this->m_Actors.end( ); ++aIt )
-  {
-    auto ia = dynamic_cast< vtkImageActor* >( aIt->GetPointer( ) );
-    auto ma = dynamic_cast< vtkActor* >( aIt->GetPointer( ) );
-    if( ia != NULL )
-    {
-      ia->GetProperty( )->SetOpacity( s );
-      ia->Modified( );
-    }
-    else if( ma != NULL )
-    {
-      ma->GetProperty( )->SetOpacity( s );
-      ma->Modified( );
-
-    } // fi
-
-  } // rof
-  this->_render( );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ActorPropertiesQtDialog::
-_boxPointSize( int v )
-{
-  if( this->m_Actors.size( ) == 0 )
-    return;
-  auto aIt = this->m_Actors.begin( );
-  for( ; aIt != this->m_Actors.end( ); ++aIt )
-  {
-    auto ma = dynamic_cast< vtkActor* >( aIt->GetPointer( ) );
-    if( ma != NULL )
-    {
-      ma->GetProperty( )->SetPointSize( v );
-      ma->Modified( );
-
-    } // fi
-
-  } // rof
-  this->_render( );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ActorPropertiesQtDialog::
-_boxLineWidth( int v )
-{
-  if( this->m_Actors.size( ) == 0 )
-    return;
-  auto aIt = this->m_Actors.begin( );
-  for( ; aIt != this->m_Actors.end( ); ++aIt )
-  {
-    auto ma = dynamic_cast< vtkActor* >( aIt->GetPointer( ) );
-    if( ma != NULL )
-    {
-      ma->GetProperty( )->SetLineWidth( v );
-      ma->Modified( );
-
-    } // fi
-
-  } // rof
-  this->_render( );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ActorPropertiesQtDialog::
-_scalarVisibility( int v )
-{
-  if( this->m_Actors.size( ) == 0 )
-    return;
-  auto* btn = this->findChild< QPushButton* >( "color_button" );
-  auto* chk = this->findChild< QCheckBox* >( "sv_box" );
-  if( btn == NULL || chk == NULL )
-    return;
-  QPalette pal = btn->palette( );
-  QColor color = pal.color( QPalette::Button );
-  double rgb[ 3 ];
-  rgb[ 0 ] = double( color.red( ) ) / double( 255 );
-  rgb[ 1 ] = double( color.green( ) ) / double( 255 );
-  rgb[ 2 ] = double( color.blue( ) ) / double( 255 );
-
-  auto aIt = this->m_Actors.begin( );
-  for( ; aIt != this->m_Actors.end( ); ++aIt )
-  {
-    auto ma = dynamic_cast< vtkActor* >( aIt->GetPointer( ) );
-    if( ma != NULL )
-    {
-      if( !( chk->isChecked( ) ) )
-      {
-        ma->GetMapper( )->ScalarVisibilityOff( );
-        ma->GetProperty( )->SetColor( rgb );
-      }
-      else
-        ma->GetMapper( )->ScalarVisibilityOn( );
-      ma->Modified( );
-
-    } // fi
-
-  } // rof
-  this->_render( );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ActorPropertiesQtDialog::
-_color( )
-{
-  if( this->m_Actors.size( ) == 0 )
-    return;
-  auto* btn = this->findChild< QPushButton* >( "color_button" );
-  auto* chk = this->findChild< QCheckBox* >( "sv_box" );
-  if( btn == NULL || chk == NULL )
-    return;
-
-  QPalette pal = btn->palette( );
-  QColor color =
-    QColorDialog::getColor(
-      pal.color( QPalette::Button ),
-      this,
-      "Select Color",
-      QColorDialog::DontUseNativeDialog
-      );
-  if( color.isValid( ) )
-  {
-    pal.setColor( QPalette::Button, color );
-    btn->setAutoFillBackground( true );
-    btn->setPalette( pal );
-    btn->update( );
-    this->_scalarVisibility( 0 );
-
-  } // fi
-}
-*/
-
-#endif // cpPlugins_QT4
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/ActorPropertiesQtDialog.h b/lib/cpPlugins/ActorPropertiesQtDialog.h
deleted file mode 100644 (file)
index 394fc6e..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-#ifndef __CPPLUGINS__ACTORPROPERTIESQTDIALOG__H__
-#define __CPPLUGINS__ACTORPROPERTIESQTDIALOG__H__
-
-#include <cpPlugins/ActorProperties.h>
-
-#ifdef cpPlugins_QT4
-
-#include <QDialog>
-#include <QDialogButtonBox>
-#include <QGridLayout>
-#include <QLabel>
-#include <QVBoxLayout>
-/*
-  #include <set>
-  #include <vtkProp.h>
-  #include <vtkRenderWindow.h>
-  #include <vtkSmartPointer.h>
-
-  #include <QApplication>
-
-  class vtkProp;
-*/
-
-namespace cpPlugins
-{
-  /**
-   */
-  class cpPlugins_EXPORT ActorPropertiesQtDialog
-    : public QDialog
-  {
-    Q_OBJECT;
-
-  public:
-    ActorPropertiesQtDialog(
-      QWidget* parent = 0, Qt::WindowFlags f = 0
-      );
-    virtual ~ActorPropertiesQtDialog( );
-
-    virtual bool addActor( vtkProp* obj );
-    virtual bool addRenderWindow( vtkRenderWindow* win );
-    virtual int exec( );
-
-  protected:
-    /* TODO
-       virtual void _addButtons( );
-       virtual void _updateWidgets( );
-
-       virtual bool _configureForAxes( );
-       virtual bool _configureForImage( );
-       virtual bool _configureForMesh( );
-
-       void _setWindow( double w );
-       void _setLevel( double l );
-       void _render( );
-
-       template< class _TActor >
-       inline bool _addActor( vtkProp* obj );
-
-       protected slots:
-       void _boxWindow( double v );
-       void _sldWindow( int v );
-       void _boxLevel( double v );
-       void _sldLevel( int v );
-       void _sldOpacity( int v );
-       void _boxPointSize( int v );
-       void _boxLineWidth( int v );
-       void _scalarVisibility( int v );
-       void _color( );
-    */
-
-    /* TODO
-       virtual void updateParameters( );
-       virtual void updateView( );
-
-       protected:
-       virtual void _addButtons( );
-       virtual void _updateWidgets( );
-
-       protected slots:
-       virtual void _dlg_OpenSingleFile( );
-       virtual void _dlg_SaveSingleFile( );
-       virtual void _dlg_OpenSinglePath( );
-       virtual void _dlg_OpenMultipleFiles( );
-       virtual void _dlg_AddInt( );
-       virtual void _dlg_AddUint( );
-       virtual void _dlg_AddReal( );
-    */
-
-  protected:
-    cpPlugins::ActorProperties* m_MainWidget;
-    QLabel* m_Title;
-    QGridLayout* m_MainLayout;
-    QVBoxLayout* m_ToolsLayout;
-    QDialogButtonBox* m_Buttons;
-  };
-
-} // ecapseman
-
-#endif // cpPlugins_QT4
-
-#endif // __CPPLUGINS__ACTORPROPERTIESQTDIALOG__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/BaseWidget.cxx b/lib/cpPlugins/BaseWidget.cxx
deleted file mode 100644 (file)
index 7bcca52..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-#include <cpPlugins/BaseWidget.h>
-
-#ifdef cpPlugins_QT4
-
-// -------------------------------------------------------------------------
-itk::ModifiedTimeType cpPlugins::BaseWidget::
-GetMTime( ) const
-{
-  // Let time only be managed by itk -> synch issues when data is
-  // represented by vtk
-  return( this->itk::Object::GetMTime( ) );
-}
-
-// -------------------------------------------------------------------------
-const cpPlugins::BaseWidget::TMPRWidget* cpPlugins::BaseWidget::
-GetMPRViewer( ) const
-{
-  return( this->m_MPRViewer );
-}
-
-// -------------------------------------------------------------------------
-const vtkRenderWindowInteractor* cpPlugins::BaseWidget::
-GetSingleInteractor( ) const
-{
-  return( this->m_SingleInteractor );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::BaseWidget::
-SetMPRViewer( cpPlugins::BaseWidget::TMPRWidget* v )
-{
-  if( this->m_MPRViewer != v )
-  {
-    this->m_MPRViewer = v;
-    this->Modified( );
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::BaseWidget::
-SetSingleInteractor( vtkRenderWindowInteractor* i )
-{
-  if( this->m_SingleInteractor != i )
-  {
-    this->m_SingleInteractor = i;
-    this->Modified( );
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::BaseWidget::
-IsInteractive( )
-{
-  return( true );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::BaseWidget::
-SetInteractionObjects( const std::vector< void* >& objs )
-{
-  if( objs.size( ) > 0 )
-  {
-    vtkRenderWindowInteractor* rwi =
-      reinterpret_cast< vtkRenderWindowInteractor* >( objs[ 0 ] );
-    this->SetSingleInteractor( rwi );
-  }
-  if( objs.size( ) > 1 )
-  {
-    TMPRWidget* wdg = reinterpret_cast< TMPRWidget* >( objs[ 1 ] );
-    this->SetMPRViewer( wdg );
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::BaseWidget::
-BaseWidget( )
-  : Superclass( ),
-    m_MPRViewer( NULL ),
-    m_SingleInteractor( NULL )
-{
-  this->m_Parameters.ConfigureAsString( "Text" );
-  this->m_Parameters.SetString( "Text", "" );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::BaseWidget::
-~BaseWidget( )
-{
-  // Warning: Qt's smartpointers require this to avoid segfaults
-  this->m_MPRViewer = NULL;
-  this->m_SingleInteractor = NULL;
-}
-
-#endif // cpPlugins_QT4
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/BaseWidget.h b/lib/cpPlugins/BaseWidget.h
deleted file mode 100644 (file)
index 7ccff1a..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-#ifndef __CPPLUGINS__BASEWIDGET__H__
-#define __CPPLUGINS__BASEWIDGET__H__
-
-#include <cpPlugins/Config.h>
-
-#ifdef cpPlugins_QT4
-
-#include <cpPlugins/ProcessObject.h>
-
-// Some forward declarations
-class vtkRenderWindowInteractor;
-namespace cpExtensions
-{
-  namespace QT
-  {
-    class SimpleMPRWidget;
-  }
-}
-
-namespace cpPlugins
-{
-  /**
-   */
-  class cpPlugins_EXPORT BaseWidget
-    : public ProcessObject
-  {
-  public:
-    typedef BaseWidget                      Self;
-    typedef ProcessObject                   Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-    typedef cpExtensions::QT::SimpleMPRWidget TMPRWidget;
-
-  public:
-    itkTypeMacro( BaseWidget, ProcessObject );
-    cpPlugins_Id_Macro( Widgets::BaseWidget, Widgets );
-
-  public:
-    virtual itk::ModifiedTimeType GetMTime( ) const ITK_OVERRIDE;
-
-    const TMPRWidget* GetMPRViewer( ) const;
-    const vtkRenderWindowInteractor*  GetSingleInteractor( ) const;
-
-    void SetMPRViewer( TMPRWidget* v );
-    void SetSingleInteractor( vtkRenderWindowInteractor* i );
-
-    virtual bool IsInteractive( ) ITK_OVERRIDE;
-    virtual void SetInteractionObjects(
-      const std::vector< void* >& objs
-      ) ITK_OVERRIDE;
-
-  protected:
-    BaseWidget( );
-    virtual ~BaseWidget( );
-
-  private:
-    // Purposely not implemented
-    BaseWidget( const Self& );
-    Self& operator=( const Self& );
-
-  protected:
-    TMPRWidget*                m_MPRViewer;
-    vtkRenderWindowInteractor* m_SingleInteractor;
-  };
-
-} // ecapseman
-
-#endif // cpPlugins_QT4
-
-#endif // __CPPLUGINS__BASEWIDGET__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/BoundingBox.cxx b/lib/cpPlugins/BoundingBox.cxx
deleted file mode 100644 (file)
index 14f48f4..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-#include <cpPlugins/BoundingBox.h>
-#include <limits>
-#include <vtkDataSet.h>
-
-// -------------------------------------------------------------------------
-void cpPlugins::BoundingBox::
-SetDataObject( DataObject* o )
-{
-  auto i = o->GetITK< itk::LightObject >( );
-  auto v = o->GetVTK< vtkObjectBase >( );
-  if( v != NULL )      this->SetVTK( v );
-  else if( i != NULL ) this->SetITK( i );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::BoundingBox::
-SetITK( itk::LightObject* o )
-{
-  bool     r = this->_ITKImage< 1 >( o );
-  if( !r ) r = this->_ITKImage< 2 >( o );
-  if( !r ) r = this->_ITKImage< 3 >( o );
-  if( !r ) r = this->_ITKImage< 4 >( o );
-  if( !r ) r = this->_ITKPointSet< float, 2 >( o );
-  if( !r ) r = this->_ITKPointSet< double, 2 >( o );
-  if( !r ) r = this->_ITKPointSet< float, 3 >( o );
-  if( !r ) r = this->_ITKPointSet< double, 3 >( o );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::BoundingBox::
-SetVTK( vtkObjectBase* o )
-{
-  auto ds = dynamic_cast< vtkDataSet* >( o );
-  if( ds != NULL )
-  {
-    double bounds[ 6 ];
-    ds->GetBounds( bounds );
-    this->m_Points[ 0 ].clear( );
-    this->m_Points[ 1 ].clear( );
-    this->m_Points[ 0 ].push_back( bounds[ 0 ] );
-    this->m_Points[ 1 ].push_back( bounds[ 1 ] );
-    this->m_Points[ 0 ].push_back( bounds[ 2 ] );
-    this->m_Points[ 1 ].push_back( bounds[ 3 ] );
-    this->m_Points[ 0 ].push_back( bounds[ 4 ] );
-    this->m_Points[ 1 ].push_back( bounds[ 5 ] );
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::BoundingBox::
-Copy( Self* other )
-{
-  this->m_Points[ 0 ] = other->m_Points[ 0 ];
-  this->m_Points[ 1 ] = other->m_Points[ 1 ];
-  this->Modified( );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::BoundingBox::
-Blend( Self* other )
-{
-  if( this->m_Points[ 0 ].size( ) < other->m_Points[ 0 ].size( ) )
-    this->m_Points[ 0 ].resize(
-      other->m_Points[ 0 ].size( ),
-      std::numeric_limits< double >::max( )
-      );
-  if( this->m_Points[ 1 ].size( ) < other->m_Points[ 1 ].size( ) )
-    this->m_Points[ 1 ].resize(
-      other->m_Points[ 1 ].size( ),
-      -std::numeric_limits< double >::max( )
-      );
-  for( unsigned int d = 0; d < this->m_Points[ 0 ].size( ); ++d )
-    if( other->m_Points[ 0 ][ d ] < this->m_Points[ 0 ][ d ] )
-      this->m_Points[ 0 ][ d ] = other->m_Points[ 0 ][ d ];
-  for( unsigned int d = 0; d < this->m_Points[ 1 ].size( ); ++d )
-    if( other->m_Points[ 1 ][ d ] > this->m_Points[ 1 ][ d ] )
-      this->m_Points[ 1 ][ d ] = other->m_Points[ 1 ][ d ];
-  this->Modified( );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::BoundingBox::
-BoundingBox( )
-  : Superclass( )
-{
-  this->m_Points[ 0 ].push_back( double( 0 ) );
-  this->m_Points[ 1 ].push_back( double( 0 ) );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::BoundingBox::
-~BoundingBox( )
-{
-}
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/BoundingBox.h b/lib/cpPlugins/BoundingBox.h
deleted file mode 100644 (file)
index b29cf2d..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-#ifndef __CPPLUGINS__BOUNDINGBOX__H__
-#define __CPPLUGINS__BOUNDINGBOX__H__
-
-#include <vector>
-#include <cpPlugins/DataObject.h>
-
-namespace cpPlugins
-{
-  /**
-   */
-  class cpPlugins_EXPORT BoundingBox
-    : public DataObject
-  {
-  public:
-    typedef BoundingBox                     Self;
-    typedef DataObject                      Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-  public:
-    itkNewMacro( Self );
-    itkTypeMacro( BoundingBox, DataObject );
-    cpPlugins_Id_Macro( BoundingBox, Object );
-
-  public:
-    void SetDataObject( DataObject* o );
-    virtual void SetITK( itk::LightObject* o ) ITK_OVERRIDE;
-    virtual void SetVTK( vtkObjectBase* o ) ITK_OVERRIDE;
-
-    void Copy( Self* other );
-    void Blend( Self* other );
-
-    template< class _TPoint >
-      inline void SetMinimum( const _TPoint& p );
-
-    template< class _TPoint >
-      inline void SetMaximum( const _TPoint& p );
-
-    template< class _TPoint >
-      inline _TPoint GetMinimum( ) const;
-
-    template< class _TPoint >
-      inline _TPoint GetMaximum( ) const;
-
-  protected:
-    BoundingBox( );
-    virtual ~BoundingBox( );
-
-    template< class _TPoint >
-      inline void _SetPoint( unsigned int m, const _TPoint& p );
-
-    template< class _TPoint >
-      inline _TPoint _GetPoint( unsigned int m ) const;
-
-    template< unsigned int _NDim >
-      inline bool _ITKImage( itk::LightObject* o );
-
-    template< class _TScalar, unsigned int _NDim >
-      inline bool _ITKPointSet( itk::LightObject* o );
-
-  private:
-    // Purposely not implemented
-    BoundingBox( const Self& );
-    Self& operator=( const Self& );
-
-  protected:
-    std::vector< double > m_Points[ 2 ];
-  };
-
-} // ecapseman
-
-#include <cpPlugins/BoundingBox.hxx>
-
-#endif // __CPPLUGINS__BOUNDINGBOX__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/BoundingBox.hxx b/lib/cpPlugins/BoundingBox.hxx
deleted file mode 100644 (file)
index be95c3a..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-#ifndef __CPPLUGINS__BOUNDINGBOX__HXX__
-#define __CPPLUGINS__BOUNDINGBOX__HXX__
-
-#include <cpPlugins/Image.h>
-#include <cpPlugins/Mesh.h>
-#include <itkBoundingBox.h>
-#include <itkPointSet.h>
-
-// -------------------------------------------------------------------------
-template< class _TPoint >
-void cpPlugins::BoundingBox::
-SetMinimum( const _TPoint& p )
-{
-  this->_SetPoint( 0, p );
-}
-
-// -------------------------------------------------------------------------
-template< class _TPoint >
-void cpPlugins::BoundingBox::
-SetMaximum( const _TPoint& p )
-{
-  this->_SetPoint( 1, p );
-}
-
-// -------------------------------------------------------------------------
-template< class _TPoint >
-_TPoint cpPlugins::BoundingBox::
-GetMinimum( ) const
-{
-  return( this->_GetPoint< _TPoint >( 0 ) );
-}
-
-// -------------------------------------------------------------------------
-template< class _TPoint >
-_TPoint cpPlugins::BoundingBox::
-GetMaximum( ) const
-{
-  return( this->_GetPoint< _TPoint >( 1 ) );
-}
-
-// -------------------------------------------------------------------------
-template< class _TPoint >
-void cpPlugins::BoundingBox::
-_SetPoint( unsigned int m, const _TPoint& p )
-{
-  this->m_Points[ m ].clear( );
-  for( unsigned int d = 0; d < _TPoint::PointDimension; ++d )
-    this->m_Points[ m ].push_back( double( p[ d ] ) );
-  this->Modified( );
-}
-
-// -------------------------------------------------------------------------
-template< class _TPoint >
-_TPoint cpPlugins::BoundingBox::
-_GetPoint( unsigned int m ) const
-{
-  unsigned int dim = this->m_Points[ m ].size( );
-  dim = ( _TPoint::PointDimension < dim )? _TPoint::PointDimension: dim;
-  _TPoint p;
-  p.Fill( 0 );
-  for( unsigned int d = 0; d < dim; ++d )
-    p[ d ] = this->m_Points[ m ][ d ];
-  return( p );
-}
-
-// -------------------------------------------------------------------------
-template< unsigned int _NDim >
-bool cpPlugins::BoundingBox::
-_ITKImage( itk::LightObject* o )
-{
-  auto image = dynamic_cast< itk::ImageBase< _NDim >* >( o );
-  if( image == NULL )
-    return( false );
-
-  auto region = image->GetLargestPossibleRegion( );
-  auto i0 = region.GetIndex( );
-  auto i1 = i0 + region.GetSize( );
-
-  typename itk::ImageBase< _NDim >::PointType p0, p1;
-  image->TransformIndexToPhysicalPoint( i0, p0 );
-  image->TransformIndexToPhysicalPoint( i1, p1 );
-  this->m_Points[ 0 ].clear( );
-  this->m_Points[ 1 ].clear( );
-
-  for( unsigned int d = 0; d < _NDim; ++d )
-  {
-    this->m_Points[ 0 ].push_back( double( p0[ d ] ) );
-    this->m_Points[ 1 ].push_back( double( p1[ d ] ) );
-
-  } // rof
-  this->Modified( );
-  return( true );
-}
-
-// -------------------------------------------------------------------------
-template< class _TScalar, unsigned int _NDim >
-bool cpPlugins::BoundingBox::
-_ITKPointSet( itk::LightObject* o )
-{
-  typedef itk::PointSet< _TScalar, _NDim > _TPointSet;
-  typedef itk::BoundingBox< typename _TPointSet::PointIdentifier, _NDim, _TScalar, typename _TPointSet::PointsContainer > _TBBox;
-
-  auto ps = dynamic_cast< _TPointSet* >( o );
-  if( ps == NULL )
-    return( false );
-
-  this->m_Points[ 0 ].clear( );
-  this->m_Points[ 1 ].clear( );
-
-  typename _TBBox::Pointer bb = _TBBox::New( );
-  bb->SetPoints( ps->GetPoints( ) );
-  if( bb->ComputeBoundingBox( ) )
-  {
-    auto p0 = bb->GetMinimum( );
-    auto p1 = bb->GetMaximum( );
-    for( unsigned int d = 0; d < _NDim; ++d )
-    {
-      this->m_Points[ 0 ].push_back( double( p0[ d ] ) );
-      this->m_Points[ 1 ].push_back( double( p1[ d ] ) );
-
-    } // rof
-    this->Modified( );
-    return( true );
-  }
-  else
-    return( false );
-}
-
-#endif // __CPPLUGINS__BOUNDINGBOX__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/CMakeLists.txt b/lib/cpPlugins/CMakeLists.txt
deleted file mode 100644 (file)
index bb3bdb9..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-## =============================
-## = Set names and directories =
-## =============================
-
-SET(lib_NAME cpPlugins)
-SET(lib_DIR  cpPlugins)
-
-## =========================
-## = Configure local files =
-## =========================
-
-CONFIGURE_FILE(
-  Config.h.in
-  ${PROJECT_BINARY_DIR}/lib/${lib_DIR}/Config.h
-  @ONLY
-  )
-
-## ===============
-## = Source code =
-## ===============
-
-FILE(GLOB lib_HEADERS_H   "*.h")
-FILE(GLOB lib_HEADERS_HPP "*.hpp")
-FILE(GLOB lib_HEADERS_HXX "*.hxx")
-FILE(GLOB lib_SOURCES_C   "*.c")
-FILE(GLOB lib_SOURCES_CPP "*.cpp")
-FILE(GLOB lib_SOURCES_CXX "*.cxx")
-
-IF(USE_QT4)
-  SET(
-    lib_QT_UI
-    ActorAxesProperties.ui
-    ActorImageProperties.ui
-    ActorPolyDataProperties.ui
-    )
-  SET(
-    lib_QT_Headers
-    ActorProperties.h
-    ActorAxesProperties.h
-    ActorImageProperties.h
-    ActorPolyDataProperties.h
-    ActorPropertiesQtDialog.h
-    ParametersQtDialog.h
-    )
-  SET(
-    lib_QT_Sources
-    ActorProperties.cxx
-    ActorAxesProperties.cxx
-    ActorImageProperties.cxx
-    ActorPolyDataProperties.cxx
-    ActorPropertiesQtDialog.cxx
-    ParametersQtDialog.cxx
-    )
-  SET(
-    lib_QT_Resources
-    )
-
-  QT4_WRAP_UI(lib_QT_Wrapped_Headers ${lib_QT_UI})
-  QT4_WRAP_CPP(lib_QT_Wrapped_MOC_Sources ${lib_QT_Headers})
-  QT4_ADD_RESOURCES(lib_QT_Wrapped_Resources_Sources ${lib_QT_Resources})
-
-  SET(
-    lib_HEADERS_H
-    ${lib_HEADERS_H}
-    ${lib_QT_Wrapped_Headers}
-    )
-
-  SET(
-    lib_SOURCES_CXX
-    ${lib_SOURCES_CXX}
-    ${lib_QT_Sources}
-    ${lib_QT_Wrapped_Headers}
-    ${lib_QT_Wrapped_MOC_Sources}
-    ${lib_QT_Wrapped_Resources_Sources}
-    )
-
-ENDIF(USE_QT4)
-
-# ===================================
-# = Integrate all source file names =
-# ===================================
-
-SET(
-  lib_HEADERS
-  ${lib_HEADERS_H}
-  ${lib_HEADERS_HPP}
-  ${lib_HEADERS_HXX}
-  )
-
-SET(
-  lib_SOURCES
-  ${lib_SOURCES_C}
-  ${lib_SOURCES_CPP}
-  ${lib_SOURCES_CXX}
-  )
-
-SET(
-  target_LIBRARIES
-  ${ITK_LIBRARIES}
-  ${VTK_LIBRARIES}
-  cpExtensions
-  cpPlugins_tinyxml2
-  ${cpPlugins_LIBRARIES}
-  )
-IF(NOT WIN32)
-  SET(
-    target_LIBRARIES
-    ${target_LIBRARIES}
-    dl
-    )
-ENDIF(NOT WIN32)
-
-## =====================
-## = Compilation rules =
-## =====================
-
-ADD_LIBRARY(${lib_NAME} SHARED  ${lib_SOURCES})
-SET_TARGET_PROPERTIES(
-  ${lib_NAME} PROPERTIES
-  VERSION "${prj_VER}"
-  SOVERSION "${prj_sVER}"
-  )
-ADD_DEPENDENCIES(${lib_NAME} ${cpPlugins_LIBRARIES})
-GENERATE_EXPORT_HEADER(
-  ${lib_NAME}
-  BASE_NAME ${lib_NAME}
-  EXPORT_MACRO_NAME ${lib_NAME}_EXPORT
-  EXPORT_FILE_NAME ${PROJECT_BINARY_DIR}/lib/${lib_DIR}/${lib_NAME}_Export.h
-  STATIC_DEFINE ${lib_NAME}_BUILT_AS_STATIC
-  )
-TARGET_LINK_LIBRARIES(${lib_NAME} ${target_LIBRARIES})
-
-## ========================
-## == Installation rules ==
-## ========================
-
-INSTALL(
-  TARGETS ${lib_NAME}
-  RUNTIME DESTINATION bin
-  LIBRARY DESTINATION lib
-  ARCHIVE DESTINATION lib/static
-  )
-INSTALL(
-  FILES
-  ${lib_HEADERS}
-  DESTINATION include/${lib_DIR}
-  )
-
-## eof - $RCSfile$
diff --git a/lib/cpPlugins/Config.h.in b/lib/cpPlugins/Config.h.in
deleted file mode 100644 (file)
index c7668b5..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef __CPPLUGINS__CONFIG__H__
-#define __CPPLUGINS__CONFIG__H__
-
-#include <cpPlugins/cpPlugins_Export.h>
-#include <cpPlugins_Config.h>
-#include <string>
-
-/*
- * =========================================================================
- * Version numbers and strings
- * =========================================================================
- */
-#define cpPlugins_MAJ_VER @prj_MAJ_VER@
-#define cpPlugins_MIN_VER @prj_MIN_VER@
-#define cpPlugins_REL_VER @prj_REL_VER@
-#define cpPlugins_VER     "@prj_VER@"
-#define cpPlugins_sVER    "@prj_sVER@"
-
-/*
- * =========================================================================
- * Some useful constants and values
- * =========================================================================
- */
-
-#define cpPlugins_QT4_USED @QT4_FOUND@
-#if cpPlugins_QT4_USED == 1
-#  define cpPlugins_QT4
-#else // cpPlugins_QT4_USED == 1
-#  undef cpPlugins_QT4
-#endif // cpPlugins_QT4_USED == 1
-
-/*
- * =========================================================================
- * Some macros
- * =========================================================================
- */
-#define cpPlugins_Id_Macro( N, C )                                      \
-  public:                                                               \
-  virtual const char* GetClassName( ) const ITK_OVERRIDE                \
-  { return( #N ); }                                                     \
-  virtual const char* GetClassCategory( ) const ITK_OVERRIDE            \
-  { return( #C ); }
-
-#endif // __CPPLUGINS__CONFIG__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/DataObject.cxx b/lib/cpPlugins/DataObject.cxx
deleted file mode 100644 (file)
index 9e6bdca..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-#include <cpPlugins/DataObject.h>
-
-#include <cpPlugins/ProcessObject.h>
-#include <itkDataObject.h>
-#include <vtkImageData.h>
-#include <vtkPolyData.h>
-#include <vtkProp.h>
-
-// -------------------------------------------------------------------------
-cpPlugins::ProcessObject* cpPlugins::DataObject::
-GetSource( )
-{
-  return( this->m_Source );
-}
-
-// -------------------------------------------------------------------------
-const cpPlugins::ProcessObject* cpPlugins::DataObject::
-GetSource( ) const
-{
-  return( this->m_Source );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::DataObject::
-SetSource( cpPlugins::ProcessObject* src )
-{
-  if( this->m_Source != src )
-  {
-    this->m_Source = src;
-    this->Modified( );
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::DataObject::
-DisconnectFromPipeline( )
-{
-  // Disconnect input pipelines (ITK)
-  itk::DataObject* itk_obj = this->GetITK< itk::DataObject >( );
-  if( itk_obj != NULL )
-    itk_obj->DisconnectPipeline( );
-
-  // Disconnect input pipelines (VTK)
-  vtkImageData* vtk_image = this->GetVTK< vtkImageData >( );
-  vtkPolyData* vtk_pd = this->GetVTK< vtkPolyData >( );
-  if( vtk_image != NULL )
-  {
-    vtkSmartPointer< vtkImageData > d =
-      vtkSmartPointer< vtkImageData >::New( );
-    d->ShallowCopy( vtk_image );
-    this->m_VTKObject = d;
-  }
-  else if( vtk_pd != NULL )
-  {
-    vtkSmartPointer< vtkPolyData > d =
-      vtkSmartPointer< vtkPolyData >::New( );
-    d->ShallowCopy( vtk_pd );
-    this->m_VTKObject = d;
-
-  } // fi
-
-  // Unbind source
-  this->m_Source = NULL;
-  this->Modified( );
-}
-
-// -------------------------------------------------------------------------
-vtkProp* cpPlugins::DataObject::
-GetVTKActor( )
-{
-  if( this->m_Actor.GetPointer( ) == NULL )
-    this->_CreateVTKActor( );
-  return( this->m_Actor.GetPointer( ) );
-}
-
-// -------------------------------------------------------------------------
-const vtkProp* cpPlugins::DataObject::
-GetVTKActor( ) const
-{
-  if( this->m_Actor.GetPointer( ) == NULL )
-    this->_CreateVTKActor( );
-  return( this->m_Actor.GetPointer( ) );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::DataObject::
-DataObject( )
-  : Superclass( ),
-    m_Source( NULL )
-    /* TODO
-       ,
-       m_Actor( NULL )
-    */
-{
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::DataObject::
-~DataObject( )
-{
-  /* TODO
-     if( this->m_Actor != NULL )
-     this->m_Actor->Delete( );
-  */
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::DataObject::
-_CreateVTKActor( ) const
-{
-}
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/DataObject.h b/lib/cpPlugins/DataObject.h
deleted file mode 100644 (file)
index 95cf3dd..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-#ifndef __CPPLUGINS__DATAOBJECT__H__
-#define __CPPLUGINS__DATAOBJECT__H__
-
-#include <cpPlugins/Object.h>
-#include <vtkProp.h>
-#include <vtkSmartPointer.h>
-
-// Some forward declarations
-// TODO: class vtkProp;
-
-namespace cpPlugins
-{
-  // Some forward declarations
-  class ProcessObject;
-
-  /**
-   */
-  class cpPlugins_EXPORT DataObject
-    : public Object
-  {
-  public:
-    typedef DataObject                      Self;
-    typedef Object                          Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-  public:
-    itkNewMacro( Self );
-    itkTypeMacro( DataObject, Object );
-    cpPlugins_Id_Macro( DataObject, Object );
-
-  public:
-    ProcessObject* GetSource( );
-    const ProcessObject* GetSource( ) const;
-    void SetSource( ProcessObject* src );
-
-    void DisconnectFromPipeline( );
-
-    // VTK actors
-    vtkProp* GetVTKActor( );
-    const vtkProp* GetVTKActor( ) const;
-
-  protected:
-    DataObject( );
-    virtual ~DataObject( );
-
-    virtual void _CreateVTKActor( ) const;
-
-  private:
-    // Purposely not implemented
-    DataObject( const Self& );
-    Self& operator=( const Self& );
-
-  protected:
-    ProcessObject*   m_Source;
-    // TODO: mutable vtkProp* m_Actor;
-    mutable vtkSmartPointer< vtkProp > m_Actor;
-  };
-
-} // ecapseman
-
-#endif // __CPPLUGINS__DATAOBJECT__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/Image.cxx b/lib/cpPlugins/Image.cxx
deleted file mode 100644 (file)
index 261d966..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-#include <cpPlugins/Image.h>
-
-#include <vtkImageActor.h>
-#include <vtkImageProperty.h>
-#include <vtkImageSliceMapper.h>
-
-// -------------------------------------------------------------------------
-void cpPlugins::Image::
-SetITK( itk::LightObject* o )
-{
-  this->Superclass::SetITK( o );
-  bool     s = this->_ITK_2_VTK_0< 2 >( o );
-  if( !s ) s = this->_ITK_2_VTK_0< 3 >( o );
-  if( !s )
-  {
-    this->m_VTKObject = NULL;
-    this->m_ITKvVTK = NULL;
-
-  } // fi
-  this->Modified( );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Image::
-SetVTK( vtkObjectBase* o )
-{
-  this->Superclass::SetVTK( o );
-  std::cerr << "Image: TODO this!!!!" << std::endl;
-  std::exit( 1 );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::Image::
-Image( )
-  : Superclass( )
-{
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::Image::
-~Image( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Image::
-_CreateVTKActor( ) const
-{
-  vtkImageData* image =
-    const_cast< vtkImageData* >( this->GetVTK< vtkImageData >( ) );
-  if( image != NULL )
-  {
-    vtkImageSliceMapper* mapper = vtkImageSliceMapper::New( );
-    vtkImageActor* actor = vtkImageActor::New( );
-    mapper->SetInputData( image );
-    actor->SetMapper( mapper );
-    actor->GetProperty( )->SetInterpolationTypeToNearest( );
-    this->m_Actor = actor;
-    mapper->Delete( );
-
-  } // fi
-}
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/Image.h b/lib/cpPlugins/Image.h
deleted file mode 100644 (file)
index 1f2e51e..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-#ifndef __CPPLUGINS__IMAGE__H__
-#define __CPPLUGINS__IMAGE__H__
-
-#include <cpPlugins/DataObject.h>
-
-#include <itkProcessObject.h>
-
-namespace cpPlugins
-{
-  /**
-   */
-  class cpPlugins_EXPORT Image
-    : public DataObject
-  {
-  public:
-    typedef Image                           Self;
-    typedef DataObject                      Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-  public:
-    itkNewMacro( Self );
-    itkTypeMacro( Image, DataObject );
-    cpPlugins_Id_Macro( Image, Object );
-
-  public:
-    virtual void SetITK( itk::LightObject* o ) ITK_OVERRIDE;
-    virtual void SetVTK( vtkObjectBase* o ) ITK_OVERRIDE;
-
-  protected:
-    Image( );
-    virtual ~Image( );
-
-    virtual void _CreateVTKActor( ) const ITK_OVERRIDE;
-
-    template< unsigned int D >
-      inline bool _ITK_2_VTK_0( itk::LightObject* o );
-
-    template< class P, unsigned int D >
-      inline bool _ITK_2_VTK_1( itk::LightObject* o );
-
-    template< class T >
-      inline bool _ITK_2_VTK_2( itk::LightObject* o );
-
-  private:
-    // Purposely not implemented
-    Image( const Self& );
-    Self& operator=( const Self& );
-
-  protected:
-    itk::ProcessObject::Pointer m_ITKvVTK;
-  };
-
-} // ecapseman
-
-#include <cpPlugins/Image.hxx>
-
-#endif // __CPPLUGINS__IMAGE__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/Image.hxx b/lib/cpPlugins/Image.hxx
deleted file mode 100644 (file)
index 19dbcda..0000000
+++ /dev/null
@@ -1,198 +0,0 @@
-#ifndef __CPPLUGINS__IMAGE__HXX__
-#define __CPPLUGINS__IMAGE__HXX__
-
-#include <cpPlugins_Instances/ImageITK2VTK.h>
-
-// -------------------------------------------------------------------------
-template< unsigned int D >
-bool cpPlugins::Image::
-_ITK_2_VTK_0( itk::LightObject* o )
-{
-  bool s = false;
-  if( dynamic_cast< itk::ImageBase< D >* >( o ) != NULL )
-  {
-    s |= this->_ITK_2_VTK_1< char, D >( o );
-    s |= this->_ITK_2_VTK_1< short, D >( o );
-    s |= this->_ITK_2_VTK_1< int, D >( o );
-    s |= this->_ITK_2_VTK_1< long, D >( o );
-    s |= this->_ITK_2_VTK_1< float, D >( o );
-    s |= this->_ITK_2_VTK_1< double, D >( o );
-    s |= this->_ITK_2_VTK_1< unsigned char, D >( o );
-    s |= this->_ITK_2_VTK_1< unsigned short, D >( o );
-    s |= this->_ITK_2_VTK_1< unsigned int, D >( o );
-    s |= this->_ITK_2_VTK_1< unsigned long, D >( o );
-    s |= this->_ITK_2_VTK_1< itk::RGBPixel< char >, D >( o );
-    s |= this->_ITK_2_VTK_1< itk::RGBPixel< short >, D >( o );
-    s |= this->_ITK_2_VTK_1< itk::RGBPixel< int >, D >( o );
-    s |= this->_ITK_2_VTK_1< itk::RGBPixel< long >, D >( o );
-    s |= this->_ITK_2_VTK_1< itk::RGBPixel< float >, D >( o );
-    s |= this->_ITK_2_VTK_1< itk::RGBPixel< double >, D >( o );
-    s |= this->_ITK_2_VTK_1< itk::RGBPixel< unsigned char >, D >( o );
-    s |= this->_ITK_2_VTK_1< itk::RGBPixel< unsigned short >, D >( o );
-    s |= this->_ITK_2_VTK_1< itk::RGBPixel< unsigned int >, D >( o );
-    s |= this->_ITK_2_VTK_1< itk::RGBPixel< unsigned long >, D >( o );
-    s |= this->_ITK_2_VTK_1< itk::RGBAPixel< char >, D >( o );
-    s |= this->_ITK_2_VTK_1< itk::RGBAPixel< short >, D >( o );
-    s |= this->_ITK_2_VTK_1< itk::RGBAPixel< int >, D >( o );
-    s |= this->_ITK_2_VTK_1< itk::RGBAPixel< long >, D >( o );
-    s |= this->_ITK_2_VTK_1< itk::RGBAPixel< float >, D >( o );
-    s |= this->_ITK_2_VTK_1< itk::RGBAPixel< double >, D >( o );
-    s |= this->_ITK_2_VTK_1< itk::RGBAPixel< unsigned char >, D >( o );
-    s |= this->_ITK_2_VTK_1< itk::RGBAPixel< unsigned short >, D >( o );
-    s |= this->_ITK_2_VTK_1< itk::RGBAPixel< unsigned int >, D >( o );
-    s |= this->_ITK_2_VTK_1< itk::RGBAPixel< unsigned long >, D >( o );
-    /* TODO
-       s |= this->_ITK_2_VTK_1< itk::DiffusionTensor3D< float >, D >( o );
-       s |= this->_ITK_2_VTK_1< itk::DiffusionTensor3D< double >, D >( o );
-       s |= this->_ITK_2_VTK_1< itk::Vector< float, D >, D >( o );
-       s |= this->_ITK_2_VTK_1< itk::Vector< double, D >, D >( o );
-       s |= this->_ITK_2_VTK_1< itk::CovariantVector< float, D >, D >( o );
-       s |= this->_ITK_2_VTK_1< itk::CovariantVector< double, D >, D >( o );
-       s |= this->_ITK_2_VTK_1< itk::Point< float, D >, D >( o );
-       s |= this->_ITK_2_VTK_1< itk::Point< double, D >, D >( o );
-       s |= this->_ITK_2_VTK_1< itk::SymmetricSecondRankTensor< float, D >, D >( o );
-       s |= this->_ITK_2_VTK_1< itk::SymmetricSecondRankTensor< double, D >, D >( o );
-    */
-
-  } // fi
-  return( s );
-}
-
-// -------------------------------------------------------------------------
-template< class P, unsigned int D >
-bool cpPlugins::Image::
-_ITK_2_VTK_1( itk::LightObject* o )
-{
-  if( dynamic_cast< itk::Image< P, D >* >( o ) != NULL )
-    return( this->_ITK_2_VTK_2< itk::Image< P, D > >( o ) );
-  else
-    return( false );
-}
-
-// -------------------------------------------------------------------------
-template< class T >
-bool cpPlugins::Image::
-_ITK_2_VTK_2( itk::LightObject* o )
-{
-  typedef itk::ImageToVTKImageFilter< T > _I2V;
-
-  T* image = dynamic_cast< T* >( o );
-  if( image != NULL )
-  {
-    _I2V* f = dynamic_cast< _I2V* >( this->m_ITKvVTK.GetPointer( ) );
-    if( f == NULL )
-    {
-      typename _I2V::Pointer nf = _I2V::New( );
-      this->m_ITKvVTK = nf;
-      f = nf.GetPointer( );
-
-    } // fi
-    f->SetInput( image );
-    f->Update( );
-
-    // Keep object track
-    this->m_ITKObject = o;
-    this->m_VTKObject = f->GetOutput( );
-    return( true );
-  }
-  else
-    return( false );
-}
-
-/*
- * =========================================================================
- * Demangle macros
- * =========================================================================
- */
-#define cpPlugins_Image_Demangle_Dim( F, I, D )                 \
-  if( dynamic_cast< itk::ImageBase< D >* >( I ) != NULL )       \
-    this->F( dynamic_cast< itk::ImageBase< D >* >( I ) )
-
-#define cpPlugins_Image_Demangle_Pixel_Dim( F, I, P, D )                \
-  if( dynamic_cast< itk::Image< P, D >* >( I ) != NULL )                \
-    this->F( dynamic_cast< itk::Image< P, D >* >( I ) )
-
-#define cpPlugins_Image_Demangle_ColorPixel_Dim( F, I, C, P, D )        \
-  if( dynamic_cast< itk::Image< itk::C##Pixel< P >, D >* >( I ) != NULL ) \
-    this->F( dynamic_cast< itk::Image< itk::C##Pixel< P >, D >* >( I ) )
-
-#define cpPlugins_Image_Demangle_VectorPixel_Dim( F, I, V, P, D )       \
-  if( dynamic_cast< itk::Image< itk::V< P, D >, D >* >( I ) != NULL )   \
-    this->F( dynamic_cast< itk::Image< itk::V< P, D >, D >* >( I ) )
-
-#define cpPlugins_Image_Demangle_Pixel_AllInts( F, I, D )               \
-  cpPlugins_Image_Demangle_Pixel_Dim     ( F, I, char, D );             \
-  else cpPlugins_Image_Demangle_Pixel_Dim( F, I, short, D );            \
-  else cpPlugins_Image_Demangle_Pixel_Dim( F, I, int, D );              \
-  else cpPlugins_Image_Demangle_Pixel_Dim( F, I, long, D )
-
-#define cpPlugins_Image_Demangle_Pixel_AllUInts( F, I, D )              \
-  cpPlugins_Image_Demangle_Pixel_Dim     ( F, I, unsigned char, D );    \
-  else cpPlugins_Image_Demangle_Pixel_Dim( F, I, unsigned short, D );   \
-  else cpPlugins_Image_Demangle_Pixel_Dim( F, I, unsigned int, D );     \
-  else cpPlugins_Image_Demangle_Pixel_Dim( F, I, unsigned long, D )
-
-#define cpPlugins_Image_Demangle_Pixel_AllFloats( F, I, D )             \
-  cpPlugins_Image_Demangle_Pixel_Dim     ( F, I, float, D );            \
-  else cpPlugins_Image_Demangle_Pixel_Dim( F, I, double, D )
-
-#define cpPlugins_Image_Demangle_Pixel_AllScalars( F, I, D )   \
-  cpPlugins_Image_Demangle_Pixel_AllInts       ( F, I, D );    \
-  else cpPlugins_Image_Demangle_Pixel_AllUInts ( F, I, D );    \
-  else cpPlugins_Image_Demangle_Pixel_AllFloats( F, I, D )
-
-#define cpPlugins_Image_Demangle_ColorPixel_AllInts( F, I, C, D )       \
-  cpPlugins_Image_Demangle_ColorPixel_Dim     ( F, I, C, char, D );     \
-  else cpPlugins_Image_Demangle_ColorPixel_Dim( F, I, C, short, D );    \
-  else cpPlugins_Image_Demangle_ColorPixel_Dim( F, I, C, int, D );      \
-  else cpPlugins_Image_Demangle_ColorPixel_Dim( F, I, C, long, D )
-
-#define cpPlugins_Image_Demangle_ColorPixel_AllUInts( F, I, C, D )      \
-  cpPlugins_Image_Demangle_ColorPixel_Dim     ( F, I, C, unsigned char, D ); \
-  else cpPlugins_Image_Demangle_ColorPixel_Dim( F, I, C, unsigned short, D ); \
-  else cpPlugins_Image_Demangle_ColorPixel_Dim( F, I, C, unsigned int, D ); \
-  else cpPlugins_Image_Demangle_ColorPixel_Dim( F, I, C, unsigned long, D )
-
-#define cpPlugins_Image_Demangle_ColorPixel_AllFloats( F, I, C, D )     \
-  cpPlugins_Image_Demangle_ColorPixel_Dim     ( F, I, C, float, D );       \
-  else cpPlugins_Image_Demangle_ColorPixel_Dim( F, I, C, double, D )
-
-#define cpPlugins_Image_Demangle_ColorPixel_AllScalars( F, I, C, D )    \
-  cpPlugins_Image_Demangle_ColorPixel_AllInts       ( F, I, C, D );     \
-  else cpPlugins_Image_Demangle_ColorPixel_AllUInts ( F, I, C, D );     \
-  else cpPlugins_Image_Demangle_ColorPixel_AllFloats( F, I, C, D )
-
-#define cpPlugins_Image_Demangle_VectorPixel_AllFloats( F, I, V, D )    \
-  cpPlugins_Image_Demangle_VectorPixel_Dim     ( F, I, V, float, D );   \
-  else cpPlugins_Image_Demangle_VectorPixel_Dim( F, I, V, double, D )
-
-/* TODO
-   #define cpPlugins_Image_Demangle_Pixel_AllVector( r, FUNC, INPUT, D ) \
-   r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBPixel< char >, D ); \
-   if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBPixel< short >, D ); \
-   if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBPixel< int >, D ); \
-   if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBPixel< long >, D ); \
-   if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBPixel< float >, D ); \
-   if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBPixel< double >, D ); \
-   if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBPixel< unsigned char >, D ); \
-   if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBPixel< unsigned short >, D ); \
-   if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBPixel< unsigned int >, D ); \
-   if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBPixel< unsigned long >, D ); \
-   if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBAPixel< char >, D ); \
-   if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBAPixel< short >, D ); \
-   if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBAPixel< int >, D ); \
-   if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBAPixel< long >, D ); \
-   if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBAPixel< float >, D ); \
-   if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBAPixel< double >, D ); \
-   if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBAPixel< unsigned char >, D ); \
-   if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBAPixel< unsigned short >, D ); \
-   if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBAPixel< unsigned int >, D ); \
-   if( r != "" ) r = cpPlugins_Image_Demangle_Pixel_Dim( FUNC, INPUT, itk::RGBAPixel< unsigned long >, D )
-   
-   #define cpPlugins_Image_Demangle_VectorPixel_AllFloats( r, FUNC, INPUT, VECTOR, D ) \
-   r = cpPlugins_Image_Demangle_VectorPixel_Dim( FUNC, INPUT, VECTOR, float, D ); \
-   if( r != "" ) r = cpPlugins_Image_Demangle_VectorPixel_Dim( FUNC, INPUT, VECTOR, double, D )
-*/
-#endif // __CPPLUGINS__IMAGE__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/ImageIndexesContainer.cxx b/lib/cpPlugins/ImageIndexesContainer.cxx
deleted file mode 100644 (file)
index c7d2f8a..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-#include <cpPlugins/ImageIndexesContainer.h>
-
-// -------------------------------------------------------------------------
-void cpPlugins::ImageIndexesContainer::
-SetITK( itk::LightObject* o )
-{
-  this->Superclass::SetITK( o );
-  bool     s = this->_ITK_2_VTK< 2 >( o );
-  if( !s ) s = this->_ITK_2_VTK< 3 >( o );
-  if( !s )
-  {
-    this->m_VTKObject = NULL;
-    this->m_ITKvVTK = NULL;
-
-  } // fi
-  this->Modified( );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ImageIndexesContainer::
-SetVTK( vtkObjectBase* o )
-{
-  // Do nothing
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::ImageIndexesContainer::
-ImageIndexesContainer( )
-  : Superclass( )
-{
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::ImageIndexesContainer::
-~ImageIndexesContainer( )
-{
-}
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/ImageIndexesContainer.h b/lib/cpPlugins/ImageIndexesContainer.h
deleted file mode 100644 (file)
index 3edfda3..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-#ifndef __CPPLUGINS__IMAGEINDEXESCONTAINER__H__
-#define __CPPLUGINS__IMAGEINDEXESCONTAINER__H__
-
-#include <cpPlugins/DataObject.h>
-
-#include <vtkPolyDataAlgorithm.h>
-#include <vtkSmartPointer.h>
-
-namespace cpPlugins
-{
-  /**
-   */
-  class cpPlugins_EXPORT ImageIndexesContainer
-    : public DataObject
-  {
-  public:
-    typedef ImageIndexesContainer           Self;
-    typedef DataObject                      Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-  public:
-    itkNewMacro( Self );
-    itkTypeMacro( ImageIndexesContainer, DataObject );
-    cpPlugins_Id_Macro( ImageIndexesContainer, Object );
-
-  public:
-    virtual void SetITK( itk::LightObject* o ) ITK_OVERRIDE;
-    virtual void SetVTK( vtkObjectBase* o ) ITK_OVERRIDE;
-
-  protected:
-    ImageIndexesContainer( );
-    virtual ~ImageIndexesContainer( );
-
-    template< unsigned int _NDim >
-      inline bool _ITK_2_VTK( itk::LightObject* o );
-
-  private:
-    // Purposely not implemented
-    ImageIndexesContainer( const Self& );
-    Self& operator=( const Self& );
-
-  protected:
-    vtkSmartPointer< vtkPolyDataAlgorithm > m_ITKvVTK;
-  };
-
-} // ecapseman
-
-#include <cpPlugins/ImageIndexesContainer.hxx>
-
-#endif // __CPPLUGINS__IMAGEINDEXESCONTAINER__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/ImageIndexesContainer.hxx b/lib/cpPlugins/ImageIndexesContainer.hxx
deleted file mode 100644 (file)
index d7a5016..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef __CPPLUGINS__IMAGEINDEXESCONTAINER__HXX__
-#define __CPPLUGINS__IMAGEINDEXESCONTAINER__HXX__
-
-#include <cpPlugins_Instances/Paths.h>
-
-// -------------------------------------------------------------------------
-template< unsigned int _NDim >
-bool cpPlugins::ImageIndexesContainer::
-_ITK_2_VTK( itk::LightObject* o )
-{
-  typedef
-    cpExtensions::DataStructures::ImageIndexesContainer< _NDim >
-    _TImageIndexesContainer;
-  typedef
-    cpExtensions::Visualization::ImageIndexesContainerToPolyData< _TImageIndexesContainer >
-    _TFilter;
-
-  auto cont = dynamic_cast< _TImageIndexesContainer* >( o );
-  if( cont != NULL )
-  {
-    _TFilter* f = dynamic_cast< _TFilter* >( this->m_ITKvVTK.GetPointer( ) );
-    if( f == NULL )
-    {
-      vtkSmartPointer< _TFilter > nf = _TFilter::New( );
-      this->m_ITKvVTK = nf.GetPointer( );
-      f = nf.GetPointer( );
-
-    } // fi
-    f->SetInput( cont );
-    f->SetReferenceImage( cont->GetReferenceImage( ) );
-    f->Update( );
-
-    // Keep object track
-    this->m_ITKObject = o;
-    this->m_VTKObject = f->GetOutput( );
-    return( true );
-  }
-  else
-    return( false );
-}
-
-#endif // __CPPLUGINS__IMAGEINDEXESCONTAINER__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/Interface.cxx b/lib/cpPlugins/Interface.cxx
deleted file mode 100644 (file)
index e300d6f..0000000
+++ /dev/null
@@ -1,442 +0,0 @@
-#include <cpPlugins/Interface.h>
-
-#ifdef cpPlugins_SYS_WINDOWS
-#  include <Windows.h>
-#else // cpPlugins_SYS_WINDOWS
-#  include <dlfcn.h>
-#endif // cpPlugins_SYS_WINDOWS
-#include <cpPlugins_dirent.h>
-#include <cpPlugins_Instances/cpPlugins_DynLibs.h>
-#include <algorithm>
-
-// -------------------------------------------------------------------------
-unsigned int cpPlugins::Interface::InterfacesCount = 0;
-
-// -------------------------------------------------------------------------
-cpPlugins::Interface::
-Interface( )
-{
-  this->UpdatePaths( );
-
-  // Explicitly load all ITK and VTK
-  if( Self::InterfacesCount == 0 )
-  {
-    // Base libraries
-    std::vector< std::string > libs;
-    cpPlugins::TokenizeString( libs, cpPlugins_DynLibs, ";" );
-
-    // Local instances
-    for( auto p = this->m_Paths.begin( ); p != this->m_Paths.end( ); ++p )
-    {
-      DIR* dir;
-      struct dirent* ent;
-      if( ( dir = opendir( p->c_str( ) ) ) != NULL )
-      {
-        while( ( ent = readdir( dir ) ) != NULL )
-        {
-          std::string fname = *p + std::string( "/" ) + ent->d_name;
-          if(
-            fname.find( "_Instances" ) != std::string::npos ||
-            fname.find( "cpExtensions" ) != std::string::npos
-            )
-            libs.push_back( fname );
-
-        } // elihw
-        closedir( dir );
-
-      } // fi
-
-    } // rof
-
-    for( auto l = libs.begin( ); l != libs.end( ); ++l )
-    {
-      std::string error = "";
-      void* hnd = Self::_DLOpen( *l, error );
-      if( hnd == NULL || error != "" )
-        throw std::runtime_error(
-          std::string( "cpPlugins::Interface: Could not load library \"" ) +
-          *l +
-          std::string( "\": " ) +
-          error
-          );
-
-    } // rof
-
-  } // fi
-  Self::InterfacesCount++;
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::Interface::
-~Interface( )
-{
-  this->UnloadAll( );
-  Self::InterfacesCount--;
-  if( Self::InterfacesCount == 0 )
-  {
-    // TODO: unload vtk and itk
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-const cpPlugins::Interface::
-TFilters& cpPlugins::Interface::
-GetFilters( )
-{
-  return( this->m_Filters );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Interface::
-UpdatePaths( )
-{
-  // Load environment configuration
-  this->m_Paths.clear( );
-  char* p = std::getenv( cpPlugins_PATHS );
-  if( p != NULL )
-    cpPlugins::TokenizeString( this->m_Paths, p, cpPlugins_SEPARATOR );
-  this->m_Paths.push_back( "." );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Interface::
-GuessAccesiblePlugins( )
-{
-  for( auto i = this->m_Paths.begin( ); i != this->m_Paths.end( ); ++i )
-    try { this->LoadPluginDir( *i ); } catch( ... ) { }
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Interface::
-LoadPlugin( const std::string& name )
-{
-  std::stringstream str;
-  str << cpPlugins_LIB_PREFIX << name << "." << cpPlugins_LIB_EXT;
-  std::string base_name = str.str( );
-  bool found = false;
-  for( auto i = this->m_Paths.begin( ); i != this->m_Paths.end( ); ++i )
-  {
-    std::string filename = *i;
-    if( i->back( ) != '/' )
-      filename += std::string( "/" );
-    filename += base_name;
-    try
-    {
-      this->LoadPluginFile( filename );
-      found = true;
-    }
-    catch( ... )
-    {
-    } // yrt
-
-  } // rof
-  if( !found )
-    throw std::runtime_error(
-      std::string( "cpPlugins::Interface: Plugins library \"" ) +
-      name +
-      std::string( "\" not found." )
-      );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Interface::
-LoadPluginDir( const std::string& dirname )
-{
-  DIR* dir;
-  struct dirent* ent;
-  if( ( dir = opendir( dirname.c_str( ) ) ) != NULL )
-  {
-    while( ( ent = readdir( dir ) ) != NULL )
-    {
-      try
-      {
-        this->LoadPluginFile(
-          dirname +
-          std::string( "/" ) +
-          ent->d_name
-          );
-      }
-      catch( ... ) { }
-
-    } // elihw
-    closedir( dir );
-  }
-  else
-    throw std::runtime_error(
-      std::string( "cpPlugins::Interface: Could not load directory " ) +
-      std::string( "\"" ) +  dirname + std::string( "\"" )
-      );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Interface::
-LoadPluginFile( const std::string& filename )
-{
-  // Canonical filename
-  auto canonical = cpPlugins::CanonicalPath( filename );
-  if( canonical == "" )
-    throw std::runtime_error(
-      std::string( "cpPlugins::Interface: Library \"" ) +
-      filename +
-      std::string( "\" does not exist." )
-      );
-
-  // Try to load the library
-  std::string error;
-  void* hnd = Self::_DLOpen( canonical, error );
-  if( hnd == NULL || error != "" )
-    throw std::runtime_error(
-      std::string( "cpPlugins::Interface: Could not load library \"" ) +
-      filename +
-      std::string( "\": " ) +
-      error
-      );
-
-  // Get plugin name
-  std::string pl_name = Self::_DLGetName( hnd );
-
-  // Check if it was already loaded
-  if( this->m_DynLibraries.find( pl_name ) != this->m_DynLibraries.end( ) )
-    return;
-
-  // Load filters
-  TFilters filters = Self::_DLGetFilters( hnd );
-
-  // Save the loaded filters info
-  bool save_handler = false;
-  for( auto catIt = filters.begin( ); catIt != filters.end( ); ++catIt )
-  {
-    // Check if the filter is completely new
-    auto act_catIt = this->m_Filters.find( catIt->first );
-    for(
-      auto clsIt = catIt->second.begin( );
-      clsIt != catIt->second.end( );
-      ++clsIt
-      )
-    {
-      bool new_filter = true;
-      if( act_catIt != this->m_Filters.end( ) )
-        new_filter =
-          ( act_catIt->second.find( *clsIt ) == act_catIt->second.end( ) );
-
-      // Ok, it is new
-      if( new_filter )
-      {
-        // Update filters container
-        auto creator = Self::_DLGetCreator( hnd, catIt->first, *clsIt );
-        if( creator != NULL )
-        {
-          this->m_DynFilters[ catIt->first][ *clsIt ] =
-            TDynFunc( pl_name, creator );
-          this->m_Filters[ catIt->first ].insert( *clsIt );
-          save_handler = true;
-
-        } // fi
-
-      } // fi
-
-    } // rof
-
-  } // rof
-
-  // Keep dynlib handler, if needed
-  if( save_handler )
-    this->m_DynLibraries[ pl_name ] = TDynFileInfo( canonical, hnd );
-  else
-    Self::_DLClose( hnd );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Interface::
-UnloadAll( )
-{
-  for(
-    auto d = this->m_DynLibraries.begin( );
-    d != this->m_DynLibraries.end( );
-    ++d
-    )
-    Self::_DLClose( d->second.second );
-  this->m_DynLibraries.clear( );
-  this->m_DynFilters.clear( );
-  this->m_Filters.clear( );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::ProcessObject::Pointer cpPlugins::Interface::
-Create( const std::string& category, const std::string& name )
-{
-  typedef cpPlugins::ProcessObject::Pointer _TPointer;
-  _TPointer filter = NULL;
-  auto catIt = this->m_DynFilters.find( category );
-  if( catIt != this->m_DynFilters.end( ) )
-  {
-    auto clsIt = catIt->second.find( name );
-    if( clsIt != catIt->second.end( ) )
-      filter =
-        ( reinterpret_cast< _TPointer* >( clsIt->second.second( ) ) )->
-        GetPointer( );
-
-  } // fi
-  return( filter );
-}
-
-// -------------------------------------------------------------------------
-std::string cpPlugins::Interface::
-GetPluginName( const std::string& category, const std::string& name ) const
-{
-  std::string plugin = "";
-  auto catIt = this->m_DynFilters.find( category );
-  if( catIt != this->m_DynFilters.end( ) )
-  {
-    auto clsIt = catIt->second.find( name );
-    if( clsIt != catIt->second.end( ) )
-      plugin = clsIt->second.first;
-
-  } // fi
-  return( plugin );
-}
-
-// -------------------------------------------------------------------------
-std::string cpPlugins::Interface::
-GetPluginName( const ProcessObject* obj ) const
-{
-  if( obj != NULL )
-    return(
-      this->GetPluginName(
-        obj->GetClassCategory( ),
-        obj->GetClassName( )
-        )
-      );
-  else
-    return( "" );
-}
-
-// -------------------------------------------------------------------------
-std::set< std::string > cpPlugins::Interface::
-GetPlugins( ) const
-{
-  std::set< std::string > res;
-  auto i = this->m_DynLibraries.begin( );
-  for( ; i != this->m_DynLibraries.end( ); ++i )
-    res.insert( i->first );
-  return( res );
-}
-
-// -------------------------------------------------------------------------
-void* cpPlugins::Interface::
-_DLOpen( const std::string& fname, std::string& error )
-{
-  void* hnd = NULL;
-#ifdef cpPlugins_SYS_WINDOWS
-  hnd = ::LoadLibraryA( fname.c_str( ) );
-#else // cpPlugins_SYS_WINDOWS
-  hnd = dlopen( fname.c_str( ), RTLD_NOW | RTLD_GLOBAL );
-  if( hnd == NULL )
-    error = dlerror( );
-  else
-    dlerror( );
-#endif // cpPlugins_SYS_WINDOWS
-  return( hnd );
-}
-
-// -------------------------------------------------------------------------
-const char* cpPlugins::Interface::
-_DLGetName( void* hnd )
-{
-  // Get descriptors
-  typedef const char* ( *f_t )( );
-  f_t f = NULL;
-#ifdef cpPlugins_SYS_WINDOWS
-  f = ( f_t )( ::GetProcAddress( ( HMODULE )hnd, "cpPlugins_Name" ) );
-#else // cpPlugins_SYS_WINDOWS
-  f = ( f_t )( dlsym( hnd, "cpPlugins_Name" ) );
-#endif // cpPlugins_SYS_WINDOWS
-  if( f == NULL )
-  {
-    Self::_DLClose( hnd );
-    throw std::runtime_error(
-      "cpPlugins::Interface: Library not recognized as a cpPlugins library."
-      );
-
-  } // fi
-  return( f( ) );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::Interface::
-TFilters cpPlugins::Interface::
-_DLGetFilters( void* hnd )
-{
-  // Get descriptors
-  typedef const char* ( *f_t )( );
-  f_t f = NULL;
-#ifdef cpPlugins_SYS_WINDOWS
-  f = ( f_t )( ::GetProcAddress( ( HMODULE )hnd, "cpPlugins_LoadedFilters" ) );
-#else // cpPlugins_SYS_WINDOWS
-  f = ( f_t )( dlsym( hnd, "cpPlugins_LoadedFilters" ) );
-#endif // cpPlugins_SYS_WINDOWS
-  if( f == NULL )
-  {
-    Self::_DLClose( hnd );
-    throw std::runtime_error(
-      "cpPlugins::Interface: Library not recognized as a cpPlugins library."
-      );
-
-  } // fi
-  std::string descriptors = f( );
-
-  // Demangle descriptors
-  TFilters filters;
-  std::replace( descriptors.begin( ), descriptors.end( ), ';', ' ' );
-  std::istringstream str( descriptors );
-  while( str )
-  {
-    std::string value, category, name;
-    str >> value;
-    if( value == "" )
-      continue;
-    std::replace( value.begin( ), value.end( ), ':', ' ' );
-    std::istringstream value_str( value );
-    value_str >> category >> name;
-    filters[ category ].insert( name );
-
-  } // elihw
-  return( filters );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::Interface::
-TCreator cpPlugins::Interface::
-_DLGetCreator(
-  void* hnd, const std::string& category, const std::string& name
-  )
-{
-  TCreator c = NULL;
-  std::string func_name = category + "_" + name;
-#ifdef cpPlugins_SYS_WINDOWS
-  c = ( TCreator )( ::GetProcAddress( ( HMODULE )hnd, func_name.c_str( ) ) );
-#else // cpPlugins_SYS_WINDOWS
-  c = ( TCreator )( dlsym( hnd, func_name.c_str( ) ) );
-#endif // cpPlugins_SYS_WINDOWS
-  if( c == NULL )
-    throw std::runtime_error(
-      std::string( "cpPlugins::Interface: Class \"" ) +
-      category + std::string( ":" ) + name +
-      std::string( "\" does not have a valid creator function." )
-      );
-  return( c );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Interface::
-_DLClose( void* hnd )
-{
-#ifdef cpPlugins_SYS_WINDOWS
-  ::FreeLibrary( ( HMODULE )hnd );
-#else // cpPlugins_SYS_WINDOWS
-  dlclose( hnd );
-#endif // cpPlugins_SYS_WINDOWS
-}
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/Interface.h b/lib/cpPlugins/Interface.h
deleted file mode 100644 (file)
index cd66bbd..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-#ifndef __CPPLUGINS__INTERFACE__H__
-#define __CPPLUGINS__INTERFACE__H__
-
-#include <cpPlugins/Config.h>
-#include <cpPlugins/ProcessObject.h>
-#include <map>
-#include <set>
-#include <string>
-
-namespace cpPlugins
-{
-  /**
-   */
-  class cpPlugins_EXPORT Interface
-  {
-  public:
-    typedef Interface Self;
-
-    typedef void* ( *TCreator )( );
-    typedef std::pair< std::string, TCreator >               TDynFunc;
-    typedef std::map< std::string, TDynFunc >                TDynFilter;
-    typedef std::map< std::string, TDynFilter >              TDynFilters;
-    typedef std::map< std::string, std::set< std::string > > TFilters;
-    typedef std::pair< std::string, void* >                  TDynFileInfo;
-    typedef std::map< std::string, TDynFileInfo >            TDynLibraries;
-
-  public:
-    Interface( );
-    virtual ~Interface( );
-
-    const TFilters& GetFilters( );
-
-    void UpdatePaths( );
-    void GuessAccesiblePlugins( );
-    void LoadPlugin( const std::string& name );
-    void LoadPluginDir( const std::string& dirname );
-    void LoadPluginFile( const std::string& filename );
-    void UnloadAll( );
-
-    ProcessObject::Pointer Create(
-      const std::string& category, const std::string& name
-      );
-    std::string GetPluginName(
-      const std::string& category, const std::string& name
-      ) const;
-    std::string GetPluginName( const ProcessObject* obj ) const;
-    std::set< std::string > GetPlugins( ) const;
-
-  protected:
-    static void* _DLOpen( const std::string& fname, std::string& error );
-    static const char* _DLGetName( void* hnd );
-    static TFilters _DLGetFilters( void* hnd );
-    static TCreator _DLGetCreator(
-      void* hnd, const std::string& category, const std::string& name
-      );
-    static void _DLClose( void* hnd );
-
-  protected:
-    std::vector< std::string > m_Paths;
-    TDynLibraries m_DynLibraries;
-    TDynFilters   m_DynFilters;
-    TFilters      m_Filters;
-
-    static unsigned int InterfacesCount;
-  };
-
-} // ecapseman
-
-#endif // __CPPLUGINS__INTERFACE__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/Mesh.cxx b/lib/cpPlugins/Mesh.cxx
deleted file mode 100644 (file)
index f06aae0..0000000
+++ /dev/null
@@ -1,225 +0,0 @@
-#include <cpPlugins/Mesh.h>
-
-#include <itkMesh.h>
-#include <itkLineCell.h>
-#include <itkTriangleCell.h>
-#include <itkPolygonCell.h>
-
-#define cpPlugins_Mesh_MAX_POLYS 65535
-
-// -------------------------------------------------------------------------
-void cpPlugins::Mesh::MeshActor::
-SetMesh( vtkPolyData* mesh )
-{
-  this->Normals = NULL;
-  this->Stripper = NULL;
-  this->Mapper = NULL;
-  this->LODActor = NULL;
-  this->Actor = NULL;
-  if( mesh != NULL )
-  {
-    unsigned long nPolys = mesh->GetNumberOfPolys( );
-    if( nPolys >= cpPlugins_Mesh_MAX_POLYS )
-    {
-      this->Normals = vtkSmartPointer< vtkPolyDataNormals >::New( );
-      this->Stripper = vtkSmartPointer< vtkStripper >::New( );
-      this->Mapper = vtkSmartPointer< vtkPolyDataMapper >::New( );
-      this->LODActor = vtkSmartPointer< vtkQuadricLODActor >::New( );
-
-      double r[ 2 ];
-      mesh->GetScalarRange( r );
-
-      this->Normals->SetInputData( mesh );
-      this->Normals->SetFeatureAngle( 60.0 );
-      this->Stripper->SetInputConnection( this->Normals->GetOutputPort( ) );
-      this->Mapper->SetInputConnection( this->Stripper->GetOutputPort( ) );
-      this->Mapper->UseLookupTableScalarRangeOff( );
-      this->Mapper->SetScalarRange( r[ 0 ], r[ 1 ] );
-      this->LODActor->SetMapper( this->Mapper );
-      this->LODActor->DeferLODConstructionOff( );
-    }
-    else
-    {
-      this->Mapper = vtkSmartPointer< vtkPolyDataMapper >::New( );
-      this->Actor = vtkSmartPointer< vtkActor >::New( );
-      this->Mapper->SetInputData( mesh );
-      this->Actor->SetMapper( this->Mapper );
-
-    } // fi
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Mesh::
-SetITK( itk::LightObject* o )
-{
-  this->Superclass::SetITK( o );
-  bool     r = this->_ITK_2_VTK< itk::Mesh< float, 2 > >( o );
-  if( !r ) r = this->_ITK_2_VTK< itk::Mesh< double, 2 > >( o );
-  if( !r ) r = this->_ITK_2_VTK< itk::Mesh< float, 3 > >( o );
-  if( !r ) r = this->_ITK_2_VTK< itk::Mesh< double, 3 > >( o );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Mesh::
-SetVTK( vtkObjectBase* o )
-{
-  typedef itk::Mesh< double, 3 >      _TMesh;
-  typedef _TMesh::CellType            _TCell;
-  typedef _TCell::CellAutoPointer     _TCellAutoPointer;
-  typedef itk::LineCell< _TCell >     _TLine;
-  typedef itk::TriangleCell< _TCell > _TTriangle;
-  typedef itk::PolygonCell< _TCell >  _TPolygon;
-
-  vtkPolyData* mesh = dynamic_cast< vtkPolyData* >( o );
-  if( mesh == NULL )
-  {
-    this->m_ITKObject = NULL;
-    this->Modified( );
-    return;
-
-  } // fi
-
-  if( this->m_VTKObject.GetPointer( ) != mesh )
-  {
-    this->m_VTKObject = mesh;
-
-    // Copy points
-    _TMesh::Pointer imesh = _TMesh::New( );
-    double point[ 3 ];
-    for( long i = 0; i < mesh->GetNumberOfPoints( ); ++i )
-    {
-      mesh->GetPoint( i, point );
-      _TMesh::PointType ipoint;
-      ipoint[ 0 ] = point[ 0 ];
-      ipoint[ 1 ] = point[ 1 ];
-      ipoint[ 2 ] = point[ 2 ];
-      imesh->SetPoint( i, ipoint );
-
-    } // rof
-
-    // Copy cells
-    vtkCellArray* arrays[ 4 ];
-    arrays[ 0 ] = mesh->GetLines( );
-    arrays[ 1 ] = mesh->GetPolys( );
-    arrays[ 2 ] = NULL; // TODO: mesh->GetStrips( );
-    arrays[ 3 ] = mesh->GetVerts( );
-
-    for( unsigned int c = 0; c < 4; c++ )
-    {
-      if( arrays[ c ] != NULL )
-      {
-        vtkSmartPointer< vtkIdList > ids =
-          vtkSmartPointer< vtkIdList >::New( );
-        arrays[ c ]->InitTraversal( );
-        while( arrays[ c ]->GetNextCell( ids ) == 1 )
-        {
-          long nPoints = ids->GetNumberOfIds( );
-          _TCellAutoPointer icell;
-          if( nPoints == 2 )
-          {
-            icell.TakeOwnership( new _TLine );
-            icell->SetPointId( 0, ids->GetId( 0 ) );
-            icell->SetPointId( 1, ids->GetId( 1 ) );
-          }
-          else if( nPoints == 3 )
-          {
-            icell.TakeOwnership( new _TTriangle );
-            icell->SetPointId( 0, ids->GetId( 0 ) );
-            icell->SetPointId( 1, ids->GetId( 1 ) );
-            icell->SetPointId( 2, ids->GetId( 2 ) );
-          }
-          else if( nPoints > 3 )
-          {
-            _TPolygon* polygon = new _TPolygon( );
-            for( long j = 0; j < nPoints; ++j )
-              polygon->AddPointId( ids->GetId( j ) );
-            icell.TakeOwnership( polygon );
-
-          } // fi
-          imesh->SetCell( imesh->GetNumberOfCells( ), icell );
-
-        } // elihw
-
-      } // fi
-
-    } // rof
-    this->m_ITKObject = imesh;
-    this->Modified( );
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::Mesh::
-Mesh( )
-  : Superclass( )
-{
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::Mesh::
-~Mesh( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Mesh::
-_CreateVTKActor( ) const
-{
-  this->m_MeshActor.SetMesh(
-    const_cast< vtkPolyData* >( this->GetVTK< vtkPolyData >( ) )
-    );
-  if( this->m_MeshActor.LODActor.GetPointer( ) != NULL )
-    this->m_Actor = this->m_MeshActor.LODActor.GetPointer( );
-  else if( this->m_MeshActor.Actor.GetPointer( ) != NULL )
-    this->m_Actor = this->m_MeshActor.Actor.GetPointer( );
-  else
-    this->m_Actor = NULL;
-  
-  /* TODO
-  vtkPolyData* mesh =
-    const_cast< vtkPolyData* >( this->GetVTK< vtkPolyData >( ) );
-  if( mesh != NULL )
-  {
-    unsigned long nPolys = mesh->GetNumberOfPolys( );
-    if( nPolys >= cpPlugins_Mesh_MAX_POLYS )
-    {
-      auto normals = vtkPolyDataNormals::New( );
-      auto stripper = vtkStripper::New( );
-      auto mapper = vtkPolyDataMapper::New( );
-      auto actor = vtkQuadricLODActor::New( );
-
-      double r[ 2 ];
-      mesh->GetScalarRange( r );
-
-      normals->SetInputData( mesh );
-      normals->SetFeatureAngle( 60.0 );
-      stripper->SetInputConnection( normals->GetOutputPort( ) );
-      mapper->SetInputConnection( stripper->GetOutputPort( ) );
-      mapper->UseLookupTableScalarRangeOff( );
-      mapper->SetScalarRange( r[ 0 ], r[ 1 ] );
-      actor->SetMapper( mapper );
-      actor->DeferLODConstructionOff( );
-      this->m_Actor = actor;
-      mapper->Delete( );
-      stripper->Delete( );
-      normals->Delete( );
-    }
-    else
-    {
-      auto mapper = vtkPolyDataMapper::New( );
-      mapper->SetInputData( mesh );
-      auto actor = vtkActor::New( );
-      actor->SetMapper( mapper );
-      this->m_Actor = actor;
-      mapper->Delete( );
-
-    } // fi
-
-  } // fi
-  */
-}
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/Mesh.h b/lib/cpPlugins/Mesh.h
deleted file mode 100644 (file)
index d0416f7..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-#ifndef __CPPLUGINS__MESH__H__
-#define __CPPLUGINS__MESH__H__
-
-#include <cpPlugins/DataObject.h>
-
-#include <vtkActor.h>
-#include <vtkPolyDataNormals.h>
-#include <vtkPolyData.h>
-#include <vtkPolyDataMapper.h>
-#include <vtkQuadricLODActor.h>
-#include <vtkStripper.h>
-#include <vtkSmartPointer.h>
-
-namespace cpPlugins
-{
-  /**
-   */
-  class cpPlugins_EXPORT Mesh
-    : public DataObject
-  {
-  public:
-    typedef Mesh                            Self;
-    typedef DataObject                      Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-    struct MeshActor
-    {
-      vtkSmartPointer< vtkPolyDataNormals > Normals;
-      vtkSmartPointer< vtkStripper >        Stripper;
-      vtkSmartPointer< vtkPolyDataMapper >  Mapper;
-      vtkSmartPointer< vtkQuadricLODActor > LODActor;
-      vtkSmartPointer< vtkActor >           Actor;
-
-      void SetMesh( vtkPolyData* mesh );
-    };
-
-  public:
-    itkNewMacro( Self );
-    itkTypeMacro( Mesh, DataObject );
-    cpPlugins_Id_Macro( Mesh, Object );
-
-  public:
-    virtual void SetITK( itk::LightObject* o ) ITK_OVERRIDE;
-    virtual void SetVTK( vtkObjectBase* o ) ITK_OVERRIDE;
-
-  protected:
-    Mesh( );
-    virtual ~Mesh( );
-
-    virtual void _CreateVTKActor( ) const ITK_OVERRIDE;
-
-    template< class M >
-      inline bool _ITK_2_VTK( itk::LightObject* o );
-
-  private:
-    // Purposely not implemented
-    Mesh( const Self& );
-    Self& operator=( const Self& );
-
-  protected:
-    mutable MeshActor m_MeshActor;
-  };
-
-} // ecapseman
-
-#include <cpPlugins/Mesh.hxx>
-
-#endif // __CPPLUGINS__MESH__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/Mesh.hxx b/lib/cpPlugins/Mesh.hxx
deleted file mode 100644 (file)
index ccd269f..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-#ifndef __CPPLUGINS__MESH__HXX__
-#define __CPPLUGINS__MESH__HXX__
-
-#include <map>
-#include <vtkSmartPointer.h>
-#include <vtkCellArray.h>
-#include <vtkPoints.h>
-#include <vtkPolyData.h>
-
-// -------------------------------------------------------------------------
-template< class M >
-bool cpPlugins::Mesh::
-_ITK_2_VTK( itk::LightObject* o )
-{
-  M* mesh = dynamic_cast< M* >( o );
-  if( mesh == NULL )
-    return( false );
-
-  long numPoints = mesh->GetNumberOfPoints( );
-  if( numPoints == 0 )
-    return( false );
-
-  vtkSmartPointer< vtkPoints > vpoints =
-    vtkSmartPointer< vtkPoints >::New( );
-  vpoints->SetNumberOfPoints( numPoints );
-  auto points = mesh->GetPoints( );
-
-  // Copy points
-  vtkIdType VTKId = 0;
-  std::map< vtkIdType, long > IndexMap;
-  for( auto i = points->Begin( ); i != points->End( ); ++i, VTKId++ )
-  {
-    IndexMap[ VTKId ] = i->Index( );
-    if( M::PointDimension == 2 )
-      vpoints->SetPoint(
-        VTKId,
-        i->Value( )[ 0 ], i->Value( )[ 1 ], 0
-        );
-    else if( M::PointDimension == 3 )
-      vpoints->SetPoint(
-        VTKId,
-        i->Value( )[ 0 ], i->Value( )[ 1 ], i->Value( )[ 2 ]
-        );
-
-  } // rof
-
-  // Copy cells
-  vtkSmartPointer< vtkCellArray > vcells =
-    vtkSmartPointer< vtkCellArray >::New( );
-  auto cells = mesh->GetCells( );
-  for( auto j = cells->Begin( ); j != cells->End( ); ++j )
-  {
-    auto cell = j->Value( );
-    vcells->InsertNextCell( cell->GetNumberOfPoints( ) );
-    for( auto k = cell->PointIdsBegin( ); k != cell->PointIdsEnd( ); ++k )
-      vcells->InsertCellPoint( IndexMap[ *k ] );
-    
-  } // rof
-
-  // Final assignations
-  vtkSmartPointer< vtkPolyData > vmesh =
-    vtkSmartPointer< vtkPolyData >::New( );
-  vmesh->SetPoints( vpoints );
-  vmesh->SetPolys( vcells );
-  this->m_VTKObject = vmesh;
-  this->Modified( );
-  return( true );
-}
-
-#endif // __CPPLUGINS__MESH__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/Object.cxx b/lib/cpPlugins/Object.cxx
deleted file mode 100644 (file)
index 054321c..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-#include <cpPlugins/Object.h>
-
-#include <itkObject.h>
-#include <vtkObject.h>
-
-// -------------------------------------------------------------------------
-const float& cpPlugins::Object::
-GetViewX( ) const
-{
-  return( this->m_ViewX );
-}
-
-// -------------------------------------------------------------------------
-const float& cpPlugins::Object::
-GetViewY( ) const
-{
-  return( this->m_ViewY );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Object::
-SetViewCoords( float x, float y )
-{
-  this->m_ViewX = x;
-  this->m_ViewY = y;
-  // WARNING: do not call "this->Modified( )" -> It could lead to a
-  //          re-execution of all pipeline
-}
-
-#ifdef cpPlugins_QT4
-// -------------------------------------------------------------------------
-void cpPlugins::Object::
-SetViewCoords( const QPointF& coords )
-{
-  this->SetViewCoords( coords.x( ), coords.y( ) );
-}
-
-// -------------------------------------------------------------------------
-QPointF cpPlugins::Object::
-GetViewCoords( ) const
-{
-  return( QPointF( this->m_ViewX, this->m_ViewY ) );
-}
-#endif // cpPlugins_QT4
-
-// -------------------------------------------------------------------------
-void cpPlugins::Object::
-Modified( ) const
-{
-  const itk::Object* i = this->GetITK< itk::Object >( );
-  vtkObject* v = const_cast< vtkObject* >( this->GetVTK< vtkObject >( ) );
-  if( i != NULL ) i->Modified( );
-  if( v != NULL ) v->Modified( );
-  this->Superclass::Modified( );
-}
-
-// -------------------------------------------------------------------------
-itk::ModifiedTimeType cpPlugins::Object::
-GetMTime( ) const
-{
-  const itk::Object* i = this->GetITK< itk::Object >( );
-  vtkObject* v = const_cast< vtkObject* >( this->GetVTK< vtkObject >( ) );
-  if( i != NULL && v == NULL )
-    return( i->GetMTime( ) );
-  else if( i == NULL && v != NULL )
-    return( v->GetMTime( ) );
-  else if( i != NULL && v != NULL )
-  {
-    auto iTime = i->GetMTime( );
-    auto vTime = i->GetMTime( );
-    return( itk::ModifiedTimeType( ( iTime > vTime )? iTime: vTime ) );
-  }
-  else
-    return( this->Superclass::GetMTime( ) );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Object::
-SetITK( itk::LightObject* o )
-{
-  if( this->m_ITKObject.GetPointer( ) != o )
-  {
-    this->m_ITKObject = o;
-    this->Modified( );
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Object::
-SetVTK( vtkObjectBase* o )
-{
-  if( this->m_VTKObject.GetPointer( ) != o )
-  {
-    this->m_VTKObject = o;
-    this->Modified( );
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::Object::
-Object( )
-  : m_ITKObject( NULL ),
-    m_VTKObject( NULL ),
-    m_ViewX( float( 0 ) ),
-    m_ViewY( float( 0 ) )
-{
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::Object::
-~Object( )
-{
-}
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/Object.h b/lib/cpPlugins/Object.h
deleted file mode 100644 (file)
index c4ce85a..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-#ifndef __CPPLUGINS__OBJECT__H__
-#define __CPPLUGINS__OBJECT__H__
-
-#include <cpPlugins/Config.h>
-
-#include <string>
-#include <itkLightObject.h>
-#include <itkObject.h>
-#include <itkObjectFactory.h>
-#include <vtkSmartPointer.h>
-#include <vtkObjectBase.h>
-#ifdef cpPlugins_QT4
-#  include <QPointF>
-#endif // cpPlugins_QT4
-
-namespace cpPlugins
-{
-  /**
-   */
-  class cpPlugins_EXPORT Object
-    : public itk::Object
-  {
-  public:
-    typedef Object                          Self;
-    typedef itk::Object                     Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-  public:
-    itkTypeMacro( Object, itk::Object );
-
-  public:
-    virtual const char* GetClassName( ) const = 0;
-    virtual const char* GetClassCategory( ) const = 0;
-
-    const float& GetViewX( ) const;
-    const float& GetViewY( ) const;
-    void SetViewCoords( float x, float y );
-
-#ifdef cpPlugins_QT4
-    void SetViewCoords( const QPointF& coords );
-    QPointF GetViewCoords( ) const;
-#endif // cpPlugins_QT4
-
-    virtual void Modified( ) const ITK_OVERRIDE;
-    virtual itk::ModifiedTimeType GetMTime( ) const ITK_OVERRIDE;
-
-    virtual void SetITK( itk::LightObject* o );
-    virtual void SetVTK( vtkObjectBase* o );
-
-    template< class T >
-      inline T* GetITK( );
-
-    template< class T >
-      inline const T* GetITK( ) const;
-
-    template< class T >
-      inline T* GetVTK( );
-
-    template< class T >
-      inline const T* GetVTK( ) const;
-
-  protected:
-    Object( );
-    virtual ~Object( );
-
-  private:
-    // Purposely not implemented
-    Object( const Self& );
-    Self& operator=( const Self& );
-
-  protected:
-    itk::LightObject::Pointer        m_ITKObject;
-    vtkSmartPointer< vtkObjectBase > m_VTKObject;
-
-    float m_ViewX;
-    float m_ViewY;
-  };
-
-} // ecapseman
-
-#include <cpPlugins/Object.hxx>
-
-#endif // __CPPLUGINS__OBJECT__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/Object.hxx b/lib/cpPlugins/Object.hxx
deleted file mode 100644 (file)
index 4e3f873..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef __CPPLUGINS__OBJECT__HXX__
-#define __CPPLUGINS__OBJECT__HXX__
-
-// -------------------------------------------------------------------------
-template< class T >
-T* cpPlugins::Object::
-GetITK( )
-{
-  return( dynamic_cast< T* >( this->m_ITKObject.GetPointer( ) ) );
-}
-
-// -------------------------------------------------------------------------
-template< class T >
-const T* cpPlugins::Object::
-GetITK( ) const
-{
-  return( dynamic_cast< const T* >( this->m_ITKObject.GetPointer( ) ) );
-}
-
-// -------------------------------------------------------------------------
-template< class T >
-T* cpPlugins::Object::
-GetVTK( )
-{
-  return( dynamic_cast< T* >( this->m_VTKObject.GetPointer( ) ) );
-}
-
-// -------------------------------------------------------------------------
-template< class T >
-const T* cpPlugins::Object::
-GetVTK( ) const
-{
-  return( dynamic_cast< const T* >( this->m_VTKObject.GetPointer( ) ) );
-}
-
-#endif // __CPPLUGINS__OBJECT__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/OrthoNormalBase.cxx b/lib/cpPlugins/OrthoNormalBase.cxx
deleted file mode 100644 (file)
index 9a02c0b..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-#include <cpPlugins/OrthoNormalBase.h>
-
-#include <vtkCaptionActor2D.h>
-#include <vtkMatrix4x4.h>
-#include <vtkTextProperty.h>
-
-// -------------------------------------------------------------------------
-void cpPlugins::OrthoNormalBase::
-SetITK( itk::LightObject* o )
-{
-  // WARNING: Do nothing since itk::Matrix does not belong to the
-  // itk::LightObject hierarchy.
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::OrthoNormalBase::
-SetVTK( vtkObjectBase* o )
-{
-  auto matrix = dynamic_cast< vtkMatrix4x4* >( o );
-  if( matrix !=  NULL )
-    this->Superclass::SetVTK( matrix );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::OrthoNormalBase::
-OrthoNormalBase( )
-  : Superclass( )
-{
-  vtkSmartPointer< vtkTextProperty > t1, t2, t3;
-
-  t1 = vtkSmartPointer< vtkTextProperty >::New( );
-  t2 = vtkSmartPointer< vtkTextProperty >::New( );
-  t3 = vtkSmartPointer< vtkTextProperty >::New( );
-
-  t1->ItalicOff( );
-  t1->ShadowOff( );
-  t1->SetFontFamilyToTimes( );
-  t2->ShallowCopy( t1 );
-  t3->ShallowCopy( t1 );
-
-  this->m_BaseActor = vtkSmartPointer< vtkAxesActor >::New( );
-  this->m_BaseActor->GetXAxisCaptionActor2D( )->SetCaptionTextProperty( t1 );
-  this->m_BaseActor->GetYAxisCaptionActor2D( )->SetCaptionTextProperty( t2 );
-  this->m_BaseActor->GetZAxisCaptionActor2D( )->SetCaptionTextProperty( t3 );
-  this->m_BaseActor->SetShaftTypeToLine( );
-  this->m_BaseActor->SetXAxisLabelText( "x" );
-  this->m_BaseActor->SetYAxisLabelText( "y" );
-  this->m_BaseActor->SetZAxisLabelText( "z" );
-  this->m_BaseActor->SetTotalLength( 1.0, 1.0, 1.0 );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::OrthoNormalBase::
-~OrthoNormalBase( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::OrthoNormalBase::
-_CreateVTKActor( ) const
-{
-  auto matrix =
-    const_cast< vtkMatrix4x4* >( this->GetVTK< vtkMatrix4x4 >( ) );
-  if( matrix != NULL )
-  {
-    this->m_BaseActor->SetUserMatrix( matrix );
-    this->m_Actor = this->m_BaseActor.GetPointer( );
-    this->m_Actor->Modified( );
-
-  } // fi
-}
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/OrthoNormalBase.h b/lib/cpPlugins/OrthoNormalBase.h
deleted file mode 100644 (file)
index 11bf87b..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-#ifndef __CPPLUGINS__ORTHONORMALBASE__H__
-#define __CPPLUGINS__ORTHONORMALBASE__H__
-
-#include <cpPlugins/DataObject.h>
-
-#include <vtkAxesActor.h>
-#include <vtkSmartPointer.h>
-
-namespace cpPlugins
-{
-  /**
-   */
-  class cpPlugins_EXPORT OrthoNormalBase
-    : public DataObject
-  {
-  public:
-    typedef OrthoNormalBase                 Self;
-    typedef DataObject                      Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-  public:
-    itkNewMacro( Self );
-    itkTypeMacro( OrthoNormalBase, DataObject );
-    cpPlugins_Id_Macro( OrthoNormalBase, Object );
-
-  public:
-    virtual void SetITK( itk::LightObject* o ) ITK_OVERRIDE;
-    virtual void SetVTK( vtkObjectBase* o ) ITK_OVERRIDE;
-
-    template< class _TMatrix >
-      inline void SetITK( const _TMatrix& m );
-
-    template< class _TMatrix, class _TVector >
-      inline void SetITK( const _TMatrix& m, const _TVector& v );
-
-  protected:
-    OrthoNormalBase( );
-    virtual ~OrthoNormalBase( );
-
-    virtual void _CreateVTKActor( ) const ITK_OVERRIDE;
-
-  private:
-    // Purposely not implemented
-    OrthoNormalBase( const Self& );
-    Self& operator=( const Self& );
-
-  protected:
-    mutable vtkSmartPointer< vtkAxesActor > m_BaseActor;
-  };
-
-} // ecapseman
-
-#include <cpPlugins/OrthoNormalBase.hxx>
-
-#endif // __CPPLUGINS__ORTHONORMALBASE__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/OrthoNormalBase.hxx b/lib/cpPlugins/OrthoNormalBase.hxx
deleted file mode 100644 (file)
index 193ff72..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-#ifndef __CPPLUGINS__ORTHONORMALBASE__HXX__
-#define __CPPLUGINS__ORTHONORMALBASE__HXX__
-
-#include <vtkMatrix4x4.h>
-
-// -------------------------------------------------------------------------
-template< class _TMatrix >
-void cpPlugins::OrthoNormalBase::
-SetITK( const _TMatrix& m )
-{
-  vtkMatrix4x4* matrix = vtkMatrix4x4::New( );
-  matrix->Identity( );
-  for( unsigned int i = 0; i < 4; ++i )
-    if( i < _TMatrix::RowDimensions )
-      for( unsigned int j = 0; j < 4; ++j )
-        if( j < _TMatrix::ColumnDimensions )
-          matrix->SetElement( i, j, m[ i ][ j ] );
-  this->m_VTKObject = matrix;
-  this->_CreateVTKActor( );
-}
-
-// -------------------------------------------------------------------------
-template< class _TMatrix, class _TVector >
-void cpPlugins::OrthoNormalBase::
-SetITK( const _TMatrix& m, const _TVector& v )
-{
-  vtkMatrix4x4* matrix = vtkMatrix4x4::New( );
-  matrix->Identity( );
-  for( unsigned int i = 0; i < 3; ++i )
-    if( i < _TMatrix::RowDimensions )
-      for( unsigned int j = 0; j < 3; ++j )
-        if( j < _TMatrix::ColumnDimensions )
-          matrix->SetElement( i, j, m[ i ][ j ] );
-  for( unsigned int i = 0; i < 3; ++i )
-    if( i < _TVector::Dimension )
-      matrix->SetElement( i, 3, v[ i ] );
-  this->m_VTKObject = matrix;
-  this->_CreateVTKActor( );
-}
-
-#endif // __CPPLUGINS__ORTHONORMALBASE__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/Parameters.cxx b/lib/cpPlugins/Parameters.cxx
deleted file mode 100644 (file)
index 4da3ec3..0000000
+++ /dev/null
@@ -1,581 +0,0 @@
-#include <cpPlugins/Parameters.h>
-#include <tinyxml/tinyxml2.h>
-
-// -------------------------------------------------------------------------
-cpPlugins::Parameters::
-Parameters( )
-{
-  this->Clear( );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::Parameters::
-~Parameters( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Parameters::
-Modified( ) const
-{
-  this->m_TimeStamp.Modified( );
-}
-
-// -------------------------------------------------------------------------
-itk::ModifiedTimeType cpPlugins::Parameters::
-GetMTime( ) const
-{
-  return( this->m_TimeStamp.GetMTime( ) );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Parameters::
-Clear( )
-{
-  this->m_Parameters.clear( );
-  this->Modified( );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Parameters::
-GetNames( std::vector< std::string >& container ) const
-{
-  container.clear( );
-  TParameters::const_iterator i = this->m_Parameters.begin( );
-  for( ; i != this->m_Parameters.end( ); ++i )
-    container.push_back( i->first );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::Parameters::
-Type cpPlugins::Parameters::
-GetType( const std::string& name ) const
-{
-  auto i = this->m_Parameters.find( name );
-  if( i != this->m_Parameters.end( ) )
-    return( i->second.first );
-  else
-    return( Self::NoType );
-}
-
-// -------------------------------------------------------------------------
-#define cpPlugins_Parameters_TypeAsString( Y )  \
-  if( i->second.first == Self::Y )              \
-    return( #Y )
-
-std::string cpPlugins::Parameters::
-GetTypeAsString( const std::string& name ) const
-{
-  auto i = this->m_Parameters.find( name );
-  cpPlugins_Parameters_TypeAsString( String );
-  else cpPlugins_Parameters_TypeAsString( Bool );
-  else cpPlugins_Parameters_TypeAsString( Int );
-  else cpPlugins_Parameters_TypeAsString( Uint );
-  else cpPlugins_Parameters_TypeAsString( Real );
-  else cpPlugins_Parameters_TypeAsString( OpenFileName );
-  else cpPlugins_Parameters_TypeAsString( SaveFileName );
-  else cpPlugins_Parameters_TypeAsString( PathName );
-  else cpPlugins_Parameters_TypeAsString( StringList );
-  else cpPlugins_Parameters_TypeAsString( BoolList );
-  else cpPlugins_Parameters_TypeAsString( IntList );
-  else cpPlugins_Parameters_TypeAsString( UintList );
-  else cpPlugins_Parameters_TypeAsString( RealList );
-  else cpPlugins_Parameters_TypeAsString( OpenFileNameList );
-  else cpPlugins_Parameters_TypeAsString( SaveFileNameList );
-  else cpPlugins_Parameters_TypeAsString( PathNameList );
-  else cpPlugins_Parameters_TypeAsString( Choices );
-  else return( "NoType" );
-}
-
-// -------------------------------------------------------------------------
-#define cpPlugins_Parameters_TypeFromString( Y, str )   \
-  if( str == std::string( #Y ) )                        \
-    return( Self::Y )
-
-cpPlugins::Parameters::
-Type cpPlugins::Parameters::
-GetTypeFromString( const std::string& t )
-{
-  cpPlugins_Parameters_TypeFromString( String, t );
-  else cpPlugins_Parameters_TypeFromString( Bool, t );
-  else cpPlugins_Parameters_TypeFromString( Int, t );
-  else cpPlugins_Parameters_TypeFromString( Uint, t );
-  else cpPlugins_Parameters_TypeFromString( Real, t );
-  else cpPlugins_Parameters_TypeFromString( OpenFileName, t );
-  else cpPlugins_Parameters_TypeFromString( SaveFileName, t );
-  else cpPlugins_Parameters_TypeFromString( PathName, t );
-  else cpPlugins_Parameters_TypeFromString( StringList, t );
-  else cpPlugins_Parameters_TypeFromString( BoolList, t );
-  else cpPlugins_Parameters_TypeFromString( IntList, t );
-  else cpPlugins_Parameters_TypeFromString( UintList, t );
-  else cpPlugins_Parameters_TypeFromString( RealList, t );
-  else cpPlugins_Parameters_TypeFromString( OpenFileNameList, t );
-  else cpPlugins_Parameters_TypeFromString( SaveFileNameList, t );
-  else cpPlugins_Parameters_TypeFromString( PathNameList, t );
-  else cpPlugins_Parameters_TypeFromString( Choices, t );
-  else return( Self::NoType );
-}
-
-// -------------------------------------------------------------------------
-std::string cpPlugins::Parameters::
-GetString( const std::string& name, bool force ) const
-{
-  auto i = this->m_Parameters.find( name );
-  if( i != this->m_Parameters.end( ) )
-  {
-    if( i->second.first == Self::String || force )
-      return( i->second.second );
-    else
-      return( "" );
-  }
-  else
-    return( "" );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Parameters::
-SetString( const std::string& name, const std::string& v, bool force )
-{
-  auto i = this->m_Parameters.find( name );
-  if( i != this->m_Parameters.end( ) )
-  {
-    if( i->second.first == Self::String || force )
-    {
-      if( i->second.second != v )
-      {
-        i->second.second = v;
-        this->Modified( );
-
-      } // fi
-
-    } // fi
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Parameters::
-ConfigureAsChoices(
-  const std::string& name, const std::vector< std::string >& choices
-  )
-{
-  // It is invalid not to give choices when configuring
-  if( choices.size( ) == 0 )
-    return;
-
-  std::stringstream str_choices;
-  str_choices << choices[ 0 ];
-  for( unsigned int i = 1; i < choices.size( ); ++i )
-    str_choices << "#" << choices[ i ];
-  str_choices << "@";
-  this->m_Parameters[ name ] =
-    TParameter( Self::Choices, str_choices.str( ) );
-  this->Modified( );
-}
-
-// -------------------------------------------------------------------------
-std::vector< std::string > cpPlugins::Parameters::
-GetChoices( const std::string& name ) const
-{
-  std::vector< std::string > choices;
-
-  TParameters::const_iterator i = this->m_Parameters.find( name );
-  if( i != this->m_Parameters.end( ) )
-  {
-    if( i->second.first == Self::Choices )
-    {
-      std::istringstream str_choices( i->second.second );
-      std::string real_choices;
-      std::getline( str_choices, real_choices, '@' );
-      std::istringstream str( real_choices );
-      std::string token;
-      while( std::getline( str, token, '#' ) )
-        choices.push_back( token );
-
-    } // fi
-
-  } // fi
-  return( choices );
-}
-
-// -------------------------------------------------------------------------
-std::string cpPlugins::Parameters::
-GetSelectedChoice( const std::string& name ) const
-{
-  auto i = this->m_Parameters.find( name );
-  if( i != this->m_Parameters.end( ) )
-  {
-    if( i->second.first == Self::Choices )
-    {
-      std::istringstream str_choices( i->second.second );
-      std::string real_choice;
-      std::getline( str_choices, real_choice, '@' );
-      std::getline( str_choices, real_choice, '@' );
-      return( real_choice );
-    }
-    else
-      return( "" );
-  }
-  else
-    return( "" );
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::Parameters::
-SetSelectedChoice( const std::string& name, const std::string& choice )
-{
-  auto i = this->m_Parameters.find( name );
-  if( i != this->m_Parameters.end( ) )
-  {
-    if( i->second.first == Self::Choices )
-    {
-      std::istringstream str_choices( i->second.second );
-      std::string choices;
-      std::getline( str_choices, choices, '@' );
-      if( choices.find( choice ) != std::string::npos )
-      {
-        std::stringstream new_choices;
-        new_choices << choices << "@" << choice;
-        i->second.second = new_choices.str( );
-        this->Modified( );
-        return( true );
-      }
-      else
-        return( false );
-    }
-    else
-      return( false );
-  }
-  else
-    return( false );
-}
-
-// -------------------------------------------------------------------------
-std::string cpPlugins::Parameters::
-GetAcceptedFileExtensions( const std::string& name ) const
-{
-  auto i = this->m_AcceptedFileExtensions.find( name );
-  if( i != this->m_AcceptedFileExtensions.end( ) )
-    return( i->second );
-  else
-    return( "" );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Parameters::
-SetAcceptedFileExtensions(
-  const std::string& name, const std::string& extensions
-  )
-{
-  auto i = this->m_Parameters.find( name );
-  if( i != this->m_Parameters.end( ) )
-  {
-    bool is_valid = ( i->second.first == Self::OpenFileName );
-    is_valid     |= ( i->second.first == Self::SaveFileName );
-    is_valid     |= ( i->second.first == Self::OpenFileNameList );
-    is_valid     |= ( i->second.first == Self::SaveFileNameList );
-    if( is_valid )
-      this->m_AcceptedFileExtensions[ name ] = extensions;
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::Parameters::
-ToXML(
-  tinyxml2::XMLDocument* doc, tinyxml2::XMLElement* parent_elem
-  ) const
-{
-  if( parent_elem == NULL )
-    return( false );
-
-  auto pIt = this->m_Parameters.begin( );
-  for( ; pIt != this->m_Parameters.end( ); ++pIt )
-  {
-    tinyxml2::XMLElement* p = doc->NewElement( "parameter" );
-    p->SetAttribute( "name", pIt->first.c_str( ) );
-    p->SetAttribute( "value", pIt->second.second.c_str( ) );
-    p->SetAttribute( "type", this->GetTypeAsString( pIt->first ).c_str( ) );
-    parent_elem->InsertEndChild( p );
-
-  } // rof
-  return( true );
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::Parameters::
-FromXML( const tinyxml2::XMLElement* filter_elem )
-{
-  const tinyxml2::XMLElement* param =
-    filter_elem->FirstChildElement( "parameter" );
-  bool ret = false;
-  while( param != NULL )
-  {
-    const char* param_name = param->Attribute( "name" );
-    const char* param_type = param->Attribute( "type" );
-    if( param_name != NULL && param_type != NULL )
-    {
-      TParameter value;
-      value.second = param->Attribute( "value" );
-      value.first = Self::GetTypeFromString( param_type );
-      this->m_Parameters[ param_name ] = value;
-
-    } // fi
-    param = param->NextSiblingElement( "parameter" );
-    ret = true;
-
-  } // elihw
-  this->Modified( );
-  return( ret );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::Parameters::
-TParameters& cpPlugins::Parameters::
-GetRawParameters( )
-{
-  return( this->m_Parameters );
-}
-
-// -------------------------------------------------------------------------
-const cpPlugins::Parameters::
-TParameters& cpPlugins::Parameters::
-GetRawParameters( ) const
-{
-  return( this->m_Parameters );
-}
-
-// -------------------------------------------------------------------------
-#define cpPlugins_Parameters_Configure_Code( Y )                        \
-  void cpPlugins::Parameters::ConfigureAs##Y( const std::string& name ) \
-  { this->_Configure< Y >( name ); }                                    \
-  bool cpPlugins::Parameters::Has##Y( const std::string& name ) const   \
-  { return( this->_Has< Y >( name ) ); }
-
-// -------------------------------------------------------------------------
-#define cpPlugins_Parameters_GetSet_Code( Y )                        \
-  cpPlugins::Parameters::T##Y                                        \
-  cpPlugins::Parameters::Get##Y( const std::string& name ) const     \
-  { return( this->_Get< T##Y, Y >( name ) ); }                       \
-  void cpPlugins::Parameters::Set##Y(                                \
-    const std::string& name, const T##Y& v                           \
-    )                                                                \
-  { this->_Set< T##Y, Y >( name, v ); }
-
-// -------------------------------------------------------------------------
-#define cpPlugins_Parameters_GetSetList_Code( Y )                       \
-  std::vector< cpPlugins::Parameters::T##Y >                            \
-  cpPlugins::Parameters::Get##Y##List( const std::string& name ) const  \
-  { return( this->_GetList< T##Y, Y##List >( name ) ); }                \
-  void cpPlugins::Parameters::AddTo##Y##List(                           \
-    const std::string& name, const cpPlugins::Parameters::T##Y& v       \
-    )                                                                   \
-  { this->_AddToList< T##Y, Y##List >( name, v ); }                     \
-  void cpPlugins::Parameters::Clear##Y##List( const std::string& name ) \
-  { this->_ClearList< Y##List >( name ); }
-
-// -------------------------------------------------------------------------
-cpPlugins_Parameters_Configure_Code( String );
-cpPlugins_Parameters_Configure_Code( Bool );
-cpPlugins_Parameters_Configure_Code( Int );
-cpPlugins_Parameters_Configure_Code( Uint );
-cpPlugins_Parameters_Configure_Code( Real );
-cpPlugins_Parameters_Configure_Code( OpenFileName );
-cpPlugins_Parameters_Configure_Code( SaveFileName );
-cpPlugins_Parameters_Configure_Code( PathName );
-cpPlugins_Parameters_Configure_Code( StringList );
-cpPlugins_Parameters_Configure_Code( BoolList );
-cpPlugins_Parameters_Configure_Code( IntList );
-cpPlugins_Parameters_Configure_Code( UintList );
-cpPlugins_Parameters_Configure_Code( RealList );
-cpPlugins_Parameters_Configure_Code( OpenFileNameList );
-cpPlugins_Parameters_Configure_Code( SaveFileNameList );
-cpPlugins_Parameters_Configure_Code( PathNameList );
-cpPlugins_Parameters_Configure_Code( Choices );
-cpPlugins_Parameters_GetSet_Code( Bool );
-cpPlugins_Parameters_GetSet_Code( Int );
-cpPlugins_Parameters_GetSet_Code( Uint );
-cpPlugins_Parameters_GetSet_Code( Real );
-cpPlugins_Parameters_GetSet_Code( OpenFileName );
-cpPlugins_Parameters_GetSet_Code( SaveFileName );
-cpPlugins_Parameters_GetSet_Code( PathName );
-cpPlugins_Parameters_GetSetList_Code( String );
-cpPlugins_Parameters_GetSetList_Code( Bool );
-cpPlugins_Parameters_GetSetList_Code( Int );
-cpPlugins_Parameters_GetSetList_Code( Uint );
-cpPlugins_Parameters_GetSetList_Code( Real );
-cpPlugins_Parameters_GetSetList_Code( OpenFileName );
-cpPlugins_Parameters_GetSetList_Code( SaveFileName );
-cpPlugins_Parameters_GetSetList_Code( PathName );
-
-// -------------------------------------------------------------------------
-template< unsigned int _Enum >
-void cpPlugins::Parameters::
-_Configure( const std::string& name )
-{
-  this->m_Parameters[ name ] = TParameter( ( Self::Type )( _Enum ), "" );
-  this->Modified( );
-}
-
-// -------------------------------------------------------------------------
-template< unsigned int _Enum >
-bool cpPlugins::Parameters::
-_Has( const std::string& name ) const
-{
-  auto i = this->m_Parameters.find( name );
-  if( i != this->m_Parameters.end( ) )
-    return( i->second.first == ( Self::Type )( _Enum ) );
-  else
-    return( false );
-}
-
-// -------------------------------------------------------------------------
-template< class _Type, unsigned int _Enum >
-_Type cpPlugins::Parameters::
-_Get( const std::string& name ) const
-{
-  auto i = this->m_Parameters.find( name );
-  if( i != this->m_Parameters.end( ) )
-  {
-    if( i->second.first == ( Self::Type )( _Enum ) )
-    {
-      if( typeid( _Type ) != typeid( std::string ) )
-      {
-        std::istringstream tok_str( i->second.second );
-        _Type v;
-        tok_str >> v;
-        return( v );
-      }
-      else
-      {
-        const _Type* ptr =
-          reinterpret_cast< const _Type* >( &( i->second.second ) );
-        return( *ptr );
-
-      } // fi
-
-    } // fi
-
-  } // fi
-  return( _Type( 0 ) );
-}
-
-// -------------------------------------------------------------------------
-template< class _Type, unsigned int _Enum >
-void cpPlugins::Parameters::
-_Set( const std::string& name, const _Type& v )
-{
-  auto i = this->m_Parameters.find( name );
-  if( i != this->m_Parameters.end( ) )
-  {
-    if( i->second.first == ( Self::Type )( _Enum ) )
-    {
-      if( typeid( _Type ) != typeid( std::string ) )
-      {
-        std::stringstream str;
-        str << v;
-        if( i->second.second != str.str( ) )
-        {
-          i->second.second = str.str( );
-          this->Modified( );
-
-        } // fi
-      }
-      else
-      {
-        const std::string* str = reinterpret_cast< const std::string* >( &v );
-        if( i->second.second != *str )
-        {
-          i->second.second = *str;
-          this->Modified( );
-
-        } // fi
-
-      } // fi
-
-    } // fi
-
-  } // fi
-
-}
-
-// -------------------------------------------------------------------------
-template< class _Type, unsigned int _Enum >
-std::vector< _Type > cpPlugins::Parameters::
-_GetList( const std::string& name ) const
-{
-  std::vector< _Type > lst;
-  std::vector< std::string >* slst =
-    reinterpret_cast< std::vector< std::string >* >( &lst );
-  auto i = this->m_Parameters.find( name );
-  if( i != this->m_Parameters.end( ) )
-  {
-    if( i->second.first == ( Self::Type )( _Enum ) )
-    {
-      std::vector< std::string > tokens;
-      cpPlugins::TokenizeString( tokens, i->second.second, "#" );
-      for( auto t = tokens.begin( ); t != tokens.end( ); ++t )
-      {
-        if( typeid( _Type ) != typeid( std::string ) )
-        {
-          std::istringstream tok_str( *t );
-          _Type v;
-          tok_str >> v;
-          lst.push_back( v );
-        }
-        else
-          slst->push_back( *t );
-
-      } // rof
-
-    } // fi
-
-  } // fi
-  return( lst );
-}
-
-// -------------------------------------------------------------------------
-template< class _Type, unsigned int _Enum >
-void cpPlugins::Parameters::
-_AddToList( const std::string& name, const _Type& v )
-{
-  auto i = this->m_Parameters.find( name );
-  if( i != this->m_Parameters.end( ) )
-  {
-    if( i->second.first == ( Self::Type )( _Enum ) )
-    {
-      std::stringstream str;
-      if( i->second.second != "" )
-        str << i->second.second << "#";
-      str << v;
-      i->second.second = str.str( );
-      this->Modified( );
-
-    } // fi
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-template< unsigned int _Enum >
-void cpPlugins::Parameters::
-_ClearList( const std::string& name )
-{
-  auto i = this->m_Parameters.find( name );
-  if( i != this->m_Parameters.end( ) )
-  {
-    if( i->second.first == ( Self::Type )( _Enum ) )
-    {
-      if( i->second.second != "" )
-      {
-        i->second.second = "";
-        this->Modified( );
-
-      } // fi
-
-    } // fi
-
-  } // fi
-}
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/Parameters.h b/lib/cpPlugins/Parameters.h
deleted file mode 100644 (file)
index dc0ea52..0000000
+++ /dev/null
@@ -1,208 +0,0 @@
-#ifndef __CPPLUGINS__PARAMETERS__H__
-#define __CPPLUGINS__PARAMETERS__H__
-
-#include <cpPlugins/Config.h>
-
-#include <typeinfo>
-#include <map>
-#include <ostream>
-#include <sstream>
-#include <string>
-#include <vector>
-#include <itkTimeStamp.h>
-
-// Some forward declarations
-namespace tinyxml2
-{
-  class XMLElement;
-  class XMLDocument;
-}
-
-// -------------------------------------------------------------------------
-#define cpPlugins_Parameters_Configure( Y )                     \
-  void ConfigureAs##Y( const std::string& name );               \
-  bool Has##Y( const std::string& name ) const
-
-// -------------------------------------------------------------------------
-#define cpPlugins_Parameters_GetSet( Y )                        \
-  T##Y Get##Y( const std::string& name ) const;                 \
-  void Set##Y( const std::string& name, const T##Y& v )
-
-// -------------------------------------------------------------------------
-#define cpPlugins_Parameters_GetSetList( Y )                            \
-  std::vector< T##Y > Get##Y##List( const std::string& name ) const;    \
-  void AddTo##Y##List( const std::string& name, const T##Y& v );        \
-  void Clear##Y##List( const std::string& name )
-
-namespace cpPlugins
-{
-  // Forward declaration to improve Qt dialog execution
-  class ParametersQtDialog;
-
-  /**
-   */
-  class cpPlugins_EXPORT Parameters
-  {
-    // Frienship with forward declaration to improve Qt dialog execution
-    friend class ParametersQtDialog;
-    friend std::ostream& operator<<( std::ostream& o, const Parameters& p )
-    {
-      for(
-        auto i = p.m_Parameters.begin( );
-        i != p.m_Parameters.end( );
-        ++i
-        )
-        o << i->first << ": ("
-          << i->second.first << " | "
-          << i->second.second << ")"
-          << std::endl;
-      return( o );
-    }
-
-  public:
-    typedef Parameters Self;
-
-    enum Type
-    {
-      String       , Bool             , Int              ,
-      Uint         , Real             , OpenFileName     ,
-      SaveFileName , PathName         , StringList       ,
-      BoolList     , IntList          , UintList         ,
-      RealList     , OpenFileNameList , SaveFileNameList ,
-      PathNameList , Choices          , NoType
-    };
-
-    typedef bool          TBool;
-    typedef long          TInt;
-    typedef unsigned long TUint;
-    typedef double        TReal;
-    typedef std::string   TString;
-    typedef std::string   TOpenFileName;
-    typedef std::string   TSaveFileName;
-    typedef std::string   TPathName;
-
-    typedef std::pair< Self::Type, std::string > TParameter;
-    typedef std::map< std::string, TParameter >  TParameters;
-
-  public:
-    cpPlugins_Parameters_Configure( String );
-    cpPlugins_Parameters_Configure( Bool );
-    cpPlugins_Parameters_Configure( Int );
-    cpPlugins_Parameters_Configure( Uint );
-    cpPlugins_Parameters_Configure( Real );
-    cpPlugins_Parameters_Configure( OpenFileName );
-    cpPlugins_Parameters_Configure( SaveFileName );
-    cpPlugins_Parameters_Configure( PathName );
-    cpPlugins_Parameters_Configure( StringList );
-    cpPlugins_Parameters_Configure( BoolList );
-    cpPlugins_Parameters_Configure( IntList );
-    cpPlugins_Parameters_Configure( UintList );
-    cpPlugins_Parameters_Configure( RealList );
-    cpPlugins_Parameters_Configure( OpenFileNameList );
-    cpPlugins_Parameters_Configure( SaveFileNameList );
-    cpPlugins_Parameters_Configure( PathNameList );
-    cpPlugins_Parameters_Configure( Choices );
-
-    cpPlugins_Parameters_GetSet( Bool );
-    cpPlugins_Parameters_GetSet( Int );
-    cpPlugins_Parameters_GetSet( Uint );
-    cpPlugins_Parameters_GetSet( Real );
-    cpPlugins_Parameters_GetSet( OpenFileName );
-    cpPlugins_Parameters_GetSet( SaveFileName );
-    cpPlugins_Parameters_GetSet( PathName );
-
-    cpPlugins_Parameters_GetSetList( String );
-    cpPlugins_Parameters_GetSetList( Bool );
-    cpPlugins_Parameters_GetSetList( Int );
-    cpPlugins_Parameters_GetSetList( Uint );
-    cpPlugins_Parameters_GetSetList( Real );
-    cpPlugins_Parameters_GetSetList( OpenFileName );
-    cpPlugins_Parameters_GetSetList( SaveFileName );
-    cpPlugins_Parameters_GetSetList( PathName );
-
-  public:
-    Parameters( );
-    virtual ~Parameters( );
-
-    virtual void Modified( ) const;
-    virtual itk::ModifiedTimeType GetMTime( ) const;
-
-    // Parameters container configuration
-    void Clear( );
-
-    // Get methods
-    void GetNames( std::vector< std::string >& container ) const;
-    Type GetType( const std::string& name ) const;
-    std::string GetTypeAsString( const std::string& name ) const;
-    static Type GetTypeFromString( const std::string& t );
-
-    // Base string methods
-    std::string GetString(
-      const std::string& name, bool force = true
-      ) const;
-    void SetString(
-      const std::string& name, const std::string& v, bool force = true
-      );
-
-    void ConfigureAsChoices(
-      const std::string& name, const std::vector< std::string >& choices
-      );
-    std::vector< std::string > GetChoices( const std::string& name ) const;
-    std::string GetSelectedChoice( const std::string& name ) const;
-    bool SetSelectedChoice(
-      const std::string& name, const std::string& choice
-      );
-
-    std::string GetAcceptedFileExtensions( const std::string& name ) const;
-    void SetAcceptedFileExtensions(
-      const std::string& name, const std::string& extensions
-      );
-
-    // XML "streaming"
-    bool ToXML(
-      tinyxml2::XMLDocument* doc,
-      tinyxml2::XMLElement* parent_elem
-      ) const;
-    bool FromXML( const tinyxml2::XMLElement* filter_elem );
-
-  protected:
-    TParameters& GetRawParameters( );
-    const TParameters& GetRawParameters( ) const;
-
-    template< unsigned int _Enum >
-      inline void _Configure( const std::string& name );
-
-    template< unsigned int _Enum >
-      inline bool _Has( const std::string& name ) const;
-
-    template< class _Type, unsigned int _Enum >
-      inline _Type _Get( const std::string& name ) const;
-
-    template< class _Type, unsigned int _Enum >
-      inline void _Set( const std::string& name, const _Type& v );
-
-    template< class _Type, unsigned int _Enum >
-      inline std::vector< _Type > _GetList( const std::string& name ) const;
-
-    template< class _Type, unsigned int _Enum >
-      inline void _AddToList( const std::string& name, const _Type& v );
-
-    template< unsigned int _Enum >
-      inline void _ClearList( const std::string& name );
-
-  private:
-    // Purposely not implemented
-    Parameters( const Self& other );
-    Self& operator=( const Self& other );
-
-  protected:
-    mutable itk::TimeStamp               m_TimeStamp;
-    TParameters                          m_Parameters;
-    std::map< std::string, std::string > m_AcceptedFileExtensions;
-  };
-
-} // ecapseman
-
-#endif // __CPPLUGINS__PARAMETERS__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/ParametersQtDialog.cxx b/lib/cpPlugins/ParametersQtDialog.cxx
deleted file mode 100644 (file)
index 9650765..0000000
+++ /dev/null
@@ -1,909 +0,0 @@
-#include <cpPlugins/ParametersQtDialog.h>
-
-#ifdef cpPlugins_QT4
-
-#include <limits>
-
-#include <cpPlugins/ProcessObject.h>
-
-#include <QCheckBox>
-#include <QComboBox>
-#include <QDoubleSpinBox>
-#include <QFileDialog>
-#include <QHBoxLayout>
-#include <QInputDialog>
-#include <QLineEdit>
-#include <QPushButton>
-#include <QWidget>
-
-// -------------------------------------------------------------------------
-cpPlugins::ParametersQtDialog::
-ParametersQtDialog( QWidget* parent, Qt::WindowFlags f, bool manual )
-  : QDialog( parent, f ),
-    m_ProcessObject( NULL ),
-    m_WidgetsUpdated( false ),
-    m_Manual( manual )
-{
-  if( !this->m_Manual )
-  {
-    this->m_Title = new QLabel( this );
-    this->m_Title->setText( "Parameters dialog title" );
-    this->m_MainLayout = new QGridLayout( this );
-    this->m_ToolsLayout = new QVBoxLayout( );
-    this->m_ToolsLayout->addWidget( this->m_Title );
-    this->m_MainLayout->addLayout( this->m_ToolsLayout, 0, 0, 1, 1 );
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::ParametersQtDialog::
-~ParametersQtDialog( )
-{
-  if( !this->m_Manual )
-  {
-    delete this->m_Title;
-    delete this->m_ToolsLayout;
-    delete this->m_MainLayout;
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::
-ProcessObject* cpPlugins::ParametersQtDialog::
-getProcessObject( ) const
-{
-  return( this->m_ProcessObject );
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::ParametersQtDialog::
-setProcessObject( ProcessObject* obj )
-{
-  if( this->m_ProcessObject != NULL || obj == NULL )
-    return( false );
-  this->m_ProcessObject = obj;
-  this->m_WidgetsUpdated = false;
-  return( true );
-}
-
-// -------------------------------------------------------------------------
-int cpPlugins::ParametersQtDialog::
-exec( )
-{
-  this->_updateWidgets( );
-  this->updateView( );
-
-  int ret = this->QDialog::exec( );
-  if( ret == 1 )
-    this->updateParameters( );
-  else
-    this->updateView( );
-  return( ret );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ParametersQtDialog::
-updateParameters( )
-{
-  if( this->m_ProcessObject == NULL )
-    return;
-  if( this->m_Manual )
-    return;
-
-  // Check if an explicit re-execution button is needed
-  if( this->m_ProcessObject->GetCouldHaveExplicitReExecution( ) )
-  {
-    QCheckBox* v_bool =
-      this->findChild< QCheckBox* >( "___ExplicitReExecution___" );
-    if( v_bool != NULL )
-      this->m_ProcessObject->SetExplicitReExecution( v_bool->isChecked( ) );
-
-  } // fi
-
-  // Put values
-  auto parameters = this->m_ProcessObject->GetParameters( );
-  auto& raw_params = parameters->GetRawParameters( );
-  for( auto pIt = raw_params.begin( ); pIt != raw_params.end( ); ++pIt )
-  {
-    QString pName = pIt->first.c_str( );
-    switch( pIt->second.first )
-    {
-    case Parameters::String:
-    case Parameters::OpenFileName:
-    case Parameters::SaveFileName:
-    case Parameters::PathName:
-    case Parameters::IntList:
-    case Parameters::UintList:
-    case Parameters::RealList:
-    case Parameters::OpenFileNameList:
-    {
-      QLineEdit* v_string = this->findChild< QLineEdit* >( pName );
-      if( v_string != NULL )
-        pIt->second.second = v_string->text( ).toStdString( );
-    }
-    break;
-    case Parameters::Bool:
-    {
-      QCheckBox* v_bool = this->findChild< QCheckBox* >( pName );
-      if( v_bool != NULL )
-        pIt->second.second = ( v_bool->isChecked( ) )? "1": "0";
-    }
-    break;
-    case Parameters::Int:
-    case Parameters::Uint:
-    {
-      QSpinBox* v_uint = this->findChild< QSpinBox* >( pName );
-      if( v_uint )
-      {
-        std::stringstream str;
-        str << v_uint->value( );
-        pIt->second.second = str.str( );
-
-      } // fi
-    }
-    break;
-    case Parameters::Real:
-    {
-      QDoubleSpinBox* v_double = this->findChild< QDoubleSpinBox* >( pName );
-      if( v_double )
-      {
-        std::stringstream str;
-        str << v_double->value( );
-        pIt->second.second = str.str( );
-
-      } // fi
-    }
-    break;
-    case Parameters::StringList:
-      break;
-    case Parameters::BoolList:
-      break;
-    case Parameters::SaveFileNameList:
-      break;
-    case Parameters::PathNameList:
-      break;
-    case Parameters::Choices:
-    {
-      QComboBox* v_choices = this->findChild< QComboBox* >( pName );
-      if( v_choices != NULL )
-      {
-        std::istringstream str_choices( pIt->second.second );
-        std::string real_choices;
-        std::getline( str_choices, real_choices, '@' );
-        pIt->second.second =
-          real_choices + "@" +
-          v_choices->currentText( ).toStdString( );
-
-      } // fi
-    }
-    break;
-    default:
-      break;
-    } // hctiws
-
-  } // rof
-  this->m_ProcessObject->Modified( );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ParametersQtDialog::
-updateView( )
-{
-  if( this->m_ProcessObject == NULL )
-    return;
-  if( this->m_Manual )
-    return;
-
-  // Check if an explicit re-execution button is needed
-  if( this->m_ProcessObject->GetCouldHaveExplicitReExecution( ) )
-  {
-    QCheckBox* v_bool =
-      this->findChild< QCheckBox* >( "___ExplicitReExecution___" );
-    if( v_bool != NULL )
-      v_bool->setChecked( this->m_ProcessObject->GetExplicitReExecution( ) );
-
-  } // fi
-
-  // Put values
-  auto parameters = this->m_ProcessObject->GetParameters( );
-  auto& raw_params = parameters->GetRawParameters( );
-  for( auto pIt = raw_params.begin( ); pIt != raw_params.end( ); ++pIt )
-  {
-    QString pName = pIt->first.c_str( );
-    switch( pIt->second.first )
-    {
-    case Parameters::String:
-    case Parameters::OpenFileName:
-    case Parameters::SaveFileName:
-    case Parameters::PathName:
-    case Parameters::IntList:
-    case Parameters::UintList:
-    case Parameters::RealList:
-    case Parameters::OpenFileNameList:
-    {
-      QLineEdit* v_string = this->findChild< QLineEdit* >( pName );
-      if( v_string != NULL )
-        v_string->setText( pIt->second.second.c_str( ) );
-    }
-    break;
-    case Parameters::Bool:
-    {
-      QCheckBox* v_bool = this->findChild< QCheckBox* >( pName );
-      if( v_bool != NULL )
-        v_bool->setChecked( pIt->second.second == "1" );
-    }
-    break;
-    case Parameters::Int:
-    case Parameters::Uint:
-    {
-      QSpinBox* v_uint = this->findChild< QSpinBox* >( pName );
-      if( v_uint )
-      {
-        std::istringstream tok_str( pIt->second.second );
-        int v;
-        tok_str >> v;
-        v_uint->setValue( v );
-
-      } // fi
-    }
-    break;
-    case Parameters::Real:
-    {
-      QDoubleSpinBox* v_double = this->findChild< QDoubleSpinBox* >( pName );
-      if( v_double )
-      {
-        std::istringstream tok_str( pIt->second.second );
-        double v;
-        tok_str >> v;
-        v_double->setValue( v );
-
-      } // fi
-    }
-    break;
-    case Parameters::StringList:
-      break;
-    case Parameters::BoolList:
-      break;
-    case Parameters::SaveFileNameList:
-      break;
-    case Parameters::PathNameList:
-      break;
-    case Parameters::Choices:
-    {
-      QComboBox* v_choices = this->findChild< QComboBox* >( pName );
-      if( v_choices != NULL )
-      {
-        std::istringstream str_choices( pIt->second.second );
-        std::string choices, real_choice;
-        std::getline( str_choices, choices, '@' );
-        std::getline( str_choices, real_choice, '@' );
-        std::istringstream str( choices );
-        std::string token;
-        int id = -1, cont = 0;
-        while( std::getline( str, token, '#' ) )
-        {
-          if( token == real_choice )
-            id = cont;
-          cont++;
-
-        } // elihw
-
-        if( id > -1 )
-          v_choices->setCurrentIndex( id );
-
-      } // fi
-    }
-    break;
-    default:
-      break;
-    } // hctiws
-
-  } // rof
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ParametersQtDialog::
-_addButtons( )
-{
-  if( this->m_Manual )
-    return;
-
-  // Add buttons
-  this->m_Buttons = new QDialogButtonBox(
-    QDialogButtonBox::Ok | QDialogButtonBox::Cancel
-    );
-  this->connect(
-    this->m_Buttons, SIGNAL( accepted( ) ), this, SLOT( accept( ) )
-    );
-  this->connect(
-    this->m_Buttons, SIGNAL( rejected( ) ), this, SLOT( reject( ) )
-    );
-  this->m_ToolsLayout->addWidget( this->m_Buttons );
-
-  this->updateView( );
-  this->m_WidgetsUpdated = true;
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ParametersQtDialog::
-_updateWidgets( )
-{
-  if( this->m_WidgetsUpdated || this->m_ProcessObject == NULL )
-    return;
-  if( this->m_Manual )
-    return;
-
-  // Set dialog title
-  std::stringstream title;
-  title
-    << "Parameters for an object of class \""
-    << this->m_ProcessObject->GetClassName( )
-    << "\"";
-  this->m_Title->setText( title.str( ).c_str( ) );
-
-  // Check if an explicit re-execution button is needed
-  if( this->m_ProcessObject->GetCouldHaveExplicitReExecution( ) )
-  {
-    QCheckBox* v_bool = new QCheckBox( this );
-    v_bool->setObjectName( "___ExplicitReExecution___" );
-    v_bool->setText( "Explicit re-execution" );
-    v_bool->setChecked( this->m_ProcessObject->GetExplicitReExecution( ) );
-
-    QHBoxLayout* new_layout = new QHBoxLayout( );
-    new_layout->addWidget( v_bool );
-    this->m_ToolsLayout->addLayout( new_layout );
-
-  } // fi
-
-  // Put values
-  auto parameters = this->m_ProcessObject->GetParameters( );
-  auto& raw_params = parameters->GetRawParameters( );
-  for( auto pIt = raw_params.begin( ); pIt != raw_params.end( ); ++pIt )
-  {
-    QWidget* w_input = NULL;
-    switch( pIt->second.first )
-    {
-    case Parameters::String:
-    {
-      QLineEdit* v_string = new QLineEdit( this );
-      v_string->setObjectName( pIt->first.c_str( ) );
-      v_string->setText( pIt->second.second.c_str( ) );
-      w_input = v_string;
-    }
-    break;
-    case Parameters::Bool:
-    {
-      QCheckBox* v_bool = new QCheckBox( this );
-      v_bool->setObjectName( pIt->first.c_str( ) );
-      v_bool->setText( "[ON/OFF]" );
-      v_bool->setChecked( pIt->second.second == "1" );
-      w_input = v_bool;
-    }
-    break;
-    case Parameters::Int:
-    case Parameters::Uint:
-    {
-      std::istringstream tok_str( pIt->second.second );
-      int v;
-      tok_str >> v;
-      QSpinBox* v_uint = new QSpinBox( this );
-      v_uint->setObjectName( pIt->first.c_str( ) );
-      if( pIt->second.first == Parameters::Uint )
-        v_uint->setMinimum( 0 );
-      else
-        v_uint->setMinimum( -std::numeric_limits< int >::max( ) );
-      v_uint->setMaximum( std::numeric_limits< int >::max( ) );
-      v_uint->setValue( v );
-      w_input = v_uint;
-    }
-    break;
-    case Parameters::Real:
-    {
-      std::istringstream tok_str( pIt->second.second );
-      double v;
-      tok_str >> v;
-      QDoubleSpinBox* v_double = new QDoubleSpinBox( this );
-      v_double->setObjectName( pIt->first.c_str( ) );
-      v_double->setDecimals( 3 );
-      v_double->setMinimum( -std::numeric_limits< double >::max( ) );
-      v_double->setMaximum(  std::numeric_limits< double >::max( ) );
-      v_double->setValue( v );
-      w_input = v_double;
-    }
-    break;
-    case Parameters::OpenFileName:
-    {
-      QFrame* frame = new QFrame( this );
-      QHBoxLayout* layout = new QHBoxLayout( frame );
-      QLineEdit* v_string = new QLineEdit( frame );
-      v_string->setObjectName( pIt->first.c_str( ) );
-      v_string->setText( pIt->second.second.c_str( ) );
-      QPushButton* v_button = new QPushButton( frame );
-      v_button->setObjectName( ( pIt->first + "_=?btn" ).c_str( ) );
-      v_button->setText( "..." );
-      v_button->connect(
-        v_button, SIGNAL( clicked( ) ),
-        this, SLOT( _dlg_OpenSingleFile( ) )
-        );
-      layout->addWidget( v_string );
-      layout->addWidget( v_button );
-      w_input = frame;
-    }
-    case Parameters::SaveFileName:
-    {
-      QFrame* frame = new QFrame( this );
-      QHBoxLayout* layout = new QHBoxLayout( frame );
-      QLineEdit* v_string = new QLineEdit( frame );
-      v_string->setObjectName( pIt->first.c_str( ) );
-      v_string->setText( pIt->second.second.c_str( ) );
-      QPushButton* v_button = new QPushButton( frame );
-      v_button->setObjectName( ( pIt->first + "_=?btn" ).c_str( ) );
-      v_button->setText( "..." );
-      v_button->connect(
-        v_button, SIGNAL( clicked( ) ),
-        this, SLOT( _dlg_SaveSingleFile( ) )
-        );
-      layout->addWidget( v_string );
-      layout->addWidget( v_button );
-      w_input = frame;
-    }
-    break;
-    case Parameters::PathName:
-    {
-      QFrame* frame = new QFrame( this );
-      QHBoxLayout* layout = new QHBoxLayout( frame );
-      QLineEdit* v_string = new QLineEdit( frame );
-      v_string->setObjectName( pIt->first.c_str( ) );
-      v_string->setText( pIt->second.second.c_str( ) );
-      QPushButton* v_button = new QPushButton( frame );
-      v_button->setObjectName( ( pIt->first + "_=?btn" ).c_str( ) );
-      v_button->setText( "..." );
-      v_button->connect(
-        v_button, SIGNAL( clicked( ) ),
-        this, SLOT( _dlg_OpenSinglePath( ) )
-        );
-      layout->addWidget( v_string );
-      layout->addWidget( v_button );
-      w_input = frame;
-    }
-    break;
-    case Parameters::StringList:
-      break;
-    case Parameters::BoolList:
-      break;
-    case Parameters::IntList:
-    {
-      QFrame* frame = new QFrame( this );
-      QHBoxLayout* layout = new QHBoxLayout( frame );
-      QLineEdit* v_string = new QLineEdit( frame );
-      v_string->setObjectName( pIt->first.c_str( ) );
-      v_string->setText( pIt->second.second.c_str( ) );
-      QPushButton* v_button = new QPushButton( frame );
-      v_button->setObjectName( ( pIt->first + "_=?btn" ).c_str( ) );
-      v_button->setText( "+" );
-      v_button->connect(
-        v_button, SIGNAL( clicked( ) ),
-        this, SLOT( _dlg_AddInt( ) )
-        );
-      layout->addWidget( v_string );
-      layout->addWidget( v_button );
-      w_input = frame;
-    }
-    break;
-    case Parameters::UintList:
-    {
-      QFrame* frame = new QFrame( this );
-      QHBoxLayout* layout = new QHBoxLayout( frame );
-      QLineEdit* v_string = new QLineEdit( frame );
-      v_string->setObjectName( pIt->first.c_str( ) );
-      v_string->setText( pIt->second.second.c_str( ) );
-      QPushButton* v_button = new QPushButton( frame );
-      v_button->setObjectName( ( pIt->first + "_=?btn" ).c_str( ) );
-      v_button->setText( "+" );
-      v_button->connect(
-        v_button, SIGNAL( clicked( ) ),
-        this, SLOT( _dlg_AddUint( ) )
-        );
-      layout->addWidget( v_string );
-      layout->addWidget( v_button );
-      w_input = frame;
-    }
-    break;
-    case Parameters::RealList:
-    {
-      QFrame* frame = new QFrame( this );
-      QHBoxLayout* layout = new QHBoxLayout( frame );
-      QLineEdit* v_string = new QLineEdit( frame );
-      v_string->setObjectName( pIt->first.c_str( ) );
-      v_string->setText( pIt->second.second.c_str( ) );
-      QPushButton* v_button = new QPushButton( frame );
-      v_button->setObjectName( ( pIt->first + "_=?btn" ).c_str( ) );
-      v_button->setText( "+" );
-      v_button->connect(
-        v_button, SIGNAL( clicked( ) ),
-        this, SLOT( _dlg_AddReal( ) )
-        );
-      layout->addWidget( v_string );
-      layout->addWidget( v_button );
-      w_input = frame;
-    }
-    break;
-    case Parameters::OpenFileNameList:
-    {
-      QFrame* frame = new QFrame( this );
-      QHBoxLayout* layout = new QHBoxLayout( frame );
-      QLineEdit* v_string = new QLineEdit( frame );
-      v_string->setObjectName( pIt->first.c_str( ) );
-      v_string->setMaxLength( std::numeric_limits< int >::max( ) );
-      v_string->setText( pIt->second.second.c_str( ) );
-      QPushButton* v_button = new QPushButton( frame );
-      v_button->setObjectName( ( pIt->first + "_=?btn" ).c_str( ) );
-      v_button->setText( "..." );
-      v_button->connect(
-        v_button, SIGNAL( clicked( ) ),
-        this, SLOT( _dlg_OpenMultipleFiles( ) )
-        );
-      layout->addWidget( v_string );
-      layout->addWidget( v_button );
-      w_input = frame;
-    }
-    break;
-    case Parameters::SaveFileNameList:
-      break;
-    case Parameters::PathNameList:
-      break;
-    case Parameters::Choices:
-    {
-      QComboBox* v_choices = new QComboBox( this );
-      v_choices->setObjectName( pIt->first.c_str( ) );
-
-      std::istringstream str0( pIt->second.second );
-      std::string choices;
-      std::getline( str0, choices, '@' );
-      std::istringstream str1( choices );
-      std::string token;
-      int id = 0;
-      while( std::getline( str1, token, '#' ) )
-        v_choices->insertItem( id++, token.c_str( ) );
-      w_input = v_choices;
-    }
-    break;
-    default:
-      w_input = NULL;
-      break;
-    } // hctiws
-
-    // Ok, a representation was created
-    if( w_input != NULL )
-    {
-      QHBoxLayout* new_layout = new QHBoxLayout( );
-      QLabel* label = new QLabel( this );
-      label->setText( QString( pIt->first.c_str( ) ) );
-      new_layout->addWidget( label );
-      new_layout->addWidget( w_input );
-      this->m_ToolsLayout->addLayout( new_layout );
-
-    } // fi
-
-  } // rof
-
-  // Update values
-  this->_addButtons( );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ParametersQtDialog::
-_dlg_OpenSingleFile( )
-{
-  auto parameters = this->m_ProcessObject->GetParameters( );
-  QPushButton* btn = dynamic_cast< QPushButton* >( this->sender( ) );
-  if( btn != NULL )
-  {
-    std::string bName = btn->objectName( ).toStdString( );
-    std::string line_name = bName.substr( 0, bName.find( "_=?btn" ) );
-    QLineEdit* line = this->findChild< QLineEdit* >( line_name.c_str( ) );
-    if( line != NULL )
-    {
-      std::string param_name = line->objectName( ).toStdString( );
-      if( param_name != "" )
-      {
-        std::string param_value = parameters->GetOpenFileName( param_name );
-        if( param_value == "" )
-          param_value = ".";
-        QStringList dialog_filters;
-        std::string extensions = parameters->GetAcceptedFileExtensions( param_name );
-        if( extensions != "" )
-          dialog_filters << extensions.c_str( );
-        dialog_filters << "Any file (*)";
-
-        // Show dialog and check if it was accepted
-        QFileDialog dialog( this );
-        dialog.setFileMode( QFileDialog::ExistingFile );
-        dialog.setDirectory( QFileDialog::tr( param_value.c_str( ) ) );
-        dialog.setNameFilters( dialog_filters );
-        dialog.setAcceptMode( QFileDialog::AcceptOpen );
-        if( dialog.exec( ) )
-          line->setText( *( dialog.selectedFiles( ).begin( ) ) );
-
-      } // fi
-
-    } // fi
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ParametersQtDialog::
-_dlg_SaveSingleFile( )
-{
-  auto parameters = this->m_ProcessObject->GetParameters( );
-  QPushButton* btn = dynamic_cast< QPushButton* >( this->sender( ) );
-  if( btn != NULL )
-  {
-    std::string bName = btn->objectName( ).toStdString( );
-    std::string line_name = bName.substr( 0, bName.find( "_=?btn" ) );
-    QLineEdit* line = this->findChild< QLineEdit* >( line_name.c_str( ) );
-    if( line != NULL )
-    {
-      std::string param_name = line->objectName( ).toStdString( );
-      if( param_name != "" )
-      {
-        std::string param_value = parameters->GetSaveFileName( param_name );
-        if( param_value == "" )
-          param_value = ".";
-        QStringList dialog_filters;
-        std::string extensions = parameters->GetAcceptedFileExtensions( param_name );
-        if( extensions != "" )
-          dialog_filters << extensions.c_str( );
-        dialog_filters << "Any file (*)";
-
-        // Show dialog and check if it was accepted
-        QFileDialog dialog( this );
-        dialog.setFileMode( QFileDialog::AnyFile );
-        dialog.setDirectory( QFileDialog::tr( param_value.c_str( ) ) );
-        dialog.setNameFilters( dialog_filters );
-        dialog.setAcceptMode( QFileDialog::AcceptSave );
-        if( dialog.exec( ) )
-          line->setText( *( dialog.selectedFiles( ).begin( ) ) );
-
-      } // fi
-
-    } // fi
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ParametersQtDialog::
-_dlg_OpenSinglePath( )
-{
-  auto parameters = this->m_ProcessObject->GetParameters( );
-  QPushButton* btn = dynamic_cast< QPushButton* >( this->sender( ) );
-  if( btn != NULL )
-  {
-    std::string bName = btn->objectName( ).toStdString( );
-    std::string line_name = bName.substr( 0, bName.find( "_=?btn" ) );
-    QLineEdit* line = this->findChild< QLineEdit* >( line_name.c_str( ) );
-    if( line != NULL )
-    {
-      std::string param_name = line->objectName( ).toStdString( );
-      if( param_name != "" )
-      {
-        std::string param_value = parameters->GetPathName( param_name );
-        if( param_value == "" )
-          param_value = ".";
-
-        // Show dialog and check if it was accepted
-        QFileDialog dialog( this );
-        dialog.setFileMode( QFileDialog::Directory );
-        dialog.setDirectory( QFileDialog::tr( param_value.c_str( ) ) );
-        dialog.setAcceptMode( QFileDialog::AcceptOpen );
-        if( dialog.exec( ) )
-          line->setText( *( dialog.selectedFiles( ).begin( ) ) );
-
-      } // fi
-
-    } // fi
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ParametersQtDialog::
-_dlg_OpenMultipleFiles( )
-{
-  auto parameters = this->m_ProcessObject->GetParameters( );
-  QPushButton* btn = dynamic_cast< QPushButton* >( this->sender( ) );
-  if( btn != NULL )
-  {
-    std::string bName = btn->objectName( ).toStdString( );
-    std::string line_name = bName.substr( 0, bName.find( "_=?btn" ) );
-
-    QLineEdit* line = this->findChild< QLineEdit* >( line_name.c_str( ) );
-    if( line != NULL )
-    {
-      std::string param_name = line->objectName( ).toStdString( );
-      if( param_name != "" )
-      {
-        QStringList dialog_filters;
-        std::string extensions = parameters->GetAcceptedFileExtensions( param_name );
-        if( extensions != "" )
-          dialog_filters << extensions.c_str( );
-        dialog_filters << "Any file (*)";
-
-        // Show dialog and check if it was accepted
-        QFileDialog dialog( this );
-        dialog.setFileMode( QFileDialog::ExistingFiles );
-        dialog.setNameFilters( dialog_filters );
-        dialog.setAcceptMode( QFileDialog::AcceptOpen );
-        if( dialog.exec( ) )
-        {
-          if( dialog.selectedFiles( ).size( ) > 0 )
-          {
-            std::stringstream str;
-            auto files = dialog.selectedFiles( );
-            auto fIt = files.begin( );
-            str << fIt->toStdString( );
-            ++fIt;
-            for( ; fIt != files.end( ); ++fIt )
-              str << "#" << fIt->toStdString( );
-            line->setText( str.str( ).c_str( ) );
-
-          } // fi
-
-        } // fi
-
-      } // fi
-
-    } // fi
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ParametersQtDialog::
-_dlg_AddInt( )
-{
-  QPushButton* btn = dynamic_cast< QPushButton* >( this->sender( ) );
-  if( btn != NULL )
-  {
-    std::string bName = btn->objectName( ).toStdString( );
-    std::string line_name = bName.substr( 0, bName.find( "_=?btn" ) );
-    QLineEdit* line = this->findChild< QLineEdit* >( line_name.c_str( ) );
-    if( line != NULL )
-    {
-      std::string param_name = line->objectName( ).toStdString( );
-      if( param_name != "" )
-      {
-        bool ok;
-        int value =
-          QInputDialog::getInt(
-            this,
-            (
-              std::string( "Add new value to \"" ) +
-              param_name +
-              std::string( "\"" )
-              ).c_str( ),
-            "Value:",
-            0,
-            -std::numeric_limits< int >::max( ),
-            std::numeric_limits< int >::max( ),
-            1, &ok
-            );
-        if( ok )
-        {
-          std::string values = line->text( ).toStdString( );
-          if( values != "" )
-            values += "#";
-          std::stringstream str;
-          str << values << value;
-          line->setText( str.str( ).c_str( ) );
-
-        } // fi
-
-      } // fi
-
-    } // fi
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ParametersQtDialog::
-_dlg_AddUint( )
-{
-  QPushButton* btn = dynamic_cast< QPushButton* >( this->sender( ) );
-  if( btn != NULL )
-  {
-    std::string bName = btn->objectName( ).toStdString( );
-    std::string line_name = bName.substr( 0, bName.find( "_=?btn" ) );
-    QLineEdit* line = this->findChild< QLineEdit* >( line_name.c_str( ) );
-    if( line != NULL )
-    {
-      std::string param_name = line->objectName( ).toStdString( );
-      if( param_name != "" )
-      {
-        bool ok;
-        int value =
-          QInputDialog::getInt(
-            this,
-            (
-              std::string( "Add new value to \"" ) +
-              param_name +
-              std::string( "\"" )
-              ).c_str( ),
-            "Value:",
-            0, 0, std::numeric_limits< int >::max( ), 1,
-            &ok
-            );
-        if( ok )
-        {
-          std::string values = line->text( ).toStdString( );
-          if( values != "" )
-            values += "#";
-          std::stringstream str;
-          str << values << value;
-          line->setText( str.str( ).c_str( ) );
-
-        } // fi
-
-      } // fi
-
-    } // fi
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ParametersQtDialog::
-_dlg_AddReal( )
-{
-  QPushButton* btn = dynamic_cast< QPushButton* >( this->sender( ) );
-  if( btn != NULL )
-  {
-    std::string bName = btn->objectName( ).toStdString( );
-    std::string line_name = bName.substr( 0, bName.find( "_=?btn" ) );
-    QLineEdit* line = this->findChild< QLineEdit* >( line_name.c_str( ) );
-    if( line != NULL )
-    {
-      std::string param_name = line->objectName( ).toStdString( );
-      if( param_name != "" )
-      {
-        bool ok;
-        double value =
-          QInputDialog::getDouble(
-            this,
-            (
-              std::string( "Add new value to \"" ) +
-              param_name +
-              std::string( "\"" )
-              ).c_str( ),
-            "Value:",
-            0,
-            -std::numeric_limits< double >::max( ),
-            std::numeric_limits< double >::max( ),
-            1, &ok
-            );
-        if( ok )
-        {
-          std::string values = line->text( ).toStdString( );
-          if( values != "" )
-            values += "#";
-          std::stringstream str;
-          str << values << value;
-          line->setText( str.str( ).c_str( ) );
-
-        } // fi
-
-      } // fi
-
-    } // fi
-
-  } // fi
-}
-
-#endif // cpPlugins_QT4
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/ParametersQtDialog.h b/lib/cpPlugins/ParametersQtDialog.h
deleted file mode 100644 (file)
index 0d732d7..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-#ifndef __CPPLUGINS__PARAMETERSQTDIALOG__H__
-#define __CPPLUGINS__PARAMETERSQTDIALOG__H__
-
-#include <cpPlugins/Config.h>
-
-#ifdef cpPlugins_QT4
-
-#include <cpPlugins/ProcessObject.h>
-
-#include <set>
-
-#include <QApplication>
-#include <QDialog>
-#include <QDialogButtonBox>
-#include <QGridLayout>
-#include <QLabel>
-#include <QVBoxLayout>
-
-namespace cpPlugins
-{
-  /**
-   */
-  class cpPlugins_EXPORT ParametersQtDialog
-    : public QDialog
-  {
-    Q_OBJECT;
-
-  public:
-    ParametersQtDialog(
-      QWidget* parent = 0, Qt::WindowFlags f = 0, bool manual = false
-      );
-    virtual ~ParametersQtDialog( );
-
-    ProcessObject* getProcessObject( ) const;
-    virtual bool setProcessObject( ProcessObject* obj );
-
-    virtual int exec( );
-
-    virtual void updateParameters( );
-    virtual void updateView( );
-
-  protected:
-    virtual void _addButtons( );
-    virtual void _updateWidgets( );
-
-  protected slots:
-    virtual void _dlg_OpenSingleFile( );
-    virtual void _dlg_SaveSingleFile( );
-    virtual void _dlg_OpenSinglePath( );
-    virtual void _dlg_OpenMultipleFiles( );
-    virtual void _dlg_AddInt( );
-    virtual void _dlg_AddUint( );
-    virtual void _dlg_AddReal( );
-
-  protected:
-    ProcessObject* m_ProcessObject;
-    bool m_WidgetsUpdated;
-    bool m_Manual;
-    QLabel* m_Title;
-    QGridLayout* m_MainLayout;
-    QVBoxLayout* m_ToolsLayout;
-    QDialogButtonBox* m_Buttons;
-  };
-
-} // ecapseman
-
-#endif // cpPlugins_QT4
-
-#endif // __CPPLUGINS__PARAMETERSQTDIALOG__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/Path.cxx b/lib/cpPlugins/Path.cxx
deleted file mode 100644 (file)
index 5f58269..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-#include <cpPlugins/Path.h>
-
-// -------------------------------------------------------------------------
-void cpPlugins::Path::
-SetITK( itk::LightObject* o )
-{
-  this->Superclass::SetITK( o );
-  bool     s = this->_ITK_2_VTK< 2 >( o );
-  if( !s ) s = this->_ITK_2_VTK< 3 >( o );
-  if( !s )
-  {
-    this->m_VTKObject = NULL;
-    this->m_ITKvVTK = NULL;
-
-  } // fi
-  this->Modified( );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Path::
-SetVTK( vtkObjectBase* o )
-{
-  // Do nothing
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::Path::
-Path( )
-  : Superclass( )
-{
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::Path::
-~Path( )
-{
-}
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/Path.h b/lib/cpPlugins/Path.h
deleted file mode 100644 (file)
index d7aa111..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-#ifndef __CPPLUGINS__PATH__H__
-#define __CPPLUGINS__PATH__H__
-
-#include <cpPlugins/DataObject.h>
-
-#include <vtkPolyDataAlgorithm.h>
-#include <vtkSmartPointer.h>
-
-namespace cpPlugins
-{
-  /**
-   */
-  class cpPlugins_EXPORT Path
-    : public DataObject
-  {
-  public:
-    typedef Path                           Self;
-    typedef DataObject                      Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-  public:
-    itkNewMacro( Self );
-    itkTypeMacro( Path, DataObject );
-    cpPlugins_Id_Macro( Path, Object );
-
-  public:
-    virtual void SetITK( itk::LightObject* o ) ITK_OVERRIDE;
-    virtual void SetVTK( vtkObjectBase* o ) ITK_OVERRIDE;
-
-  protected:
-    Path( );
-    virtual ~Path( );
-
-    template< unsigned int _NDim >
-      inline bool _ITK_2_VTK( itk::LightObject* o );
-
-  private:
-    // Purposely not implemented
-    Path( const Self& );
-    Self& operator=( const Self& );
-
-  protected:
-    vtkSmartPointer< vtkPolyDataAlgorithm > m_ITKvVTK;
-  };
-
-} // ecapseman
-
-#include <cpPlugins/Path.hxx>
-
-#endif // __CPPLUGINS__PATH__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/Path.hxx b/lib/cpPlugins/Path.hxx
deleted file mode 100644 (file)
index b6fb093..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef __CPPLUGINS__PATH__HXX__
-#define __CPPLUGINS__PATH__HXX__
-
-#include <cpPlugins_Instances/Paths.h>
-
-// -------------------------------------------------------------------------
-template< unsigned int _NDim >
-bool cpPlugins::Path::
-_ITK_2_VTK( itk::LightObject* o )
-{
-  typedef
-    cpExtensions::DataStructures::PolyLineParametricPath< _NDim >
-    _TPath;
-  typedef
-    cpExtensions::Visualization::PolyLineParametricPathToPolyData< _TPath >
-    _TFilter;
-
-  auto path = dynamic_cast< _TPath* >( o );
-  if( path != NULL )
-  {
-    _TFilter* f = dynamic_cast< _TFilter* >( this->m_ITKvVTK.GetPointer( ) );
-    if( f == NULL )
-    {
-      vtkSmartPointer< _TFilter > nf = _TFilter::New( );
-      this->m_ITKvVTK = nf.GetPointer( );
-      f = nf.GetPointer( );
-
-    } // fi
-    f->SetInput( path );
-    f->SetReferenceImage( path->GetReferenceImage( ) );
-    f->Update( );
-
-    // Keep object track
-    this->m_ITKObject = o;
-    this->m_VTKObject = f->GetOutput( );
-    return( true );
-  }
-  else
-    return( false );
-}
-
-#endif // __CPPLUGINS__PATH__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/Port.cxx b/lib/cpPlugins/Port.cxx
deleted file mode 100644 (file)
index 316cbc8..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-#include <cpPlugins/Port.h>
-
-// -------------------------------------------------------------------------
-cpPlugins::Port::
-Port( )
-{
-  this->m_Data = NULL;
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::Port::
-~Port( )
-{
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::Port::
-Self& cpPlugins::Port::
-operator=( DataObject* obj )
-{
-  this->m_Data = obj;
-  return( *this );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::Port::
-Self& cpPlugins::Port::
-operator=( const Self& other )
-{
-  this->m_Data = other.m_Data;
-  return( *this );
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::Port::
-IsValid( ) const
-{
-  return( this->m_Data.IsNotNull( ) );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::InputPort::
-InputPort( bool required )
-  : Superclass( ),
-    m_Required( required )
-{
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::InputPort::
-~InputPort( )
-{
-}
-      
-// -------------------------------------------------------------------------
-cpPlugins::InputPort::
-Self& cpPlugins::InputPort::
-operator=( DataObject* obj )
-{
-  this->Superclass::operator=( obj );
-  return( *this );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::InputPort::
-Self& cpPlugins::InputPort::
-operator=( const Superclass& other )
-{
-  this->Superclass::operator=( other );
-  auto i = dynamic_cast< const InputPort* >( &other );
-  if( i != NULL )
-    this->m_Required = i->m_Required;
-  return( *this );
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::InputPort::
-IsRequired( ) const
-{
-  return( this->m_Required );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::InputPort::
-RequiredOn( )
-{
-  this->SetRequired( true );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::InputPort::
-RequiredOff( )
-{
-  this->SetRequired( false );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::InputPort::
-SetRequired( bool required )
-{
-  this->m_Required = required;
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::OutputPort::
-OutputPort( )
-  : Superclass( )
-{
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::OutputPort::
-~OutputPort( )
-{
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::OutputPort::
-Self& cpPlugins::OutputPort::
-operator=( DataObject* obj )
-{
-  this->Superclass::operator=( obj );
-  return( *this );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::OutputPort::
-Self& cpPlugins::OutputPort::
-operator=( const Superclass& other )
-{
-  this->Superclass::operator=( other );
-  return( *this );
-}
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/Port.h b/lib/cpPlugins/Port.h
deleted file mode 100644 (file)
index c7f8170..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-#ifndef __CPPLUGINS__PORT__H__
-#define __CPPLUGINS__PORT__H__
-
-#include <cpPlugins/DataObject.h>
-
-namespace cpPlugins
-{
-  /**
-   */
-  class cpPlugins_EXPORT Port
-  {
-  public:
-    typedef Port Self;
-
-  public:
-    Port( );
-    virtual ~Port( );
-    Self& operator=( DataObject* obj );
-    Self& operator=( const Self& other );
-
-    bool IsValid( ) const;
-
-    // This could be seen as a pointer to DataObject's
-    inline DataObject* GetPointer( )
-      { return( this->m_Data.GetPointer( ) ); }
-    inline const DataObject* GetPointer( ) const
-      { return( this->m_Data.GetPointer( ) ); }
-    inline DataObject* operator->( ) const
-      { return( this->m_Data.GetPointer( ) ); }
-
-    inline void SetPointer( DataObject* ptr )
-      { this->m_Data = ptr; }
-
-  protected:
-    cpPlugins::DataObject::Pointer m_Data;
-  };
-
-  /**
-   */
-  class cpPlugins_EXPORT InputPort
-    : public Port
-  {
-  public:
-    typedef InputPort Self;
-    typedef Port      Superclass;
-
-  public:
-    InputPort( bool required = false );
-    virtual ~InputPort( );
-    Self& operator=( DataObject* obj );
-    Self& operator=( const Superclass& other );
-
-    bool IsRequired( ) const;
-    void RequiredOn( );
-    void RequiredOff( );
-    void SetRequired( bool required );
-
-  protected:
-    bool m_Required;
-  };
-
-  /**
-   */
-  class cpPlugins_EXPORT OutputPort
-    : public Port
-  {
-  public:
-    typedef OutputPort Self;
-    typedef Port       Superclass;
-
-  public:
-    OutputPort( );
-    virtual ~OutputPort( );
-    Self& operator=( DataObject* obj );
-    Self& operator=( const Superclass& other );
-  };
-
-} // ecapseman
-
-#endif // __CPPLUGINS__PORT__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/ProcessObject.cxx b/lib/cpPlugins/ProcessObject.cxx
deleted file mode 100644 (file)
index a30ef52..0000000
+++ /dev/null
@@ -1,302 +0,0 @@
-#include <cpPlugins/ProcessObject.h>
-#include <cpPlugins/ParametersQtDialog.h>
-#include <itkProcessObject.h>
-#include <itkExceptionObject.h>
-
-// -------------------------------------------------------------------------
-cpPlugins::Parameters* cpPlugins::ProcessObject::
-GetParameters( )
-{
-  return( &( this->m_Parameters ) );
-}
-
-// -------------------------------------------------------------------------
-const cpPlugins::Parameters* cpPlugins::ProcessObject::
-GetParameters( ) const
-{
-  return( &( this->m_Parameters ) );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ProcessObject::
-SetITK( itk::LightObject* o )
-{
-  // Polymorphism: do nothing -> this is a filter!!!
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ProcessObject::
-SetVTK( vtkObjectBase* o )
-{
-  // Polymorphism: do nothing -> this is a filter!!!
-}
-
-// -------------------------------------------------------------------------
-std::set< std::string > cpPlugins::ProcessObject::
-GetInputsNames( ) const
-{
-  std::set< std::string > names;
-  for( auto i = this->m_Inputs.begin( ); i != this->m_Inputs.end( ); ++i )
-    names.insert( i->first );
-  return( names );
-}
-
-// -------------------------------------------------------------------------
-std::set< std::string > cpPlugins::ProcessObject::
-GetOutputsNames( ) const
-{
-  std::set< std::string > names;
-  for( auto i = this->m_Outputs.begin( ); i != this->m_Outputs.end( ); ++i )
-    names.insert( i->first );
-  return( names );
-}
-
-// -------------------------------------------------------------------------
-unsigned int cpPlugins::ProcessObject::
-GetNumberOfInputs( ) const
-{
-  return( this->m_Inputs.size( ) );
-}
-
-// -------------------------------------------------------------------------
-unsigned int cpPlugins::ProcessObject::
-GetNumberOfOutputs( ) const
-{
-  return( this->m_Outputs.size( ) );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::
-OutputPort& cpPlugins::ProcessObject::
-GetOutputPort( const std::string& id )
-{
-  static OutputPort null_port;
-  auto i = this->m_Outputs.find( id );
-  if( i == this->m_Outputs.end( ) )
-  {
-    null_port = NULL;
-    return( null_port );
-  }
-  else
-    return( i->second );
-}
-
-// -------------------------------------------------------------------------
-const cpPlugins::
-OutputPort& cpPlugins::ProcessObject::
-GetOutputPort( const std::string& id ) const
-{
-  static const OutputPort null_port;
-  auto i = this->m_Outputs.find( id );
-  if( i == this->m_Outputs.end( ) )
-    return( null_port );
-  else
-    return( i->second );
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::ProcessObject::
-SetInputPort( const std::string& id, const OutputPort& port )
-{
-  auto i = this->m_Inputs.find( id );
-  if( i != this->m_Inputs.end( ) )
-  {
-    if( i->second.GetPointer( ) != port.GetPointer( ) )
-    {
-      i->second = port;
-      this->Modified( );
-
-    } // fi
-    return( true );
-  }
-  else
-    return( false );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ProcessObject::
-DisconnectInputs( )
-{
-  auto i = this->m_Inputs.begin( );
-  for( ; i != this->m_Inputs.end( ); ++i )
-    i->second = NULL;
-  this->Modified( );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ProcessObject::
-DisconnectOutputs( )
-{
-  auto i = this->m_Outputs.begin( );
-  for( ; i != this->m_Outputs.end( ); ++i )
-    if( i->second.IsValid( ) )
-      i->second->DisconnectFromPipeline( );
-  this->Modified( );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ProcessObject::
-Disconnect( )
-{
-  this->DisconnectInputs( );
-  this->DisconnectOutputs( );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ProcessObject::
-Modified( ) const
-{
-  this->Superclass::Modified( );
-  this->m_LastExecutionSpan = -1;
-}
-
-// -------------------------------------------------------------------------
-itk::ModifiedTimeType cpPlugins::ProcessObject::
-GetMTime( ) const
-{
-  auto params_time = this->m_Parameters.GetMTime( );
-  auto filter_time = this->Superclass::GetMTime( );
-  return( ( params_time > filter_time )? params_time: filter_time );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ProcessObject::
-Update( )
-{
-  // Force upstream updates
-  auto i = this->m_Inputs.begin( );
-  bool need_to_update = this->m_CouldHaveExplicitReExecution;
-  need_to_update     &= this->m_ExplicitReExecution;
-  for( ; i != this->m_Inputs.end( ); ++i )
-  {
-    bool iv = i->second.IsValid( );
-    bool ir = i->second.IsRequired( );
-    if( !iv && ir )
-      this->_Error(
-        std::string( "Required input \"" ) + i->first +
-        std::string( "\" is not valid." )
-        );
-    if( iv )
-    {
-      Self* src = dynamic_cast< Self* >( i->second->GetSource( ) );
-      if( src != NULL )
-      {
-        need_to_update |= ( this->m_LastExecutionTime < src->GetMTime( ) );
-        src->Update( );
-
-      } // fi
-
-    } // fi
-
-  } // rof
-
-  // Current update
-  if( this->m_LastExecutionTime < this->GetMTime( ) || need_to_update )
-  {
-    if( this->m_PrintExecution && this->m_PrintExecutionStream != NULL )
-    {
-      *( this->m_PrintExecutionStream )
-        << "cpPlugins: Updating \""
-        << this->GetClassCategory( ) << ":" << this->GetClassName( )
-        << "\"... ";
-      this->m_PrintExecutionStream->flush( );
-
-    } // fi
-
-    auto t_start = cpPlugins_CHRONO;
-    this->_GenerateData( );
-    auto t_end = cpPlugins_CHRONO;
-    this->m_LastExecutionSpan = long( t_end - t_start );
-    this->m_LastExecutionTime = this->GetMTime( );
-
-    if( this->m_PrintExecution && this->m_PrintExecutionStream != NULL )
-    {
-      *( this->m_PrintExecutionStream )
-        << "done in "
-        << double( this->m_LastExecutionSpan ) / double( 1000 )
-        << " s." << std::endl;
-
-    } // fi
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::ParametersQtDialog* cpPlugins::ProcessObject::
-CreateQtDialog( )
-{
-#ifdef cpPlugins_QT4
-  ParametersQtDialog* dlg = NULL;
-  if( QApplication::instance( ) != NULL )
-  {
-    dlg = new ParametersQtDialog( );
-    dlg->setProcessObject( this );
-
-  } // fi
-  return( dlg );
-#else // cpPlugins_QT4  
-  return( NULL );
-#endif // cpPlugins_QT4
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::ProcessObject::
-IsInteractive( )
-{
-  return( false );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ProcessObject::
-SetInteractionObjects( const std::vector< void* >& objs )
-{
-  // Do nothing
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::ProcessObject::
-ProcessObject( )
-  : Superclass( ),
-    m_CouldHaveExplicitReExecution( false ),
-    m_ExplicitReExecution( false ),
-    m_LastExecutionTime( 0 ),
-    m_LastExecutionSpan( -1 ),
-    m_PrintExecution( false ),
-    m_PrintExecutionStream( &( std::cout ) )
-{
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::ProcessObject::
-~ProcessObject( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ProcessObject::
-_AddInput( const std::string& name, bool required )
-{
-  auto i = this->m_Inputs.find( name );
-  if( i == this->m_Inputs.end( ) )
-  {
-    this->m_Inputs[ name ] = InputPort( required );
-    this->Modified( );
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::ProcessObject::
-_Error( const std::string& error )
-{
-  if( error != "" )
-  {
-    itkExceptionMacro(
-      "Error: \"" << this->GetClassCategory( ) << "::" <<
-      this->GetClassName( ) << "\": " << error
-      );
-
-  } // fi
-}
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/ProcessObject.h b/lib/cpPlugins/ProcessObject.h
deleted file mode 100644 (file)
index 2dbd6e4..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-#ifndef __CPPLUGINS__PROCESSOBJECT__H__
-#define __CPPLUGINS__PROCESSOBJECT__H__
-
-#include <map>
-#include <set>
-#include <cpPlugins/Object.h>
-#include <cpPlugins/Parameters.h>
-#include <cpPlugins/Port.h>
-
-namespace cpPlugins
-{
-  /**
-   */
-  class cpPlugins_EXPORT ProcessObject
-    : public Object
-  {
-  public:
-    typedef ProcessObject                   Self;
-    typedef Object                          Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-  public:
-    itkTypeMacro( ProcessObject, Object );
-    cpPlugins_Id_Macro( ProcessObject, Object );
-
-    itkBooleanMacro( ExplicitReExecution );
-    itkBooleanMacro( PrintExecution );
-
-    itkGetConstMacro( ExplicitReExecution, bool );
-    itkGetConstMacro( CouldHaveExplicitReExecution, bool );
-    itkGetConstMacro( LastExecutionSpan, long );
-    itkGetConstMacro( PrintExecution, bool );
-
-    itkSetMacro( ExplicitReExecution, bool );
-    itkSetMacro( PrintExecution, bool );
-    itkSetObjectMacro( PrintExecutionStream, std::ofstream );
-
-  public:
-    Parameters* GetParameters( );
-    const Parameters* GetParameters( ) const;
-
-    virtual void SetITK( itk::LightObject* o ) final;
-    virtual void SetVTK( vtkObjectBase* o ) final;
-
-    // IO management
-    std::set< std::string > GetInputsNames( ) const;
-    std::set< std::string > GetOutputsNames( ) const;
-    unsigned int GetNumberOfInputs( ) const;
-    unsigned int GetNumberOfOutputs( ) const;
-
-    OutputPort& GetOutputPort( const std::string& id );
-    const OutputPort& GetOutputPort( const std::string& id ) const;
-
-    template< class _TType = DataObject >
-      inline _TType* GetInput( const std::string& id );
-
-    template< class _TType = DataObject >
-      inline const _TType* GetInput( const std::string& id ) const;
-
-    template< class _TType = DataObject >
-      inline _TType* GetOutput( const std::string& id );
-
-    template< class _TType = DataObject >
-      inline const _TType* GetOutput( const std::string& id ) const;
-
-    template< class _TType >
-      inline _TType* GetInputData( const std::string& name );
-
-    template< class _TType >
-      inline _TType* GetOutputData( const std::string& name );
-
-    bool SetInputPort( const std::string& id, const OutputPort& port );
-
-    void DisconnectInputs( );
-    void DisconnectOutputs( );
-    void Disconnect( );
-
-    // Pipeline execution
-    virtual void Modified( ) const ITK_OVERRIDE;
-    virtual itk::ModifiedTimeType GetMTime( ) const ITK_OVERRIDE;
-    virtual void Update( );
-
-    // Qt dialog creation
-    virtual ParametersQtDialog* CreateQtDialog( );
-    virtual bool IsInteractive( );
-    virtual void SetInteractionObjects( const std::vector< void* >& objs );
-
-  protected:
-    ProcessObject( );
-    virtual ~ProcessObject( );
-
-    void _AddInput( const std::string& name, bool required = true );
-    void _Error( const std::string& error );
-
-    template< class O >
-      inline void _AddOutput( const std::string& name );
-
-    template< class F >
-      inline F* _CreateITK( );
-    template< class F >
-      inline F* _CreateVTK( );
-
-    virtual void _GenerateData( ) = 0;
-
-  private:
-    // Purposely not implemented
-    ProcessObject( const Self& );
-    Self& operator=( const Self& );
-
-  protected:
-    Parameters m_Parameters;
-    bool m_CouldHaveExplicitReExecution;
-    bool m_ExplicitReExecution;
-
-    typedef std::map< std::string, InputPort >  _TInputs;
-    typedef std::map< std::string, OutputPort > _TOutputs;
-    _TInputs  m_Inputs;
-    _TOutputs m_Outputs;
-
-    itk::ModifiedTimeType m_LastExecutionTime;
-    mutable long m_LastExecutionSpan;
-
-    bool m_PrintExecution;
-    std::ostream* m_PrintExecutionStream;
-  };
-
-} // ecapseman
-
-#include <cpPlugins/ProcessObject.hxx>
-
-#endif // __CPPLUGINS__PROCESSOBJECT__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/ProcessObject.hxx b/lib/cpPlugins/ProcessObject.hxx
deleted file mode 100644 (file)
index 9be2675..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-#ifndef __CPPLUGINS__PROCESSOBJECT__HXX__
-#define __CPPLUGINS__PROCESSOBJECT__HXX__
-
-// -------------------------------------------------------------------------
-template< class _TType >
-_TType* cpPlugins::ProcessObject::
-GetInput( const std::string& id )
-{
-  auto i = this->m_Inputs.find( id );
-  if( i != this->m_Inputs.end( ) )
-    return( dynamic_cast< _TType* >( i->second.GetPointer( ) ) );
-  else
-    return( NULL );
-}
-
-// -------------------------------------------------------------------------
-template< class _TType >
-const _TType* cpPlugins::ProcessObject::
-GetInput( const std::string& id ) const
-{
-  auto i = this->m_Inputs.find( id );
-  if( i != this->m_Inputs.end( ) )
-    return( dynamic_cast< const _TType* >( i->second.GetPointer( ) ) );
-  else
-    return( NULL );
-}
-
-// -------------------------------------------------------------------------
-template< class _TType >
-_TType* cpPlugins::ProcessObject::
-GetOutput( const std::string& id )
-{
-  auto i = this->m_Outputs.find( id );
-  if( i != this->m_Outputs.end( ) )
-    return( dynamic_cast< _TType* >( i->second.GetPointer( ) ) );
-  else
-    return( NULL );
-}
-
-// -------------------------------------------------------------------------
-template< class _TType >
-const _TType* cpPlugins::ProcessObject::
-GetOutput( const std::string& id ) const
-{
-  auto i = this->m_Outputs.find( id );
-  if( i != this->m_Outputs.end( ) )
-    return( dynamic_cast< const _TType* >( i->second.GetPointer( ) ) );
-  else
-    return( NULL );
-}
-
-// -------------------------------------------------------------------------
-template< class _TType >
-_TType* cpPlugins::ProcessObject::
-GetInputData( const std::string& name )
-{
-  auto in = this->GetInput( name );
-  if( in != NULL )
-  {
-    auto i = in->GetITK< _TType >( );
-    auto v = in->GetVTK< _TType >( );
-    if     ( i != NULL ) return( i );
-    else if( v != NULL ) return( v );
-    else                 return( NULL );
-  }
-  else
-    return( NULL );
-}
-
-// -------------------------------------------------------------------------
-template< class _TType >
-_TType* cpPlugins::ProcessObject::
-GetOutputData( const std::string& name )
-{
-  auto out = this->GetOutput( name );
-  if( out != NULL )
-  {
-    auto i = out->GetITK< _TType >( );
-    auto v = out->GetVTK< _TType >( );
-    if     ( i != NULL ) return( i );
-    else if( v != NULL ) return( v );
-    else                 return( NULL );
-  }
-  else
-    return( NULL );
-}
-
-// -------------------------------------------------------------------------
-template< class O >
-void cpPlugins::ProcessObject::
-_AddOutput( const std::string& name )
-{
-  auto i = this->m_Outputs.find( name );
-  if( i == this->m_Outputs.end( ) )
-  {
-    typename O::Pointer o = O::New( );
-    o->SetSource( this );
-    this->m_Outputs[ name ] = o;
-    this->Modified( );
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-template< class F >
-F* cpPlugins::ProcessObject::
-_CreateITK( )
-{
-  F* filter = this->GetITK< F >( );
-  if( filter == NULL )
-  {
-    typename F::Pointer filter_ptr = F::New( );
-    this->m_ITKObject = filter_ptr;
-    this->m_VTKObject = NULL;
-    filter = filter_ptr.GetPointer( );
-    this->Modified( );
-
-  } // fi
-  return( filter );
-}
-
-// -------------------------------------------------------------------------
-template< class F >
-F* cpPlugins::ProcessObject::
-_CreateVTK( )
-{
-  F* filter = this->GetVTK< F >( );
-  if( filter == NULL )
-  {
-    vtkSmartPointer< F > filter_ptr = vtkSmartPointer< F >::New( );
-    this->m_ITKObject = NULL;
-    this->m_VTKObject = filter_ptr;
-    filter = filter_ptr.GetPointer( );
-    this->Modified( );
-
-  } // fi
-  return( filter );
-}
-
-#endif // __CPPLUGINS__PROCESSOBJECT__HXX__
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/Workspace.cxx b/lib/cpPlugins/Workspace.cxx
deleted file mode 100644 (file)
index 4c1fe1d..0000000
+++ /dev/null
@@ -1,478 +0,0 @@
-#include <cpPlugins/Workspace.h>
-#include <cpPlugins/BaseWidget.h>
-#include <cpExtensions/QT/SimpleMPRWidget.h>
-#include <vtkRenderWindowInteractor.h>
-
-// -------------------------------------------------------------------------
-cpPlugins::Workspace::
-Workspace( )
-  : m_Interface( NULL ),
-    m_PrintExecution( false ),
-    m_MPRViewer( NULL )
-{
-  this->m_Graph = TGraph::New( );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::Workspace::
-~Workspace( )
-{
-  this->m_Graph->Clear( );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::Interface* cpPlugins::Workspace::
-GetInterface( )
-{
-  return( this->m_Interface );
-}
-
-// -------------------------------------------------------------------------
-const cpPlugins::Interface* cpPlugins::Workspace::
-GetInterface( ) const
-{
-  return( this->m_Interface );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Workspace::
-SetInterface( cpPlugins::Interface* i )
-{
-  if( this->m_Interface != i )
-    this->m_Interface = i;
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::Workspace::
-TGraph* cpPlugins::Workspace::
-GetGraph( )
-{
-  return( this->m_Graph );
-}
-
-// -------------------------------------------------------------------------
-const cpPlugins::Workspace::
-TGraph* cpPlugins::Workspace::
-GetGraph( ) const
-{
-  return( this->m_Graph );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Workspace::
-Clear( )
-{
-  if( this->m_Graph.IsNotNull( ) )
-    this->m_Graph->Clear( );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Workspace::
-ClearConnections( )
-{
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::ProcessObject* cpPlugins::Workspace::
-GetFilter( const std::string& name )
-{
-  ProcessObject* f =
-    dynamic_cast< ProcessObject* >(
-      this->m_Graph->GetVertex( name ).GetPointer( )
-      );
-  return( f );
-}
-
-// -------------------------------------------------------------------------
-const cpPlugins::ProcessObject* cpPlugins::Workspace::
-GetFilter( const std::string& name ) const
-{
-  const ProcessObject* f =
-    dynamic_cast< const ProcessObject* >(
-      this->m_Graph->GetVertex( name ).GetPointer( )
-      );
-  return( f );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::DataObject* cpPlugins::Workspace::
-GetOutput( const std::string& filter, const std::string& output )
-{
-  auto f = this->GetFilter( filter );
-  if( f != NULL )
-    return( f->GetOutput( output ) );
-  else
-    return( NULL );
-}
-
-// -------------------------------------------------------------------------
-const cpPlugins::DataObject* cpPlugins::Workspace::
-GetOutput( const std::string& filter, const std::string& output ) const
-{
-  auto f = this->GetFilter( filter );
-  if( f != NULL )
-    return( f->GetOutput( output ) );
-  else
-    return( NULL );
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::Workspace::
-HasFilter( const std::string& name ) const
-{
-  if( this->m_Graph->HasVertexIndex( name ) )
-    return( this->GetFilter( name ) != NULL );
-  else
-    return( false );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::ProcessObject* cpPlugins::Workspace::
-CreateFilter(
-  const std::string& category,
-  const std::string& filter,
-  const std::string& name
-  )
-{
-  if( this->m_Interface == NULL )
-    return( NULL );
-
-  // Get or create new filter from name
-  if( !( this->m_Graph->HasVertexIndex( name ) ) )
-  {
-    ProcessObject::Pointer f = this->m_Interface->Create( category, filter );
-    if( f.IsNotNull( ) )
-    {
-      if( f->IsInteractive( ) )
-      {
-        std::vector< void* > interactive_objects;
-        interactive_objects.push_back( this->m_SingleInteractor );
-        interactive_objects.push_back( this->m_MPRViewer );
-        f->SetInteractionObjects( interactive_objects );
-
-      } // fi
-      f->SetPrintExecution( this->m_PrintExecution );
-      Object::Pointer o = f.GetPointer( );
-      this->m_Graph->SetVertex( name, o );
-
-    } // fi
-    return( f.GetPointer( ) );
-  }
-  else
-    return( this->GetFilter( name ) );
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::Workspace::
-RenameFilter( const std::string& old_name, const std::string& new_name )
-{
-  return( this->m_Graph->RenameVertex( old_name, new_name ) );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Workspace::
-RemoveFilter( const std::string& name )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Workspace::
-SetParameter( const std::string& name, const std::string& value )
-{
-  std::vector< std::string > tokens;
-  cpPlugins::TokenizeString( tokens, name, "@" );
-
-  if( this->HasFilter( tokens[ 1 ] ) )
-  {
-    auto filter = this->GetFilter( tokens[ 1 ] );
-    filter->GetParameters( )->SetString( tokens[ 0 ], value );
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Workspace::
-SetPrintExecution( bool b )
-{
-  this->m_PrintExecution = b;
-  auto vIt = this->m_Graph->BeginVertices( );
-  for( ; vIt != this->m_Graph->EndVertices( ); ++vIt )
-  {
-    auto f = dynamic_cast< ProcessObject* >( vIt->second.GetPointer( ) );
-    if( f != NULL )
-      f->SetPrintExecution( b );
-
-  } // rof
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Workspace::
-PrintExecutionOn( )
-{
-  this->SetPrintExecution( true );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Workspace::
-PrintExecutionOff( )
-{
-  this->SetPrintExecution( false );
-}
-
-// -------------------------------------------------------------------------
-vtkRenderWindowInteractor* cpPlugins::Workspace::
-GetSingleInteractor( )
-{
-  return( this->m_SingleInteractor );
-}
-
-// -------------------------------------------------------------------------
-const vtkRenderWindowInteractor* cpPlugins::Workspace::
-GetSingleInteractor( ) const
-{
-  return( this->m_SingleInteractor );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Workspace::
-SetSingleInteractor( vtkRenderWindowInteractor* interactor )
-{
-  this->m_SingleInteractor = interactor;
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::Workspace::TMPRWidget* cpPlugins::Workspace::
-GetMPRViewer( )
-{
-  return( this->m_MPRViewer );
-}
-
-// -------------------------------------------------------------------------
-const cpPlugins::Workspace::TMPRWidget* cpPlugins::Workspace::
-GetMPRViewer( ) const
-{
-  return( this->m_MPRViewer );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Workspace::
-SetMPRViewer( cpPlugins::Workspace::TMPRWidget* wdg )
-{
-  this->m_MPRViewer = wdg;
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::Workspace::
-Connect(
-  const std::string& orig_filter, const std::string& dest_filter,
-  const std::string& output_name, const std::string& input_name
-  )
-{
-  // Get filters
-  ProcessObject* orig = this->GetFilter( orig_filter );
-  ProcessObject* dest = this->GetFilter( dest_filter );
-  if( orig == NULL || dest == NULL )
-    return( false );
-
-  // Real connection
-  if( dest->SetInputPort( input_name, orig->GetOutputPort( output_name ) ) )
-  {
-    this->m_Graph->AddEdge(
-      orig_filter, dest_filter,
-      TConnection( output_name, input_name )
-      );
-    return( true );
-  }
-  else
-    return( false );
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::Workspace::
-Connect( const OutputPort& port, const std::string& exposed_port )
-{
-  auto i = this->m_ExposedInputPorts.find( exposed_port );
-  if( i != this->m_ExposedInputPorts.end( ) )
-  {
-    ProcessObject* filter = this->GetFilter( i->second.first );
-    if( filter != NULL )
-      return( filter->SetInputPort( i->second.second, port ) );
-    else
-      return( false );
-  }
-  else
-    return( false );
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::Workspace::
-Reduce( const std::string& name )
-{
-  return( false );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Workspace::
-ExposeInputPort(
-  const std::string& name,
-  const std::string& filter, const std::string& filter_input
-  )
-{
-  this->m_ExposedInputPorts[ name ] = TExposedPort( filter, filter_input );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Workspace::
-ExposeOutputPort(
-  const std::string& name,
-  const std::string& filter, const std::string& filter_output
-  )
-{
-  this->m_ExposedOutputPorts[ name ] = TExposedPort( filter, filter_output );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Workspace::
-HideInputPort( const std::string& name )
-{
-  auto i = this->m_ExposedInputPorts.find( name );
-  if( i != this->m_ExposedInputPorts.end( ) )
-    this->m_ExposedInputPorts.erase( i );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Workspace::
-HideOutputPort( const std::string& name )
-{
-  auto i = this->m_ExposedOutputPorts.find( name );
-  if( i != this->m_ExposedOutputPorts.end( ) )
-    this->m_ExposedOutputPorts.erase( i );
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::Workspace::
-RenameExposedInputPort(
-  const std::string& old_name,
-  const std::string& new_name
-  )
-{
-  auto o = this->m_ExposedInputPorts.find( old_name );
-  auto n = this->m_ExposedInputPorts.find( new_name );
-  if(
-    o != this->m_ExposedInputPorts.end( ) &&
-    n == this->m_ExposedInputPorts.end( )
-    )
-  {
-    this->m_ExposedInputPorts[ new_name ] = o->second;
-    this->m_ExposedInputPorts.erase( o );
-    return( true );
-  }
-  else
-    return( false );
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::Workspace::
-RenameExposedOutputPort(
-  const std::string& old_name,
-  const std::string& new_name
-  )
-{
-  auto o = this->m_ExposedOutputPorts.find( old_name );
-  auto n = this->m_ExposedOutputPorts.find( new_name );
-  if(
-    o != this->m_ExposedOutputPorts.end( ) &&
-    n == this->m_ExposedOutputPorts.end( )
-    )
-  {
-    this->m_ExposedOutputPorts[ new_name ] = o->second;
-    this->m_ExposedOutputPorts.erase( o );
-    return( true );
-  }
-  else
-    return( false );
-}
-
-// -------------------------------------------------------------------------
-const cpPlugins::Workspace::
-TExposedPorts& cpPlugins::Workspace::
-GetExposedInputPorts( ) const
-{
-  return( this->m_ExposedInputPorts );
-}
-
-// -------------------------------------------------------------------------
-const cpPlugins::Workspace::
-TExposedPorts& cpPlugins::Workspace::
-GetExposedOutputPorts( ) const
-{
-  return( this->m_ExposedOutputPorts );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::
-OutputPort& cpPlugins::Workspace::
-GetExposedOutput( const std::string& name )
-{
-  static OutputPort null_port;
-
-  auto i = this->m_ExposedOutputPorts.find( name );
-  if( i != this->m_ExposedOutputPorts.end( ) )
-  {
-    ProcessObject* filter = this->GetFilter( i->second.first );
-    if( filter != NULL )
-      return( filter->GetOutputPort( i->second.second ) );
-
-  } // fi
-  return( null_port );
-}
-
-// -------------------------------------------------------------------------
-const cpPlugins::
-OutputPort& cpPlugins::Workspace::
-GetExposedOutput( const std::string& name ) const
-{
-  static const OutputPort null_port;
-
-  auto i = this->m_ExposedOutputPorts.find( name );
-  if( i != this->m_ExposedOutputPorts.end( ) )
-  {
-    const ProcessObject* filter = this->GetFilter( i->second.first );
-    if( filter != NULL )
-      return( filter->GetOutputPort( i->second.second ) );
-
-  } // fi
-  return( null_port );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Workspace::
-Execute( )
-{
-  // Find sinks
-  std::set< std::string > sinks = this->m_Graph->GetSinks( );
-
-  // Update sinks
-  for( auto sIt = sinks.begin( ); sIt != sinks.end( ); ++sIt )
-    this->Execute( *sIt );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Workspace::
-Execute( const std::string& name )
-{
-  // Get filter
-  ProcessObject* f = this->GetFilter( name );
-  if( f == NULL )
-  {
-    itkGenericExceptionMacro( 
-      "cpPlugins::Workspace: Vertex \"" << name << "\" is not a filter."
-      );
-
-  } // fi
-
-  // Execute
-  f->Update( );
-}
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/Workspace.h b/lib/cpPlugins/Workspace.h
deleted file mode 100644 (file)
index eaa5f11..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-#ifndef __CPPLUGINS__WORKSPACE__H__
-#define __CPPLUGINS__WORKSPACE__H__
-
-#include <cpExtensions/DataStructures/Graph.h>
-#include <cpPlugins/Interface.h>
-#include <cpPlugins/DataObject.h>
-#include <cpPlugins/ProcessObject.h>
-
-#include <set>
-#include <string>
-
-// Some forward declarations
-class QWidget;
-class vtkRenderWindowInteractor;
-namespace cpExtensions
-{
-  namespace QT
-  {
-#ifdef cpPlugins_QT4
-    class SimpleMPRWidget;
-#else // cpPlugins_QT4
-    typedef char SimpleMPRWidget;
-#endif // cpPlugins_QT4
-  }
-}
-
-namespace cpPlugins
-{
-  /** \brief A complex pipeline
-   */
-  class cpPlugins_EXPORT Workspace
-  {
-  public:
-    // Various types
-    typedef std::set< std::string >               TStringContainer;
-    typedef std::pair< std::string, std::string > TExposedPort;
-    typedef std::map< std::string, TExposedPort > TExposedPorts;
-
-    // Graph type
-    typedef std::pair< std::string, std::string > TConnection;
-    typedef
-      cpExtensions::DataStructures::
-      Graph< Object::Pointer, TConnection, std::string > TGraph;
-
-    // Associated MPR
-    typedef cpExtensions::QT::SimpleMPRWidget TMPRWidget;
-
-  public:
-    Workspace( );
-    virtual ~Workspace( );
-
-    // Plugins management
-    Interface* GetInterface( );
-    const Interface* GetInterface( ) const;
-    void SetInterface( Interface* i );
-
-    // Workspace IO
-    std::string LoadWorkspace( const std::string& fname );
-    std::string SaveWorkspace( const std::string& fname ) const;
-
-    // Graph management
-    TGraph* GetGraph( );
-    const TGraph* GetGraph( ) const;
-
-    void Clear( );
-    void ClearConnections( );
-
-    // Filter management
-    ProcessObject* GetFilter( const std::string& name );
-    const ProcessObject* GetFilter( const std::string& name ) const;
-    DataObject* GetOutput(
-      const std::string& filter, const std::string& output
-      );
-    const DataObject* GetOutput(
-      const std::string& filter, const std::string& output
-      ) const;
-    bool HasFilter( const std::string& name ) const;
-    ProcessObject* CreateFilter(
-      const std::string& category,
-      const std::string& filter,
-      const std::string& name
-      );
-    bool RenameFilter(
-      const std::string& old_name, const std::string& new_name
-      );
-    void RemoveFilter( const std::string& name );
-    void SetParameter( const std::string& name, const std::string& value );
-
-    void SetPrintExecution( bool b );
-    void PrintExecutionOn( );
-    void PrintExecutionOff( );
-
-    // Widgets management
-    vtkRenderWindowInteractor* GetSingleInteractor( );
-    const vtkRenderWindowInteractor* GetSingleInteractor( ) const;
-    void SetSingleInteractor( vtkRenderWindowInteractor* interactor );
-
-    TMPRWidget* GetMPRViewer( );
-    const TMPRWidget* GetMPRViewer( ) const;
-    void SetMPRViewer( TMPRWidget* wdg );
-
-    // Connection management
-    bool Connect(
-      const std::string& orig_filter, const std::string& dest_filter,
-      const std::string& output_name, const std::string& input_name
-      );
-    bool Connect( const OutputPort& port, const std::string& exposed_port );
-    void RemoveConnection(
-      const std::string& dest_filter, const std::string& input_name
-      );
-    void RemoveConnection( const std::string& exposed_port );
-    void RemoveConnections( const std::string& dest_filter );
-
-    // Graph reduction
-    bool Reduce( const std::string& name );
-    void ExposeInputPort(
-      const std::string& name,
-      const std::string& filter, const std::string& filter_input
-      );
-    void ExposeOutputPort(
-      const std::string& name,
-      const std::string& filter, const std::string& filter_output
-      );
-    void HideInputPort( const std::string& name );
-    void HideOutputPort( const std::string& name );
-
-    bool RenameExposedInputPort(
-      const std::string& old_name,
-      const std::string& new_name
-      );
-    bool RenameExposedOutputPort(
-      const std::string& old_name,
-      const std::string& new_name
-      );
-
-    const TExposedPorts& GetExposedInputPorts( ) const;
-    const TExposedPorts& GetExposedOutputPorts( ) const;
-
-    OutputPort& GetExposedOutput( const std::string& name );
-    const OutputPort& GetExposedOutput( const std::string& name ) const;
-
-    // Pipeline execution
-    void Execute( );
-    void Execute( const std::string& name );
-
-  protected:
-    // Plugins interface
-    Interface* m_Interface;
-    bool       m_PrintExecution;
-
-    // Processing graph
-    TGraph::Pointer m_Graph;
-    TExposedPorts m_ExposedInputPorts;
-    TExposedPorts m_ExposedOutputPorts;
-
-    vtkSmartPointer< vtkRenderWindowInteractor > m_SingleInteractor;
-    TMPRWidget*                                  m_MPRViewer;
-  };
-
-} // ecapseman
-
-#endif // __CPPLUGINS__WORKSPACE__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins/WorkspaceIO.cxx b/lib/cpPlugins/WorkspaceIO.cxx
deleted file mode 100644 (file)
index 0b48fc9..0000000
+++ /dev/null
@@ -1,251 +0,0 @@
-#include <cpPlugins/Workspace.h>
-#include <tinyxml/tinyxml2.h>
-
-// -------------------------------------------------------------------------
-std::string cpPlugins::Workspace::
-LoadWorkspace( const std::string& fname )
-{
-  if( this->m_Interface == NULL )
-    return( "cpPlugins::Workspace: No valid plugins interface" );
-  tinyxml2::XMLDocument* doc = new tinyxml2::XMLDocument( );
-  doc->LoadFile( fname.c_str( ) );
-  tinyxml2::XMLElement* root = doc->RootElement( );
-  if( root == NULL )
-    return( "cpPlugins::Workspace: No valid file" );
-  if( std::string( root->Value( ) ) != "cpPlugins_Workspace" )
-    return( "cpPlugins::Workspace: No valid workspace" );
-  std::stringstream err;
-
-  // Load plugins
-  auto loaded_plugins = this->m_Interface->GetPlugins( );
-  tinyxml2::XMLElement* plugins = root->FirstChildElement( "plugins" );
-  std::string plugins_errors = "";
-  while( plugins != NULL )
-  {
-    tinyxml2::XMLElement* plugin = plugins->FirstChildElement( "plugin" );
-    while( plugin != NULL )
-    {
-      std::string name = plugin->Attribute( "name" );
-      if( loaded_plugins.find( name ) == loaded_plugins.end( ) )
-      {
-        try
-        {
-          this->m_Interface->LoadPlugin( name );
-        }
-        catch( std::exception& err )
-        {
-          plugins_errors += err.what( ) + std::string( "\n" );
-
-        } // yrt
-
-      } // fi
-      plugin = plugin->NextSiblingElement( "plugin" );
-
-    } // elihw
-    plugins = plugins->NextSiblingElement( "plugins" );
-
-  } // elihw
-  if( plugins_errors != "" )
-    return( std::string( "cpPlugins::Workspace: " ) + plugins_errors );
-  
-  // Read filters
-  tinyxml2::XMLElement* filter = root->FirstChildElement( "filter" );
-  while( filter != NULL )
-  {
-    const char* category_value = filter->Attribute( "category" );
-    const char* class_value = filter->Attribute( "class" );
-    const char* name_value = filter->Attribute( "name" );
-    float viewX = float( 0 ), viewY = float( 0 );
-    filter->QueryFloatAttribute( "ViewX", &viewX );
-    filter->QueryFloatAttribute( "ViewY", &viewY );
-    int explicit_re_execution = 0;
-    filter->QueryIntAttribute(
-      "ExplicitReExecution", &explicit_re_execution
-      );
-    if( class_value != NULL && name_value != NULL )
-    {
-      if( this->CreateFilter( category_value, class_value, name_value ) )
-      {
-        auto new_filter = this->GetFilter( name_value );
-        new_filter->SetViewCoords( viewX, viewY );
-        new_filter->SetExplicitReExecution( explicit_re_execution == 1 );
-
-        // Read parameters
-        auto parameters = new_filter->GetParameters( );
-        parameters->FromXML( filter );
-      }
-      else
-        err
-          << "No valid class \"" << class_value << "\" with name \""
-          << name_value << "\"" << std::endl;
-    }
-    else
-      err << "Incomplete data." << std::endl;
-    filter = filter->NextSiblingElement( "filter" );
-
-  } // elihw
-
-  // Read connections
-  tinyxml2::XMLElement* connection = root->FirstChildElement( "connection" );
-  while( connection != NULL )
-  {
-    tinyxml2::XMLElement* orig = connection->FirstChildElement( "origin" );
-    tinyxml2::XMLElement* dest = connection->FirstChildElement( "destination" );
-    if( orig != NULL && dest != NULL )
-    {
-      const char* orig_filter = orig->Attribute( "filter" );
-      const char* dest_filter = dest->Attribute( "filter" );
-      const char* orig_name = orig->Attribute( "name" );
-      const char* dest_name = dest->Attribute( "name" );
-      if(
-        orig_filter != NULL && dest_filter != NULL &&
-        orig_name != NULL && dest_name != NULL
-        )
-        this->Connect( orig_filter, dest_filter, orig_name, dest_name );
-
-    } // fi
-    connection = connection->NextSiblingElement( "connection" );
-
-  } // elihw
-
-  // Read exposed inputs
-  tinyxml2::XMLElement* port = root->FirstChildElement( "exposed_input_port" );
-  while( port != NULL )
-  {
-    this->ExposeInputPort(
-      port->Attribute( "port_name" ),
-      port->Attribute( "filter" ),
-      port->Attribute( "filter_port_name" )
-      );
-    port = port->NextSiblingElement( "exposed_input_port" );
-
-  } // elihw
-
-  // Read exposed outputs
-  port = root->FirstChildElement( "exposed_output_port" );
-  while( port != NULL )
-  {
-    this->ExposeOutputPort(
-      port->Attribute( "port_name" ),
-      port->Attribute( "filter" ),
-      port->Attribute( "filter_port_name" )
-      );
-    port = port->NextSiblingElement( "exposed_output_port" );
-
-  } // elihw
-
-  // Finish and return
-  delete doc;
-  return( err.str( ) );
-}
-
-// -------------------------------------------------------------------------
-std::string cpPlugins::Workspace::
-SaveWorkspace( const std::string& fname ) const
-{
-  std::stringstream err;
-  tinyxml2::XMLDocument* doc = new tinyxml2::XMLDocument( );
-  tinyxml2::XMLElement* root = doc->NewElement( "cpPlugins_Workspace" );
-  std::set< std::string > used_plugins;
-
-  // Save vertices
-  auto vIt = this->m_Graph->BeginVertices( );
-  for( ; vIt != this->m_Graph->EndVertices( ); ++vIt )
-  {
-    auto filter = dynamic_cast< ProcessObject* >( vIt->second.GetPointer( ) );
-    auto data = dynamic_cast< DataObject* >( vIt->second.GetPointer( ) );
-    if( filter != NULL )
-    {
-      used_plugins.insert( this->m_Interface->GetPluginName( filter ) );
-
-      tinyxml2::XMLElement* e = doc->NewElement( "filter" );
-      e->SetAttribute( "category", filter->GetClassCategory( ) );
-      e->SetAttribute( "class", filter->GetClassName( ) );
-      e->SetAttribute( "name", vIt->first.c_str( ) );
-      e->SetAttribute( "ViewX", filter->GetViewX( ) );
-      e->SetAttribute( "ViewY", filter->GetViewY( ) );
-      e->SetAttribute(
-        "ExplicitReExecution", ( filter->GetExplicitReExecution( ) )? 1: 0
-        );
-
-      auto params = filter->GetParameters( );
-      params->ToXML( doc, e );
-      root->LinkEndChild( e );
-    }
-    else if( data != NULL )
-    {
-      // TODO
-    } // fi
-
-  } // rof
-
-  // Save used plugins
-  tinyxml2::XMLElement* plugins = doc->NewElement( "plugins" );
-  for( auto pIt = used_plugins.begin( ); pIt != used_plugins.end( ); ++pIt )
-  {
-    tinyxml2::XMLElement* e = doc->NewElement( "plugin" );
-    e->SetAttribute( "name", pIt->c_str( ) );
-    plugins->LinkEndChild( e );
-
-  } // rof
-  root->LinkEndChild( plugins );
-
-  // Save connections
-  auto mIt = this->m_Graph->BeginEdgesRows( );
-  for( ; mIt != this->m_Graph->EndEdgesRows( ); ++mIt )
-  {
-    auto rIt = mIt->second.begin( );
-    for( ; rIt != mIt->second.end( ); ++rIt )
-    {
-      auto eIt = rIt->second.begin( );
-      for( ; eIt != rIt->second.end( ); ++eIt )
-      {
-        tinyxml2::XMLElement* conn = doc->NewElement( "connection" );
-        tinyxml2::XMLElement* orig = doc->NewElement( "origin" );
-        tinyxml2::XMLElement* dest = doc->NewElement( "destination" );
-        orig->SetAttribute( "filter", mIt->first.c_str( ) );
-        orig->SetAttribute( "name", eIt->first.c_str( ) );
-        dest->SetAttribute( "filter", rIt->first.c_str( ) );
-        dest->SetAttribute( "name", eIt->second.c_str( ) );
-
-        conn->LinkEndChild( orig );
-        conn->LinkEndChild( dest );
-        root->LinkEndChild( conn );
-
-      } // rof
-
-    } // rof
-
-  } // rof
-
-  // Save exposed ports
-  auto eipIt = this->m_ExposedInputPorts.begin( );
-  for( ; eipIt != this->m_ExposedInputPorts.end( ); ++eipIt )
-  {
-    tinyxml2::XMLElement* port = doc->NewElement( "exposed_input_port" );
-    port->SetAttribute( "port_name", eipIt->first.c_str( ) );
-    port->SetAttribute( "filter", eipIt->second.first.c_str( ) );
-    port->SetAttribute( "filter_port_name", eipIt->second.second.c_str( ) );
-    root->LinkEndChild( port );
-
-  } // rof
-
-  auto eopIt = this->m_ExposedOutputPorts.begin( );
-  for( ; eopIt != this->m_ExposedOutputPorts.end( ); ++eopIt )
-  {
-    tinyxml2::XMLElement* port = doc->NewElement( "exposed_output_port" );
-    port->SetAttribute( "port_name", eopIt->first.c_str( ) );
-    port->SetAttribute( "filter", eopIt->second.first.c_str( ) );
-    port->SetAttribute( "filter_port_name", eopIt->second.second.c_str( ) );
-    root->LinkEndChild( port );
-
-  } // rof
-
-  // Physical write and return
-  doc->LinkEndChild( root );
-  doc->SaveFile( fname.c_str( ) );
-  delete doc;
-  return( err.str( ) );
-}
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins_Config.h b/lib/cpPlugins_Config.h
deleted file mode 100644 (file)
index 984f23b..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-#ifndef __CPPLUGINS_CONFIG__H__
-#define __CPPLUGINS_CONFIG__H__
-
-/*
- * =========================================================================
- * Some global values
- * =========================================================================
- */
-#define cpPlugins_PATHS "cpPlugins_PATHS"
-
-/*
- * =========================================================================
- * ITK related macros
- * =========================================================================
- */
-#include <itkMacro.h>
-#define ITK_MANUAL_INSTANTIATION
-#ifndef ITK_DELETE_FUNCTION
-#  define ITK_DELETE_FUNCTION
-#endif // ITK_DELETE_FUNCTION
-#ifndef ITK_OVERRIDE
-#  define ITK_OVERRIDE
-#endif // ITK_OVERRIDE
-
-/*
- * =========================================================================
- * VTK related macros
- * =========================================================================
- */
-#include <vtkConfigure.h>
-#ifndef VTK_OVERRIDE
-#  define VTK_OVERRIDE
-#endif // VTK_OVERRIDE
-
-/*
- * =========================================================================
- * Identify OS
- * =========================================================================
- */
-#if defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ )
-#  define cpPlugins_SYS_WINDOWS
-#  define cpPlugins_LIB_PREFIX ""
-#  define cpPlugins_LIB_EXT "dll"
-#  define cpPlugins_SEPARATOR ";"
-#  ifndef WIN32_LEAN_AND_MEAN
-#    define WIN32_LEAN_AND_MEAN
-#  endif
-#  define NOMINMAX
-#  include <windows.h>
-#  include <tchar.h>
-#elif defined( linux ) || defined( __linux )
-#  define cpPlugins_SYS_LINUX
-#  define cpPlugins_LIB_PREFIX "lib"
-#  define cpPlugins_LIB_EXT "so"
-#  define cpPlugins_SEPARATOR ":"
-#elif defined( __APPLE__ ) || defined( MACOSX ) || defined( macintosh ) || defined( Macintosh )
-#  define cpPlugins_SYS_MACOS
-#  define cpPlugins_LIB_PREFIX "lib"
-#  define cpPlugins_LIB_EXT "dylib"
-#  define cpPlugins_SEPARATOR ":"
-#elif defined( __FreeBSD__ ) || defined( __FreeBSD_kernel__ )
-#  define cpPlugins_SYS_FREEBSD
-#  define cpPlugins_LIB_PREFIX "lib"
-#  define cpPlugins_LIB_EXT "so"
-#  define cpPlugins_SEPARATOR ":"
-#else
-#  error "This operating system is not supported by cpPlugins"
-#endif
-
-/*
- * =========================================================================
- * Some helper functions
- * =========================================================================
- */
-
-#include <chrono>
-#include <cstring>
-#include <fstream>
-#include <iostream>
-#include <string>
-
-// -------------------------------------------------------------------------
-#ifdef cpPlugins_SYS_WINDOWS
-#  define cpPlugins_STRTOK( A, B, N ) strtok_s( A, B, N )
-#else // cpPlugins_SYS_WINDOWS
-#  define cpPlugins_STRTOK( A, B, N ) std::strtok( A, B )
-#endif // cpPlugins_SYS_WINDOWS
-
-// -------------------------------------------------------------------------
-#define cpPlugins_CHRONO                                                \
-  std::chrono::duration_cast< std::chrono::milliseconds >(              \
-    std::chrono::system_clock::now( ).time_since_epoch( )               \
-    ).count( )
-
-namespace cpPlugins
-{
-  struct IsSeparator
-  {
-    // ---------------------------------------------------------------------
-    inline bool operator()( char c ) const
-      {
-#ifdef cpPlugins_SYS_WINDOWS
-        return( c == '\\' || c == '/' );
-#else // cpPlugins_SYS_WINDOWS
-        return( c == '/' );
-#endif // cpPlugins_SYS_WINDOWS
-      }
-  };
-
-  // -----------------------------------------------------------------------
-  inline bool IsBlank( const char& v )
-  {
-    return( v == ' ' || v == '\t' || v == '\n' || v == '\r' );
-  }
-
-  // -----------------------------------------------------------------------
-  template< class _TTokens >
-  inline void TokenizeString(
-    _TTokens& tokens, const std::string& str, const std::string& delims
-    )
-  {
-    tokens.clear( );
-    if( str.size( ) > 0 )
-    {
-      auto ssize = str.size( );
-      char* buffer = new char[ ssize + 1 ];
-      for( unsigned long i = 0; i < ssize; ++i )
-        buffer[ i ] = str[ i ];
-      buffer[ ssize ] = '\0';
-      char* next;
-      char* it = cpPlugins_STRTOK( buffer, delims.c_str( ), &next );
-      while( it != NULL )
-      {
-        tokens.push_back( std::string( it ) );
-        it = cpPlugins_STRTOK( NULL, delims.c_str( ), &next );
-
-      } // elihw
-      delete [] buffer;
-
-    } // fi
-  }
-
-  // -----------------------------------------------------------------------
-  inline std::string ReplaceString(
-    const std::string& str, const std::string& sub, const std::string& nsub
-    )
-  {
-    std::string res = str;
-    size_t index;
-    while( ( index = res.find( sub ) ) != std::string::npos )
-      res.replace( index, sub.size( ), nsub );
-    return( res );
-  }
-
-  // -----------------------------------------------------------------------
-  inline bool ReadFileIntoString(
-    std::string& buffer, const std::string& fname
-    )
-  {
-    buffer = "";
-    std::ifstream file_stream( fname.c_str( ) );
-    if( !file_stream )
-      return( false );
-    file_stream.seekg( 0, std::ios::end );
-    buffer.reserve( ( unsigned int )( file_stream.tellg( ) ) );
-    file_stream.seekg( 0, std::ios::beg );
-    buffer.assign(
-      ( std::istreambuf_iterator< char >( file_stream ) ),
-      std::istreambuf_iterator< char >( )
-      );
-    file_stream.close( );
-    return( true );
-  }
-
-  // -----------------------------------------------------------------------
-  inline std::string CanonicalPath( const std::string& path )
-  {
-    std::string ret = "";
-#ifdef cpPlugins_SYS_WINDOWS
-    TCHAR  buffer[ 4096 ] = TEXT( "" );
-    TCHAR** lppPart = { NULL };
-    GetFullPathName( path.c_str( ), 4096, buffer, lppPart );
-    ret = std::string( buffer );
-#else // cpPlugins_SYS_WINDOWS
-    char* canonical_path = realpath( path.c_str( ), NULL );
-    if( canonical_path != NULL )
-    {
-      ret = canonical_path;
-      free( canonical_path );
-
-    } // fi
-#endif // cpPlugins_SYS_WINDOWS
-    return( ret );
-  }
-
-} // ecapseman
-
-#endif // __CPPLUGINS_CONFIG__H__
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins_Instances/BaseObjects.i b/lib/cpPlugins_Instances/BaseObjects.i
deleted file mode 100644 (file)
index eb122be..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-d #itk_objs=FixedArray;CovariantVector;Point;Vector;Matrix;SymmetricSecondRankTensor;DiffusionTensor3D
-d #ints=char;short;int;long
-d #uints=unsigned #ints
-d #floats=float;double
-d #dims=1;2;3;4
-d #pixels=#ints;#uints;#floats
-
-t itk#itk_objs.h
-t itkArray.h
-t itkArray2D.h
-t itkBoundingBox.h
-t itkSymmetricEigenAnalysis.h
-t itkSimpleDataObjectDecorator.h
-t itkVariableLengthVector.h
-t itkVectorContainer.h
-
-c itk::Array< #pixels >
-c itk::@{Array2D;VariableLengthVector}< #floats >
-c itk::FixedArray< #pixels, #dims >
-c itk::FixedArray< #floats, @{6;10} >
-c itk::@{CovariantVector;Point;Vector;SymmetricSecondRankTensor}< #floats, #dims >
-c itk::DiffusionTensor3D< #floats >
-c itk::Matrix< #floats, #dims, #dims >
-c itk::SimpleDataObjectDecorator< itk::@{CovariantVector;Point;Vector}< #floats, #dims > >
-c itk::SimpleDataObjectDecorator< itk::Matrix< #floats, #dims, #dims > >
-c itk::VectorContainer< unsigned long, itk::Point< #floats, #dims > >
-
-d #bb_in=#floats
-d #bb_out=#floats
-
-c itk::BoundingBox< unsigned long, #dims, #bb_in, itk::VectorContainer< unsigned long, itk::Point< #bb_out, #dims > > >
-
-* eof - $RCSfile$
diff --git a/lib/cpPlugins_Instances/BaseObjects_extra.cxx b/lib/cpPlugins_Instances/BaseObjects_extra.cxx
deleted file mode 100644 (file)
index 80c0319..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-#include <cpPlugins_Instances_BaseObjects_Export.h>
-#include <cpPlugins_Instances/BaseObjects.h>
-#include <cpPlugins_Config.h>
-
-#include <itkImageRegion.h>
-#include <itkFixedArray.h>
-#include <itkPoint.h>
-#include <itkVariableLengthVector.h>
-#include <itkVector.h>
-
-#include <itkImageRegion.hxx>
-#include <itkFixedArray.hxx>
-#include <itkPoint.hxx>
-#include <itkVariableLengthVector.hxx>
-#include <itkVector.hxx>
-
-// -------------------------------------------------------------------------
-#define cpPlugins_Instances_BaseObjects_extra_SimpleArray( V, D )       \
-  template cpPlugins_Instances_BaseObjects_EXPORT                       \
-  std::ostream& itk::operator<< < D >(                                  \
-    std::ostream& a, V< D > const& b                                    \
-    )
-
-cpPlugins_Instances_BaseObjects_extra_SimpleArray( itk::ImageRegion, 1 );
-cpPlugins_Instances_BaseObjects_extra_SimpleArray( itk::ImageRegion, 2 );
-cpPlugins_Instances_BaseObjects_extra_SimpleArray( itk::ImageRegion, 3 );
-cpPlugins_Instances_BaseObjects_extra_SimpleArray( itk::ImageRegion, 4 );
-
-// -------------------------------------------------------------------------
-#define cpPlugins_Instances_BaseObjects_extra_Array( V, T, D )          \
-  template cpPlugins_Instances_BaseObjects_EXPORT                       \
-  std::ostream& itk::operator<< < T, D >(                               \
-    std::ostream& a, V< T, D > const& b                                 \
-    )
-
-#define cpPlugins_Instances_BaseObjects_extra_Array_AllScalars( V, D ) \
-  cpPlugins_Instances_BaseObjects_extra_Array( V, float, D );          \
-  cpPlugins_Instances_BaseObjects_extra_Array( V, double, D )
-
-#define cpPlugins_Instances_BaseObjects_extra_Array_AllScalars_AllDims( V ) \
-  cpPlugins_Instances_BaseObjects_extra_Array_AllScalars( V, 1 );       \
-  cpPlugins_Instances_BaseObjects_extra_Array_AllScalars( V, 2 );       \
-  cpPlugins_Instances_BaseObjects_extra_Array_AllScalars( V, 3 );       \
-  cpPlugins_Instances_BaseObjects_extra_Array_AllScalars( V, 4 )
-
-cpPlugins_Instances_BaseObjects_extra_Array_AllScalars_AllDims( itk::FixedArray );
-cpPlugins_Instances_BaseObjects_extra_Array_AllScalars_AllDims( itk::Point );
-cpPlugins_Instances_BaseObjects_extra_Array_AllScalars_AllDims( itk::Vector );
-
-// -------------------------------------------------------------------------
-#ifndef cpPlugins_SYS_MACOS
-
-#define cpPlugins_Instances_BaseObjects_extra_VariableLengthVector_SetSize( T, P, Q ) \
-  template cpPlugins_Instances_BaseObjects_EXPORT void itk::VariableLengthVector< T >:: \
-  SetSize                                                               \
-  < itk::VariableLengthVector< T >::P, itk::VariableLengthVector< T >::Q > \
-  (                                                                     \
-    unsigned int,                                                       \
-    itk::VariableLengthVector< T >::P,                                  \
-    itk::VariableLengthVector< T >::Q                                   \
-    )
-
-cpPlugins_Instances_BaseObjects_extra_VariableLengthVector_SetSize( float, AlwaysReallocate, KeepOldValues );
-cpPlugins_Instances_BaseObjects_extra_VariableLengthVector_SetSize( float, ShrinkToFit, KeepOldValues );
-cpPlugins_Instances_BaseObjects_extra_VariableLengthVector_SetSize( double, AlwaysReallocate, KeepOldValues );
-cpPlugins_Instances_BaseObjects_extra_VariableLengthVector_SetSize( double, ShrinkToFit, KeepOldValues );
-
-#endif // cpPlugins_SYS_MACOS
-
-// eof - $RCSfile$
diff --git a/lib/cpPlugins_Instances/BitwiseImageFilters.i b/lib/cpPlugins_Instances/BitwiseImageFilters.i
deleted file mode 100644 (file)
index 73d17e2..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-f cpPlugins_Instances/ScalarImagesBaseFilters.h
-
-d #filters=And;Or
-
-i itk{#filters}ImageFilter.h
-t itkBinaryFunctorImageFilter.h
-
-d #dims=1;2;3;4
-d #int=char;short;int;long
-d #scalar=#int;unsigned #int
-
-c itk::{#filters}ImageFilter< itk::Image< #scalar, #dims >, itk::Image< #scalar, #dims > >
-
-* eof - $RCSfile$
diff --git a/lib/cpPlugins_Instances/CMakeLists.txt b/lib/cpPlugins_Instances/CMakeLists.txt
deleted file mode 100644 (file)
index 5360a0e..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-## =================================
-## == Compile instances libraries ==
-## =================================
-
-SET(pfx "cpPlugins_Instances_")
-SET(arg ${pfx} ${prj_VER} ${prj_sVER})
-
-IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
-  cpPlugins_WrapInstances(BaseObjects ${arg})
-  cpPlugins_WrapInstances(Decorators ${arg})
-ELSE(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
-  cpPlugins_WrapInstances(BaseObjects ${arg} ${ITK_LIBRARIES})
-  cpPlugins_WrapInstances(Decorators ${arg} ${ITK_LIBRARIES})
-ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
-cpPlugins_WrapInstances(Mesh ${arg} ${pfx}BaseObjects)
-cpPlugins_WrapInstances(Transforms ${arg} ${pfx}BaseObjects)
-cpPlugins_WrapInstances(ColorPixels ${arg} ${pfx}BaseObjects)
-cpPlugins_WrapInstances(ScalarImages ${arg} ${pfx}BaseObjects)
-cpPlugins_WrapInstances(ColorImages ${arg} ${pfx}ColorPixels ${pfx}ScalarImages)
-cpPlugins_WrapInstances(VectorImages ${arg} ${pfx}ScalarImages)
-IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
-  cpPlugins_WrapInstances(Paths ${arg} ${pfx}ScalarImages)
-ELSE(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
-  cpPlugins_WrapInstances(Paths ${arg} ${pfx}ScalarImages ${VTK_LIBRARIES})
-ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
-cpPlugins_WrapInstances(NeighborhoodIterators ${arg} ${pfx}ScalarImages)
-IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
-  cpPlugins_WrapInstances(
-    ImageITK2VTK ${arg} ${pfx}ScalarImages ${pfx}ColorImages ${pfx}VectorImages
-    )
-ELSE(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
-  cpPlugins_WrapInstances(
-    ImageITK2VTK ${arg} ${pfx}ScalarImages ${pfx}ColorImages ${pfx}VectorImages ${VTK_LIBRARIES}
-    )
-ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
-cpPlugins_WrapInstances(
-  ImagesIO ${arg} ${pfx}ScalarImages ${pfx}ColorImages ${pfx}VectorImages ${pfx}Decorators
-  )
-cpPlugins_WrapInstances(ScalarImagesBaseFilters ${arg} ${pfx}ScalarImages)
-cpPlugins_WrapInstances(ScalarVectorImagesBaseFilters ${arg} ${pfx}ScalarImages ${pfx}VectorImages)
-cpPlugins_WrapInstances(BitwiseImageFilters ${arg} ${pfx}ScalarImagesBaseFilters ${pfx}Decorators)
-cpPlugins_WrapInstances(ThresholdFilters ${arg} ${pfx}ScalarImagesBaseFilters)
-cpPlugins_WrapInstances(ImageMeshFilters ${arg} ${pfx}ScalarImagesBaseFilters ${pfx}Mesh)
-cpPlugins_WrapInstances(ResamplingFilters ${arg} ${pfx}ScalarImagesBaseFilters ${pfx}Transforms)
-cpPlugins_WrapInstances(
-  DistanceMapFilters ${arg}
-  ${pfx}ScalarImagesBaseFilters ${pfx}NeighborhoodIterators ${pfx}ThresholdFilters
-  )
-cpPlugins_WrapInstances(
-  GaussianImageFilters ${arg}
-  ${pfx}ScalarImagesBaseFilters ${pfx}ScalarVectorImagesBaseFilters
-  )
-cpPlugins_WrapInstances(MorphologicalImageFilters ${arg} ${pfx}ScalarImagesBaseFilters)
-cpPlugins_WrapInstances(ExtractImageFilters ${arg} ${pfx}ScalarImages)
-cpPlugins_WrapInstances(MedialnessFilters ${arg} ${pfx}ScalarImages ${pfx}VectorImages)
-
-SET(
-  cpPlugins_LIBRARIES
-  ${pfx}BaseObjects
-  ${pfx}Decorators
-  ${pfx}Mesh
-  ${pfx}Transforms
-  ${pfx}ColorPixels
-  ${pfx}ScalarImages
-  ${pfx}ColorImages
-  ${pfx}VectorImages
-  ${pfx}Paths
-  ${pfx}NeighborhoodIterators
-  ${pfx}ImageITK2VTK
-  ${pfx}ImagesIO
-  ${pfx}ScalarImagesBaseFilters
-  ${pfx}ScalarVectorImagesBaseFilters
-  ${pfx}BitwiseImageFilters
-  ${pfx}ThresholdFilters
-  ${pfx}ImageMeshFilters
-  ${pfx}ResamplingFilters
-  ${pfx}DistanceMapFilters
-  ${pfx}GaussianImageFilters
-  ${pfx}MorphologicalImageFilters
-  ${pfx}ExtractImageFilters
-  ${pfx}MedialnessFilters
-  CACHE INTERNAL "All valid instances." FORCE
-  )
-
-## ===================================
-## == Libraries to dynamically load ==
-## ===================================
-
-SET(cpPlugins_DynLibs)
-FOREACH(i ${VTK_LIBRARIES})
-  GET_TARGET_PROPERTY(lib_${i} ${i} LOCATION)
-  GET_FILENAME_COMPONENT(lib_name_${i} ${lib_${i}} NAME)
-  LIST(APPEND cpPlugins_DynLibs ${lib_name_${i}})
-ENDFOREACH(i)
-FOREACH(i ${ITK_LIBRARIES})
-  GET_TARGET_PROPERTY(lib_${i} ${i} LOCATION)
-  GET_FILENAME_COMPONENT(lib_name_${i} ${lib_${i}} NAME)
-  LIST(APPEND cpPlugins_DynLibs ${lib_name_${i}})
-ENDFOREACH(i)
-
-CONFIGURE_FILE(
-  cpPlugins_DynLibs.h.in
-  ${PROJECT_BINARY_DIR}/lib/cpPlugins_Instances/cpPlugins_DynLibs.h
-  @ONLY
-  )
-
-## eof - $RCSfile$
diff --git a/lib/cpPlugins_Instances/ColorImages.i b/lib/cpPlugins_Instances/ColorImages.i
deleted file mode 100644 (file)
index fce45e1..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-d #itk_pixels=RGB;RGBA
-d #itk_objs=ImportImageContainer;Image;ImageSource
-d #itk_it=ImageRegion;ImageScanline
-d #itk_it_wi=Image;ImageRegion;ImageLinear
-d #ints=char;short;int;long
-d #uints=unsigned #ints
-d #floats=float;double
-d #pixels=#ints;#uints;#floats
-d #dims=1;2;3;4
-
-i cpPlugins_Instances/ColorPixels.h
-t itk{#itk_objs}.h
-t itk{#itk_it}Iterator.h
-t itk{#itk_it}ConstIterator.h
-t itk{#itk_it_wi}IteratorWithIndex.h
-t itk{#itk_it_wi}ConstIteratorWithIndex.h
-
-* ==============
-* = Base types =
-* ==============
-c itk::ImportImageContainer< unsigned long, itk::{#itk_pixels}Pixel< #pixels > >
-c itk::Image< itk::{#itk_pixels}Pixel< #pixels >, #dims >
-
-* ===============================
-* = All of filters superclasses =
-* ===============================
-c itk::ImageSource< itk::Image< itk::{#itk_pixels}Pixel< #pixels >, #dims > >
-
-* ===============================
-* = All of base image iterators =
-* ===============================
-b #define ITK_LEGACY_REMOVE
-c itk::{#itk_it}@{Const;{}}Iterator< itk::Image< itk::{#itk_pixels}Pixel< #pixels >, #dims > >
-c itk::{#itk_it_wi}@{Const;{}}IteratorWithIndex< itk::Image< itk::{#itk_pixels}Pixel< #pixels >, #dims > >
-
-* eof - $RCSfile$
diff --git a/lib/cpPlugins_Instances/ColorPixels.i b/lib/cpPlugins_Instances/ColorPixels.i
deleted file mode 100644 (file)
index 7d1ab08..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-d #itk_objs=RGB;RGBA
-d #ints=char;short;int;long
-d #uints=unsigned #ints
-d #floats=float;double
-d #pixels=#ints;#uints;#floats
-
-t itk{#itk_objs}Pixel.h
-
-c itk::{#itk_objs}Pixel< #pixels >
-
-* eof - $RCSfile$
diff --git a/lib/cpPlugins_Instances/Decorators.i b/lib/cpPlugins_Instances/Decorators.i
deleted file mode 100644 (file)
index 948344c..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-d #ints=char;short;int;long
-d #uints=unsigned #ints
-d #floats=float;double
-d #pixels=#ints;#uints;#floats
-
-t itkSimpleDataObjectDecorator.h
-
-c itk::SimpleDataObjectDecorator< std::string >
-c itk::SimpleDataObjectDecorator< #pixels >
-
-* eof - $RCSfile$
\ No newline at end of file
diff --git a/lib/cpPlugins_Instances/DistanceMapFilters.i b/lib/cpPlugins_Instances/DistanceMapFilters.i
deleted file mode 100644 (file)
index 59dfe0a..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-f cpPlugins_Instances/ScalarImagesBaseFilters.h
-
-i itkProgressReporter.h
-t itkBinaryContourImageFilter.h
-t itkSignedMaurerDistanceMapImageFilter.h
-
-d #dims=2;3
-d #int=char;short;int;long
-d #float=float;double
-d #scalar=#int;unsigned #int;#float
-d #filters=itk::BinaryContourImageFilter;itk::SignedMaurerDistanceMapImageFilter
-
-c #filters< itk::Image< #scalar, #dims >, itk::Image< #float, #dims > >
diff --git a/lib/cpPlugins_Instances/ExtractImageFilters.i b/lib/cpPlugins_Instances/ExtractImageFilters.i
deleted file mode 100644 (file)
index 4d0e548..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-d #ints=char;short;int;long
-d #uints=unsigned #ints
-d #floats=float;double
-d #pixels=#ints;#uints;#floats
-d #dims=2;3
-
-i cpPlugins_Instances/ScalarImages.h
-t cpExtensions/Algorithms/RegionOfInterestImageCalculator.h
-t itkRegionOfInterestImageFilter.h
-
-* ===========
-* = Filters =
-* ===========
-
-c cpExtensions::Algorithms::RegionOfInterestImageCalculator< itk::Image< #pixels, #dims > >
-c itk::RegionOfInterestImageFilter< itk::Image< #pixels, #dims >, itk::Image< #pixels, #dims > >
-
-* eof - $RCSfile$
diff --git a/lib/cpPlugins_Instances/GaussianImageFilters.i b/lib/cpPlugins_Instances/GaussianImageFilters.i
deleted file mode 100644 (file)
index d5b6e41..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-f cpPlugins_Instances/ScalarImagesBaseFilters.h
-f cpPlugins_Instances/VectorImages.h
-
-t cpExtensions/Algorithms/MultiScaleGaussianImageFilter.h
-t itkGradientRecursiveGaussianImageFilter.h
-t itkImageToImageFilter.h
-t itkImageAdaptor.h
-t itkRecursiveGaussianImageFilter.h
-t itkRecursiveSeparableImageFilter.h
-t itkInPlaceImageFilter.h
-t itkUnaryFunctorImageFilter.h
-t itkBinaryFunctorImageFilter.h
-t itkImageRegionIteratorWithIndex.h
-t itkImageConstIteratorWithIndex.h
-t itkImageRegionConstIteratorWithIndex.h
-t itkSimpleDataObjectDecorator.h
-
-d #dims=2;3
-d #int=char;short;int;long
-d #float=float;double
-d #scalar=#int;unsigned #int;#float
-d #gradients=itk::CovariantVector
-
-c cpExtensions::Algorithms::MultiScaleGaussianImageFilter< itk::Image< #scalar, #dims >, itk::Image< #gradients< #float, #dims >, #dims > >
-
-** eof
diff --git a/lib/cpPlugins_Instances/ImageITK2VTK.i b/lib/cpPlugins_Instances/ImageITK2VTK.i
deleted file mode 100644 (file)
index 03c98f6..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-f cpPlugins_Instances/ScalarImages.h
-f cpPlugins_Instances/ColorImages.h
-f cpPlugins_Instances/VectorImages.h
-
-t itkImageToVTKImageFilter.h
-t itkVTKImageToImageFilter.h
-t itkVTKImageExport.h
-t itkVTKImageImport.h
-
-d #dims=2;3
-d #int=char;short;int;long
-d #float=float;double
-d #scalar=#int;unsigned #int;#float
-d #color_pixels=itk::RGBPixel< #scalar >;itk::RGBAPixel< #scalar >
-d #lin_alg_vectors=itk::CovariantVector;itk::Point;itk::Vector
-d #pixels=#scalar;#color_pixels
-d #array_pixels=#lin_alg_vectors;itk::SymmetricSecondRankTensor
-d #filters=itk::ImageToVTKImageFilter;itk::VTKImageToImageFilter
-
-c #filters< itk::Image< #pixels, #dims > >
-c #filters< itk::Image< #array_pixels< #float, #dims >, #dims > >
-
-* eof - $RCSfile$
diff --git a/lib/cpPlugins_Instances/ImageMeshFilters.i b/lib/cpPlugins_Instances/ImageMeshFilters.i
deleted file mode 100644 (file)
index fe883c7..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-f cpPlugins_Instances/ScalarImages.h
-f cpPlugins_Instances/Mesh.h
-
-t itkTriangleMeshToBinaryImageFilter.h
-
-d #dims=3
-d #int=char;short;int;long
-d #uint=unsigned #int
-d #pixels=#int;#uint
-d #float=float;double
-
-c itk::TriangleMeshToBinaryImageFilter< itk::Mesh< #float, #dims >, itk::Image< #pixels, #dims > >
diff --git a/lib/cpPlugins_Instances/ImagesIO.i b/lib/cpPlugins_Instances/ImagesIO.i
deleted file mode 100644 (file)
index 32ed783..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-b #include <ITKIOImageBaseExport.h>
-b #undef ITKIOImageBase_HIDDEN
-b #define ITKIOImageBase_HIDDEN
-
-d #ints=char;short;int;long
-d #uints=unsigned #ints
-d #floats=float;double
-d #pixels=#ints;#uints;#floats
-d #dims=1;2;3;4
-d #vectors=CovariantVector;Point;Vector;SymmetricSecondRankTensor
-d #colors=RGB;RGBA
-d #io=ImageFileReader;ImageFileWriter;ImageSeriesReader
-
-i cpPlugins_Instances/ScalarImages.h
-i cpPlugins_Instances/ColorImages.h
-i cpPlugins_Instances/VectorImages.h
-
-t itk{#io}.h
-t itkConvertPixelBuffer.h
-t itkImageAlgorithm.h
-
-c itk::{#io}< itk::Image< #pixels, #dims > >
-c itk::{#io}< itk::Image< std::complex< #floats >, #dims > >
-c itk::{#io}< itk::Image< itk::{#colors}Pixel< #pixels >, #dims > >
-c itk::{#io}< itk::Image< itk::#vectors< #floats, #dims >, #dims > >
-c itk::{#io}< itk::Image< itk::DiffusionTensor3D< #floats >, 3 > >
-
-* eof - $RCSfile$
diff --git a/lib/cpPlugins_Instances/MedialnessFilters.i b/lib/cpPlugins_Instances/MedialnessFilters.i
deleted file mode 100644 (file)
index 281cf34..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-d #ints=char;short;int;long
-d #uints=unsigned #ints
-d #floats=float;double
-d #pixels=#ints;#uints;#floats
-d #dims=2;3
-d #functors=GulsunTek;Flux;MFlux
-
-i cpPlugins_Instances/ScalarImages.h
-i cpPlugins_Instances/VectorImages.h
-t itkImageFunction.h
-t cpExtensions/Algorithms/GradientImageFunctionBase.h
-t cpExtensions/Algorithms/{#functors}Medialness.h
-
-* ===========
-* = Filters =
-* ===========
-
-c itk::ImageFunction< itk::Image< itk::CovariantVector< #floats, #dims >, #dims >, #floats, #floats >
-c cpExtensions::Algorithms::GradientImageFunctionBase< itk::Image< itk::CovariantVector< #floats, #dims >, #dims > >
-c cpExtensions::Algorithms::{#functors}Medialness< itk::Image< itk::CovariantVector< #floats, #dims >, #dims > >
-
-* eof - $RCSfile$
diff --git a/lib/cpPlugins_Instances/Mesh.i b/lib/cpPlugins_Instances/Mesh.i
deleted file mode 100644 (file)
index be7ad53..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-f cpPlugins_Instances/BaseObjects.h
-
-d #dims=2;3
-d #float=float;double
-
-i set
-t itkCellInterface.h
-t itkMesh.h
-t itkMeshSource.h
-t itkPointSet.h
-t itkBoundingBox.h
-t itkMapContainer.h
-t itkVectorContainer.h
-t itkLineCell.h
-t itkPolygonCell.h
-t itkTriangleCell.h
-t itkVertexCell.h
-
-c itk::CellInterface< #float, itk::CellTraitsInfo< #dims, float, float, unsigned long, unsigned long, unsigned long, itk::Point< float, #dims >, itk::VectorContainer< unsigned long, itk::Point< float, #dims > >, std::set< unsigned long > > >
-c itk::VectorContainer< unsigned long, itk::CellInterface< #float, itk::CellTraitsInfo< #dims, float, float, unsigned long, unsigned long, unsigned long, itk::Point< float, #dims >, itk::VectorContainer< unsigned long, itk::Point< float, #dims > >, std::set< unsigned long > > >* >
-c itk::@{VertexCell;LineCell;TriangleCell;PolygonCell}< itk::CellInterface< #float, itk::CellTraitsInfo< #dims, float, float, unsigned long, unsigned long, unsigned long, itk::Point< float, #dims >, itk::VectorContainer< unsigned long, itk::Point< float, #dims > >, std::set< unsigned long > > > >
-c @{itk::PointSet;itk::Mesh}< #float, #dims >
-c itk::MeshSource< itk::Mesh< #float, #dims > >
-
-* eof - $RCSfile$
diff --git a/lib/cpPlugins_Instances/MorphologicalImageFilters.i b/lib/cpPlugins_Instances/MorphologicalImageFilters.i
deleted file mode 100644 (file)
index f5d6c1e..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-d #ints=char;short;int;long
-d #uints=unsigned #ints
-d #floats=float;double
-d #pixels=#ints;#uints;#floats
-d #dims=2;3
-d #itk_filters=BinaryDilateParaImage;BinaryErodeParaImage
-
-i cpPlugins_Instances/ScalarImagesBaseFilters.h
-t itkParabolicErodeDilateImageFilter.h
-t itk{#itk_filters}Filter.h
-t itkUnaryFunctorImageFilter.h
-
-* ===========
-* = Filters =
-* ===========
-
-c itk::UnaryFunctorImageFilter< itk::Image< #pixels, #dims >, itk::Image< double, #dims >, itk::Functor::GEConst< #pixels, double > >
-c itk::ParabolicErodeDilateImageFilter< itk::Image< double, #dims >, false, itk::Image< #pixels, #dims > >
-c itk::{#itk_filters}Filter< itk::Image< #pixels, #dims > >
-
-* eof - $RCSfile$
diff --git a/lib/cpPlugins_Instances/NeighborhoodIterators.i b/lib/cpPlugins_Instances/NeighborhoodIterators.i
deleted file mode 100644 (file)
index 7cb2865..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-f cpPlugins_Instances/ScalarImages.h
-
-t itkZeroFluxNeumannBoundaryCondition.h
-t itkConstNeighborhoodIterator.h
-t itkNeighborhoodIterator.h
-t itkNeighborhood.h
-t itkConstShapedNeighborhoodIterator.h
-t itkShapedNeighborhoodIterator.h
-
-d #dims=1;2;3;4
-d #int=char;short;int;long
-d #float=float;double
-d #scalar=#int;unsigned #int;#float
-d #pixels=#scalar;#color_pixels;#complex_pixels
-d #conds=itk::ZeroFluxNeumannBoundaryCondition
-d #neigh_iterators=itk::ConstNeighborhoodIterator;itk::NeighborhoodIterator;itk::ConstShapedNeighborhoodIterator;itk::ShapedNeighborhoodIterator
-
-c itk::Neighborhood< #pixels*, #dims, itk::NeighborhoodAllocator< #pixels* > >
-c #conds< itk::Image< #scalar, #dims >, itk::Image< #scalar, #dims > >
-c #neigh_iterators< itk::Image< #scalar, #dims >, #conds< itk::Image< #scalar, #dims >, itk::Image< #scalar, #dims > > >
diff --git a/lib/cpPlugins_Instances/Paths.i b/lib/cpPlugins_Instances/Paths.i
deleted file mode 100644 (file)
index 1a28473..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-f cpPlugins_Instances/BaseObjects.h
-
-i cpExtensions/DataStructures/PolyLineParametricPath.h
-i cpExtensions/DataStructures/ImageIndexesContainer.h
-t itkPolyLineParametricPath.h
-t itkPath.h
-t itkParametricPath.h
-t itkParametricPath.h
-t itkVectorContainer.h
-t cpExtensions/Visualization/PolyLineParametricPathToPolyData.h
-t cpExtensions/Visualization/ImageIndexesContainerToPolyData.h
-t itkSimpleDataObjectDecorator.h
-
-d #dims=2;3
-
-c itk::SimpleDataObjectDecorator< std::vector< itk::Index< #dims > > >
-c itk::VectorContainer< unsigned int, itk::ContinuousIndex< double, #dims > >
-
-c itk::ParametricPath< #dims >
-c itk::PolyLineParametricPath< #dims >
-c cpExtensions::DataStructures::ImageIndexesContainer< #dims >
-
-c cpExtensions::Visualization::PolyLineParametricPathToPolyData< cpExtensions::DataStructures::PolyLineParametricPath< #dims > >
-c cpExtensions::Visualization::ImageIndexesContainerToPolyData< cpExtensions::DataStructures::ImageIndexesContainer< #dims > >
-
-* eof - $RCSfile$
diff --git a/lib/cpPlugins_Instances/ResamplingFilters.i b/lib/cpPlugins_Instances/ResamplingFilters.i
deleted file mode 100644 (file)
index a9e742e..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-f cpPlugins_Instances/ScalarImagesBaseFilters.h
-f cpPlugins_Instances/Transforms.h
-
-t itkResampleImageFilter.h
-t itkLinearInterpolateImageFunction.h
-t itkImageFunction.h
-
-d #dims=2;3
-d #int=char;short;int;long
-d #float=float;double
-d #scalar=#int;unsigned #int;#float
-
-c itk::LinearInterpolateImageFunction< itk::Image< #scalar, #dims >, #float >
-c itk::ResampleImageFilter< itk::Image< #scalar, #dims >, itk::Image< #scalar, #dims >, #float, #float >
diff --git a/lib/cpPlugins_Instances/ScalarImages.i b/lib/cpPlugins_Instances/ScalarImages.i
deleted file mode 100644 (file)
index f7886d8..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-d #itk_objs=ImageBase;ImageRegion;ImportImageContainer;Image;ImageSource
-d #itk_it=ImageRegion;ImageScanline
-d #itk_it_wi=Image;ImageRegion;ImageLinear
-d #ints=char;short;int;long
-d #uints=unsigned #ints
-d #floats=float;double
-d #pixels=#ints;#uints;#floats
-d #dims=1;2;3;4
-
-i complex
-t itk{#itk_objs}.h
-t itk{#itk_it}Iterator.h
-t itk{#itk_it}ConstIterator.h
-t itk{#itk_it_wi}IteratorWithIndex.h
-t itk{#itk_it_wi}ConstIteratorWithIndex.h
-
-* ==============
-* = Base types =
-* ==============
-c itk::ImportImageContainer< unsigned long, #pixels >
-c itk::ImportImageContainer< unsigned long, std::complex< #floats > >
-c itk::@{ImageRegion;ImageBase}< #dims >
-c itk::Image< #pixels, #dims >
-c itk::Image< std::complex< #floats >, #dims >
-
-* ===============================
-* = All of filters superclasses =
-* ===============================
-c itk::ImageSource< itk::Image< #pixels, #dims > >
-c itk::ImageSource< itk::Image< std::complex< #floats >, #dims > >
-
-* ===============================
-* = All of base image iterators =
-* ===============================
-b #define ITK_LEGACY_REMOVE
-c itk::{#itk_it}@{Const;{}}Iterator< itk::Image< #pixels, #dims > >
-c itk::{#itk_it_wi}@{Const;{}}IteratorWithIndex< itk::Image< #pixels, #dims > >
-c itk::{#itk_it}@{Const;{}}Iterator< itk::Image< std::complex< #floats >, #dims > >
-c itk::{#itk_it_wi}@{Const;{}}IteratorWithIndex< itk::Image< std::complex< #floats >, #dims > >
-
-* eof - $RCSfile$
diff --git a/lib/cpPlugins_Instances/ScalarImagesBaseFilters.i b/lib/cpPlugins_Instances/ScalarImagesBaseFilters.i
deleted file mode 100644 (file)
index 5b5ebb5..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-d #ints=char;short;int;long
-d #uints=unsigned #ints
-d #floats=float;double
-d #pixels=#ints;#uints;#floats
-d #inputs=#pixels
-d #outputs=#pixels
-d #dims=1;2;3;4
-d #itk_filters=ImageToImage;InPlaceImage
-
-i cpPlugins_Instances/ScalarImages.h
-t itk{#itk_filters}Filter.h
-t itkCastImageFilter.h
-t itkImageAlgorithm.h
-t itkUnaryFunctorImageFilter.h
-
-* =====================
-* = Base filter types =
-* =====================
-c itk::{#itk_filters}Filter< itk::Image< #inputs, #dims >, itk::Image< #outputs, #dims > >
-c itk::{#itk_filters}Filter< itk::Image< #pixels, 3 >, itk::Image< #pixels, 2 > >
-c itk::{#itk_filters}Filter< itk::Image< #pixels, 2 >, itk::Image< #pixels, 3 > >
-
-* ==================
-* = Simple filters =
-* ==================
-
-c itk::CastImageFilter< itk::Image< #inputs, #dims >, itk::Image< #outputs, #dims > >
-
-* eof - $RCSfile$
diff --git a/lib/cpPlugins_Instances/ScalarVectorImagesBaseFilters.i b/lib/cpPlugins_Instances/ScalarVectorImagesBaseFilters.i
deleted file mode 100644 (file)
index 4b47a37..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-d #ints=char;short;int;long
-d #uints=unsigned #ints
-d #floats=float;double
-d #pixels=#ints;#uints;#floats
-d #inputs=#pixels
-d #outputs=#pixels
-d #dims=1;2;3;4
-d #itk_filters=ImageToImage;InPlaceImage
-
-i cpPlugins_Instances/ScalarImages.h
-i cpPlugins_Instances/VectorImages.h
-t itk{#itk_filters}Filter.h
-
-* =====================
-* = Base filter types =
-* =====================
-c itk::{#itk_filters}Filter< itk::Image< #pixels, #dims >, itk::Image< itk::CovariantVector< #floats, #dims >, #dims > >
-c itk::{#itk_filters}Filter< itk::Image< itk::CovariantVector< #floats, #dims >, #dims >, itk::Image< #floats, #dims > >
-
-* eof - $RCSfile$
diff --git a/lib/cpPlugins_Instances/ThresholdFilters.i b/lib/cpPlugins_Instances/ThresholdFilters.i
deleted file mode 100644 (file)
index 99b860b..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-f cpPlugins_Instances/ScalarImagesBaseFilters.h
-
-t itkBinaryThresholdImageFilter.h
-t itkUnaryFunctorImageFilter.h
-t itkSimpleDataObjectDecorator.h
-t cpExtensions/Algorithms/UnaryThresholdImageFilter.h
-
-d #dims=2;3
-d #int=char;short;int;long
-d #float=float;double
-d #scalar=#int;unsigned #int;#float
-d #output=#int;unsigned #int;#float
-
-c itk::BinaryThresholdImageFilter< itk::Image< #scalar, #dims >, itk::Image< #output, #dims > >
-c cpExtensions::Algorithms::UnaryThresholdImageFilter< itk::Image< #scalar, #dims > >
diff --git a/lib/cpPlugins_Instances/Transforms.i b/lib/cpPlugins_Instances/Transforms.i
deleted file mode 100644 (file)
index bea6124..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-f cpPlugins_Instances/BaseObjects.h
-
-d #dims=2;3
-d #float=float;double
-
-t itkTransform.h
-t itkOptimizerParameters.h
-t itkDataObjectDecorator.h
-
-c itk::OptimizerParameters< #float >
-c itk::Transform< #float, #dims, #dims >
-c itk::DataObjectDecorator< itk::Transform< #float, #dims, #dims > >
-
-* eof - $RCSfile$
diff --git a/lib/cpPlugins_Instances/VectorImages.i b/lib/cpPlugins_Instances/VectorImages.i
deleted file mode 100644 (file)
index f8fb7ea..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-d #itk_pixels=CovariantVector;Point;Vector;SymmetricSecondRankTensor
-d #itk_objs=ImportImageContainer;Image;ImageSource
-d #itk_it=ImageRegion;ImageScanline
-d #itk_it_wi=Image;ImageRegion;ImageLinear
-d #floats=float;double
-d #dims=1;2;3;4
-
-i cpPlugins_Instances/BaseObjects.h
-t itk{#itk_objs}.h
-t itk{#itk_it}Iterator.h
-t itk{#itk_it}ConstIterator.h
-t itk{#itk_it_wi}IteratorWithIndex.h
-t itk{#itk_it_wi}ConstIteratorWithIndex.h
-
-* ==============
-* = Base types =
-* ==============
-c itk::ImportImageContainer< unsigned long, itk::{#itk_pixels}< #floats, #dims > >
-c itk::ImportImageContainer< unsigned long, itk::DiffusionTensor3D< #floats > >
-c itk::Image< itk::{#itk_pixels}< #floats, #dims >, #dims >
-c itk::Image< itk::DiffusionTensor3D< #floats >, 3 >
-
-* ===============================
-* = All of filters superclasses =
-* ===============================
-c itk::ImageSource< itk::Image< itk::{#itk_pixels}< #floats, #dims >, #dims > >
-c itk::ImageSource< itk::Image< itk::DiffusionTensor3D< #floats >, 3 > >
-
-* ===============================
-* = All of base image iterators =
-* ===============================
-b #define ITK_LEGACY_REMOVE
-c itk::{#itk_it}@{Const;{}}Iterator< itk::Image< itk::{#itk_pixels}< #floats, #dims >, #dims > >
-c itk::{#itk_it_wi}@{Const;{}}IteratorWithIndex< itk::Image< itk::{#itk_pixels}< #floats, #dims >, #dims > >
-c itk::{#itk_it}@{Const;{}}Iterator< itk::Image< itk::DiffusionTensor3D< #floats >, 3 > >
-c itk::{#itk_it_wi}@{Const;{}}IteratorWithIndex< itk::Image< itk::DiffusionTensor3D< #floats >, 3 > >
-
-* eof - $RCSfile$
diff --git a/lib/cpPlugins_Instances/cpPlugins_DynLibs.h.in b/lib/cpPlugins_Instances/cpPlugins_DynLibs.h.in
deleted file mode 100644 (file)
index cae684a..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef __CPPLUGINS_INSTANCES__DYNLIBS__H__
-#define __CPPLUGINS_INSTANCES__DYNLIBS__H__
-
-#define cpPlugins_DynLibs "@cpPlugins_DynLibs@"
-
-#endif // __CPPLUGINS_INSTANCES__DYNLIBS__H__
-
-// eof - $RCSfile$
diff --git a/lib/third_party/CMakeLists.txt b/lib/third_party/CMakeLists.txt
deleted file mode 100644 (file)
index da19077..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-SUBDIRS(
-  dirent
-  tinyxml
-  )
-
-## eof - $RCSfile$
diff --git a/lib/third_party/dirent/CMakeLists.txt b/lib/third_party/dirent/CMakeLists.txt
deleted file mode 100644 (file)
index 4b26944..0000000
+++ /dev/null
@@ -1 +0,0 @@
-## eof - $RCSfile$
diff --git a/lib/third_party/dirent/cpPlugins_dirent.h b/lib/third_party/dirent/cpPlugins_dirent.h
deleted file mode 100644 (file)
index 76238e3..0000000
+++ /dev/null
@@ -1,848 +0,0 @@
-/*
- * dirent.h - dirent API for Microsoft Visual Studio
- *
- * Copyright (C) 2006-2012 Toni Ronkko
- * Modified by Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * ``Software''), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL TONI RONKKO BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- *
- * $Id: dirent.h,v 1.20 2014/03/19 17:52:23 tronkko Exp $
- */
-#ifndef __CPPLUGINS_DIRENT___H__
-#define __CPPLUGINS_DIRENT___H__
-
-// florez-l: use this file in windows environments
-#if defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ )
-
-/*
- * Define architecture flags so we don't need to include windows.h.
- * Avoiding windows.h makes it simpler to use windows sockets in conjunction
- * with dirent.h.
- */
-#if !defined(_68K_) && !defined(_MPPC_) && !defined(_X86_) && !defined(_IA64_) && !defined(_AMD64_) && defined(_M_IX86)
-#   define _X86_
-#endif
-#if !defined(_68K_) && !defined(_MPPC_) && !defined(_X86_) && !defined(_IA64_) && !defined(_AMD64_) && defined(_M_AMD64)
-#define _AMD64_
-#endif
-
-#include <stdio.h>
-#include <stdarg.h>
-#include <windef.h>
-#include <winbase.h>
-#include <wchar.h>
-#include <string.h>
-#include <stdlib.h>
-#include <malloc.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <errno.h>
-
-/* Indicates that d_type field is available in dirent structure */
-#define ___CPPLUGINS_DIRENT___H__AVE_D_TYPE
-
-/* Indicates that d_namlen field is available in dirent structure */
-#define ___CPPLUGINS_DIRENT___H__AVE_D_NAMLEN
-
-/* Entries missing from MSVC 6.0 */
-#if !defined(FILE_ATTRIBUTE_DEVICE)
-#   define FILE_ATTRIBUTE_DEVICE 0x40
-#endif
-
-/* File type and permission flags for stat() */
-#if !defined(S_IFMT)
-#   define S_IFMT   _S_IFMT                     /* File type mask */
-#endif
-#if !defined(S_IFDIR)
-#   define S_IFDIR  _S_IFDIR                    /* Directory */
-#endif
-#if !defined(S_IFCHR)
-#   define S_IFCHR  _S_IFCHR                    /* Character device */
-#endif
-#if !defined(S_IFFIFO)
-#   define S_IFFIFO _S_IFFIFO                   /* Pipe */
-#endif
-#if !defined(S_IFREG)
-#   define S_IFREG  _S_IFREG                    /* Regular file */
-#endif
-#if !defined(S_IREAD)
-#   define S_IREAD  _S_IREAD                    /* Read permission */
-#endif
-#if !defined(S_IWRITE)
-#   define S_IWRITE _S_IWRITE                   /* Write permission */
-#endif
-#if !defined(S_IEXEC)
-#   define S_IEXEC  _S_IEXEC                    /* Execute permission */
-#endif
-#if !defined(S_IFIFO)
-#   define S_IFIFO _S_IFIFO                     /* Pipe */
-#endif
-#if !defined(S_IFBLK)
-#   define S_IFBLK   0                          /* Block device */
-#endif
-#if !defined(S_IFLNK)
-#   define S_IFLNK   0                          /* Link */
-#endif
-#if !defined(S_IFSOCK)
-#   define S_IFSOCK  0                          /* Socket */
-#endif
-
-#if defined(_MSC_VER)
-#   define S_IRUSR  S_IREAD                     /* Read user */
-#   define S_IWUSR  S_IWRITE                    /* Write user */
-#   define S_IXUSR  0                           /* Execute user */
-#   define S_IRGRP  0                           /* Read group */
-#   define S_IWGRP  0                           /* Write group */
-#   define S_IXGRP  0                           /* Execute group */
-#   define S_IROTH  0                           /* Read others */
-#   define S_IWOTH  0                           /* Write others */
-#   define S_IXOTH  0                           /* Execute others */
-#endif
-
-/* Maximum length of file name */
-#if !defined(PATH_MAX)
-#   define PATH_MAX MAX_PATH
-#endif
-#if !defined(FILENAME_MAX)
-#   define FILENAME_MAX MAX_PATH
-#endif
-#if !defined(NAME_MAX)
-#   define NAME_MAX FILENAME_MAX
-#endif
-
-/* File type flags for d_type */
-#define DT_UNKNOWN  0
-#define DT_REG      S_IFREG
-#define DT_DIR      S_IFDIR
-#define DT_FIFO     S_IFIFO
-#define DT_SOCK     S_IFSOCK
-#define DT_CHR      S_IFCHR
-#define DT_BLK      S_IFBLK
-#define DT_LNK      S_IFLNK
-
-/* Macros for converting between st_mode and d_type */
-#define IFTODT(mode) ((mode) & S_IFMT)
-#define DTTOIF(type) (type)
-
-/*
- * File type macros.  Note that block devices, sockets and links cannot be
- * distinguished on Windows and the macros S_ISBLK, S_ISSOCK and S_ISLNK are
- * only defined for compatibility.  These macros should always return false
- * on Windows.
- */
-#define        S_ISFIFO(mode) (((mode) & S_IFMT) == S_IFIFO)
-#define        S_ISDIR(mode)  (((mode) & S_IFMT) == S_IFDIR)
-#define        S_ISREG(mode)  (((mode) & S_IFMT) == S_IFREG)
-#define        S_ISLNK(mode)  (((mode) & S_IFMT) == S_IFLNK)
-#define        S_ISSOCK(mode) (((mode) & S_IFMT) == S_IFSOCK)
-#define        S_ISCHR(mode)  (((mode) & S_IFMT) == S_IFCHR)
-#define        S_ISBLK(mode)  (((mode) & S_IFMT) == S_IFBLK)
-
-/* Return the exact length of d_namlen without zero terminator */
-#define _D_EXACT_NAMLEN(p) ((p)->d_namlen)
-
-/* Return number of bytes needed to store d_namlen */
-#define _D_ALLOC_NAMLEN(p) (PATH_MAX)
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* Wide-character version */
-struct _wdirent {
-    long d_ino;                                 /* Always zero */
-    unsigned short d_reclen;                    /* Structure size */
-    size_t d_namlen;                            /* Length of name without \0 */
-    int d_type;                                 /* File type */
-    wchar_t d_name[PATH_MAX];                   /* File name */
-};
-typedef struct _wdirent _wdirent;
-
-struct _WDIR {
-    struct _wdirent ent;                        /* Current directory entry */
-    WIN32_FIND_DATAW data;                      /* Private file data */
-    int cached;                                 /* True if data is valid */
-    HANDLE handle;                              /* Win32 search handle */
-    wchar_t *patt;                              /* Initial directory name */
-};
-typedef struct _WDIR _WDIR;
-
-static _WDIR *_wopendir (const wchar_t *dirname);
-static struct _wdirent *_wreaddir (_WDIR *dirp);
-static int _wclosedir (_WDIR *dirp);
-static void _wrewinddir (_WDIR* dirp);
-
-
-/* For compatibility with Symbian */
-#define wdirent _wdirent
-#define WDIR _WDIR
-#define wopendir _wopendir
-#define wreaddir _wreaddir
-#define wclosedir _wclosedir
-#define wrewinddir _wrewinddir
-
-
-/* Multi-byte character versions */
-struct dirent {
-    long d_ino;                                 /* Always zero */
-    unsigned short d_reclen;                    /* Structure size */
-    size_t d_namlen;                            /* Length of name without \0 */
-    int d_type;                                 /* File type */
-    char d_name[PATH_MAX];                      /* File name */
-};
-typedef struct dirent dirent;
-
-struct DIR {
-    struct dirent ent;
-    struct _WDIR *wdirp;
-};
-typedef struct DIR DIR;
-
-static DIR *opendir (const char *dirname);
-static struct dirent *readdir (DIR *dirp);
-static int closedir (DIR *dirp);
-static void rewinddir (DIR* dirp);
-
-
-/* Internal utility functions */
-static WIN32_FIND_DATAW *dirent_first (_WDIR *dirp);
-static WIN32_FIND_DATAW *dirent_next (_WDIR *dirp);
-
-static int dirent_mbstowcs_s(
-    size_t *pReturnValue,
-    wchar_t *wcstr,
-    size_t sizeInWords,
-    const char *mbstr,
-    size_t count);
-
-static int dirent_wcstombs_s(
-    size_t *pReturnValue,
-    char *mbstr,
-    size_t sizeInBytes,
-    const wchar_t *wcstr,
-    size_t count);
-
-static void dirent_set_errno (int error);
-
-/*
- * Open directory stream DIRNAME for read and return a pointer to the
- * internal working area that is used to retrieve individual directory
- * entries.
- */
-static _WDIR*
-_wopendir(
-    const wchar_t *dirname)
-{
-    _WDIR *dirp = NULL;
-    int error;
-
-    /* Must have directory name */
-    if (dirname == NULL  ||  dirname[0] == '\0') {
-        dirent_set_errno (ENOENT);
-        return NULL;
-    }
-
-    /* Allocate new _WDIR structure */
-    dirp = (_WDIR*) malloc (sizeof (struct _WDIR));
-    if (dirp != NULL) {
-        DWORD n;
-
-        /* Reset _WDIR structure */
-        dirp->handle = INVALID_HANDLE_VALUE;
-        dirp->patt = NULL;
-        dirp->cached = 0;
-
-        /* Compute the length of full path plus zero terminator */
-        n = GetFullPathNameW (dirname, 0, NULL, NULL);
-
-        /* Allocate room for absolute directory name and search pattern */
-        dirp->patt = (wchar_t*) malloc (sizeof (wchar_t) * n + 16);
-        if (dirp->patt) {
-
-            /*
-             * Convert relative directory name to an absolute one.  This
-             * allows rewinddir() to function correctly even when current
-             * working directory is changed between opendir() and rewinddir().
-             */
-            n = GetFullPathNameW (dirname, n, dirp->patt, NULL);
-            if (n > 0) {
-                wchar_t *p;
-
-                /* Append search pattern \* to the directory name */
-                p = dirp->patt + n;
-                if (dirp->patt < p) {
-                    switch (p[-1]) {
-                    case '\\':
-                    case '/':
-                    case ':':
-                        /* Directory ends in path separator, e.g. c:\temp\ */
-                        /*NOP*/;
-                        break;
-
-                    default:
-                        /* Directory name doesn't end in path separator */
-                        *p++ = '\\';
-                    }
-                }
-                *p++ = '*';
-                *p = '\0';
-
-                /* Open directory stream and retrieve the first entry */
-                if (dirent_first (dirp)) {
-                    /* Directory stream opened successfully */
-                    error = 0;
-                } else {
-                    /* Cannot retrieve first entry */
-                    error = 1;
-                    dirent_set_errno (ENOENT);
-                }
-
-            } else {
-                /* Cannot retrieve full path name */
-                dirent_set_errno (ENOENT);
-                error = 1;
-            }
-
-        } else {
-            /* Cannot allocate memory for search pattern */
-            error = 1;
-        }
-
-    } else {
-        /* Cannot allocate _WDIR structure */
-        error = 1;
-    }
-
-    /* Clean up in case of error */
-    if (error  &&  dirp) {
-        _wclosedir (dirp);
-        dirp = NULL;
-    }
-
-    return dirp;
-}
-
-/*
- * Read next directory entry.  The directory entry is returned in dirent
- * structure in the d_name field.  Individual directory entries returned by
- * this function include regular files, sub-directories, pseudo-directories
- * "." and ".." as well as volume labels, hidden files and system files.
- */
-static struct _wdirent*
-_wreaddir(
-    _WDIR *dirp)
-{
-    WIN32_FIND_DATAW *datap;
-    struct _wdirent *entp;
-
-    /* Read next directory entry */
-    datap = dirent_next (dirp);
-    if (datap) {
-        size_t n;
-        DWORD attr;
-        
-        /* Pointer to directory entry to return */
-        entp = &dirp->ent;
-
-        /* 
-         * Copy file name as wide-character string.  If the file name is too
-         * long to fit in to the destination buffer, then truncate file name
-         * to PATH_MAX characters and zero-terminate the buffer.
-         */
-        n = 0;
-        while (n + 1 < PATH_MAX  &&  datap->cFileName[n] != 0) {
-            entp->d_name[n] = datap->cFileName[n];
-            n++;
-        }
-        dirp->ent.d_name[n] = 0;
-
-        /* Length of file name excluding zero terminator */
-        entp->d_namlen = n;
-
-        /* File type */
-        attr = datap->dwFileAttributes;
-        if ((attr & FILE_ATTRIBUTE_DEVICE) != 0) {
-            entp->d_type = DT_CHR;
-        } else if ((attr & FILE_ATTRIBUTE_DIRECTORY) != 0) {
-            entp->d_type = DT_DIR;
-        } else {
-            entp->d_type = DT_REG;
-        }
-
-        /* Reset dummy fields */
-        entp->d_ino = 0;
-        entp->d_reclen = sizeof (struct _wdirent);
-
-    } else {
-
-        /* Last directory entry read */
-        entp = NULL;
-
-    }
-
-    return entp;
-}
-
-/*
- * Close directory stream opened by opendir() function.  This invalidates the
- * DIR structure as well as any directory entry read previously by
- * _wreaddir().
- */
-static int
-_wclosedir(
-    _WDIR *dirp)
-{
-    int ok;
-    if (dirp) {
-
-        /* Release search handle */
-        if (dirp->handle != INVALID_HANDLE_VALUE) {
-            FindClose (dirp->handle);
-            dirp->handle = INVALID_HANDLE_VALUE;
-        }
-
-        /* Release search pattern */
-        if (dirp->patt) {
-            free (dirp->patt);
-            dirp->patt = NULL;
-        }
-
-        /* Release directory structure */
-        free (dirp);
-        ok = /*success*/0;
-
-    } else {
-        /* Invalid directory stream */
-        dirent_set_errno (EBADF);
-        ok = /*failure*/-1;
-    }
-    return ok;
-}
-
-/*
- * Rewind directory stream such that _wreaddir() returns the very first
- * file name again.
- */
-static void
-_wrewinddir(
-    _WDIR* dirp)
-{
-    if (dirp) {
-        /* Release existing search handle */
-        if (dirp->handle != INVALID_HANDLE_VALUE) {
-            FindClose (dirp->handle);
-        }
-
-        /* Open new search handle */
-        dirent_first (dirp);
-    }
-}
-
-/* Get first directory entry (internal) */
-static WIN32_FIND_DATAW*
-dirent_first(
-    _WDIR *dirp)
-{
-    WIN32_FIND_DATAW *datap;
-
-    /* Open directory and retrieve the first entry */
-    dirp->handle = FindFirstFileW (dirp->patt, &dirp->data);
-    if (dirp->handle != INVALID_HANDLE_VALUE) {
-
-        /* a directory entry is now waiting in memory */
-        datap = &dirp->data;
-        dirp->cached = 1;
-
-    } else {
-
-        /* Failed to re-open directory: no directory entry in memory */
-        dirp->cached = 0;
-        datap = NULL;
-
-    }
-    return datap;
-}
-
-/* Get next directory entry (internal) */
-static WIN32_FIND_DATAW*
-dirent_next(
-    _WDIR *dirp)
-{
-    WIN32_FIND_DATAW *p;
-
-    /* Get next directory entry */
-    if (dirp->cached != 0) {
-
-        /* A valid directory entry already in memory */
-        p = &dirp->data;
-        dirp->cached = 0;
-
-    } else if (dirp->handle != INVALID_HANDLE_VALUE) {
-
-        /* Get the next directory entry from stream */
-        if (FindNextFileW (dirp->handle, &dirp->data) != FALSE) {
-            /* Got a file */
-            p = &dirp->data;
-        } else {
-            /* The very last entry has been processed or an error occured */
-            FindClose (dirp->handle);
-            dirp->handle = INVALID_HANDLE_VALUE;
-            p = NULL;
-        }
-
-    } else {
-
-        /* End of directory stream reached */
-        p = NULL;
-
-    }
-
-    return p;
-}
-
-/* 
- * Open directory stream using plain old C-string.
- */
-static DIR*
-opendir(
-    const char *dirname) 
-{
-    struct DIR *dirp;
-    int error;
-
-    /* Must have directory name */
-    if (dirname == NULL  ||  dirname[0] == '\0') {
-        dirent_set_errno (ENOENT);
-        return NULL;
-    }
-
-    /* Allocate memory for DIR structure */
-    dirp = (DIR*) malloc (sizeof (struct DIR));
-    if (dirp) {
-        wchar_t wname[PATH_MAX];
-        size_t n;
-
-        /* Convert directory name to wide-character string */
-        error = dirent_mbstowcs_s (&n, wname, PATH_MAX, dirname, PATH_MAX);
-        if (!error) {
-
-            /* Open directory stream using wide-character name */
-            dirp->wdirp = _wopendir (wname);
-            if (dirp->wdirp) {
-                /* Directory stream opened */
-                error = 0;
-            } else {
-                /* Failed to open directory stream */
-                error = 1;
-            }
-
-        } else {
-            /* 
-             * Cannot convert file name to wide-character string.  This
-             * occurs if the string contains invalid multi-byte sequences or
-             * the output buffer is too small to contain the resulting
-             * string.
-             */
-            error = 1;
-        }
-
-    } else {
-        /* Cannot allocate DIR structure */
-        error = 1;
-    }
-
-    /* Clean up in case of error */
-    if (error  &&  dirp) {
-        free (dirp);
-        dirp = NULL;
-    }
-
-    return dirp;
-}
-
-/*
- * Read next directory entry.
- *
- * When working with text consoles, please note that file names returned by
- * readdir() are represented in the default ANSI code page while any output to
- * console is typically formatted on another code page.  Thus, non-ASCII
- * characters in file names will not usually display correctly on console.  The
- * problem can be fixed in two ways: (1) change the character set of console
- * to 1252 using chcp utility and use Lucida Console font, or (2) use
- * _cprintf function when writing to console.  The _cprinf() will re-encode
- * ANSI strings to the console code page so many non-ASCII characters will
- * display correcly.
- */
-static struct dirent*
-readdir(
-    DIR *dirp) 
-{
-    WIN32_FIND_DATAW *datap;
-    struct dirent *entp;
-
-    /* Read next directory entry */
-    datap = dirent_next (dirp->wdirp);
-    if (datap) {
-        size_t n;
-        int error;
-
-        /* Attempt to convert file name to multi-byte string */
-        error = dirent_wcstombs_s(
-            &n, dirp->ent.d_name, PATH_MAX, datap->cFileName, PATH_MAX);
-
-        /* 
-         * If the file name cannot be represented by a multi-byte string,
-         * then attempt to use old 8+3 file name.  This allows traditional
-         * Unix-code to access some file names despite of unicode
-         * characters, although file names may seem unfamiliar to the user.
-         *
-         * Be ware that the code below cannot come up with a short file
-         * name unless the file system provides one.  At least
-         * VirtualBox shared folders fail to do this.
-         */
-        if (error  &&  datap->cAlternateFileName[0] != '\0') {
-            error = dirent_wcstombs_s(
-                &n, dirp->ent.d_name, PATH_MAX, 
-                datap->cAlternateFileName, PATH_MAX);
-        }
-
-        if (!error) {
-            DWORD attr;
-
-            /* Initialize directory entry for return */
-            entp = &dirp->ent;
-
-            /* Length of file name excluding zero terminator */
-            entp->d_namlen = n - 1;
-
-            /* File attributes */
-            attr = datap->dwFileAttributes;
-            if ((attr & FILE_ATTRIBUTE_DEVICE) != 0) {
-                entp->d_type = DT_CHR;
-            } else if ((attr & FILE_ATTRIBUTE_DIRECTORY) != 0) {
-                entp->d_type = DT_DIR;
-            } else {
-                entp->d_type = DT_REG;
-            }
-
-            /* Reset dummy fields */
-            entp->d_ino = 0;
-            entp->d_reclen = sizeof (struct dirent);
-
-        } else {
-            /* 
-             * Cannot convert file name to multi-byte string so construct
-             * an errornous directory entry and return that.  Note that
-             * we cannot return NULL as that would stop the processing
-             * of directory entries completely.
-             */
-            entp = &dirp->ent;
-            entp->d_name[0] = '?';
-            entp->d_name[1] = '\0';
-            entp->d_namlen = 1;
-            entp->d_type = DT_UNKNOWN;
-            entp->d_ino = 0;
-            entp->d_reclen = 0;
-        }
-
-    } else {
-        /* No more directory entries */
-        entp = NULL;
-    }
-
-    return entp;
-}
-
-/*
- * Close directory stream.
- */
-static int
-closedir(
-    DIR *dirp) 
-{
-    int ok;
-    if (dirp) {
-
-        /* Close wide-character directory stream */
-        ok = _wclosedir (dirp->wdirp);
-        dirp->wdirp = NULL;
-
-        /* Release multi-byte character version */
-        free (dirp);
-
-    } else {
-
-        /* Invalid directory stream */
-        dirent_set_errno (EBADF);
-        ok = /*failure*/-1;
-
-    }
-    return ok;
-}
-
-/*
- * Rewind directory stream to beginning.
- */
-static void
-rewinddir(
-    DIR* dirp) 
-{
-    /* Rewind wide-character string directory stream */
-    _wrewinddir (dirp->wdirp);
-}
-
-/* Convert multi-byte string to wide character string */
-static int
-dirent_mbstowcs_s(
-    size_t *pReturnValue,
-    wchar_t *wcstr,
-    size_t sizeInWords,
-    const char *mbstr,
-    size_t count)
-{
-    int error;
-
-#if defined(_MSC_VER)  &&  _MSC_VER >= 1400
-
-    /* Microsoft Visual Studio 2005 or later */
-    error = mbstowcs_s (pReturnValue, wcstr, sizeInWords, mbstr, count);
-
-#else
-
-    /* Older Visual Studio or non-Microsoft compiler */
-    size_t n;
-
-    /* Convert to wide-character string (or count characters) */
-    n = mbstowcs (wcstr, mbstr, sizeInWords);
-    if (!wcstr  ||  n < count) {
-
-        /* Zero-terminate output buffer */
-        if (wcstr  &&  sizeInWords) {
-            if (n >= sizeInWords) {
-                n = sizeInWords - 1;
-            }
-            wcstr[n] = 0;
-        }
-
-        /* Length of resuting multi-byte string WITH zero terminator */
-        if (pReturnValue) {
-            *pReturnValue = n + 1;
-        }
-
-        /* Success */
-        error = 0;
-
-    } else {
-
-        /* Could not convert string */
-        error = 1;
-
-    }
-
-#endif
-
-    return error;
-}
-
-/* Convert wide-character string to multi-byte string */
-static int
-dirent_wcstombs_s(
-    size_t *pReturnValue,
-    char *mbstr,
-    size_t sizeInBytes, /* max size of mbstr */
-    const wchar_t *wcstr,
-    size_t count)
-{
-    int error;
-
-#if defined(_MSC_VER)  &&  _MSC_VER >= 1400
-
-    /* Microsoft Visual Studio 2005 or later */
-    error = wcstombs_s (pReturnValue, mbstr, sizeInBytes, wcstr, count);
-
-#else
-
-    /* Older Visual Studio or non-Microsoft compiler */
-    size_t n;
-
-    /* Convert to multi-byte string (or count the number of bytes needed) */
-    n = wcstombs (mbstr, wcstr, sizeInBytes);
-    if (!mbstr  ||  n < count) {
-
-        /* Zero-terminate output buffer */
-        if (mbstr  &&  sizeInBytes) {
-            if (n >= sizeInBytes) {
-                n = sizeInBytes - 1;
-            }
-            mbstr[n] = '\0';
-        }
-
-        /* Lenght of resulting multi-bytes string WITH zero-terminator */
-        if (pReturnValue) {
-            *pReturnValue = n + 1;
-        }
-
-        /* Success */
-        error = 0;
-
-    } else {
-
-        /* Cannot convert string */
-        error = 1;
-
-    }
-
-#endif
-
-    return error;
-}
-
-/* Set errno variable */
-static void
-dirent_set_errno(
-    int error)
-{
-#if defined(_MSC_VER)  &&  _MSC_VER >= 1400
-
-    /* Microsoft Visual Studio 2005 and later */
-    _set_errno (error);
-
-#else
-
-    /* Non-Microsoft compiler or older Microsoft compiler */
-    errno = error;
-
-#endif
-}
-
-
-#ifdef __cplusplus
-}
-#endif
-
-// florez-l: use the standard linux header
-#else // defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ )
-#include <dirent.h>
-#endif // defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ )
-
-#endif /*__CPPLUGINS_DIRENT___H__*/
-
diff --git a/lib/third_party/tinyxml/CMakeLists.txt b/lib/third_party/tinyxml/CMakeLists.txt
deleted file mode 100644 (file)
index 6579b71..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-SET(lib_NAME cpPlugins_tinyxml2)\r
-SET(lib_DIR  third_party/tinyxml)\r
-\r
-IF(MSVC)\r
-  ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS)\r
-ENDIF(MSVC)\r
-\r
-ADD_LIBRARY(${lib_NAME} SHARED tinyxml2.cpp tinyxml2.h)\r
-SET_TARGET_PROPERTIES(\r
-  ${lib_NAME} PROPERTIES\r
-  VERSION "${prj_VER}"\r
-  SOVERSION "${prj_sVER}"\r
-  )\r
-GENERATE_EXPORT_HEADER(\r
-  ${lib_NAME}\r
-  BASE_NAME ${lib_NAME}\r
-  EXPORT_MACRO_NAME ${lib_NAME}_EXPORT\r
-  EXPORT_FILE_NAME ${PROJECT_BINARY_DIR}/lib/${lib_DIR}/${lib_NAME}_Export.h\r
-  STATIC_DEFINE ${lib_NAME}_BUILT_AS_STATIC\r
-  )\r
-INSTALL(\r
-  TARGETS ${lib_NAME}\r
-  RUNTIME DESTINATION bin\r
-  LIBRARY DESTINATION lib\r
-  ARCHIVE DESTINATION lib/static\r
-  )\r
-INSTALL(\r
-  FILES tinyxml2.h\r
-  DESTINATION include\r
-  )\r
-\r
-## eof - $RCSfile$\r
diff --git a/lib/third_party/tinyxml/readme.md b/lib/third_party/tinyxml/readme.md
deleted file mode 100644 (file)
index 30424c3..0000000
+++ /dev/null
@@ -1,324 +0,0 @@
-TinyXML-2 [![TravisCI Status](https://travis-ci.org/leethomason/tinyxml2.svg?branch=master)](https://travis-ci.org/leethomason/tinyxml2) [![AppVeyor Status](https://ci.appveyor.com/api/projects/status/github/leethomason/tinyxml2?branch=master&svg=true)](https://ci.appveyor.com/project/leethomason/tinyxml2)
-=========
-![TinyXML-2 Logo](http://www.grinninglizard.com/tinyxml2/TinyXML2_small.png)
-
-TinyXML-2 is a simple, small, efficient, C++ XML parser that can be 
-easily integrated into other programs.
-
-The master is hosted on github:
-https://github.com/leethomason/tinyxml2
-
-The online HTML version of these docs:
-http://grinninglizard.com/tinyxml2docs/index.html
-
-Examples are in the "related pages" tab of the HTML docs.
-
-What it does.
--------------
-       
-In brief, TinyXML-2 parses an XML document, and builds from that a 
-Document Object Model (DOM) that can be read, modified, and saved.
-
-XML stands for "eXtensible Markup Language." It is a general purpose
-human and machine readable markup language to describe arbitrary data.
-All those random file formats created to store application data can 
-all be replaced with XML. One parser for everything.
-
-http://en.wikipedia.org/wiki/XML
-
-There are different ways to access and interact with XML data.
-TinyXML-2 uses a Document Object Model (DOM), meaning the XML data is parsed
-into a C++ objects that can be browsed and manipulated, and then 
-written to disk or another output stream. You can also construct an XML document 
-from scratch with C++ objects and write this to disk or another output
-stream. You can even use TinyXML-2 to stream XML programmatically from
-code without creating a document first.
-
-TinyXML-2 is designed to be easy and fast to learn. It is one header and
-one cpp file. Simply add these to your project and off you go. 
-There is an example file - xmltest.cpp - to get you started. 
-
-TinyXML-2 is released under the ZLib license, 
-so you can use it in open source or commercial code. The details
-of the license are at the top of every source file.
-
-TinyXML-2 attempts to be a flexible parser, but with truly correct and
-compliant XML output. TinyXML-2 should compile on any reasonably C++
-compliant system. It does not rely on exceptions, RTTI, or the STL.
-
-What it doesn't do.
--------------------
-
-TinyXML-2 doesn't parse or use DTDs (Document Type Definitions) or XSLs
-(eXtensible Stylesheet Language.) There are other parsers out there 
-that are much more fully featured. But they are also much bigger, 
-take longer to set up in your project, have a higher learning curve, 
-and often have a more restrictive license. If you are working with 
-browsers or have more complete XML needs, TinyXML-2 is not the parser for you.
-
-TinyXML-1 vs. TinyXML-2
------------------------
-
-TinyXML-2 is now the focus of all development, well tested, and your
-best choice unless you have a requirement to maintain TinyXML-1 code.
-
-TinyXML-2 uses a similar API to TinyXML-1 and the same
-rich test cases. But the implementation of the parser is completely re-written
-to make it more appropriate for use in a game. It uses less memory, is faster,
-and uses far fewer memory allocations.
-
-TinyXML-2 has no requirement for STL, but has also dropped all STL support. All
-strings are query and set as 'const char*'. This allows the use of internal 
-allocators, and keeps the code much simpler.
-
-Both parsers:
-
-1.  Simple to use with similar APIs.
-2.  DOM based parser.
-3.  UTF-8 Unicode support. http://en.wikipedia.org/wiki/UTF-8
-
-Advantages of TinyXML-2
-
-1.  The focus of all future dev.
-2.  Many fewer memory allocation (1/10th to 1/100th), uses less memory
-    (about 40% of TinyXML-1), and faster.
-3.  No STL requirement.
-4.  More modern C++, including a proper namespace.
-5.  Proper and useful handling of whitespace
-
-Advantages of TinyXML-1
-
-1.  Can report the location of parsing errors.
-2.  Support for some C++ STL conventions: streams and strings
-3.  Very mature and well debugged code base.
-
-Features
---------
-
-### Memory Model
-
-An XMLDocument is a C++ object like any other, that can be on the stack, or
-new'd and deleted on the heap.
-
-However, any sub-node of the Document, XMLElement, XMLText, etc, can only
-be created by calling the appropriate XMLDocument::NewElement, NewText, etc.
-method. Although you have pointers to these objects, they are still owned
-by the Document. When the Document is deleted, so are all the nodes it contains.
-
-### White Space
-
-#### Whitespace Preservation (default)
-
-Microsoft has an excellent article on white space: http://msdn.microsoft.com/en-us/library/ms256097.aspx
-
-By default, TinyXML-2 preserves white space in a (hopefully) sane way that is almost complient with the
-spec. (TinyXML-1 used a completely different model, much more similar to 'collapse', below.)
-
-As a first step, all newlines / carriage-returns / line-feeds are normalized to a
-line-feed character, as required by the XML spec.
-
-White space in text is preserved. For example:
-
-       <element> Hello,  World</element>
-
-The leading space before the "Hello" and the double space after the comma are 
-preserved. Line-feeds are preserved, as in this example:
-
-       <element> Hello again,  
-                 World</element>
-
-However, white space between elements is **not** preserved. Although not strictly 
-compliant, tracking and reporting inter-element space is awkward, and not normally
-valuable. TinyXML-2 sees these as the same XML:
-
-       <document>
-               <data>1</data>
-               <data>2</data>
-               <data>3</data>
-       </document>
-
-       <document><data>1</data><data>2</data><data>3</data></document>
-
-#### Whitespace Collapse
-
-For some applications, it is preferable to collapse whitespace. Collapsing
-whitespace gives you "HTML-like" behavior, which is sometimes more suitable
-for hand typed documents. 
-
-TinyXML-2 supports this with the 'whitespace' parameter to the XMLDocument constructor.
-(The default is to preserve whitespace, as described above.)
-
-However, you may also use COLLAPSE_WHITESPACE, which will:
-
-* Remove leading and trailing whitespace
-* Convert newlines and line-feeds into a space character
-* Collapse a run of any number of space characters into a single space character
-
-Note that (currently) there is a performance impact for using COLLAPSE_WHITESPACE.
-It essentially causes the XML to be parsed twice.
-
-### Entities
-
-TinyXML-2 recognizes the pre-defined "character entities", meaning special
-characters. Namely:
-
-       &amp;   &
-       &lt;    <
-       &gt;    >
-       &quot;  "
-       &apos;  '
-
-These are recognized when the XML document is read, and translated to their
-UTF-8 equivalents. For instance, text with the XML of:
-
-       Far &amp; Away
-
-will have the Value() of "Far & Away" when queried from the XMLText object,
-and will be written back to the XML stream/file as an ampersand. 
-
-Additionally, any character can be specified by its Unicode code point:
-The syntax `&#xA0;` or `&#160;` are both to the non-breaking space character. 
-This is called a 'numeric character reference'. Any numeric character reference
-that isn't one of the special entities above, will be read, but written as a
-regular code point. The output is correct, but the entity syntax isn't preserved.
-
-### Printing
-
-#### Print to file
-You can directly use the convenience function:
-
-       XMLDocument doc;
-       ...
-       doc.SaveFile( "foo.xml" );
-
-Or the XMLPrinter class:
-
-       XMLPrinter printer( fp );
-       doc.Print( &printer );
-
-#### Print to memory
-Printing to memory is supported by the XMLPrinter.
-
-       XMLPrinter printer;
-       doc.Print( &printer );
-       // printer.CStr() has a const char* to the XML
-
-#### Print without an XMLDocument
-
-When loading, an XML parser is very useful. However, sometimes
-when saving, it just gets in the way. The code is often set up
-for streaming, and constructing the DOM is just overhead.
-
-The Printer supports the streaming case. The following code
-prints out a trivially simple XML file without ever creating
-an XML document.
-
-       XMLPrinter printer( fp );
-       printer.OpenElement( "foo" );
-       printer.PushAttribute( "foo", "bar" );
-       printer.CloseElement();
-
-Examples
---------
-
-#### Load and parse an XML file.
-
-       /* ------ Example 1: Load and parse an XML file. ---- */        
-       {
-               XMLDocument doc;
-               doc.LoadFile( "dream.xml" );
-       }
-
-#### Lookup information.
-
-       /* ------ Example 2: Lookup information. ---- */        
-       {
-               XMLDocument doc;
-               doc.LoadFile( "dream.xml" );
-
-               // Structure of the XML file:
-               // - Element "PLAY"      the root Element, which is the 
-               //                       FirstChildElement of the Document
-               // - - Element "TITLE"   child of the root PLAY Element
-               // - - - Text            child of the TITLE Element
-               
-               // Navigate to the title, using the convenience function,
-               // with a dangerous lack of error checking.
-               const char* title = doc.FirstChildElement( "PLAY" )->FirstChildElement( "TITLE" )->GetText();
-               printf( "Name of play (1): %s\n", title );
-               
-               // Text is just another Node to TinyXML-2. The more
-               // general way to get to the XMLText:
-               XMLText* textNode = doc.FirstChildElement( "PLAY" )->FirstChildElement( "TITLE" )->FirstChild()->ToText();
-               title = textNode->Value();
-               printf( "Name of play (2): %s\n", title );
-       }
-
-Using and Installing
---------------------
-
-There are 2 files in TinyXML-2:
-* tinyxml2.cpp
-* tinyxml2.h
-
-And additionally a test file:
-* xmltest.cpp
-
-Simply compile and run. There is a visual studio 2010 project included, a simple Makefile, 
-an XCode project, a Code::Blocks project, and a cmake CMakeLists.txt included to help you. 
-The top of tinyxml.h even has a simple g++ command line if you are are *nix and don't want 
-to use a build system.
-
-Versioning
-----------
-
-TinyXML-2 uses semantic versioning. http://semver.org/ Releases are now tagged in github.
-
-Note that the major version will (probably) change fairly rapidly. API changes are fairly
-common.
-
-Documentation
--------------
-
-The documentation is build with Doxygen, using the 'dox' 
-configuration file.
-
-License
--------
-
-TinyXML-2 is released under the zlib license:
-
-This software is provided 'as-is', without any express or implied 
-warranty. In no event will the authors be held liable for any 
-damages arising from the use of this software.
-
-Permission is granted to anyone to use this software for any 
-purpose, including commercial applications, and to alter it and 
-redistribute it freely, subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must 
-not claim that you wrote the original software. If you use this 
-software in a product, an acknowledgment in the product documentation 
-would be appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and 
-must not be misrepresented as being the original software.
-3. This notice may not be removed or altered from any source 
-distribution.
-
-Contributors
-------------
-
-Thanks very much to everyone who sends suggestions, bugs, ideas, and 
-encouragement. It all helps, and makes this project fun.
-
-The original TinyXML-1 has many contributors, who all deserve thanks
-in shaping what is a very successful library. Extra thanks to Yves
-Berquin and Andrew Ellerton who were key contributors.
-
-TinyXML-2 grew from that effort. Lee Thomason is the original author
-of TinyXML-2 (and TinyXML-1) but TinyXML-2 has been and is being improved
-by many contributors.
-
-Thanks to John Mackay at http://john.mackay.rosalilastudio.com for the TinyXML-2 logo!
-
-
diff --git a/lib/third_party/tinyxml/tinyxml2.cpp b/lib/third_party/tinyxml/tinyxml2.cpp
deleted file mode 100644 (file)
index df49d0d..0000000
+++ /dev/null
@@ -1,2467 +0,0 @@
-/*\r
-Original code by Lee Thomason (www.grinninglizard.com)\r
-\r
-This software is provided 'as-is', without any express or implied\r
-warranty. In no event will the authors be held liable for any\r
-damages arising from the use of this software.\r
-\r
-Permission is granted to anyone to use this software for any\r
-purpose, including commercial applications, and to alter it and\r
-redistribute it freely, subject to the following restrictions:\r
-\r
-1. The origin of this software must not be misrepresented; you must\r
-not claim that you wrote the original software. If you use this\r
-software in a product, an acknowledgment in the product documentation\r
-would be appreciated but is not required.\r
-\r
-2. Altered source versions must be plainly marked as such, and\r
-must not be misrepresented as being the original software.\r
-\r
-3. This notice may not be removed or altered from any source\r
-distribution.\r
-*/\r
-\r
-#include "tinyxml2.h"\r
-\r
-#include <new>         // yes, this one new style header, is in the Android SDK.\r
-#if defined(ANDROID_NDK) || defined(__QNXNTO__)\r
-#   include <stddef.h>\r
-#   include <stdarg.h>\r
-#else\r
-#   include <cstddef>\r
-#   include <cstdarg>\r
-#endif\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1400 ) && (!defined WINCE)\r
-       // Microsoft Visual Studio, version 2005 and higher. Not WinCE.\r
-       /*int _snprintf_s(\r
-          char *buffer,\r
-          size_t sizeOfBuffer,\r
-          size_t count,\r
-          const char *format [,\r
-                 argument] ...\r
-       );*/\r
-       static inline int TIXML_SNPRINTF( char* buffer, size_t size, const char* format, ... )\r
-       {\r
-               va_list va;\r
-               va_start( va, format );\r
-               int result = vsnprintf_s( buffer, size, _TRUNCATE, format, va );\r
-               va_end( va );\r
-               return result;\r
-       }\r
-\r
-       static inline int TIXML_VSNPRINTF( char* buffer, size_t size, const char* format, va_list va )\r
-       {\r
-               int result = vsnprintf_s( buffer, size, _TRUNCATE, format, va );\r
-               return result;\r
-       }\r
-\r
-       #define TIXML_VSCPRINTF _vscprintf\r
-       #define TIXML_SSCANF    sscanf_s\r
-#elif defined _MSC_VER\r
-       // Microsoft Visual Studio 2003 and earlier or WinCE\r
-       #define TIXML_SNPRINTF  _snprintf\r
-       #define TIXML_VSNPRINTF _vsnprintf\r
-       #define TIXML_SSCANF    sscanf\r
-       #if (_MSC_VER < 1400 ) && (!defined WINCE)\r
-               // Microsoft Visual Studio 2003 and not WinCE.\r
-               #define TIXML_VSCPRINTF   _vscprintf // VS2003's C runtime has this, but VC6 C runtime or WinCE SDK doesn't have.\r
-       #else\r
-               // Microsoft Visual Studio 2003 and earlier or WinCE.\r
-               static inline int TIXML_VSCPRINTF( const char* format, va_list va )\r
-               {\r
-                       int len = 512;\r
-                       for (;;) {\r
-                               len = len*2;\r
-                               char* str = new char[len]();\r
-                               const int required = _vsnprintf(str, len, format, va);\r
-                               delete[] str;\r
-                               if ( required != -1 ) {\r
-                                       TIXMLASSERT( required >= 0 );\r
-                                       len = required;\r
-                                       break;\r
-                               }\r
-                       }\r
-                       TIXMLASSERT( len >= 0 );\r
-                       return len;\r
-               }\r
-       #endif\r
-#else\r
-       // GCC version 3 and higher\r
-       //#warning( "Using sn* functions." )\r
-       #define TIXML_SNPRINTF  snprintf\r
-       #define TIXML_VSNPRINTF vsnprintf\r
-       static inline int TIXML_VSCPRINTF( const char* format, va_list va )\r
-       {\r
-               int len = vsnprintf( 0, 0, format, va );\r
-               TIXMLASSERT( len >= 0 );\r
-               return len;\r
-       }\r
-       #define TIXML_SSCANF   sscanf\r
-#endif\r
-\r
-\r
-static const char LINE_FEED                            = (char)0x0a;                   // all line endings are normalized to LF\r
-static const char LF = LINE_FEED;\r
-static const char CARRIAGE_RETURN              = (char)0x0d;                   // CR gets filtered out\r
-static const char CR = CARRIAGE_RETURN;\r
-static const char SINGLE_QUOTE                 = '\'';\r
-static const char DOUBLE_QUOTE                 = '\"';\r
-\r
-// Bunch of unicode info at:\r
-//             http://www.unicode.org/faq/utf_bom.html\r
-//     ef bb bf (Microsoft "lead bytes") - designates UTF-8\r
-\r
-static const unsigned char TIXML_UTF_LEAD_0 = 0xefU;\r
-static const unsigned char TIXML_UTF_LEAD_1 = 0xbbU;\r
-static const unsigned char TIXML_UTF_LEAD_2 = 0xbfU;\r
-\r
-namespace tinyxml2\r
-{\r
-\r
-struct Entity {\r
-    const char* pattern;\r
-    int length;\r
-    char value;\r
-};\r
-\r
-static const int NUM_ENTITIES = 5;\r
-static const Entity entities[NUM_ENTITIES] = {\r
-    { "quot", 4,       DOUBLE_QUOTE },\r
-    { "amp", 3,                '&'  },\r
-    { "apos", 4,       SINGLE_QUOTE },\r
-    { "lt",    2,              '<'      },\r
-    { "gt",    2,              '>'      }\r
-};\r
-\r
-\r
-StrPair::~StrPair()\r
-{\r
-    Reset();\r
-}\r
-\r
-\r
-void StrPair::TransferTo( StrPair* other )\r
-{\r
-    if ( this == other ) {\r
-        return;\r
-    }\r
-    // This in effect implements the assignment operator by "moving"\r
-    // ownership (as in auto_ptr).\r
-\r
-    TIXMLASSERT( other->_flags == 0 );\r
-    TIXMLASSERT( other->_start == 0 );\r
-    TIXMLASSERT( other->_end == 0 );\r
-\r
-    other->Reset();\r
-\r
-    other->_flags = _flags;\r
-    other->_start = _start;\r
-    other->_end = _end;\r
-\r
-    _flags = 0;\r
-    _start = 0;\r
-    _end = 0;\r
-}\r
-\r
-void StrPair::Reset()\r
-{\r
-    if ( _flags & NEEDS_DELETE ) {\r
-        delete [] _start;\r
-    }\r
-    _flags = 0;\r
-    _start = 0;\r
-    _end = 0;\r
-}\r
-\r
-\r
-void StrPair::SetStr( const char* str, int flags )\r
-{\r
-    TIXMLASSERT( str );\r
-    Reset();\r
-    size_t len = strlen( str );\r
-    TIXMLASSERT( _start == 0 );\r
-    _start = new char[ len+1 ];\r
-    memcpy( _start, str, len+1 );\r
-    _end = _start + len;\r
-    _flags = flags | NEEDS_DELETE;\r
-}\r
-\r
-\r
-char* StrPair::ParseText( char* p, const char* endTag, int strFlags )\r
-{\r
-    TIXMLASSERT( endTag && *endTag );\r
-\r
-    char* start = p;\r
-    char  endChar = *endTag;\r
-    size_t length = strlen( endTag );\r
-\r
-    // Inner loop of text parsing.\r
-    while ( *p ) {\r
-        if ( *p == endChar && strncmp( p, endTag, length ) == 0 ) {\r
-            Set( start, p, strFlags );\r
-            return p + length;\r
-        }\r
-        ++p;\r
-    }\r
-    return 0;\r
-}\r
-\r
-\r
-char* StrPair::ParseName( char* p )\r
-{\r
-    if ( !p || !(*p) ) {\r
-        return 0;\r
-    }\r
-    if ( !XMLUtil::IsNameStartChar( *p ) ) {\r
-        return 0;\r
-    }\r
-\r
-    char* const start = p;\r
-    ++p;\r
-    while ( *p && XMLUtil::IsNameChar( *p ) ) {\r
-        ++p;\r
-    }\r
-\r
-    Set( start, p, 0 );\r
-    return p;\r
-}\r
-\r
-\r
-void StrPair::CollapseWhitespace()\r
-{\r
-    // Adjusting _start would cause undefined behavior on delete[]\r
-    TIXMLASSERT( ( _flags & NEEDS_DELETE ) == 0 );\r
-    // Trim leading space.\r
-    _start = XMLUtil::SkipWhiteSpace( _start );\r
-\r
-    if ( *_start ) {\r
-        char* p = _start;      // the read pointer\r
-        char* q = _start;      // the write pointer\r
-\r
-        while( *p ) {\r
-            if ( XMLUtil::IsWhiteSpace( *p )) {\r
-                p = XMLUtil::SkipWhiteSpace( p );\r
-                if ( *p == 0 ) {\r
-                    break;    // don't write to q; this trims the trailing space.\r
-                }\r
-                *q = ' ';\r
-                ++q;\r
-            }\r
-            *q = *p;\r
-            ++q;\r
-            ++p;\r
-        }\r
-        *q = 0;\r
-    }\r
-}\r
-\r
-\r
-const char* StrPair::GetStr()\r
-{\r
-    TIXMLASSERT( _start );\r
-    TIXMLASSERT( _end );\r
-    if ( _flags & NEEDS_FLUSH ) {\r
-        *_end = 0;\r
-        _flags ^= NEEDS_FLUSH;\r
-\r
-        if ( _flags ) {\r
-            char* p = _start;  // the read pointer\r
-            char* q = _start;  // the write pointer\r
-\r
-            while( p < _end ) {\r
-                if ( (_flags & NEEDS_NEWLINE_NORMALIZATION) && *p == CR ) {\r
-                    // CR-LF pair becomes LF\r
-                    // CR alone becomes LF\r
-                    // LF-CR becomes LF\r
-                    if ( *(p+1) == LF ) {\r
-                        p += 2;\r
-                    }\r
-                    else {\r
-                        ++p;\r
-                    }\r
-                    *q++ = LF;\r
-                }\r
-                else if ( (_flags & NEEDS_NEWLINE_NORMALIZATION) && *p == LF ) {\r
-                    if ( *(p+1) == CR ) {\r
-                        p += 2;\r
-                    }\r
-                    else {\r
-                        ++p;\r
-                    }\r
-                    *q++ = LF;\r
-                }\r
-                else if ( (_flags & NEEDS_ENTITY_PROCESSING) && *p == '&' ) {\r
-                    // Entities handled by tinyXML2:\r
-                    // - special entities in the entity table [in/out]\r
-                    // - numeric character reference [in]\r
-                    //   &#20013; or &#x4e2d;\r
-\r
-                    if ( *(p+1) == '#' ) {\r
-                        const int buflen = 10;\r
-                        char buf[buflen] = { 0 };\r
-                        int len = 0;\r
-                        char* adjusted = const_cast<char*>( XMLUtil::GetCharacterRef( p, buf, &len ) );\r
-                        if ( adjusted == 0 ) {\r
-                            *q = *p;\r
-                            ++p;\r
-                            ++q;\r
-                        }\r
-                        else {\r
-                            TIXMLASSERT( 0 <= len && len <= buflen );\r
-                            TIXMLASSERT( q + len <= adjusted );\r
-                            p = adjusted;\r
-                            memcpy( q, buf, len );\r
-                            q += len;\r
-                        }\r
-                    }\r
-                    else {\r
-                        bool entityFound = false;\r
-                        for( int i = 0; i < NUM_ENTITIES; ++i ) {\r
-                            const Entity& entity = entities[i];\r
-                            if ( strncmp( p + 1, entity.pattern, entity.length ) == 0\r
-                                    && *( p + entity.length + 1 ) == ';' ) {\r
-                                // Found an entity - convert.\r
-                                *q = entity.value;\r
-                                ++q;\r
-                                p += entity.length + 2;\r
-                                entityFound = true;\r
-                                break;\r
-                            }\r
-                        }\r
-                        if ( !entityFound ) {\r
-                            // fixme: treat as error?\r
-                            ++p;\r
-                            ++q;\r
-                        }\r
-                    }\r
-                }\r
-                else {\r
-                    *q = *p;\r
-                    ++p;\r
-                    ++q;\r
-                }\r
-            }\r
-            *q = 0;\r
-        }\r
-        // The loop below has plenty going on, and this\r
-        // is a less useful mode. Break it out.\r
-        if ( _flags & NEEDS_WHITESPACE_COLLAPSING ) {\r
-            CollapseWhitespace();\r
-        }\r
-        _flags = (_flags & NEEDS_DELETE);\r
-    }\r
-    TIXMLASSERT( _start );\r
-    return _start;\r
-}\r
-\r
-\r
-\r
-\r
-// --------- XMLUtil ----------- //\r
-\r
-const char* XMLUtil::ReadBOM( const char* p, bool* bom )\r
-{\r
-    TIXMLASSERT( p );\r
-    TIXMLASSERT( bom );\r
-    *bom = false;\r
-    const unsigned char* pu = reinterpret_cast<const unsigned char*>(p);\r
-    // Check for BOM:\r
-    if (    *(pu+0) == TIXML_UTF_LEAD_0\r
-            && *(pu+1) == TIXML_UTF_LEAD_1\r
-            && *(pu+2) == TIXML_UTF_LEAD_2 ) {\r
-        *bom = true;\r
-        p += 3;\r
-    }\r
-    TIXMLASSERT( p );\r
-    return p;\r
-}\r
-\r
-\r
-void XMLUtil::ConvertUTF32ToUTF8( unsigned long input, char* output, int* length )\r
-{\r
-    const unsigned long BYTE_MASK = 0xBF;\r
-    const unsigned long BYTE_MARK = 0x80;\r
-    const unsigned long FIRST_BYTE_MARK[7] = { 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC };\r
-\r
-    if (input < 0x80) {\r
-        *length = 1;\r
-    }\r
-    else if ( input < 0x800 ) {\r
-        *length = 2;\r
-    }\r
-    else if ( input < 0x10000 ) {\r
-        *length = 3;\r
-    }\r
-    else if ( input < 0x200000 ) {\r
-        *length = 4;\r
-    }\r
-    else {\r
-        *length = 0;    // This code won't convert this correctly anyway.\r
-        return;\r
-    }\r
-\r
-    output += *length;\r
-\r
-    // Scary scary fall throughs.\r
-    switch (*length) {\r
-        case 4:\r
-            --output;\r
-            *output = (char)((input | BYTE_MARK) & BYTE_MASK);\r
-            input >>= 6;\r
-        case 3:\r
-            --output;\r
-            *output = (char)((input | BYTE_MARK) & BYTE_MASK);\r
-            input >>= 6;\r
-        case 2:\r
-            --output;\r
-            *output = (char)((input | BYTE_MARK) & BYTE_MASK);\r
-            input >>= 6;\r
-        case 1:\r
-            --output;\r
-            *output = (char)(input | FIRST_BYTE_MARK[*length]);\r
-            break;\r
-        default:\r
-            TIXMLASSERT( false );\r
-    }\r
-}\r
-\r
-\r
-const char* XMLUtil::GetCharacterRef( const char* p, char* value, int* length )\r
-{\r
-    // Presume an entity, and pull it out.\r
-    *length = 0;\r
-\r
-    if ( *(p+1) == '#' && *(p+2) ) {\r
-        unsigned long ucs = 0;\r
-        TIXMLASSERT( sizeof( ucs ) >= 4 );\r
-        ptrdiff_t delta = 0;\r
-        unsigned mult = 1;\r
-        static const char SEMICOLON = ';';\r
-\r
-        if ( *(p+2) == 'x' ) {\r
-            // Hexadecimal.\r
-            const char* q = p+3;\r
-            if ( !(*q) ) {\r
-                return 0;\r
-            }\r
-\r
-            q = strchr( q, SEMICOLON );\r
-\r
-            if ( !q ) {\r
-                return 0;\r
-            }\r
-            TIXMLASSERT( *q == SEMICOLON );\r
-\r
-            delta = q-p;\r
-            --q;\r
-\r
-            while ( *q != 'x' ) {\r
-                unsigned int digit = 0;\r
-\r
-                if ( *q >= '0' && *q <= '9' ) {\r
-                    digit = *q - '0';\r
-                }\r
-                else if ( *q >= 'a' && *q <= 'f' ) {\r
-                    digit = *q - 'a' + 10;\r
-                }\r
-                else if ( *q >= 'A' && *q <= 'F' ) {\r
-                    digit = *q - 'A' + 10;\r
-                }\r
-                else {\r
-                    return 0;\r
-                }\r
-                TIXMLASSERT( digit >= 0 && digit < 16);\r
-                TIXMLASSERT( digit == 0 || mult <= UINT_MAX / digit );\r
-                const unsigned int digitScaled = mult * digit;\r
-                TIXMLASSERT( ucs <= ULONG_MAX - digitScaled );\r
-                ucs += digitScaled;\r
-                TIXMLASSERT( mult <= UINT_MAX / 16 );\r
-                mult *= 16;\r
-                --q;\r
-            }\r
-        }\r
-        else {\r
-            // Decimal.\r
-            const char* q = p+2;\r
-            if ( !(*q) ) {\r
-                return 0;\r
-            }\r
-\r
-            q = strchr( q, SEMICOLON );\r
-\r
-            if ( !q ) {\r
-                return 0;\r
-            }\r
-            TIXMLASSERT( *q == SEMICOLON );\r
-\r
-            delta = q-p;\r
-            --q;\r
-\r
-            while ( *q != '#' ) {\r
-                if ( *q >= '0' && *q <= '9' ) {\r
-                    const unsigned int digit = *q - '0';\r
-                    TIXMLASSERT( digit >= 0 && digit < 10);\r
-                    TIXMLASSERT( digit == 0 || mult <= UINT_MAX / digit );\r
-                    const unsigned int digitScaled = mult * digit;\r
-                    TIXMLASSERT( ucs <= ULONG_MAX - digitScaled );\r
-                    ucs += digitScaled;\r
-                }\r
-                else {\r
-                    return 0;\r
-                }\r
-                TIXMLASSERT( mult <= UINT_MAX / 10 );\r
-                mult *= 10;\r
-                --q;\r
-            }\r
-        }\r
-        // convert the UCS to UTF-8\r
-        ConvertUTF32ToUTF8( ucs, value, length );\r
-        return p + delta + 1;\r
-    }\r
-    return p+1;\r
-}\r
-\r
-\r
-void XMLUtil::ToStr( int v, char* buffer, int bufferSize )\r
-{\r
-    TIXML_SNPRINTF( buffer, bufferSize, "%d", v );\r
-}\r
-\r
-\r
-void XMLUtil::ToStr( unsigned v, char* buffer, int bufferSize )\r
-{\r
-    TIXML_SNPRINTF( buffer, bufferSize, "%u", v );\r
-}\r
-\r
-\r
-void XMLUtil::ToStr( bool v, char* buffer, int bufferSize )\r
-{\r
-    TIXML_SNPRINTF( buffer, bufferSize, "%d", v ? 1 : 0 );\r
-}\r
-\r
-/*\r
-       ToStr() of a number is a very tricky topic.\r
-       https://github.com/leethomason/tinyxml2/issues/106\r
-*/\r
-void XMLUtil::ToStr( float v, char* buffer, int bufferSize )\r
-{\r
-    TIXML_SNPRINTF( buffer, bufferSize, "%.8g", v );\r
-}\r
-\r
-\r
-void XMLUtil::ToStr( double v, char* buffer, int bufferSize )\r
-{\r
-    TIXML_SNPRINTF( buffer, bufferSize, "%.17g", v );\r
-}\r
-\r
-\r
-bool XMLUtil::ToInt( const char* str, int* value )\r
-{\r
-    if ( TIXML_SSCANF( str, "%d", value ) == 1 ) {\r
-        return true;\r
-    }\r
-    return false;\r
-}\r
-\r
-bool XMLUtil::ToUnsigned( const char* str, unsigned *value )\r
-{\r
-    if ( TIXML_SSCANF( str, "%u", value ) == 1 ) {\r
-        return true;\r
-    }\r
-    return false;\r
-}\r
-\r
-bool XMLUtil::ToBool( const char* str, bool* value )\r
-{\r
-    int ival = 0;\r
-    if ( ToInt( str, &ival )) {\r
-        *value = (ival==0) ? false : true;\r
-        return true;\r
-    }\r
-    if ( StringEqual( str, "true" ) ) {\r
-        *value = true;\r
-        return true;\r
-    }\r
-    else if ( StringEqual( str, "false" ) ) {\r
-        *value = false;\r
-        return true;\r
-    }\r
-    return false;\r
-}\r
-\r
-\r
-bool XMLUtil::ToFloat( const char* str, float* value )\r
-{\r
-    if ( TIXML_SSCANF( str, "%f", value ) == 1 ) {\r
-        return true;\r
-    }\r
-    return false;\r
-}\r
-\r
-bool XMLUtil::ToDouble( const char* str, double* value )\r
-{\r
-    if ( TIXML_SSCANF( str, "%lf", value ) == 1 ) {\r
-        return true;\r
-    }\r
-    return false;\r
-}\r
-\r
-\r
-char* XMLDocument::Identify( char* p, XMLNode** node )\r
-{\r
-    TIXMLASSERT( node );\r
-    TIXMLASSERT( p );\r
-    char* const start = p;\r
-    p = XMLUtil::SkipWhiteSpace( p );\r
-    if( !*p ) {\r
-        *node = 0;\r
-        TIXMLASSERT( p );\r
-        return p;\r
-    }\r
-\r
-    // These strings define the matching patterns:\r
-    static const char* xmlHeader               = { "<?" };\r
-    static const char* commentHeader   = { "<!--" };\r
-    static const char* cdataHeader             = { "<![CDATA[" };\r
-    static const char* dtdHeader               = { "<!" };\r
-    static const char* elementHeader   = { "<" };      // and a header for everything else; check last.\r
-\r
-    static const int xmlHeaderLen              = 2;\r
-    static const int commentHeaderLen  = 4;\r
-    static const int cdataHeaderLen            = 9;\r
-    static const int dtdHeaderLen              = 2;\r
-    static const int elementHeaderLen  = 1;\r
-\r
-    TIXMLASSERT( sizeof( XMLComment ) == sizeof( XMLUnknown ) );               // use same memory pool\r
-    TIXMLASSERT( sizeof( XMLComment ) == sizeof( XMLDeclaration ) );   // use same memory pool\r
-    XMLNode* returnNode = 0;\r
-    if ( XMLUtil::StringEqual( p, xmlHeader, xmlHeaderLen ) ) {\r
-        TIXMLASSERT( sizeof( XMLDeclaration ) == _commentPool.ItemSize() );\r
-        returnNode = new (_commentPool.Alloc()) XMLDeclaration( this );\r
-        returnNode->_memPool = &_commentPool;\r
-        p += xmlHeaderLen;\r
-    }\r
-    else if ( XMLUtil::StringEqual( p, commentHeader, commentHeaderLen ) ) {\r
-        TIXMLASSERT( sizeof( XMLComment ) == _commentPool.ItemSize() );\r
-        returnNode = new (_commentPool.Alloc()) XMLComment( this );\r
-        returnNode->_memPool = &_commentPool;\r
-        p += commentHeaderLen;\r
-    }\r
-    else if ( XMLUtil::StringEqual( p, cdataHeader, cdataHeaderLen ) ) {\r
-        TIXMLASSERT( sizeof( XMLText ) == _textPool.ItemSize() );\r
-        XMLText* text = new (_textPool.Alloc()) XMLText( this );\r
-        returnNode = text;\r
-        returnNode->_memPool = &_textPool;\r
-        p += cdataHeaderLen;\r
-        text->SetCData( true );\r
-    }\r
-    else if ( XMLUtil::StringEqual( p, dtdHeader, dtdHeaderLen ) ) {\r
-        TIXMLASSERT( sizeof( XMLUnknown ) == _commentPool.ItemSize() );\r
-        returnNode = new (_commentPool.Alloc()) XMLUnknown( this );\r
-        returnNode->_memPool = &_commentPool;\r
-        p += dtdHeaderLen;\r
-    }\r
-    else if ( XMLUtil::StringEqual( p, elementHeader, elementHeaderLen ) ) {\r
-        TIXMLASSERT( sizeof( XMLElement ) == _elementPool.ItemSize() );\r
-        returnNode = new (_elementPool.Alloc()) XMLElement( this );\r
-        returnNode->_memPool = &_elementPool;\r
-        p += elementHeaderLen;\r
-    }\r
-    else {\r
-        TIXMLASSERT( sizeof( XMLText ) == _textPool.ItemSize() );\r
-        returnNode = new (_textPool.Alloc()) XMLText( this );\r
-        returnNode->_memPool = &_textPool;\r
-        p = start;     // Back it up, all the text counts.\r
-    }\r
-\r
-    TIXMLASSERT( returnNode );\r
-    TIXMLASSERT( p );\r
-    *node = returnNode;\r
-    return p;\r
-}\r
-\r
-\r
-bool XMLDocument::Accept( XMLVisitor* visitor ) const\r
-{\r
-    TIXMLASSERT( visitor );\r
-    if ( visitor->VisitEnter( *this ) ) {\r
-        for ( const XMLNode* node=FirstChild(); node; node=node->NextSibling() ) {\r
-            if ( !node->Accept( visitor ) ) {\r
-                break;\r
-            }\r
-        }\r
-    }\r
-    return visitor->VisitExit( *this );\r
-}\r
-\r
-\r
-// --------- XMLNode ----------- //\r
-\r
-XMLNode::XMLNode( XMLDocument* doc ) :\r
-    _document( doc ),\r
-    _parent( 0 ),\r
-    _firstChild( 0 ), _lastChild( 0 ),\r
-    _prev( 0 ), _next( 0 ),\r
-    _memPool( 0 )\r
-{\r
-}\r
-\r
-\r
-XMLNode::~XMLNode()\r
-{\r
-    DeleteChildren();\r
-    if ( _parent ) {\r
-        _parent->Unlink( this );\r
-    }\r
-}\r
-\r
-const char* XMLNode::Value() const \r
-{\r
-    // Catch an edge case: XMLDocuments don't have a a Value. Carefully return nullptr.\r
-    if ( this->ToDocument() )\r
-        return 0;\r
-    return _value.GetStr();\r
-}\r
-\r
-void XMLNode::SetValue( const char* str, bool staticMem )\r
-{\r
-    if ( staticMem ) {\r
-        _value.SetInternedStr( str );\r
-    }\r
-    else {\r
-        _value.SetStr( str );\r
-    }\r
-}\r
-\r
-\r
-void XMLNode::DeleteChildren()\r
-{\r
-    while( _firstChild ) {\r
-        TIXMLASSERT( _lastChild );\r
-        TIXMLASSERT( _firstChild->_document == _document );\r
-        XMLNode* node = _firstChild;\r
-        Unlink( node );\r
-\r
-        DeleteNode( node );\r
-    }\r
-    _firstChild = _lastChild = 0;\r
-}\r
-\r
-\r
-void XMLNode::Unlink( XMLNode* child )\r
-{\r
-    TIXMLASSERT( child );\r
-    TIXMLASSERT( child->_document == _document );\r
-    TIXMLASSERT( child->_parent == this );\r
-    if ( child == _firstChild ) {\r
-        _firstChild = _firstChild->_next;\r
-    }\r
-    if ( child == _lastChild ) {\r
-        _lastChild = _lastChild->_prev;\r
-    }\r
-\r
-    if ( child->_prev ) {\r
-        child->_prev->_next = child->_next;\r
-    }\r
-    if ( child->_next ) {\r
-        child->_next->_prev = child->_prev;\r
-    }\r
-       child->_parent = 0;\r
-}\r
-\r
-\r
-void XMLNode::DeleteChild( XMLNode* node )\r
-{\r
-    TIXMLASSERT( node );\r
-    TIXMLASSERT( node->_document == _document );\r
-    TIXMLASSERT( node->_parent == this );\r
-    Unlink( node );\r
-    DeleteNode( node );\r
-}\r
-\r
-\r
-XMLNode* XMLNode::InsertEndChild( XMLNode* addThis )\r
-{\r
-    TIXMLASSERT( addThis );\r
-    if ( addThis->_document != _document ) {\r
-        TIXMLASSERT( false );\r
-        return 0;\r
-    }\r
-    InsertChildPreamble( addThis );\r
-\r
-    if ( _lastChild ) {\r
-        TIXMLASSERT( _firstChild );\r
-        TIXMLASSERT( _lastChild->_next == 0 );\r
-        _lastChild->_next = addThis;\r
-        addThis->_prev = _lastChild;\r
-        _lastChild = addThis;\r
-\r
-        addThis->_next = 0;\r
-    }\r
-    else {\r
-        TIXMLASSERT( _firstChild == 0 );\r
-        _firstChild = _lastChild = addThis;\r
-\r
-        addThis->_prev = 0;\r
-        addThis->_next = 0;\r
-    }\r
-    addThis->_parent = this;\r
-    return addThis;\r
-}\r
-\r
-\r
-XMLNode* XMLNode::InsertFirstChild( XMLNode* addThis )\r
-{\r
-    TIXMLASSERT( addThis );\r
-    if ( addThis->_document != _document ) {\r
-        TIXMLASSERT( false );\r
-        return 0;\r
-    }\r
-    InsertChildPreamble( addThis );\r
-\r
-    if ( _firstChild ) {\r
-        TIXMLASSERT( _lastChild );\r
-        TIXMLASSERT( _firstChild->_prev == 0 );\r
-\r
-        _firstChild->_prev = addThis;\r
-        addThis->_next = _firstChild;\r
-        _firstChild = addThis;\r
-\r
-        addThis->_prev = 0;\r
-    }\r
-    else {\r
-        TIXMLASSERT( _lastChild == 0 );\r
-        _firstChild = _lastChild = addThis;\r
-\r
-        addThis->_prev = 0;\r
-        addThis->_next = 0;\r
-    }\r
-    addThis->_parent = this;\r
-    return addThis;\r
-}\r
-\r
-\r
-XMLNode* XMLNode::InsertAfterChild( XMLNode* afterThis, XMLNode* addThis )\r
-{\r
-    TIXMLASSERT( addThis );\r
-    if ( addThis->_document != _document ) {\r
-        TIXMLASSERT( false );\r
-        return 0;\r
-    }\r
-\r
-    TIXMLASSERT( afterThis );\r
-\r
-    if ( afterThis->_parent != this ) {\r
-        TIXMLASSERT( false );\r
-        return 0;\r
-    }\r
-\r
-    if ( afterThis->_next == 0 ) {\r
-        // The last node or the only node.\r
-        return InsertEndChild( addThis );\r
-    }\r
-    InsertChildPreamble( addThis );\r
-    addThis->_prev = afterThis;\r
-    addThis->_next = afterThis->_next;\r
-    afterThis->_next->_prev = addThis;\r
-    afterThis->_next = addThis;\r
-    addThis->_parent = this;\r
-    return addThis;\r
-}\r
-\r
-\r
-\r
-\r
-const XMLElement* XMLNode::FirstChildElement( const char* name ) const\r
-{\r
-    for( const XMLNode* node = _firstChild; node; node = node->_next ) {\r
-        const XMLElement* element = node->ToElement();\r
-        if ( element ) {\r
-            if ( !name || XMLUtil::StringEqual( element->Name(), name ) ) {\r
-                return element;\r
-            }\r
-        }\r
-    }\r
-    return 0;\r
-}\r
-\r
-\r
-const XMLElement* XMLNode::LastChildElement( const char* name ) const\r
-{\r
-    for( const XMLNode* node = _lastChild; node; node = node->_prev ) {\r
-        const XMLElement* element = node->ToElement();\r
-        if ( element ) {\r
-            if ( !name || XMLUtil::StringEqual( element->Name(), name ) ) {\r
-                return element;\r
-            }\r
-        }\r
-    }\r
-    return 0;\r
-}\r
-\r
-\r
-const XMLElement* XMLNode::NextSiblingElement( const char* name ) const\r
-{\r
-    for( const XMLNode* node = _next; node; node = node->_next ) {\r
-        const XMLElement* element = node->ToElement();\r
-        if ( element\r
-                && (!name || XMLUtil::StringEqual( name, element->Name() ))) {\r
-            return element;\r
-        }\r
-    }\r
-    return 0;\r
-}\r
-\r
-\r
-const XMLElement* XMLNode::PreviousSiblingElement( const char* name ) const\r
-{\r
-    for( const XMLNode* node = _prev; node; node = node->_prev ) {\r
-        const XMLElement* element = node->ToElement();\r
-        if ( element\r
-                && (!name || XMLUtil::StringEqual( name, element->Name() ))) {\r
-            return element;\r
-        }\r
-    }\r
-    return 0;\r
-}\r
-\r
-\r
-char* XMLNode::ParseDeep( char* p, StrPair* parentEnd )\r
-{\r
-    // This is a recursive method, but thinking about it "at the current level"\r
-    // it is a pretty simple flat list:\r
-    //         <foo/>\r
-    //         <!-- comment -->\r
-    //\r
-    // With a special case:\r
-    //         <foo>\r
-    //         </foo>\r
-    //         <!-- comment -->\r
-    //\r
-    // Where the closing element (/foo) *must* be the next thing after the opening\r
-    // element, and the names must match. BUT the tricky bit is that the closing\r
-    // element will be read by the child.\r
-    //\r
-    // 'endTag' is the end tag for this node, it is returned by a call to a child.\r
-    // 'parentEnd' is the end tag for the parent, which is filled in and returned.\r
-\r
-    while( p && *p ) {\r
-        XMLNode* node = 0;\r
-\r
-        p = _document->Identify( p, &node );\r
-        if ( node == 0 ) {\r
-            break;\r
-        }\r
-\r
-        StrPair endTag;\r
-        p = node->ParseDeep( p, &endTag );\r
-        if ( !p ) {\r
-            DeleteNode( node );\r
-            if ( !_document->Error() ) {\r
-                _document->SetError( XML_ERROR_PARSING, 0, 0 );\r
-            }\r
-            break;\r
-        }\r
-\r
-        XMLDeclaration* decl = node->ToDeclaration();\r
-        if ( decl ) {\r
-                // A declaration can only be the first child of a document.\r
-                // Set error, if document already has children.\r
-                if ( !_document->NoChildren() ) {\r
-                        _document->SetError( XML_ERROR_PARSING_DECLARATION, decl->Value(), 0);\r
-                        DeleteNode( decl );\r
-                        break;\r
-                }\r
-        }\r
-\r
-        XMLElement* ele = node->ToElement();\r
-        if ( ele ) {\r
-            // We read the end tag. Return it to the parent.\r
-            if ( ele->ClosingType() == XMLElement::CLOSING ) {\r
-                if ( parentEnd ) {\r
-                    ele->_value.TransferTo( parentEnd );\r
-                }\r
-                node->_memPool->SetTracked();   // created and then immediately deleted.\r
-                DeleteNode( node );\r
-                return p;\r
-            }\r
-\r
-            // Handle an end tag returned to this level.\r
-            // And handle a bunch of annoying errors.\r
-            bool mismatch = false;\r
-            if ( endTag.Empty() ) {\r
-                if ( ele->ClosingType() == XMLElement::OPEN ) {\r
-                    mismatch = true;\r
-                }\r
-            }\r
-            else {\r
-                if ( ele->ClosingType() != XMLElement::OPEN ) {\r
-                    mismatch = true;\r
-                }\r
-                else if ( !XMLUtil::StringEqual( endTag.GetStr(), ele->Name() ) ) {\r
-                    mismatch = true;\r
-                }\r
-            }\r
-            if ( mismatch ) {\r
-                _document->SetError( XML_ERROR_MISMATCHED_ELEMENT, ele->Name(), 0 );\r
-                DeleteNode( node );\r
-                break;\r
-            }\r
-        }\r
-        InsertEndChild( node );\r
-    }\r
-    return 0;\r
-}\r
-\r
-void XMLNode::DeleteNode( XMLNode* node )\r
-{\r
-    if ( node == 0 ) {\r
-        return;\r
-    }\r
-    MemPool* pool = node->_memPool;\r
-    node->~XMLNode();\r
-    pool->Free( node );\r
-}\r
-\r
-void XMLNode::InsertChildPreamble( XMLNode* insertThis ) const\r
-{\r
-    TIXMLASSERT( insertThis );\r
-    TIXMLASSERT( insertThis->_document == _document );\r
-\r
-    if ( insertThis->_parent )\r
-        insertThis->_parent->Unlink( insertThis );\r
-    else\r
-        insertThis->_memPool->SetTracked();\r
-}\r
-\r
-// --------- XMLText ---------- //\r
-char* XMLText::ParseDeep( char* p, StrPair* )\r
-{\r
-    const char* start = p;\r
-    if ( this->CData() ) {\r
-        p = _value.ParseText( p, "]]>", StrPair::NEEDS_NEWLINE_NORMALIZATION );\r
-        if ( !p ) {\r
-            _document->SetError( XML_ERROR_PARSING_CDATA, start, 0 );\r
-        }\r
-        return p;\r
-    }\r
-    else {\r
-        int flags = _document->ProcessEntities() ? StrPair::TEXT_ELEMENT : StrPair::TEXT_ELEMENT_LEAVE_ENTITIES;\r
-        if ( _document->WhitespaceMode() == COLLAPSE_WHITESPACE ) {\r
-            flags |= StrPair::NEEDS_WHITESPACE_COLLAPSING;\r
-        }\r
-\r
-        p = _value.ParseText( p, "<", flags );\r
-        if ( p && *p ) {\r
-            return p-1;\r
-        }\r
-        if ( !p ) {\r
-            _document->SetError( XML_ERROR_PARSING_TEXT, start, 0 );\r
-        }\r
-    }\r
-    return 0;\r
-}\r
-\r
-\r
-XMLNode* XMLText::ShallowClone( XMLDocument* doc ) const\r
-{\r
-    if ( !doc ) {\r
-        doc = _document;\r
-    }\r
-    XMLText* text = doc->NewText( Value() );   // fixme: this will always allocate memory. Intern?\r
-    text->SetCData( this->CData() );\r
-    return text;\r
-}\r
-\r
-\r
-bool XMLText::ShallowEqual( const XMLNode* compare ) const\r
-{\r
-    const XMLText* text = compare->ToText();\r
-    return ( text && XMLUtil::StringEqual( text->Value(), Value() ) );\r
-}\r
-\r
-\r
-bool XMLText::Accept( XMLVisitor* visitor ) const\r
-{\r
-    TIXMLASSERT( visitor );\r
-    return visitor->Visit( *this );\r
-}\r
-\r
-\r
-// --------- XMLComment ---------- //\r
-\r
-XMLComment::XMLComment( XMLDocument* doc ) : XMLNode( doc )\r
-{\r
-}\r
-\r
-\r
-XMLComment::~XMLComment()\r
-{\r
-}\r
-\r
-\r
-char* XMLComment::ParseDeep( char* p, StrPair* )\r
-{\r
-    // Comment parses as text.\r
-    const char* start = p;\r
-    p = _value.ParseText( p, "-->", StrPair::COMMENT );\r
-    if ( p == 0 ) {\r
-        _document->SetError( XML_ERROR_PARSING_COMMENT, start, 0 );\r
-    }\r
-    return p;\r
-}\r
-\r
-\r
-XMLNode* XMLComment::ShallowClone( XMLDocument* doc ) const\r
-{\r
-    if ( !doc ) {\r
-        doc = _document;\r
-    }\r
-    XMLComment* comment = doc->NewComment( Value() );  // fixme: this will always allocate memory. Intern?\r
-    return comment;\r
-}\r
-\r
-\r
-bool XMLComment::ShallowEqual( const XMLNode* compare ) const\r
-{\r
-    TIXMLASSERT( compare );\r
-    const XMLComment* comment = compare->ToComment();\r
-    return ( comment && XMLUtil::StringEqual( comment->Value(), Value() ));\r
-}\r
-\r
-\r
-bool XMLComment::Accept( XMLVisitor* visitor ) const\r
-{\r
-    TIXMLASSERT( visitor );\r
-    return visitor->Visit( *this );\r
-}\r
-\r
-\r
-// --------- XMLDeclaration ---------- //\r
-\r
-XMLDeclaration::XMLDeclaration( XMLDocument* doc ) : XMLNode( doc )\r
-{\r
-}\r
-\r
-\r
-XMLDeclaration::~XMLDeclaration()\r
-{\r
-    //printf( "~XMLDeclaration\n" );\r
-}\r
-\r
-\r
-char* XMLDeclaration::ParseDeep( char* p, StrPair* )\r
-{\r
-    // Declaration parses as text.\r
-    const char* start = p;\r
-    p = _value.ParseText( p, "?>", StrPair::NEEDS_NEWLINE_NORMALIZATION );\r
-    if ( p == 0 ) {\r
-        _document->SetError( XML_ERROR_PARSING_DECLARATION, start, 0 );\r
-    }\r
-    return p;\r
-}\r
-\r
-\r
-XMLNode* XMLDeclaration::ShallowClone( XMLDocument* doc ) const\r
-{\r
-    if ( !doc ) {\r
-        doc = _document;\r
-    }\r
-    XMLDeclaration* dec = doc->NewDeclaration( Value() );      // fixme: this will always allocate memory. Intern?\r
-    return dec;\r
-}\r
-\r
-\r
-bool XMLDeclaration::ShallowEqual( const XMLNode* compare ) const\r
-{\r
-    TIXMLASSERT( compare );\r
-    const XMLDeclaration* declaration = compare->ToDeclaration();\r
-    return ( declaration && XMLUtil::StringEqual( declaration->Value(), Value() ));\r
-}\r
-\r
-\r
-\r
-bool XMLDeclaration::Accept( XMLVisitor* visitor ) const\r
-{\r
-    TIXMLASSERT( visitor );\r
-    return visitor->Visit( *this );\r
-}\r
-\r
-// --------- XMLUnknown ---------- //\r
-\r
-XMLUnknown::XMLUnknown( XMLDocument* doc ) : XMLNode( doc )\r
-{\r
-}\r
-\r
-\r
-XMLUnknown::~XMLUnknown()\r
-{\r
-}\r
-\r
-\r
-char* XMLUnknown::ParseDeep( char* p, StrPair* )\r
-{\r
-    // Unknown parses as text.\r
-    const char* start = p;\r
-\r
-    p = _value.ParseText( p, ">", StrPair::NEEDS_NEWLINE_NORMALIZATION );\r
-    if ( !p ) {\r
-        _document->SetError( XML_ERROR_PARSING_UNKNOWN, start, 0 );\r
-    }\r
-    return p;\r
-}\r
-\r
-\r
-XMLNode* XMLUnknown::ShallowClone( XMLDocument* doc ) const\r
-{\r
-    if ( !doc ) {\r
-        doc = _document;\r
-    }\r
-    XMLUnknown* text = doc->NewUnknown( Value() );     // fixme: this will always allocate memory. Intern?\r
-    return text;\r
-}\r
-\r
-\r
-bool XMLUnknown::ShallowEqual( const XMLNode* compare ) const\r
-{\r
-    TIXMLASSERT( compare );\r
-    const XMLUnknown* unknown = compare->ToUnknown();\r
-    return ( unknown && XMLUtil::StringEqual( unknown->Value(), Value() ));\r
-}\r
-\r
-\r
-bool XMLUnknown::Accept( XMLVisitor* visitor ) const\r
-{\r
-    TIXMLASSERT( visitor );\r
-    return visitor->Visit( *this );\r
-}\r
-\r
-// --------- XMLAttribute ---------- //\r
-\r
-const char* XMLAttribute::Name() const \r
-{\r
-    return _name.GetStr();\r
-}\r
-\r
-const char* XMLAttribute::Value() const \r
-{\r
-    return _value.GetStr();\r
-}\r
-\r
-char* XMLAttribute::ParseDeep( char* p, bool processEntities )\r
-{\r
-    // Parse using the name rules: bug fix, was using ParseText before\r
-    p = _name.ParseName( p );\r
-    if ( !p || !*p ) {\r
-        return 0;\r
-    }\r
-\r
-    // Skip white space before =\r
-    p = XMLUtil::SkipWhiteSpace( p );\r
-    if ( *p != '=' ) {\r
-        return 0;\r
-    }\r
-\r
-    ++p;       // move up to opening quote\r
-    p = XMLUtil::SkipWhiteSpace( p );\r
-    if ( *p != '\"' && *p != '\'' ) {\r
-        return 0;\r
-    }\r
-\r
-    char endTag[2] = { *p, 0 };\r
-    ++p;       // move past opening quote\r
-\r
-    p = _value.ParseText( p, endTag, processEntities ? StrPair::ATTRIBUTE_VALUE : StrPair::ATTRIBUTE_VALUE_LEAVE_ENTITIES );\r
-    return p;\r
-}\r
-\r
-\r
-void XMLAttribute::SetName( const char* n )\r
-{\r
-    _name.SetStr( n );\r
-}\r
-\r
-\r
-XMLError XMLAttribute::QueryIntValue( int* value ) const\r
-{\r
-    if ( XMLUtil::ToInt( Value(), value )) {\r
-        return XML_NO_ERROR;\r
-    }\r
-    return XML_WRONG_ATTRIBUTE_TYPE;\r
-}\r
-\r
-\r
-XMLError XMLAttribute::QueryUnsignedValue( unsigned int* value ) const\r
-{\r
-    if ( XMLUtil::ToUnsigned( Value(), value )) {\r
-        return XML_NO_ERROR;\r
-    }\r
-    return XML_WRONG_ATTRIBUTE_TYPE;\r
-}\r
-\r
-\r
-XMLError XMLAttribute::QueryBoolValue( bool* value ) const\r
-{\r
-    if ( XMLUtil::ToBool( Value(), value )) {\r
-        return XML_NO_ERROR;\r
-    }\r
-    return XML_WRONG_ATTRIBUTE_TYPE;\r
-}\r
-\r
-\r
-XMLError XMLAttribute::QueryFloatValue( float* value ) const\r
-{\r
-    if ( XMLUtil::ToFloat( Value(), value )) {\r
-        return XML_NO_ERROR;\r
-    }\r
-    return XML_WRONG_ATTRIBUTE_TYPE;\r
-}\r
-\r
-\r
-XMLError XMLAttribute::QueryDoubleValue( double* value ) const\r
-{\r
-    if ( XMLUtil::ToDouble( Value(), value )) {\r
-        return XML_NO_ERROR;\r
-    }\r
-    return XML_WRONG_ATTRIBUTE_TYPE;\r
-}\r
-\r
-\r
-void XMLAttribute::SetAttribute( const char* v )\r
-{\r
-    _value.SetStr( v );\r
-}\r
-\r
-\r
-void XMLAttribute::SetAttribute( int v )\r
-{\r
-    char buf[BUF_SIZE];\r
-    XMLUtil::ToStr( v, buf, BUF_SIZE );\r
-    _value.SetStr( buf );\r
-}\r
-\r
-\r
-void XMLAttribute::SetAttribute( unsigned v )\r
-{\r
-    char buf[BUF_SIZE];\r
-    XMLUtil::ToStr( v, buf, BUF_SIZE );\r
-    _value.SetStr( buf );\r
-}\r
-\r
-\r
-void XMLAttribute::SetAttribute( bool v )\r
-{\r
-    char buf[BUF_SIZE];\r
-    XMLUtil::ToStr( v, buf, BUF_SIZE );\r
-    _value.SetStr( buf );\r
-}\r
-\r
-void XMLAttribute::SetAttribute( double v )\r
-{\r
-    char buf[BUF_SIZE];\r
-    XMLUtil::ToStr( v, buf, BUF_SIZE );\r
-    _value.SetStr( buf );\r
-}\r
-\r
-void XMLAttribute::SetAttribute( float v )\r
-{\r
-    char buf[BUF_SIZE];\r
-    XMLUtil::ToStr( v, buf, BUF_SIZE );\r
-    _value.SetStr( buf );\r
-}\r
-\r
-\r
-// --------- XMLElement ---------- //\r
-XMLElement::XMLElement( XMLDocument* doc ) : XMLNode( doc ),\r
-    _closingType( 0 ),\r
-    _rootAttribute( 0 )\r
-{\r
-}\r
-\r
-\r
-XMLElement::~XMLElement()\r
-{\r
-    while( _rootAttribute ) {\r
-        XMLAttribute* next = _rootAttribute->_next;\r
-        DeleteAttribute( _rootAttribute );\r
-        _rootAttribute = next;\r
-    }\r
-}\r
-\r
-\r
-const XMLAttribute* XMLElement::FindAttribute( const char* name ) const\r
-{\r
-    for( XMLAttribute* a = _rootAttribute; a; a = a->_next ) {\r
-        if ( XMLUtil::StringEqual( a->Name(), name ) ) {\r
-            return a;\r
-        }\r
-    }\r
-    return 0;\r
-}\r
-\r
-\r
-const char* XMLElement::Attribute( const char* name, const char* value ) const\r
-{\r
-    const XMLAttribute* a = FindAttribute( name );\r
-    if ( !a ) {\r
-        return 0;\r
-    }\r
-    if ( !value || XMLUtil::StringEqual( a->Value(), value )) {\r
-        return a->Value();\r
-    }\r
-    return 0;\r
-}\r
-\r
-\r
-const char* XMLElement::GetText() const\r
-{\r
-    if ( FirstChild() && FirstChild()->ToText() ) {\r
-        return FirstChild()->Value();\r
-    }\r
-    return 0;\r
-}\r
-\r
-\r
-void   XMLElement::SetText( const char* inText )\r
-{\r
-       if ( FirstChild() && FirstChild()->ToText() )\r
-               FirstChild()->SetValue( inText );\r
-       else {\r
-               XMLText*        theText = GetDocument()->NewText( inText );\r
-               InsertFirstChild( theText );\r
-       }\r
-}\r
-\r
-\r
-void XMLElement::SetText( int v ) \r
-{\r
-    char buf[BUF_SIZE];\r
-    XMLUtil::ToStr( v, buf, BUF_SIZE );\r
-    SetText( buf );\r
-}\r
-\r
-\r
-void XMLElement::SetText( unsigned v ) \r
-{\r
-    char buf[BUF_SIZE];\r
-    XMLUtil::ToStr( v, buf, BUF_SIZE );\r
-    SetText( buf );\r
-}\r
-\r
-\r
-void XMLElement::SetText( bool v ) \r
-{\r
-    char buf[BUF_SIZE];\r
-    XMLUtil::ToStr( v, buf, BUF_SIZE );\r
-    SetText( buf );\r
-}\r
-\r
-\r
-void XMLElement::SetText( float v ) \r
-{\r
-    char buf[BUF_SIZE];\r
-    XMLUtil::ToStr( v, buf, BUF_SIZE );\r
-    SetText( buf );\r
-}\r
-\r
-\r
-void XMLElement::SetText( double v ) \r
-{\r
-    char buf[BUF_SIZE];\r
-    XMLUtil::ToStr( v, buf, BUF_SIZE );\r
-    SetText( buf );\r
-}\r
-\r
-\r
-XMLError XMLElement::QueryIntText( int* ival ) const\r
-{\r
-    if ( FirstChild() && FirstChild()->ToText() ) {\r
-        const char* t = FirstChild()->Value();\r
-        if ( XMLUtil::ToInt( t, ival ) ) {\r
-            return XML_SUCCESS;\r
-        }\r
-        return XML_CAN_NOT_CONVERT_TEXT;\r
-    }\r
-    return XML_NO_TEXT_NODE;\r
-}\r
-\r
-\r
-XMLError XMLElement::QueryUnsignedText( unsigned* uval ) const\r
-{\r
-    if ( FirstChild() && FirstChild()->ToText() ) {\r
-        const char* t = FirstChild()->Value();\r
-        if ( XMLUtil::ToUnsigned( t, uval ) ) {\r
-            return XML_SUCCESS;\r
-        }\r
-        return XML_CAN_NOT_CONVERT_TEXT;\r
-    }\r
-    return XML_NO_TEXT_NODE;\r
-}\r
-\r
-\r
-XMLError XMLElement::QueryBoolText( bool* bval ) const\r
-{\r
-    if ( FirstChild() && FirstChild()->ToText() ) {\r
-        const char* t = FirstChild()->Value();\r
-        if ( XMLUtil::ToBool( t, bval ) ) {\r
-            return XML_SUCCESS;\r
-        }\r
-        return XML_CAN_NOT_CONVERT_TEXT;\r
-    }\r
-    return XML_NO_TEXT_NODE;\r
-}\r
-\r
-\r
-XMLError XMLElement::QueryDoubleText( double* dval ) const\r
-{\r
-    if ( FirstChild() && FirstChild()->ToText() ) {\r
-        const char* t = FirstChild()->Value();\r
-        if ( XMLUtil::ToDouble( t, dval ) ) {\r
-            return XML_SUCCESS;\r
-        }\r
-        return XML_CAN_NOT_CONVERT_TEXT;\r
-    }\r
-    return XML_NO_TEXT_NODE;\r
-}\r
-\r
-\r
-XMLError XMLElement::QueryFloatText( float* fval ) const\r
-{\r
-    if ( FirstChild() && FirstChild()->ToText() ) {\r
-        const char* t = FirstChild()->Value();\r
-        if ( XMLUtil::ToFloat( t, fval ) ) {\r
-            return XML_SUCCESS;\r
-        }\r
-        return XML_CAN_NOT_CONVERT_TEXT;\r
-    }\r
-    return XML_NO_TEXT_NODE;\r
-}\r
-\r
-\r
-\r
-XMLAttribute* XMLElement::FindOrCreateAttribute( const char* name )\r
-{\r
-    XMLAttribute* last = 0;\r
-    XMLAttribute* attrib = 0;\r
-    for( attrib = _rootAttribute;\r
-            attrib;\r
-            last = attrib, attrib = attrib->_next ) {\r
-        if ( XMLUtil::StringEqual( attrib->Name(), name ) ) {\r
-            break;\r
-        }\r
-    }\r
-    if ( !attrib ) {\r
-        TIXMLASSERT( sizeof( XMLAttribute ) == _document->_attributePool.ItemSize() );\r
-        attrib = new (_document->_attributePool.Alloc() ) XMLAttribute();\r
-        attrib->_memPool = &_document->_attributePool;\r
-        if ( last ) {\r
-            last->_next = attrib;\r
-        }\r
-        else {\r
-            _rootAttribute = attrib;\r
-        }\r
-        attrib->SetName( name );\r
-        attrib->_memPool->SetTracked(); // always created and linked.\r
-    }\r
-    return attrib;\r
-}\r
-\r
-\r
-void XMLElement::DeleteAttribute( const char* name )\r
-{\r
-    XMLAttribute* prev = 0;\r
-    for( XMLAttribute* a=_rootAttribute; a; a=a->_next ) {\r
-        if ( XMLUtil::StringEqual( name, a->Name() ) ) {\r
-            if ( prev ) {\r
-                prev->_next = a->_next;\r
-            }\r
-            else {\r
-                _rootAttribute = a->_next;\r
-            }\r
-            DeleteAttribute( a );\r
-            break;\r
-        }\r
-        prev = a;\r
-    }\r
-}\r
-\r
-\r
-char* XMLElement::ParseAttributes( char* p )\r
-{\r
-    const char* start = p;\r
-    XMLAttribute* prevAttribute = 0;\r
-\r
-    // Read the attributes.\r
-    while( p ) {\r
-        p = XMLUtil::SkipWhiteSpace( p );\r
-        if ( !(*p) ) {\r
-            _document->SetError( XML_ERROR_PARSING_ELEMENT, start, Name() );\r
-            return 0;\r
-        }\r
-\r
-        // attribute.\r
-        if (XMLUtil::IsNameStartChar( *p ) ) {\r
-            TIXMLASSERT( sizeof( XMLAttribute ) == _document->_attributePool.ItemSize() );\r
-            XMLAttribute* attrib = new (_document->_attributePool.Alloc() ) XMLAttribute();\r
-            attrib->_memPool = &_document->_attributePool;\r
-                       attrib->_memPool->SetTracked();\r
-\r
-            p = attrib->ParseDeep( p, _document->ProcessEntities() );\r
-            if ( !p || Attribute( attrib->Name() ) ) {\r
-                DeleteAttribute( attrib );\r
-                _document->SetError( XML_ERROR_PARSING_ATTRIBUTE, start, p );\r
-                return 0;\r
-            }\r
-            // There is a minor bug here: if the attribute in the source xml\r
-            // document is duplicated, it will not be detected and the\r
-            // attribute will be doubly added. However, tracking the 'prevAttribute'\r
-            // avoids re-scanning the attribute list. Preferring performance for\r
-            // now, may reconsider in the future.\r
-            if ( prevAttribute ) {\r
-                prevAttribute->_next = attrib;\r
-            }\r
-            else {\r
-                _rootAttribute = attrib;\r
-            }\r
-            prevAttribute = attrib;\r
-        }\r
-        // end of the tag\r
-        else if ( *p == '>' ) {\r
-            ++p;\r
-            break;\r
-        }\r
-        // end of the tag\r
-        else if ( *p == '/' && *(p+1) == '>' ) {\r
-            _closingType = CLOSED;\r
-            return p+2;        // done; sealed element.\r
-        }\r
-        else {\r
-            _document->SetError( XML_ERROR_PARSING_ELEMENT, start, p );\r
-            return 0;\r
-        }\r
-    }\r
-    return p;\r
-}\r
-\r
-void XMLElement::DeleteAttribute( XMLAttribute* attribute )\r
-{\r
-    if ( attribute == 0 ) {\r
-        return;\r
-    }\r
-    MemPool* pool = attribute->_memPool;\r
-    attribute->~XMLAttribute();\r
-    pool->Free( attribute );\r
-}\r
-\r
-//\r
-//     <ele></ele>\r
-//     <ele>foo<b>bar</b></ele>\r
-//\r
-char* XMLElement::ParseDeep( char* p, StrPair* strPair )\r
-{\r
-    // Read the element name.\r
-    p = XMLUtil::SkipWhiteSpace( p );\r
-\r
-    // The closing element is the </element> form. It is\r
-    // parsed just like a regular element then deleted from\r
-    // the DOM.\r
-    if ( *p == '/' ) {\r
-        _closingType = CLOSING;\r
-        ++p;\r
-    }\r
-\r
-    p = _value.ParseName( p );\r
-    if ( _value.Empty() ) {\r
-        return 0;\r
-    }\r
-\r
-    p = ParseAttributes( p );\r
-    if ( !p || !*p || _closingType ) {\r
-        return p;\r
-    }\r
-\r
-    p = XMLNode::ParseDeep( p, strPair );\r
-    return p;\r
-}\r
-\r
-\r
-\r
-XMLNode* XMLElement::ShallowClone( XMLDocument* doc ) const\r
-{\r
-    if ( !doc ) {\r
-        doc = _document;\r
-    }\r
-    XMLElement* element = doc->NewElement( Value() );                                  // fixme: this will always allocate memory. Intern?\r
-    for( const XMLAttribute* a=FirstAttribute(); a; a=a->Next() ) {\r
-        element->SetAttribute( a->Name(), a->Value() );                                        // fixme: this will always allocate memory. Intern?\r
-    }\r
-    return element;\r
-}\r
-\r
-\r
-bool XMLElement::ShallowEqual( const XMLNode* compare ) const\r
-{\r
-    TIXMLASSERT( compare );\r
-    const XMLElement* other = compare->ToElement();\r
-    if ( other && XMLUtil::StringEqual( other->Name(), Name() )) {\r
-\r
-        const XMLAttribute* a=FirstAttribute();\r
-        const XMLAttribute* b=other->FirstAttribute();\r
-\r
-        while ( a && b ) {\r
-            if ( !XMLUtil::StringEqual( a->Value(), b->Value() ) ) {\r
-                return false;\r
-            }\r
-            a = a->Next();\r
-            b = b->Next();\r
-        }\r
-        if ( a || b ) {\r
-            // different count\r
-            return false;\r
-        }\r
-        return true;\r
-    }\r
-    return false;\r
-}\r
-\r
-\r
-bool XMLElement::Accept( XMLVisitor* visitor ) const\r
-{\r
-    TIXMLASSERT( visitor );\r
-    if ( visitor->VisitEnter( *this, _rootAttribute ) ) {\r
-        for ( const XMLNode* node=FirstChild(); node; node=node->NextSibling() ) {\r
-            if ( !node->Accept( visitor ) ) {\r
-                break;\r
-            }\r
-        }\r
-    }\r
-    return visitor->VisitExit( *this );\r
-}\r
-\r
-\r
-// --------- XMLDocument ----------- //\r
-\r
-// Warning: List must match 'enum XMLError'\r
-const char* XMLDocument::_errorNames[XML_ERROR_COUNT] = {\r
-    "XML_SUCCESS",\r
-    "XML_NO_ATTRIBUTE",\r
-    "XML_WRONG_ATTRIBUTE_TYPE",\r
-    "XML_ERROR_FILE_NOT_FOUND",\r
-    "XML_ERROR_FILE_COULD_NOT_BE_OPENED",\r
-    "XML_ERROR_FILE_READ_ERROR",\r
-    "XML_ERROR_ELEMENT_MISMATCH",\r
-    "XML_ERROR_PARSING_ELEMENT",\r
-    "XML_ERROR_PARSING_ATTRIBUTE",\r
-    "XML_ERROR_IDENTIFYING_TAG",\r
-    "XML_ERROR_PARSING_TEXT",\r
-    "XML_ERROR_PARSING_CDATA",\r
-    "XML_ERROR_PARSING_COMMENT",\r
-    "XML_ERROR_PARSING_DECLARATION",\r
-    "XML_ERROR_PARSING_UNKNOWN",\r
-    "XML_ERROR_EMPTY_DOCUMENT",\r
-    "XML_ERROR_MISMATCHED_ELEMENT",\r
-    "XML_ERROR_PARSING",\r
-    "XML_CAN_NOT_CONVERT_TEXT",\r
-    "XML_NO_TEXT_NODE"\r
-};\r
-\r
-\r
-XMLDocument::XMLDocument( bool processEntities, Whitespace whitespace ) :\r
-    XMLNode( 0 ),\r
-    _writeBOM( false ),\r
-    _processEntities( processEntities ),\r
-    _errorID( XML_NO_ERROR ),\r
-    _whitespace( whitespace ),\r
-    _errorStr1( 0 ),\r
-    _errorStr2( 0 ),\r
-    _charBuffer( 0 )\r
-{\r
-    // avoid VC++ C4355 warning about 'this' in initializer list (C4355 is off by default in VS2012+)\r
-    _document = this;\r
-}\r
-\r
-\r
-XMLDocument::~XMLDocument()\r
-{\r
-    Clear();\r
-}\r
-\r
-\r
-void XMLDocument::Clear()\r
-{\r
-    DeleteChildren();\r
-\r
-#ifdef DEBUG\r
-    const bool hadError = Error();\r
-#endif\r
-    _errorID = XML_NO_ERROR;\r
-    _errorStr1 = 0;\r
-    _errorStr2 = 0;\r
-\r
-    delete [] _charBuffer;\r
-    _charBuffer = 0;\r
-\r
-#if 0\r
-    _textPool.Trace( "text" );\r
-    _elementPool.Trace( "element" );\r
-    _commentPool.Trace( "comment" );\r
-    _attributePool.Trace( "attribute" );\r
-#endif\r
-    \r
-#ifdef DEBUG\r
-    if ( !hadError ) {\r
-        TIXMLASSERT( _elementPool.CurrentAllocs()   == _elementPool.Untracked() );\r
-        TIXMLASSERT( _attributePool.CurrentAllocs() == _attributePool.Untracked() );\r
-        TIXMLASSERT( _textPool.CurrentAllocs()      == _textPool.Untracked() );\r
-        TIXMLASSERT( _commentPool.CurrentAllocs()   == _commentPool.Untracked() );\r
-    }\r
-#endif\r
-}\r
-\r
-\r
-XMLElement* XMLDocument::NewElement( const char* name )\r
-{\r
-    TIXMLASSERT( sizeof( XMLElement ) == _elementPool.ItemSize() );\r
-    XMLElement* ele = new (_elementPool.Alloc()) XMLElement( this );\r
-    ele->_memPool = &_elementPool;\r
-    ele->SetName( name );\r
-    return ele;\r
-}\r
-\r
-\r
-XMLComment* XMLDocument::NewComment( const char* str )\r
-{\r
-    TIXMLASSERT( sizeof( XMLComment ) == _commentPool.ItemSize() );\r
-    XMLComment* comment = new (_commentPool.Alloc()) XMLComment( this );\r
-    comment->_memPool = &_commentPool;\r
-    comment->SetValue( str );\r
-    return comment;\r
-}\r
-\r
-\r
-XMLText* XMLDocument::NewText( const char* str )\r
-{\r
-    TIXMLASSERT( sizeof( XMLText ) == _textPool.ItemSize() );\r
-    XMLText* text = new (_textPool.Alloc()) XMLText( this );\r
-    text->_memPool = &_textPool;\r
-    text->SetValue( str );\r
-    return text;\r
-}\r
-\r
-\r
-XMLDeclaration* XMLDocument::NewDeclaration( const char* str )\r
-{\r
-    TIXMLASSERT( sizeof( XMLDeclaration ) == _commentPool.ItemSize() );\r
-    XMLDeclaration* dec = new (_commentPool.Alloc()) XMLDeclaration( this );\r
-    dec->_memPool = &_commentPool;\r
-    dec->SetValue( str ? str : "xml version=\"1.0\" encoding=\"UTF-8\"" );\r
-    return dec;\r
-}\r
-\r
-\r
-XMLUnknown* XMLDocument::NewUnknown( const char* str )\r
-{\r
-    TIXMLASSERT( sizeof( XMLUnknown ) == _commentPool.ItemSize() );\r
-    XMLUnknown* unk = new (_commentPool.Alloc()) XMLUnknown( this );\r
-    unk->_memPool = &_commentPool;\r
-    unk->SetValue( str );\r
-    return unk;\r
-}\r
-\r
-static FILE* callfopen( const char* filepath, const char* mode )\r
-{\r
-    TIXMLASSERT( filepath );\r
-    TIXMLASSERT( mode );\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1400 ) && (!defined WINCE)\r
-    FILE* fp = 0;\r
-    errno_t err = fopen_s( &fp, filepath, mode );\r
-    if ( err ) {\r
-        return 0;\r
-    }\r
-#else\r
-    FILE* fp = fopen( filepath, mode );\r
-#endif\r
-    return fp;\r
-}\r
-    \r
-void XMLDocument::DeleteNode( XMLNode* node )  {\r
-    TIXMLASSERT( node );\r
-    TIXMLASSERT(node->_document == this );\r
-    if (node->_parent) {\r
-        node->_parent->DeleteChild( node );\r
-    }\r
-    else {\r
-        // Isn't in the tree.\r
-        // Use the parent delete.\r
-        // Also, we need to mark it tracked: we 'know'\r
-        // it was never used.\r
-        node->_memPool->SetTracked();\r
-        // Call the static XMLNode version:\r
-        XMLNode::DeleteNode(node);\r
-    }\r
-}\r
-\r
-\r
-XMLError XMLDocument::LoadFile( const char* filename )\r
-{\r
-    Clear();\r
-    FILE* fp = callfopen( filename, "rb" );\r
-    if ( !fp ) {\r
-        SetError( XML_ERROR_FILE_NOT_FOUND, filename, 0 );\r
-        return _errorID;\r
-    }\r
-    LoadFile( fp );\r
-    fclose( fp );\r
-    return _errorID;\r
-}\r
-\r
-// This is likely overengineered template art to have a check that unsigned long value incremented\r
-// by one still fits into size_t. If size_t type is larger than unsigned long type\r
-// (x86_64-w64-mingw32 target) then the check is redundant and gcc and clang emit\r
-// -Wtype-limits warning. This piece makes the compiler select code with a check when a check\r
-// is useful and code with no check when a check is redundant depending on how size_t and unsigned long\r
-// types sizes relate to each other.\r
-template\r
-<bool = (sizeof(unsigned long) >= sizeof(size_t))>\r
-struct LongFitsIntoSizeTMinusOne {\r
-    static bool Fits( unsigned long value )\r
-    {\r
-        return value < (size_t)-1;\r
-    }\r
-};\r
-\r
-template <>\r
-bool LongFitsIntoSizeTMinusOne<false>::Fits( unsigned long /*value*/ )\r
-{\r
-    return true;\r
-}\r
-\r
-XMLError XMLDocument::LoadFile( FILE* fp )\r
-{\r
-    Clear();\r
-\r
-    fseek( fp, 0, SEEK_SET );\r
-    if ( fgetc( fp ) == EOF && ferror( fp ) != 0 ) {\r
-        SetError( XML_ERROR_FILE_READ_ERROR, 0, 0 );\r
-        return _errorID;\r
-    }\r
-\r
-    fseek( fp, 0, SEEK_END );\r
-    const long filelength = ftell( fp );\r
-    fseek( fp, 0, SEEK_SET );\r
-    if ( filelength == -1L ) {\r
-        SetError( XML_ERROR_FILE_READ_ERROR, 0, 0 );\r
-        return _errorID;\r
-    }\r
-    TIXMLASSERT( filelength >= 0 );\r
-\r
-    if ( !LongFitsIntoSizeTMinusOne<>::Fits( filelength ) ) {\r
-        // Cannot handle files which won't fit in buffer together with null terminator\r
-        SetError( XML_ERROR_FILE_READ_ERROR, 0, 0 );\r
-        return _errorID;\r
-    }\r
-\r
-    if ( filelength == 0 ) {\r
-        SetError( XML_ERROR_EMPTY_DOCUMENT, 0, 0 );\r
-        return _errorID;\r
-    }\r
-\r
-    const size_t size = filelength;\r
-    TIXMLASSERT( _charBuffer == 0 );\r
-    _charBuffer = new char[size+1];\r
-    size_t read = fread( _charBuffer, 1, size, fp );\r
-    if ( read != size ) {\r
-        SetError( XML_ERROR_FILE_READ_ERROR, 0, 0 );\r
-        return _errorID;\r
-    }\r
-\r
-    _charBuffer[size] = 0;\r
-\r
-    Parse();\r
-    return _errorID;\r
-}\r
-\r
-\r
-XMLError XMLDocument::SaveFile( const char* filename, bool compact )\r
-{\r
-    FILE* fp = callfopen( filename, "w" );\r
-    if ( !fp ) {\r
-        SetError( XML_ERROR_FILE_COULD_NOT_BE_OPENED, filename, 0 );\r
-        return _errorID;\r
-    }\r
-    SaveFile(fp, compact);\r
-    fclose( fp );\r
-    return _errorID;\r
-}\r
-\r
-\r
-XMLError XMLDocument::SaveFile( FILE* fp, bool compact )\r
-{\r
-    // Clear any error from the last save, otherwise it will get reported\r
-    // for *this* call.\r
-    SetError( XML_NO_ERROR, 0, 0 );\r
-    XMLPrinter stream( fp, compact );\r
-    Print( &stream );\r
-    return _errorID;\r
-}\r
-\r
-\r
-XMLError XMLDocument::Parse( const char* p, size_t len )\r
-{\r
-    Clear();\r
-\r
-    if ( len == 0 || !p || !*p ) {\r
-        SetError( XML_ERROR_EMPTY_DOCUMENT, 0, 0 );\r
-        return _errorID;\r
-    }\r
-    if ( len == (size_t)(-1) ) {\r
-        len = strlen( p );\r
-    }\r
-    TIXMLASSERT( _charBuffer == 0 );\r
-    _charBuffer = new char[ len+1 ];\r
-    memcpy( _charBuffer, p, len );\r
-    _charBuffer[len] = 0;\r
-\r
-    Parse();\r
-    if ( Error() ) {\r
-        // clean up now essentially dangling memory.\r
-        // and the parse fail can put objects in the\r
-        // pools that are dead and inaccessible.\r
-        DeleteChildren();\r
-        _elementPool.Clear();\r
-        _attributePool.Clear();\r
-        _textPool.Clear();\r
-        _commentPool.Clear();\r
-    }\r
-    return _errorID;\r
-}\r
-\r
-\r
-void XMLDocument::Print( XMLPrinter* streamer ) const\r
-{\r
-    if ( streamer ) {\r
-        Accept( streamer );\r
-    }\r
-    else {\r
-        XMLPrinter stdoutStreamer( stdout );\r
-        Accept( &stdoutStreamer );\r
-    }\r
-}\r
-\r
-\r
-void XMLDocument::SetError( XMLError error, const char* str1, const char* str2 )\r
-{\r
-    TIXMLASSERT( error >= 0 && error < XML_ERROR_COUNT );\r
-    _errorID = error;\r
-    _errorStr1 = str1;\r
-    _errorStr2 = str2;\r
-}\r
-\r
-const char* XMLDocument::ErrorName() const\r
-{\r
-       TIXMLASSERT( _errorID >= 0 && _errorID < XML_ERROR_COUNT );\r
-    const char* errorName = _errorNames[_errorID];\r
-    TIXMLASSERT( errorName && errorName[0] );\r
-    return errorName;\r
-}\r
-\r
-void XMLDocument::PrintError() const\r
-{\r
-    if ( Error() ) {\r
-        static const int LEN = 20;\r
-        char buf1[LEN] = { 0 };\r
-        char buf2[LEN] = { 0 };\r
-\r
-        if ( _errorStr1 ) {\r
-            TIXML_SNPRINTF( buf1, LEN, "%s", _errorStr1 );\r
-        }\r
-        if ( _errorStr2 ) {\r
-            TIXML_SNPRINTF( buf2, LEN, "%s", _errorStr2 );\r
-        }\r
-\r
-        // Should check INT_MIN <= _errorID && _errorId <= INT_MAX, but that\r
-        // causes a clang "always true" -Wtautological-constant-out-of-range-compare warning\r
-        TIXMLASSERT( 0 <= _errorID && XML_ERROR_COUNT - 1 <= INT_MAX );\r
-        printf( "XMLDocument error id=%d '%s' str1=%s str2=%s\n",\r
-                static_cast<int>( _errorID ), ErrorName(), buf1, buf2 );\r
-    }\r
-}\r
-\r
-void XMLDocument::Parse()\r
-{\r
-    TIXMLASSERT( NoChildren() ); // Clear() must have been called previously\r
-    TIXMLASSERT( _charBuffer );\r
-    char* p = _charBuffer;\r
-    p = XMLUtil::SkipWhiteSpace( p );\r
-    p = const_cast<char*>( XMLUtil::ReadBOM( p, &_writeBOM ) );\r
-    if ( !*p ) {\r
-        SetError( XML_ERROR_EMPTY_DOCUMENT, 0, 0 );\r
-        return;\r
-    }\r
-    ParseDeep(p, 0 );\r
-}\r
-\r
-XMLPrinter::XMLPrinter( FILE* file, bool compact, int depth ) :\r
-    _elementJustOpened( false ),\r
-    _firstElement( true ),\r
-    _fp( file ),\r
-    _depth( depth ),\r
-    _textDepth( -1 ),\r
-    _processEntities( true ),\r
-    _compactMode( compact )\r
-{\r
-    for( int i=0; i<ENTITY_RANGE; ++i ) {\r
-        _entityFlag[i] = false;\r
-        _restrictedEntityFlag[i] = false;\r
-    }\r
-    for( int i=0; i<NUM_ENTITIES; ++i ) {\r
-        const char entityValue = entities[i].value;\r
-        TIXMLASSERT( 0 <= entityValue && entityValue < ENTITY_RANGE );\r
-        _entityFlag[ (unsigned char)entityValue ] = true;\r
-    }\r
-    _restrictedEntityFlag[(unsigned char)'&'] = true;\r
-    _restrictedEntityFlag[(unsigned char)'<'] = true;\r
-    _restrictedEntityFlag[(unsigned char)'>'] = true;  // not required, but consistency is nice\r
-    _buffer.Push( 0 );\r
-}\r
-\r
-\r
-void XMLPrinter::Print( const char* format, ... )\r
-{\r
-    va_list     va;\r
-    va_start( va, format );\r
-\r
-    if ( _fp ) {\r
-        vfprintf( _fp, format, va );\r
-    }\r
-    else {\r
-        const int len = TIXML_VSCPRINTF( format, va );\r
-        // Close out and re-start the va-args\r
-        va_end( va );\r
-        TIXMLASSERT( len >= 0 );\r
-        va_start( va, format );\r
-        TIXMLASSERT( _buffer.Size() > 0 && _buffer[_buffer.Size() - 1] == 0 );\r
-        char* p = _buffer.PushArr( len ) - 1;  // back up over the null terminator.\r
-               TIXML_VSNPRINTF( p, len+1, format, va );\r
-    }\r
-    va_end( va );\r
-}\r
-\r
-\r
-void XMLPrinter::PrintSpace( int depth )\r
-{\r
-    for( int i=0; i<depth; ++i ) {\r
-        Print( "    " );\r
-    }\r
-}\r
-\r
-\r
-void XMLPrinter::PrintString( const char* p, bool restricted )\r
-{\r
-    // Look for runs of bytes between entities to print.\r
-    const char* q = p;\r
-\r
-    if ( _processEntities ) {\r
-        const bool* flag = restricted ? _restrictedEntityFlag : _entityFlag;\r
-        while ( *q ) {\r
-            TIXMLASSERT( p <= q );\r
-            // Remember, char is sometimes signed. (How many times has that bitten me?)\r
-            if ( *q > 0 && *q < ENTITY_RANGE ) {\r
-                // Check for entities. If one is found, flush\r
-                // the stream up until the entity, write the\r
-                // entity, and keep looking.\r
-                if ( flag[(unsigned char)(*q)] ) {\r
-                    while ( p < q ) {\r
-                        const size_t delta = q - p;\r
-                        // %.*s accepts type int as "precision"\r
-                        const int toPrint = ( INT_MAX < delta ) ? INT_MAX : (int)delta;\r
-                        Print( "%.*s", toPrint, p );\r
-                        p += toPrint;\r
-                    }\r
-                    bool entityPatternPrinted = false;\r
-                    for( int i=0; i<NUM_ENTITIES; ++i ) {\r
-                        if ( entities[i].value == *q ) {\r
-                            Print( "&%s;", entities[i].pattern );\r
-                            entityPatternPrinted = true;\r
-                            break;\r
-                        }\r
-                    }\r
-                    if ( !entityPatternPrinted ) {\r
-                        // TIXMLASSERT( entityPatternPrinted ) causes gcc -Wunused-but-set-variable in release\r
-                        TIXMLASSERT( false );\r
-                    }\r
-                    ++p;\r
-                }\r
-            }\r
-            ++q;\r
-            TIXMLASSERT( p <= q );\r
-        }\r
-    }\r
-    // Flush the remaining string. This will be the entire\r
-    // string if an entity wasn't found.\r
-    TIXMLASSERT( p <= q );\r
-    if ( !_processEntities || ( p < q ) ) {\r
-        Print( "%s", p );\r
-    }\r
-}\r
-\r
-\r
-void XMLPrinter::PushHeader( bool writeBOM, bool writeDec )\r
-{\r
-    if ( writeBOM ) {\r
-        static const unsigned char bom[] = { TIXML_UTF_LEAD_0, TIXML_UTF_LEAD_1, TIXML_UTF_LEAD_2, 0 };\r
-        Print( "%s", bom );\r
-    }\r
-    if ( writeDec ) {\r
-        PushDeclaration( "xml version=\"1.0\"" );\r
-    }\r
-}\r
-\r
-\r
-void XMLPrinter::OpenElement( const char* name, bool compactMode )\r
-{\r
-    SealElementIfJustOpened();\r
-    _stack.Push( name );\r
-\r
-    if ( _textDepth < 0 && !_firstElement && !compactMode ) {\r
-        Print( "\n" );\r
-    }\r
-    if ( !compactMode ) {\r
-        PrintSpace( _depth );\r
-    }\r
-\r
-    Print( "<%s", name );\r
-    _elementJustOpened = true;\r
-    _firstElement = false;\r
-    ++_depth;\r
-}\r
-\r
-\r
-void XMLPrinter::PushAttribute( const char* name, const char* value )\r
-{\r
-    TIXMLASSERT( _elementJustOpened );\r
-    Print( " %s=\"", name );\r
-    PrintString( value, false );\r
-    Print( "\"" );\r
-}\r
-\r
-\r
-void XMLPrinter::PushAttribute( const char* name, int v )\r
-{\r
-    char buf[BUF_SIZE];\r
-    XMLUtil::ToStr( v, buf, BUF_SIZE );\r
-    PushAttribute( name, buf );\r
-}\r
-\r
-\r
-void XMLPrinter::PushAttribute( const char* name, unsigned v )\r
-{\r
-    char buf[BUF_SIZE];\r
-    XMLUtil::ToStr( v, buf, BUF_SIZE );\r
-    PushAttribute( name, buf );\r
-}\r
-\r
-\r
-void XMLPrinter::PushAttribute( const char* name, bool v )\r
-{\r
-    char buf[BUF_SIZE];\r
-    XMLUtil::ToStr( v, buf, BUF_SIZE );\r
-    PushAttribute( name, buf );\r
-}\r
-\r
-\r
-void XMLPrinter::PushAttribute( const char* name, double v )\r
-{\r
-    char buf[BUF_SIZE];\r
-    XMLUtil::ToStr( v, buf, BUF_SIZE );\r
-    PushAttribute( name, buf );\r
-}\r
-\r
-\r
-void XMLPrinter::CloseElement( bool compactMode )\r
-{\r
-    --_depth;\r
-    const char* name = _stack.Pop();\r
-\r
-    if ( _elementJustOpened ) {\r
-        Print( "/>" );\r
-    }\r
-    else {\r
-        if ( _textDepth < 0 && !compactMode) {\r
-            Print( "\n" );\r
-            PrintSpace( _depth );\r
-        }\r
-        Print( "</%s>", name );\r
-    }\r
-\r
-    if ( _textDepth == _depth ) {\r
-        _textDepth = -1;\r
-    }\r
-    if ( _depth == 0 && !compactMode) {\r
-        Print( "\n" );\r
-    }\r
-    _elementJustOpened = false;\r
-}\r
-\r
-\r
-void XMLPrinter::SealElementIfJustOpened()\r
-{\r
-    if ( !_elementJustOpened ) {\r
-        return;\r
-    }\r
-    _elementJustOpened = false;\r
-    Print( ">" );\r
-}\r
-\r
-\r
-void XMLPrinter::PushText( const char* text, bool cdata )\r
-{\r
-    _textDepth = _depth-1;\r
-\r
-    SealElementIfJustOpened();\r
-    if ( cdata ) {\r
-        Print( "<![CDATA[%s]]>", text );\r
-    }\r
-    else {\r
-        PrintString( text, true );\r
-    }\r
-}\r
-\r
-void XMLPrinter::PushText( int value )\r
-{\r
-    char buf[BUF_SIZE];\r
-    XMLUtil::ToStr( value, buf, BUF_SIZE );\r
-    PushText( buf, false );\r
-}\r
-\r
-\r
-void XMLPrinter::PushText( unsigned value )\r
-{\r
-    char buf[BUF_SIZE];\r
-    XMLUtil::ToStr( value, buf, BUF_SIZE );\r
-    PushText( buf, false );\r
-}\r
-\r
-\r
-void XMLPrinter::PushText( bool value )\r
-{\r
-    char buf[BUF_SIZE];\r
-    XMLUtil::ToStr( value, buf, BUF_SIZE );\r
-    PushText( buf, false );\r
-}\r
-\r
-\r
-void XMLPrinter::PushText( float value )\r
-{\r
-    char buf[BUF_SIZE];\r
-    XMLUtil::ToStr( value, buf, BUF_SIZE );\r
-    PushText( buf, false );\r
-}\r
-\r
-\r
-void XMLPrinter::PushText( double value )\r
-{\r
-    char buf[BUF_SIZE];\r
-    XMLUtil::ToStr( value, buf, BUF_SIZE );\r
-    PushText( buf, false );\r
-}\r
-\r
-\r
-void XMLPrinter::PushComment( const char* comment )\r
-{\r
-    SealElementIfJustOpened();\r
-    if ( _textDepth < 0 && !_firstElement && !_compactMode) {\r
-        Print( "\n" );\r
-        PrintSpace( _depth );\r
-    }\r
-    _firstElement = false;\r
-    Print( "<!--%s-->", comment );\r
-}\r
-\r
-\r
-void XMLPrinter::PushDeclaration( const char* value )\r
-{\r
-    SealElementIfJustOpened();\r
-    if ( _textDepth < 0 && !_firstElement && !_compactMode) {\r
-        Print( "\n" );\r
-        PrintSpace( _depth );\r
-    }\r
-    _firstElement = false;\r
-    Print( "<?%s?>", value );\r
-}\r
-\r
-\r
-void XMLPrinter::PushUnknown( const char* value )\r
-{\r
-    SealElementIfJustOpened();\r
-    if ( _textDepth < 0 && !_firstElement && !_compactMode) {\r
-        Print( "\n" );\r
-        PrintSpace( _depth );\r
-    }\r
-    _firstElement = false;\r
-    Print( "<!%s>", value );\r
-}\r
-\r
-\r
-bool XMLPrinter::VisitEnter( const XMLDocument& doc )\r
-{\r
-    _processEntities = doc.ProcessEntities();\r
-    if ( doc.HasBOM() ) {\r
-        PushHeader( true, false );\r
-    }\r
-    return true;\r
-}\r
-\r
-\r
-bool XMLPrinter::VisitEnter( const XMLElement& element, const XMLAttribute* attribute )\r
-{\r
-    const XMLElement* parentElem = 0;\r
-    if ( element.Parent() ) {\r
-        parentElem = element.Parent()->ToElement();\r
-    }\r
-    const bool compactMode = parentElem ? CompactMode( *parentElem ) : _compactMode;\r
-    OpenElement( element.Name(), compactMode );\r
-    while ( attribute ) {\r
-        PushAttribute( attribute->Name(), attribute->Value() );\r
-        attribute = attribute->Next();\r
-    }\r
-    return true;\r
-}\r
-\r
-\r
-bool XMLPrinter::VisitExit( const XMLElement& element )\r
-{\r
-    CloseElement( CompactMode(element) );\r
-    return true;\r
-}\r
-\r
-\r
-bool XMLPrinter::Visit( const XMLText& text )\r
-{\r
-    PushText( text.Value(), text.CData() );\r
-    return true;\r
-}\r
-\r
-\r
-bool XMLPrinter::Visit( const XMLComment& comment )\r
-{\r
-    PushComment( comment.Value() );\r
-    return true;\r
-}\r
-\r
-bool XMLPrinter::Visit( const XMLDeclaration& declaration )\r
-{\r
-    PushDeclaration( declaration.Value() );\r
-    return true;\r
-}\r
-\r
-\r
-bool XMLPrinter::Visit( const XMLUnknown& unknown )\r
-{\r
-    PushUnknown( unknown.Value() );\r
-    return true;\r
-}\r
-\r
-}   // namespace tinyxml2\r
-\r
diff --git a/lib/third_party/tinyxml/tinyxml2.h b/lib/third_party/tinyxml/tinyxml2.h
deleted file mode 100644 (file)
index 599669e..0000000
+++ /dev/null
@@ -1,2106 +0,0 @@
-/*\r
-Original code by Lee Thomason (www.grinninglizard.com)\r
-\r
-This software is provided 'as-is', without any express or implied\r
-warranty. In no event will the authors be held liable for any\r
-damages arising from the use of this software.\r
-\r
-Permission is granted to anyone to use this software for any\r
-purpose, including commercial applications, and to alter it and\r
-redistribute it freely, subject to the following restrictions:\r
-\r
-1. The origin of this software must not be misrepresented; you must\r
-not claim that you wrote the original software. If you use this\r
-software in a product, an acknowledgment in the product documentation\r
-would be appreciated but is not required.\r
-\r
-2. Altered source versions must be plainly marked as such, and\r
-must not be misrepresented as being the original software.\r
-\r
-3. This notice may not be removed or altered from any source\r
-distribution.\r
-*/\r
-\r
-#ifndef TINYXML2_INCLUDED\r
-#define TINYXML2_INCLUDED\r
-\r
-#if defined(ANDROID_NDK) || defined(__BORLANDC__) || defined(__QNXNTO__)\r
-#   include <ctype.h>\r
-#   include <limits.h>\r
-#   include <stdio.h>\r
-#   include <stdlib.h>\r
-#   include <string.h>\r
-#else\r
-#   include <cctype>\r
-#   include <climits>\r
-#   include <cstdio>\r
-#   include <cstdlib>\r
-#   include <cstring>\r
-#endif\r
-\r
-/*\r
-   TODO: intern strings instead of allocation.\r
-*/\r
-/*\r
-       gcc:\r
-        g++ -Wall -DDEBUG tinyxml2.cpp xmltest.cpp -o gccxmltest.exe\r
-\r
-    Formatting, Artistic Style:\r
-        AStyle.exe --style=1tbs --indent-switches --break-closing-brackets --indent-preprocessor tinyxml2.cpp tinyxml2.h\r
-*/\r
-\r
-#if defined( _DEBUG ) || defined( DEBUG ) || defined (__DEBUG__)\r
-#   ifndef DEBUG\r
-#       define DEBUG\r
-#   endif\r
-#endif\r
-\r
-#ifdef _MSC_VER\r
-#   pragma warning(push)\r
-#   pragma warning(disable: 4251)\r
-#endif\r
-\r
-#ifdef _WIN32\r
-#   ifdef TINYXML2_EXPORT\r
-#       define TINYXML2_LIB __declspec(dllexport)\r
-#   elif defined(TINYXML2_IMPORT)\r
-#       define TINYXML2_LIB __declspec(dllimport)\r
-#   else\r
-#       define TINYXML2_LIB\r
-#   endif\r
-#else\r
-#   define TINYXML2_LIB\r
-#endif\r
-\r
-\r
-#if defined(DEBUG)\r
-#   if defined(_MSC_VER)\r
-#       // "(void)0," is for suppressing C4127 warning in "assert(false)", "assert(true)" and the like\r
-#       define TIXMLASSERT( x )           if ( !((void)0,(x))) { __debugbreak(); }\r
-#   elif defined (ANDROID_NDK)\r
-#       include <android/log.h>\r
-#       define TIXMLASSERT( x )           if ( !(x)) { __android_log_assert( "assert", "grinliz", "ASSERT in '%s' at %d.", __FILE__, __LINE__ ); }\r
-#   else\r
-#       include <assert.h>\r
-#       define TIXMLASSERT                assert\r
-#   endif\r
-#else\r
-#   define TIXMLASSERT( x )               {}\r
-#endif\r
-\r
-\r
-/* Versioning, past 1.0.14:\r
-       http://semver.org/\r
-*/\r
-static const int TIXML2_MAJOR_VERSION = 3;\r
-static const int TIXML2_MINOR_VERSION = 0;\r
-static const int TIXML2_PATCH_VERSION = 0;\r
-\r
-#include <tinyxml/cpPlugins_tinyxml2_Export.h>\r
-#undef TINYXML2_LIB\r
-#define TINYXML2_LIB cpPlugins_tinyxml2_EXPORT\r
-\r
-namespace tinyxml2\r
-{\r
-class XMLDocument;\r
-class XMLElement;\r
-class XMLAttribute;\r
-class XMLComment;\r
-class XMLText;\r
-class XMLDeclaration;\r
-class XMLUnknown;\r
-class XMLPrinter;\r
-\r
-/*\r
-       A class that wraps strings. Normally stores the start and end\r
-       pointers into the XML file itself, and will apply normalization\r
-       and entity translation if actually read. Can also store (and memory\r
-       manage) a traditional char[]\r
-*/\r
-class StrPair\r
-{\r
-public:\r
-    enum {\r
-        NEEDS_ENTITY_PROCESSING                        = 0x01,\r
-        NEEDS_NEWLINE_NORMALIZATION            = 0x02,\r
-        NEEDS_WHITESPACE_COLLAPSING     = 0x04,\r
-\r
-        TEXT_ELEMENT                           = NEEDS_ENTITY_PROCESSING | NEEDS_NEWLINE_NORMALIZATION,\r
-        TEXT_ELEMENT_LEAVE_ENTITIES            = NEEDS_NEWLINE_NORMALIZATION,\r
-        ATTRIBUTE_NAME                         = 0,\r
-        ATTRIBUTE_VALUE                                = NEEDS_ENTITY_PROCESSING | NEEDS_NEWLINE_NORMALIZATION,\r
-        ATTRIBUTE_VALUE_LEAVE_ENTITIES         = NEEDS_NEWLINE_NORMALIZATION,\r
-        COMMENT                                        = NEEDS_NEWLINE_NORMALIZATION\r
-    };\r
-\r
-    StrPair() : _flags( 0 ), _start( 0 ), _end( 0 ) {}\r
-    ~StrPair();\r
-\r
-    void Set( char* start, char* end, int flags ) {\r
-        Reset();\r
-        _start  = start;\r
-        _end    = end;\r
-        _flags  = flags | NEEDS_FLUSH;\r
-    }\r
-\r
-    const char* GetStr();\r
-\r
-    bool Empty() const {\r
-        return _start == _end;\r
-    }\r
-\r
-    void SetInternedStr( const char* str ) {\r
-        Reset();\r
-        _start = const_cast<char*>(str);\r
-    }\r
-\r
-    void SetStr( const char* str, int flags=0 );\r
-\r
-    char* ParseText( char* in, const char* endTag, int strFlags );\r
-    char* ParseName( char* in );\r
-\r
-    void TransferTo( StrPair* other );\r
-\r
-private:\r
-    void Reset();\r
-    void CollapseWhitespace();\r
-\r
-    enum {\r
-        NEEDS_FLUSH = 0x100,\r
-        NEEDS_DELETE = 0x200\r
-    };\r
-\r
-    int     _flags;\r
-    char*   _start;\r
-    char*   _end;\r
-\r
-    StrPair( const StrPair& other );   // not supported\r
-    void operator=( StrPair& other );  // not supported, use TransferTo()\r
-};\r
-\r
-\r
-/*\r
-       A dynamic array of Plain Old Data. Doesn't support constructors, etc.\r
-       Has a small initial memory pool, so that low or no usage will not\r
-       cause a call to new/delete\r
-*/\r
-template <class T, int INITIAL_SIZE>\r
-class DynArray\r
-{\r
-public:\r
-    DynArray() {\r
-        _mem = _pool;\r
-        _allocated = INITIAL_SIZE;\r
-        _size = 0;\r
-    }\r
-\r
-    ~DynArray() {\r
-        if ( _mem != _pool ) {\r
-            delete [] _mem;\r
-        }\r
-    }\r
-\r
-    void Clear() {\r
-        _size = 0;\r
-    }\r
-\r
-    void Push( T t ) {\r
-        TIXMLASSERT( _size < INT_MAX );\r
-        EnsureCapacity( _size+1 );\r
-        _mem[_size++] = t;\r
-    }\r
-\r
-    T* PushArr( int count ) {\r
-        TIXMLASSERT( count >= 0 );\r
-        TIXMLASSERT( _size <= INT_MAX - count );\r
-        EnsureCapacity( _size+count );\r
-        T* ret = &_mem[_size];\r
-        _size += count;\r
-        return ret;\r
-    }\r
-\r
-    T Pop() {\r
-        TIXMLASSERT( _size > 0 );\r
-        return _mem[--_size];\r
-    }\r
-\r
-    void PopArr( int count ) {\r
-        TIXMLASSERT( _size >= count );\r
-        _size -= count;\r
-    }\r
-\r
-    bool Empty() const                                 {\r
-        return _size == 0;\r
-    }\r
-\r
-    T& operator[](int i)                               {\r
-        TIXMLASSERT( i>= 0 && i < _size );\r
-        return _mem[i];\r
-    }\r
-\r
-    const T& operator[](int i) const   {\r
-        TIXMLASSERT( i>= 0 && i < _size );\r
-        return _mem[i];\r
-    }\r
-\r
-    const T& PeekTop() const            {\r
-        TIXMLASSERT( _size > 0 );\r
-        return _mem[ _size - 1];\r
-    }\r
-\r
-    int Size() const                                   {\r
-        TIXMLASSERT( _size >= 0 );\r
-        return _size;\r
-    }\r
-\r
-    int Capacity() const                               {\r
-        TIXMLASSERT( _allocated >= INITIAL_SIZE );\r
-        return _allocated;\r
-    }\r
-\r
-    const T* Mem() const                               {\r
-        TIXMLASSERT( _mem );\r
-        return _mem;\r
-    }\r
-\r
-    T* Mem()                                                   {\r
-        TIXMLASSERT( _mem );\r
-        return _mem;\r
-    }\r
-\r
-private:\r
-    DynArray( const DynArray& ); // not supported\r
-    void operator=( const DynArray& ); // not supported\r
-\r
-    void EnsureCapacity( int cap ) {\r
-        TIXMLASSERT( cap > 0 );\r
-        if ( cap > _allocated ) {\r
-            TIXMLASSERT( cap <= INT_MAX / 2 );\r
-            int newAllocated = cap * 2;\r
-            T* newMem = new T[newAllocated];\r
-            memcpy( newMem, _mem, sizeof(T)*_size );   // warning: not using constructors, only works for PODs\r
-            if ( _mem != _pool ) {\r
-                delete [] _mem;\r
-            }\r
-            _mem = newMem;\r
-            _allocated = newAllocated;\r
-        }\r
-    }\r
-\r
-    T*  _mem;\r
-    T   _pool[INITIAL_SIZE];\r
-    int _allocated;            // objects allocated\r
-    int _size;                 // number objects in use\r
-};\r
-\r
-\r
-/*\r
-       Parent virtual class of a pool for fast allocation\r
-       and deallocation of objects.\r
-*/\r
-class MemPool\r
-{\r
-public:\r
-    MemPool() {}\r
-    virtual ~MemPool() {}\r
-\r
-    virtual int ItemSize() const = 0;\r
-    virtual void* Alloc() = 0;\r
-    virtual void Free( void* ) = 0;\r
-    virtual void SetTracked() = 0;\r
-    virtual void Clear() = 0;\r
-};\r
-\r
-\r
-/*\r
-       Template child class to create pools of the correct type.\r
-*/\r
-template< int SIZE >\r
-class MemPoolT : public MemPool\r
-{\r
-public:\r
-    MemPoolT() : _root(0), _currentAllocs(0), _nAllocs(0), _maxAllocs(0), _nUntracked(0)       {}\r
-    ~MemPoolT() {\r
-        Clear();\r
-    }\r
-    \r
-    void Clear() {\r
-        // Delete the blocks.\r
-        while( !_blockPtrs.Empty()) {\r
-            Block* b  = _blockPtrs.Pop();\r
-            delete b;\r
-        }\r
-        _root = 0;\r
-        _currentAllocs = 0;\r
-        _nAllocs = 0;\r
-        _maxAllocs = 0;\r
-        _nUntracked = 0;\r
-    }\r
-\r
-    virtual int ItemSize() const       {\r
-        return SIZE;\r
-    }\r
-    int CurrentAllocs() const          {\r
-        return _currentAllocs;\r
-    }\r
-\r
-    virtual void* Alloc() {\r
-        if ( !_root ) {\r
-            // Need a new block.\r
-            Block* block = new Block();\r
-            _blockPtrs.Push( block );\r
-\r
-            for( int i=0; i<COUNT-1; ++i ) {\r
-                block->chunk[i].next = &block->chunk[i+1];\r
-            }\r
-            block->chunk[COUNT-1].next = 0;\r
-            _root = block->chunk;\r
-        }\r
-        void* result = _root;\r
-        _root = _root->next;\r
-\r
-        ++_currentAllocs;\r
-        if ( _currentAllocs > _maxAllocs ) {\r
-            _maxAllocs = _currentAllocs;\r
-        }\r
-        _nAllocs++;\r
-        _nUntracked++;\r
-        return result;\r
-    }\r
-    \r
-    virtual void Free( void* mem ) {\r
-        if ( !mem ) {\r
-            return;\r
-        }\r
-        --_currentAllocs;\r
-        Chunk* chunk = static_cast<Chunk*>( mem );\r
-#ifdef DEBUG\r
-        memset( chunk, 0xfe, sizeof(Chunk) );\r
-#endif\r
-        chunk->next = _root;\r
-        _root = chunk;\r
-    }\r
-    void Trace( const char* name ) {\r
-        printf( "Mempool %s watermark=%d [%dk] current=%d size=%d nAlloc=%d blocks=%d\n",\r
-                name, _maxAllocs, _maxAllocs*SIZE/1024, _currentAllocs, SIZE, _nAllocs, _blockPtrs.Size() );\r
-    }\r
-\r
-    void SetTracked() {\r
-        _nUntracked--;\r
-    }\r
-\r
-    int Untracked() const {\r
-        return _nUntracked;\r
-    }\r
-\r
-       // This number is perf sensitive. 4k seems like a good tradeoff on my machine.\r
-       // The test file is large, 170k.\r
-       // Release:             VS2010 gcc(no opt)\r
-       //              1k:             4000\r
-       //              2k:             4000\r
-       //              4k:             3900    21000\r
-       //              16k:    5200\r
-       //              32k:    4300\r
-       //              64k:    4000    21000\r
-    enum { COUNT = (4*1024)/SIZE }; // Some compilers do not accept to use COUNT in private part if COUNT is private\r
-\r
-private:\r
-    MemPoolT( const MemPoolT& ); // not supported\r
-    void operator=( const MemPoolT& ); // not supported\r
-\r
-    union Chunk {\r
-        Chunk*  next;\r
-        char    mem[SIZE];\r
-    };\r
-    struct Block {\r
-        Chunk chunk[COUNT];\r
-    };\r
-    DynArray< Block*, 10 > _blockPtrs;\r
-    Chunk* _root;\r
-\r
-    int _currentAllocs;\r
-    int _nAllocs;\r
-    int _maxAllocs;\r
-    int _nUntracked;\r
-};\r
-\r
-\r
-\r
-/**\r
-       Implements the interface to the "Visitor pattern" (see the Accept() method.)\r
-       If you call the Accept() method, it requires being passed a XMLVisitor\r
-       class to handle callbacks. For nodes that contain other nodes (Document, Element)\r
-       you will get called with a VisitEnter/VisitExit pair. Nodes that are always leafs\r
-       are simply called with Visit().\r
-\r
-       If you return 'true' from a Visit method, recursive parsing will continue. If you return\r
-       false, <b>no children of this node or its siblings</b> will be visited.\r
-\r
-       All flavors of Visit methods have a default implementation that returns 'true' (continue\r
-       visiting). You need to only override methods that are interesting to you.\r
-\r
-       Generally Accept() is called on the XMLDocument, although all nodes support visiting.\r
-\r
-       You should never change the document from a callback.\r
-\r
-       @sa XMLNode::Accept()\r
-*/\r
-class TINYXML2_LIB XMLVisitor\r
-{\r
-public:\r
-    virtual ~XMLVisitor() {}\r
-\r
-    /// Visit a document.\r
-    virtual bool VisitEnter( const XMLDocument& /*doc*/ )                      {\r
-        return true;\r
-    }\r
-    /// Visit a document.\r
-    virtual bool VisitExit( const XMLDocument& /*doc*/ )                       {\r
-        return true;\r
-    }\r
-\r
-    /// Visit an element.\r
-    virtual bool VisitEnter( const XMLElement& /*element*/, const XMLAttribute* /*firstAttribute*/ )   {\r
-        return true;\r
-    }\r
-    /// Visit an element.\r
-    virtual bool VisitExit( const XMLElement& /*element*/ )                    {\r
-        return true;\r
-    }\r
-\r
-    /// Visit a declaration.\r
-    virtual bool Visit( const XMLDeclaration& /*declaration*/ )                {\r
-        return true;\r
-    }\r
-    /// Visit a text node.\r
-    virtual bool Visit( const XMLText& /*text*/ )                                      {\r
-        return true;\r
-    }\r
-    /// Visit a comment node.\r
-    virtual bool Visit( const XMLComment& /*comment*/ )                                {\r
-        return true;\r
-    }\r
-    /// Visit an unknown node.\r
-    virtual bool Visit( const XMLUnknown& /*unknown*/ )                                {\r
-        return true;\r
-    }\r
-};\r
-\r
-// WARNING: must match XMLDocument::_errorNames[]\r
-enum XMLError {\r
-    XML_SUCCESS = 0,\r
-    XML_NO_ERROR = 0,\r
-    XML_NO_ATTRIBUTE,\r
-    XML_WRONG_ATTRIBUTE_TYPE,\r
-    XML_ERROR_FILE_NOT_FOUND,\r
-    XML_ERROR_FILE_COULD_NOT_BE_OPENED,\r
-    XML_ERROR_FILE_READ_ERROR,\r
-    XML_ERROR_ELEMENT_MISMATCH,\r
-    XML_ERROR_PARSING_ELEMENT,\r
-    XML_ERROR_PARSING_ATTRIBUTE,\r
-    XML_ERROR_IDENTIFYING_TAG,\r
-    XML_ERROR_PARSING_TEXT,\r
-    XML_ERROR_PARSING_CDATA,\r
-    XML_ERROR_PARSING_COMMENT,\r
-    XML_ERROR_PARSING_DECLARATION,\r
-    XML_ERROR_PARSING_UNKNOWN,\r
-    XML_ERROR_EMPTY_DOCUMENT,\r
-    XML_ERROR_MISMATCHED_ELEMENT,\r
-    XML_ERROR_PARSING,\r
-    XML_CAN_NOT_CONVERT_TEXT,\r
-    XML_NO_TEXT_NODE,\r
-\r
-       XML_ERROR_COUNT\r
-};\r
-\r
-\r
-/*\r
-       Utility functionality.\r
-*/\r
-class XMLUtil\r
-{\r
-public:\r
-    static const char* SkipWhiteSpace( const char* p ) {\r
-        TIXMLASSERT( p );\r
-        while( IsWhiteSpace(*p) ) {\r
-            ++p;\r
-        }\r
-        TIXMLASSERT( p );\r
-        return p;\r
-    }\r
-    static char* SkipWhiteSpace( char* p )                             {\r
-        return const_cast<char*>( SkipWhiteSpace( const_cast<const char*>(p) ) );\r
-    }\r
-\r
-    // Anything in the high order range of UTF-8 is assumed to not be whitespace. This isn't\r
-    // correct, but simple, and usually works.\r
-    static bool IsWhiteSpace( char p )                                 {\r
-        return !IsUTF8Continuation(p) && isspace( static_cast<unsigned char>(p) );\r
-    }\r
-    \r
-    inline static bool IsNameStartChar( unsigned char ch ) {\r
-        if ( ch >= 128 ) {\r
-            // This is a heuristic guess in attempt to not implement Unicode-aware isalpha()\r
-            return true;\r
-        }\r
-        if ( isalpha( ch ) ) {\r
-            return true;\r
-        }\r
-        return ch == ':' || ch == '_';\r
-    }\r
-    \r
-    inline static bool IsNameChar( unsigned char ch ) {\r
-        return IsNameStartChar( ch )\r
-               || isdigit( ch )\r
-               || ch == '.'\r
-               || ch == '-';\r
-    }\r
-\r
-    inline static bool StringEqual( const char* p, const char* q, int nChar=INT_MAX )  {\r
-        if ( p == q ) {\r
-            return true;\r
-        }\r
-        return strncmp( p, q, nChar ) == 0;\r
-    }\r
-    \r
-    inline static bool IsUTF8Continuation( char p ) {\r
-        return ( p & 0x80 ) != 0;\r
-    }\r
-\r
-    static const char* ReadBOM( const char* p, bool* hasBOM );\r
-    // p is the starting location,\r
-    // the UTF-8 value of the entity will be placed in value, and length filled in.\r
-    static const char* GetCharacterRef( const char* p, char* value, int* length );\r
-    static void ConvertUTF32ToUTF8( unsigned long input, char* output, int* length );\r
-\r
-    // converts primitive types to strings\r
-    static void ToStr( int v, char* buffer, int bufferSize );\r
-    static void ToStr( unsigned v, char* buffer, int bufferSize );\r
-    static void ToStr( bool v, char* buffer, int bufferSize );\r
-    static void ToStr( float v, char* buffer, int bufferSize );\r
-    static void ToStr( double v, char* buffer, int bufferSize );\r
-\r
-    // converts strings to primitive types\r
-    static bool        ToInt( const char* str, int* value );\r
-    static bool ToUnsigned( const char* str, unsigned* value );\r
-    static bool        ToBool( const char* str, bool* value );\r
-    static bool        ToFloat( const char* str, float* value );\r
-    static bool ToDouble( const char* str, double* value );\r
-};\r
-\r
-\r
-/** XMLNode is a base class for every object that is in the\r
-       XML Document Object Model (DOM), except XMLAttributes.\r
-       Nodes have siblings, a parent, and children which can\r
-       be navigated. A node is always in a XMLDocument.\r
-       The type of a XMLNode can be queried, and it can\r
-       be cast to its more defined type.\r
-\r
-       A XMLDocument allocates memory for all its Nodes.\r
-       When the XMLDocument gets deleted, all its Nodes\r
-       will also be deleted.\r
-\r
-       @verbatim\r
-       A Document can contain: Element (container or leaf)\r
-                                                       Comment (leaf)\r
-                                                       Unknown (leaf)\r
-                                                       Declaration( leaf )\r
-\r
-       An Element can contain: Element (container or leaf)\r
-                                                       Text    (leaf)\r
-                                                       Attributes (not on tree)\r
-                                                       Comment (leaf)\r
-                                                       Unknown (leaf)\r
-\r
-       @endverbatim\r
-*/\r
-class TINYXML2_LIB XMLNode\r
-{\r
-    friend class XMLDocument;\r
-    friend class XMLElement;\r
-public:\r
-\r
-    /// Get the XMLDocument that owns this XMLNode.\r
-    const XMLDocument* GetDocument() const     {\r
-        TIXMLASSERT( _document );\r
-        return _document;\r
-    }\r
-    /// Get the XMLDocument that owns this XMLNode.\r
-    XMLDocument* GetDocument()                         {\r
-        TIXMLASSERT( _document );\r
-        return _document;\r
-    }\r
-\r
-    /// Safely cast to an Element, or null.\r
-    virtual XMLElement*                ToElement()             {\r
-        return 0;\r
-    }\r
-    /// Safely cast to Text, or null.\r
-    virtual XMLText*           ToText()                {\r
-        return 0;\r
-    }\r
-    /// Safely cast to a Comment, or null.\r
-    virtual XMLComment*                ToComment()             {\r
-        return 0;\r
-    }\r
-    /// Safely cast to a Document, or null.\r
-    virtual XMLDocument*       ToDocument()    {\r
-        return 0;\r
-    }\r
-    /// Safely cast to a Declaration, or null.\r
-    virtual XMLDeclaration*    ToDeclaration() {\r
-        return 0;\r
-    }\r
-    /// Safely cast to an Unknown, or null.\r
-    virtual XMLUnknown*                ToUnknown()             {\r
-        return 0;\r
-    }\r
-\r
-    virtual const XMLElement*          ToElement() const               {\r
-        return 0;\r
-    }\r
-    virtual const XMLText*                     ToText() const                  {\r
-        return 0;\r
-    }\r
-    virtual const XMLComment*          ToComment() const               {\r
-        return 0;\r
-    }\r
-    virtual const XMLDocument*         ToDocument() const              {\r
-        return 0;\r
-    }\r
-    virtual const XMLDeclaration*      ToDeclaration() const   {\r
-        return 0;\r
-    }\r
-    virtual const XMLUnknown*          ToUnknown() const               {\r
-        return 0;\r
-    }\r
-\r
-    /** The meaning of 'value' changes for the specific type.\r
-       @verbatim\r
-       Document:       empty (NULL is returned, not an empty string)\r
-       Element:        name of the element\r
-       Comment:        the comment text\r
-       Unknown:        the tag contents\r
-       Text:           the text string\r
-       @endverbatim\r
-    */\r
-    const char* Value() const;\r
-\r
-    /** Set the Value of an XML node.\r
-       @sa Value()\r
-    */\r
-    void SetValue( const char* val, bool staticMem=false );\r
-\r
-    /// Get the parent of this node on the DOM.\r
-    const XMLNode*     Parent() const                  {\r
-        return _parent;\r
-    }\r
-\r
-    XMLNode* Parent()                                          {\r
-        return _parent;\r
-    }\r
-\r
-    /// Returns true if this node has no children.\r
-    bool NoChildren() const                                    {\r
-        return !_firstChild;\r
-    }\r
-\r
-    /// Get the first child node, or null if none exists.\r
-    const XMLNode*  FirstChild() const         {\r
-        return _firstChild;\r
-    }\r
-\r
-    XMLNode*           FirstChild()                    {\r
-        return _firstChild;\r
-    }\r
-\r
-    /** Get the first child element, or optionally the first child\r
-        element with the specified name.\r
-    */\r
-    const XMLElement* FirstChildElement( const char* name = 0 ) const;\r
-\r
-    XMLElement* FirstChildElement( const char* name = 0 )      {\r
-        return const_cast<XMLElement*>(const_cast<const XMLNode*>(this)->FirstChildElement( name ));\r
-    }\r
-\r
-    /// Get the last child node, or null if none exists.\r
-    const XMLNode*     LastChild() const                                               {\r
-        return _lastChild;\r
-    }\r
-\r
-    XMLNode*           LastChild()                                                             {\r
-        return _lastChild;\r
-    }\r
-\r
-    /** Get the last child element or optionally the last child\r
-        element with the specified name.\r
-    */\r
-    const XMLElement* LastChildElement( const char* name = 0 ) const;\r
-\r
-    XMLElement* LastChildElement( const char* name = 0 )       {\r
-        return const_cast<XMLElement*>(const_cast<const XMLNode*>(this)->LastChildElement(name) );\r
-    }\r
-\r
-    /// Get the previous (left) sibling node of this node.\r
-    const XMLNode*     PreviousSibling() const                                 {\r
-        return _prev;\r
-    }\r
-\r
-    XMLNode*   PreviousSibling()                                                       {\r
-        return _prev;\r
-    }\r
-\r
-    /// Get the previous (left) sibling element of this node, with an optionally supplied name.\r
-    const XMLElement*  PreviousSiblingElement( const char* name = 0 ) const ;\r
-\r
-    XMLElement*        PreviousSiblingElement( const char* name = 0 ) {\r
-        return const_cast<XMLElement*>(const_cast<const XMLNode*>(this)->PreviousSiblingElement( name ) );\r
-    }\r
-\r
-    /// Get the next (right) sibling node of this node.\r
-    const XMLNode*     NextSibling() const                                             {\r
-        return _next;\r
-    }\r
-\r
-    XMLNode*   NextSibling()                                                           {\r
-        return _next;\r
-    }\r
-\r
-    /// Get the next (right) sibling element of this node, with an optionally supplied name.\r
-    const XMLElement*  NextSiblingElement( const char* name = 0 ) const;\r
-\r
-    XMLElement*        NextSiblingElement( const char* name = 0 )      {\r
-        return const_cast<XMLElement*>(const_cast<const XMLNode*>(this)->NextSiblingElement( name ) );\r
-    }\r
-\r
-    /**\r
-       Add a child node as the last (right) child.\r
-               If the child node is already part of the document,\r
-               it is moved from its old location to the new location.\r
-               Returns the addThis argument or 0 if the node does not\r
-               belong to the same document.\r
-    */\r
-    XMLNode* InsertEndChild( XMLNode* addThis );\r
-\r
-    XMLNode* LinkEndChild( XMLNode* addThis )  {\r
-        return InsertEndChild( addThis );\r
-    }\r
-    /**\r
-       Add a child node as the first (left) child.\r
-               If the child node is already part of the document,\r
-               it is moved from its old location to the new location.\r
-               Returns the addThis argument or 0 if the node does not\r
-               belong to the same document.\r
-    */\r
-    XMLNode* InsertFirstChild( XMLNode* addThis );\r
-    /**\r
-       Add a node after the specified child node.\r
-               If the child node is already part of the document,\r
-               it is moved from its old location to the new location.\r
-               Returns the addThis argument or 0 if the afterThis node\r
-               is not a child of this node, or if the node does not\r
-               belong to the same document.\r
-    */\r
-    XMLNode* InsertAfterChild( XMLNode* afterThis, XMLNode* addThis );\r
-\r
-    /**\r
-       Delete all the children of this node.\r
-    */\r
-    void DeleteChildren();\r
-\r
-    /**\r
-       Delete a child of this node.\r
-    */\r
-    void DeleteChild( XMLNode* node );\r
-\r
-    /**\r
-       Make a copy of this node, but not its children.\r
-       You may pass in a Document pointer that will be\r
-       the owner of the new Node. If the 'document' is\r
-       null, then the node returned will be allocated\r
-       from the current Document. (this->GetDocument())\r
-\r
-       Note: if called on a XMLDocument, this will return null.\r
-    */\r
-    virtual XMLNode* ShallowClone( XMLDocument* document ) const = 0;\r
-\r
-    /**\r
-       Test if 2 nodes are the same, but don't test children.\r
-       The 2 nodes do not need to be in the same Document.\r
-\r
-       Note: if called on a XMLDocument, this will return false.\r
-    */\r
-    virtual bool ShallowEqual( const XMLNode* compare ) const = 0;\r
-\r
-    /** Accept a hierarchical visit of the nodes in the TinyXML-2 DOM. Every node in the\r
-       XML tree will be conditionally visited and the host will be called back\r
-       via the XMLVisitor interface.\r
-\r
-       This is essentially a SAX interface for TinyXML-2. (Note however it doesn't re-parse\r
-       the XML for the callbacks, so the performance of TinyXML-2 is unchanged by using this\r
-       interface versus any other.)\r
-\r
-       The interface has been based on ideas from:\r
-\r
-       - http://www.saxproject.org/\r
-       - http://c2.com/cgi/wiki?HierarchicalVisitorPattern\r
-\r
-       Which are both good references for "visiting".\r
-\r
-       An example of using Accept():\r
-       @verbatim\r
-       XMLPrinter printer;\r
-       tinyxmlDoc.Accept( &printer );\r
-       const char* xmlcstr = printer.CStr();\r
-       @endverbatim\r
-    */\r
-    virtual bool Accept( XMLVisitor* visitor ) const = 0;\r
-\r
-protected:\r
-    XMLNode( XMLDocument* );\r
-    virtual ~XMLNode();\r
-\r
-    virtual char* ParseDeep( char*, StrPair* );\r
-\r
-    XMLDocument*       _document;\r
-    XMLNode*           _parent;\r
-    mutable StrPair    _value;\r
-\r
-    XMLNode*           _firstChild;\r
-    XMLNode*           _lastChild;\r
-\r
-    XMLNode*           _prev;\r
-    XMLNode*           _next;\r
-\r
-private:\r
-    MemPool*           _memPool;\r
-    void Unlink( XMLNode* child );\r
-    static void DeleteNode( XMLNode* node );\r
-    void InsertChildPreamble( XMLNode* insertThis ) const;\r
-\r
-    XMLNode( const XMLNode& ); // not supported\r
-    XMLNode& operator=( const XMLNode& );      // not supported\r
-};\r
-\r
-\r
-/** XML text.\r
-\r
-       Note that a text node can have child element nodes, for example:\r
-       @verbatim\r
-       <root>This is <b>bold</b></root>\r
-       @endverbatim\r
-\r
-       A text node can have 2 ways to output the next. "normal" output\r
-       and CDATA. It will default to the mode it was parsed from the XML file and\r
-       you generally want to leave it alone, but you can change the output mode with\r
-       SetCData() and query it with CData().\r
-*/\r
-class TINYXML2_LIB XMLText : public XMLNode\r
-{\r
-    friend class XMLBase;\r
-    friend class XMLDocument;\r
-public:\r
-    virtual bool Accept( XMLVisitor* visitor ) const;\r
-\r
-    virtual XMLText* ToText()                  {\r
-        return this;\r
-    }\r
-    virtual const XMLText* ToText() const      {\r
-        return this;\r
-    }\r
-\r
-    /// Declare whether this should be CDATA or standard text.\r
-    void SetCData( bool isCData )                      {\r
-        _isCData = isCData;\r
-    }\r
-    /// Returns true if this is a CDATA text element.\r
-    bool CData() const                                         {\r
-        return _isCData;\r
-    }\r
-\r
-    virtual XMLNode* ShallowClone( XMLDocument* document ) const;\r
-    virtual bool ShallowEqual( const XMLNode* compare ) const;\r
-\r
-protected:\r
-    XMLText( XMLDocument* doc )        : XMLNode( doc ), _isCData( false )     {}\r
-    virtual ~XMLText()                                                                                         {}\r
-\r
-    char* ParseDeep( char*, StrPair* endTag );\r
-\r
-private:\r
-    bool _isCData;\r
-\r
-    XMLText( const XMLText& ); // not supported\r
-    XMLText& operator=( const XMLText& );      // not supported\r
-};\r
-\r
-\r
-/** An XML Comment. */\r
-class TINYXML2_LIB XMLComment : public XMLNode\r
-{\r
-    friend class XMLDocument;\r
-public:\r
-    virtual XMLComment*        ToComment()                                     {\r
-        return this;\r
-    }\r
-    virtual const XMLComment* ToComment() const                {\r
-        return this;\r
-    }\r
-\r
-    virtual bool Accept( XMLVisitor* visitor ) const;\r
-\r
-    virtual XMLNode* ShallowClone( XMLDocument* document ) const;\r
-    virtual bool ShallowEqual( const XMLNode* compare ) const;\r
-\r
-protected:\r
-    XMLComment( XMLDocument* doc );\r
-    virtual ~XMLComment();\r
-\r
-    char* ParseDeep( char*, StrPair* endTag );\r
-\r
-private:\r
-    XMLComment( const XMLComment& );   // not supported\r
-    XMLComment& operator=( const XMLComment& );        // not supported\r
-};\r
-\r
-\r
-/** In correct XML the declaration is the first entry in the file.\r
-       @verbatim\r
-               <?xml version="1.0" standalone="yes"?>\r
-       @endverbatim\r
-\r
-       TinyXML-2 will happily read or write files without a declaration,\r
-       however.\r
-\r
-       The text of the declaration isn't interpreted. It is parsed\r
-       and written as a string.\r
-*/\r
-class TINYXML2_LIB XMLDeclaration : public XMLNode\r
-{\r
-    friend class XMLDocument;\r
-public:\r
-    virtual XMLDeclaration*    ToDeclaration()                                 {\r
-        return this;\r
-    }\r
-    virtual const XMLDeclaration* ToDeclaration() const                {\r
-        return this;\r
-    }\r
-\r
-    virtual bool Accept( XMLVisitor* visitor ) const;\r
-\r
-    virtual XMLNode* ShallowClone( XMLDocument* document ) const;\r
-    virtual bool ShallowEqual( const XMLNode* compare ) const;\r
-\r
-protected:\r
-    XMLDeclaration( XMLDocument* doc );\r
-    virtual ~XMLDeclaration();\r
-\r
-    char* ParseDeep( char*, StrPair* endTag );\r
-\r
-private:\r
-    XMLDeclaration( const XMLDeclaration& );   // not supported\r
-    XMLDeclaration& operator=( const XMLDeclaration& );        // not supported\r
-};\r
-\r
-\r
-/** Any tag that TinyXML-2 doesn't recognize is saved as an\r
-       unknown. It is a tag of text, but should not be modified.\r
-       It will be written back to the XML, unchanged, when the file\r
-       is saved.\r
-\r
-       DTD tags get thrown into XMLUnknowns.\r
-*/\r
-class TINYXML2_LIB XMLUnknown : public XMLNode\r
-{\r
-    friend class XMLDocument;\r
-public:\r
-    virtual XMLUnknown*        ToUnknown()                                     {\r
-        return this;\r
-    }\r
-    virtual const XMLUnknown* ToUnknown() const                {\r
-        return this;\r
-    }\r
-\r
-    virtual bool Accept( XMLVisitor* visitor ) const;\r
-\r
-    virtual XMLNode* ShallowClone( XMLDocument* document ) const;\r
-    virtual bool ShallowEqual( const XMLNode* compare ) const;\r
-\r
-protected:\r
-    XMLUnknown( XMLDocument* doc );\r
-    virtual ~XMLUnknown();\r
-\r
-    char* ParseDeep( char*, StrPair* endTag );\r
-\r
-private:\r
-    XMLUnknown( const XMLUnknown& );   // not supported\r
-    XMLUnknown& operator=( const XMLUnknown& );        // not supported\r
-};\r
-\r
-\r
-\r
-/** An attribute is a name-value pair. Elements have an arbitrary\r
-       number of attributes, each with a unique name.\r
-\r
-       @note The attributes are not XMLNodes. You may only query the\r
-       Next() attribute in a list.\r
-*/\r
-class TINYXML2_LIB XMLAttribute\r
-{\r
-    friend class XMLElement;\r
-public:\r
-    /// The name of the attribute.\r
-    const char* Name() const;\r
-\r
-    /// The value of the attribute.\r
-    const char* Value() const;\r
-\r
-    /// The next attribute in the list.\r
-    const XMLAttribute* Next() const {\r
-        return _next;\r
-    }\r
-\r
-    /** IntValue interprets the attribute as an integer, and returns the value.\r
-        If the value isn't an integer, 0 will be returned. There is no error checking;\r
-       use QueryIntValue() if you need error checking.\r
-    */\r
-    int                 IntValue() const                               {\r
-        int i=0;\r
-        QueryIntValue( &i );\r
-        return i;\r
-    }\r
-    /// Query as an unsigned integer. See IntValue()\r
-    unsigned UnsignedValue() const                     {\r
-        unsigned i=0;\r
-        QueryUnsignedValue( &i );\r
-        return i;\r
-    }\r
-    /// Query as a boolean. See IntValue()\r
-    bool        BoolValue() const                              {\r
-        bool b=false;\r
-        QueryBoolValue( &b );\r
-        return b;\r
-    }\r
-    /// Query as a double. See IntValue()\r
-    double      DoubleValue() const                    {\r
-        double d=0;\r
-        QueryDoubleValue( &d );\r
-        return d;\r
-    }\r
-    /// Query as a float. See IntValue()\r
-    float       FloatValue() const                             {\r
-        float f=0;\r
-        QueryFloatValue( &f );\r
-        return f;\r
-    }\r
-\r
-    /** QueryIntValue interprets the attribute as an integer, and returns the value\r
-       in the provided parameter. The function will return XML_NO_ERROR on success,\r
-       and XML_WRONG_ATTRIBUTE_TYPE if the conversion is not successful.\r
-    */\r
-    XMLError QueryIntValue( int* value ) const;\r
-    /// See QueryIntValue\r
-    XMLError QueryUnsignedValue( unsigned int* value ) const;\r
-    /// See QueryIntValue\r
-    XMLError QueryBoolValue( bool* value ) const;\r
-    /// See QueryIntValue\r
-    XMLError QueryDoubleValue( double* value ) const;\r
-    /// See QueryIntValue\r
-    XMLError QueryFloatValue( float* value ) const;\r
-\r
-    /// Set the attribute to a string value.\r
-    void SetAttribute( const char* value );\r
-    /// Set the attribute to value.\r
-    void SetAttribute( int value );\r
-    /// Set the attribute to value.\r
-    void SetAttribute( unsigned value );\r
-    /// Set the attribute to value.\r
-    void SetAttribute( bool value );\r
-    /// Set the attribute to value.\r
-    void SetAttribute( double value );\r
-    /// Set the attribute to value.\r
-    void SetAttribute( float value );\r
-\r
-private:\r
-    enum { BUF_SIZE = 200 };\r
-\r
-    XMLAttribute() : _next( 0 ), _memPool( 0 ) {}\r
-    virtual ~XMLAttribute()    {}\r
-\r
-    XMLAttribute( const XMLAttribute& );       // not supported\r
-    void operator=( const XMLAttribute& );     // not supported\r
-    void SetName( const char* name );\r
-\r
-    char* ParseDeep( char* p, bool processEntities );\r
-\r
-    mutable StrPair _name;\r
-    mutable StrPair _value;\r
-    XMLAttribute*   _next;\r
-    MemPool*        _memPool;\r
-};\r
-\r
-\r
-/** The element is a container class. It has a value, the element name,\r
-       and can contain other elements, text, comments, and unknowns.\r
-       Elements also contain an arbitrary number of attributes.\r
-*/\r
-class TINYXML2_LIB XMLElement : public XMLNode\r
-{\r
-    friend class XMLBase;\r
-    friend class XMLDocument;\r
-public:\r
-    /// Get the name of an element (which is the Value() of the node.)\r
-    const char* Name() const           {\r
-        return Value();\r
-    }\r
-    /// Set the name of the element.\r
-    void SetName( const char* str, bool staticMem=false )      {\r
-        SetValue( str, staticMem );\r
-    }\r
-\r
-    virtual XMLElement* ToElement()                            {\r
-        return this;\r
-    }\r
-    virtual const XMLElement* ToElement() const {\r
-        return this;\r
-    }\r
-    virtual bool Accept( XMLVisitor* visitor ) const;\r
-\r
-    /** Given an attribute name, Attribute() returns the value\r
-       for the attribute of that name, or null if none\r
-       exists. For example:\r
-\r
-       @verbatim\r
-       const char* value = ele->Attribute( "foo" );\r
-       @endverbatim\r
-\r
-       The 'value' parameter is normally null. However, if specified,\r
-       the attribute will only be returned if the 'name' and 'value'\r
-       match. This allow you to write code:\r
-\r
-       @verbatim\r
-       if ( ele->Attribute( "foo", "bar" ) ) callFooIsBar();\r
-       @endverbatim\r
-\r
-       rather than:\r
-       @verbatim\r
-       if ( ele->Attribute( "foo" ) ) {\r
-               if ( strcmp( ele->Attribute( "foo" ), "bar" ) == 0 ) callFooIsBar();\r
-       }\r
-       @endverbatim\r
-    */\r
-    const char* Attribute( const char* name, const char* value=0 ) const;\r
-\r
-    /** Given an attribute name, IntAttribute() returns the value\r
-       of the attribute interpreted as an integer. 0 will be\r
-       returned if there is an error. For a method with error\r
-       checking, see QueryIntAttribute()\r
-    */\r
-    int                 IntAttribute( const char* name ) const         {\r
-        int i=0;\r
-        QueryIntAttribute( name, &i );\r
-        return i;\r
-    }\r
-    /// See IntAttribute()\r
-    unsigned UnsignedAttribute( const char* name ) const {\r
-        unsigned i=0;\r
-        QueryUnsignedAttribute( name, &i );\r
-        return i;\r
-    }\r
-    /// See IntAttribute()\r
-    bool        BoolAttribute( const char* name ) const        {\r
-        bool b=false;\r
-        QueryBoolAttribute( name, &b );\r
-        return b;\r
-    }\r
-    /// See IntAttribute()\r
-    double      DoubleAttribute( const char* name ) const      {\r
-        double d=0;\r
-        QueryDoubleAttribute( name, &d );\r
-        return d;\r
-    }\r
-    /// See IntAttribute()\r
-    float       FloatAttribute( const char* name ) const       {\r
-        float f=0;\r
-        QueryFloatAttribute( name, &f );\r
-        return f;\r
-    }\r
-\r
-    /** Given an attribute name, QueryIntAttribute() returns\r
-       XML_NO_ERROR, XML_WRONG_ATTRIBUTE_TYPE if the conversion\r
-       can't be performed, or XML_NO_ATTRIBUTE if the attribute\r
-       doesn't exist. If successful, the result of the conversion\r
-       will be written to 'value'. If not successful, nothing will\r
-       be written to 'value'. This allows you to provide default\r
-       value:\r
-\r
-       @verbatim\r
-       int value = 10;\r
-       QueryIntAttribute( "foo", &value );             // if "foo" isn't found, value will still be 10\r
-       @endverbatim\r
-    */\r
-    XMLError QueryIntAttribute( const char* name, int* value ) const                           {\r
-        const XMLAttribute* a = FindAttribute( name );\r
-        if ( !a ) {\r
-            return XML_NO_ATTRIBUTE;\r
-        }\r
-        return a->QueryIntValue( value );\r
-    }\r
-    /// See QueryIntAttribute()\r
-    XMLError QueryUnsignedAttribute( const char* name, unsigned int* value ) const     {\r
-        const XMLAttribute* a = FindAttribute( name );\r
-        if ( !a ) {\r
-            return XML_NO_ATTRIBUTE;\r
-        }\r
-        return a->QueryUnsignedValue( value );\r
-    }\r
-    /// See QueryIntAttribute()\r
-    XMLError QueryBoolAttribute( const char* name, bool* value ) const                         {\r
-        const XMLAttribute* a = FindAttribute( name );\r
-        if ( !a ) {\r
-            return XML_NO_ATTRIBUTE;\r
-        }\r
-        return a->QueryBoolValue( value );\r
-    }\r
-    /// See QueryIntAttribute()\r
-    XMLError QueryDoubleAttribute( const char* name, double* value ) const                     {\r
-        const XMLAttribute* a = FindAttribute( name );\r
-        if ( !a ) {\r
-            return XML_NO_ATTRIBUTE;\r
-        }\r
-        return a->QueryDoubleValue( value );\r
-    }\r
-    /// See QueryIntAttribute()\r
-    XMLError QueryFloatAttribute( const char* name, float* value ) const                       {\r
-        const XMLAttribute* a = FindAttribute( name );\r
-        if ( !a ) {\r
-            return XML_NO_ATTRIBUTE;\r
-        }\r
-        return a->QueryFloatValue( value );\r
-    }\r
-\r
-       \r
-    /** Given an attribute name, QueryAttribute() returns\r
-       XML_NO_ERROR, XML_WRONG_ATTRIBUTE_TYPE if the conversion\r
-       can't be performed, or XML_NO_ATTRIBUTE if the attribute\r
-       doesn't exist. It is overloaded for the primitive types,\r
-               and is a generally more convenient replacement of\r
-               QueryIntAttribute() and related functions.\r
-               \r
-               If successful, the result of the conversion\r
-       will be written to 'value'. If not successful, nothing will\r
-       be written to 'value'. This allows you to provide default\r
-       value:\r
-\r
-       @verbatim\r
-       int value = 10;\r
-       QueryAttribute( "foo", &value );                // if "foo" isn't found, value will still be 10\r
-       @endverbatim\r
-    */\r
-       int QueryAttribute( const char* name, int* value ) const {\r
-               return QueryIntAttribute( name, value );\r
-       }\r
-\r
-       int QueryAttribute( const char* name, unsigned int* value ) const {\r
-               return QueryUnsignedAttribute( name, value );\r
-       }\r
-\r
-       int QueryAttribute( const char* name, bool* value ) const {\r
-               return QueryBoolAttribute( name, value );\r
-       }\r
-\r
-       int QueryAttribute( const char* name, double* value ) const {\r
-               return QueryDoubleAttribute( name, value );\r
-       }\r
-\r
-       int QueryAttribute( const char* name, float* value ) const {\r
-               return QueryFloatAttribute( name, value );\r
-       }\r
-\r
-       /// Sets the named attribute to value.\r
-    void SetAttribute( const char* name, const char* value )   {\r
-        XMLAttribute* a = FindOrCreateAttribute( name );\r
-        a->SetAttribute( value );\r
-    }\r
-    /// Sets the named attribute to value.\r
-    void SetAttribute( const char* name, int value )                   {\r
-        XMLAttribute* a = FindOrCreateAttribute( name );\r
-        a->SetAttribute( value );\r
-    }\r
-    /// Sets the named attribute to value.\r
-    void SetAttribute( const char* name, unsigned value )              {\r
-        XMLAttribute* a = FindOrCreateAttribute( name );\r
-        a->SetAttribute( value );\r
-    }\r
-    /// Sets the named attribute to value.\r
-    void SetAttribute( const char* name, bool value )                  {\r
-        XMLAttribute* a = FindOrCreateAttribute( name );\r
-        a->SetAttribute( value );\r
-    }\r
-    /// Sets the named attribute to value.\r
-    void SetAttribute( const char* name, double value )                {\r
-        XMLAttribute* a = FindOrCreateAttribute( name );\r
-        a->SetAttribute( value );\r
-    }\r
-    /// Sets the named attribute to value.\r
-    void SetAttribute( const char* name, float value )         {\r
-        XMLAttribute* a = FindOrCreateAttribute( name );\r
-        a->SetAttribute( value );\r
-    }\r
-\r
-    /**\r
-       Delete an attribute.\r
-    */\r
-    void DeleteAttribute( const char* name );\r
-\r
-    /// Return the first attribute in the list.\r
-    const XMLAttribute* FirstAttribute() const {\r
-        return _rootAttribute;\r
-    }\r
-    /// Query a specific attribute in the list.\r
-    const XMLAttribute* FindAttribute( const char* name ) const;\r
-\r
-    /** Convenience function for easy access to the text inside an element. Although easy\r
-       and concise, GetText() is limited compared to getting the XMLText child\r
-       and accessing it directly.\r
-\r
-       If the first child of 'this' is a XMLText, the GetText()\r
-       returns the character string of the Text node, else null is returned.\r
-\r
-       This is a convenient method for getting the text of simple contained text:\r
-       @verbatim\r
-       <foo>This is text</foo>\r
-               const char* str = fooElement->GetText();\r
-       @endverbatim\r
-\r
-       'str' will be a pointer to "This is text".\r
-\r
-       Note that this function can be misleading. If the element foo was created from\r
-       this XML:\r
-       @verbatim\r
-               <foo><b>This is text</b></foo>\r
-       @endverbatim\r
-\r
-       then the value of str would be null. The first child node isn't a text node, it is\r
-       another element. From this XML:\r
-       @verbatim\r
-               <foo>This is <b>text</b></foo>\r
-       @endverbatim\r
-       GetText() will return "This is ".\r
-    */\r
-    const char* GetText() const;\r
-\r
-    /** Convenience function for easy access to the text inside an element. Although easy\r
-       and concise, SetText() is limited compared to creating an XMLText child\r
-       and mutating it directly.\r
-\r
-       If the first child of 'this' is a XMLText, SetText() sets its value to\r
-               the given string, otherwise it will create a first child that is an XMLText.\r
-\r
-       This is a convenient method for setting the text of simple contained text:\r
-       @verbatim\r
-       <foo>This is text</foo>\r
-               fooElement->SetText( "Hullaballoo!" );\r
-       <foo>Hullaballoo!</foo>\r
-               @endverbatim\r
-\r
-       Note that this function can be misleading. If the element foo was created from\r
-       this XML:\r
-       @verbatim\r
-               <foo><b>This is text</b></foo>\r
-       @endverbatim\r
-\r
-       then it will not change "This is text", but rather prefix it with a text element:\r
-       @verbatim\r
-               <foo>Hullaballoo!<b>This is text</b></foo>\r
-       @endverbatim\r
-               \r
-               For this XML:\r
-       @verbatim\r
-               <foo />\r
-       @endverbatim\r
-       SetText() will generate\r
-       @verbatim\r
-               <foo>Hullaballoo!</foo>\r
-       @endverbatim\r
-    */\r
-       void SetText( const char* inText );\r
-    /// Convenience method for setting text inside an element. See SetText() for important limitations.\r
-    void SetText( int value );\r
-    /// Convenience method for setting text inside an element. See SetText() for important limitations.\r
-    void SetText( unsigned value );  \r
-    /// Convenience method for setting text inside an element. See SetText() for important limitations.\r
-    void SetText( bool value );  \r
-    /// Convenience method for setting text inside an element. See SetText() for important limitations.\r
-    void SetText( double value );  \r
-    /// Convenience method for setting text inside an element. See SetText() for important limitations.\r
-    void SetText( float value );  \r
-\r
-    /**\r
-       Convenience method to query the value of a child text node. This is probably best\r
-       shown by example. Given you have a document is this form:\r
-       @verbatim\r
-               <point>\r
-                       <x>1</x>\r
-                       <y>1.4</y>\r
-               </point>\r
-       @endverbatim\r
-\r
-       The QueryIntText() and similar functions provide a safe and easier way to get to the\r
-       "value" of x and y.\r
-\r
-       @verbatim\r
-               int x = 0;\r
-               float y = 0;    // types of x and y are contrived for example\r
-               const XMLElement* xElement = pointElement->FirstChildElement( "x" );\r
-               const XMLElement* yElement = pointElement->FirstChildElement( "y" );\r
-               xElement->QueryIntText( &x );\r
-               yElement->QueryFloatText( &y );\r
-       @endverbatim\r
-\r
-       @returns XML_SUCCESS (0) on success, XML_CAN_NOT_CONVERT_TEXT if the text cannot be converted\r
-                        to the requested type, and XML_NO_TEXT_NODE if there is no child text to query.\r
-\r
-    */\r
-    XMLError QueryIntText( int* ival ) const;\r
-    /// See QueryIntText()\r
-    XMLError QueryUnsignedText( unsigned* uval ) const;\r
-    /// See QueryIntText()\r
-    XMLError QueryBoolText( bool* bval ) const;\r
-    /// See QueryIntText()\r
-    XMLError QueryDoubleText( double* dval ) const;\r
-    /// See QueryIntText()\r
-    XMLError QueryFloatText( float* fval ) const;\r
-\r
-    // internal:\r
-    enum {\r
-        OPEN,          // <foo>\r
-        CLOSED,                // <foo/>\r
-        CLOSING                // </foo>\r
-    };\r
-    int ClosingType() const {\r
-        return _closingType;\r
-    }\r
-    virtual XMLNode* ShallowClone( XMLDocument* document ) const;\r
-    virtual bool ShallowEqual( const XMLNode* compare ) const;\r
-\r
-protected:\r
-    char* ParseDeep( char* p, StrPair* endTag );\r
-\r
-private:\r
-    XMLElement( XMLDocument* doc );\r
-    virtual ~XMLElement();\r
-    XMLElement( const XMLElement& );   // not supported\r
-    void operator=( const XMLElement& );       // not supported\r
-\r
-    XMLAttribute* FindAttribute( const char* name ) {\r
-        return const_cast<XMLAttribute*>(const_cast<const XMLElement*>(this)->FindAttribute( name ));\r
-    }\r
-    XMLAttribute* FindOrCreateAttribute( const char* name );\r
-    //void LinkAttribute( XMLAttribute* attrib );\r
-    char* ParseAttributes( char* p );\r
-    static void DeleteAttribute( XMLAttribute* attribute );\r
-\r
-    enum { BUF_SIZE = 200 };\r
-    int _closingType;\r
-    // The attribute list is ordered; there is no 'lastAttribute'\r
-    // because the list needs to be scanned for dupes before adding\r
-    // a new attribute.\r
-    XMLAttribute* _rootAttribute;\r
-};\r
-\r
-\r
-enum Whitespace {\r
-    PRESERVE_WHITESPACE,\r
-    COLLAPSE_WHITESPACE\r
-};\r
-\r
-\r
-/** A Document binds together all the functionality.\r
-       It can be saved, loaded, and printed to the screen.\r
-       All Nodes are connected and allocated to a Document.\r
-       If the Document is deleted, all its Nodes are also deleted.\r
-*/\r
-class TINYXML2_LIB XMLDocument : public XMLNode\r
-{\r
-    friend class XMLElement;\r
-public:\r
-    /// constructor\r
-    XMLDocument( bool processEntities = true, Whitespace = PRESERVE_WHITESPACE );\r
-    ~XMLDocument();\r
-\r
-    virtual XMLDocument* ToDocument()                          {\r
-        TIXMLASSERT( this == _document );\r
-        return this;\r
-    }\r
-    virtual const XMLDocument* ToDocument() const      {\r
-        TIXMLASSERT( this == _document );\r
-        return this;\r
-    }\r
-\r
-    /**\r
-       Parse an XML file from a character string.\r
-       Returns XML_NO_ERROR (0) on success, or\r
-       an errorID.\r
-\r
-       You may optionally pass in the 'nBytes', which is\r
-       the number of bytes which will be parsed. If not\r
-       specified, TinyXML-2 will assume 'xml' points to a\r
-       null terminated string.\r
-    */\r
-    XMLError Parse( const char* xml, size_t nBytes=(size_t)(-1) );\r
-\r
-    /**\r
-       Load an XML file from disk.\r
-       Returns XML_NO_ERROR (0) on success, or\r
-       an errorID.\r
-    */\r
-    XMLError LoadFile( const char* filename );\r
-\r
-    /**\r
-       Load an XML file from disk. You are responsible\r
-       for providing and closing the FILE*. \r
-     \r
-        NOTE: The file should be opened as binary ("rb")\r
-        not text in order for TinyXML-2 to correctly\r
-        do newline normalization.\r
-\r
-       Returns XML_NO_ERROR (0) on success, or\r
-       an errorID.\r
-    */\r
-    XMLError LoadFile( FILE* );\r
-\r
-    /**\r
-       Save the XML file to disk.\r
-       Returns XML_NO_ERROR (0) on success, or\r
-       an errorID.\r
-    */\r
-    XMLError SaveFile( const char* filename, bool compact = false );\r
-\r
-    /**\r
-       Save the XML file to disk. You are responsible\r
-       for providing and closing the FILE*.\r
-\r
-       Returns XML_NO_ERROR (0) on success, or\r
-       an errorID.\r
-    */\r
-    XMLError SaveFile( FILE* fp, bool compact = false );\r
-\r
-    bool ProcessEntities() const               {\r
-        return _processEntities;\r
-    }\r
-    Whitespace WhitespaceMode() const  {\r
-        return _whitespace;\r
-    }\r
-\r
-    /**\r
-       Returns true if this document has a leading Byte Order Mark of UTF8.\r
-    */\r
-    bool HasBOM() const {\r
-        return _writeBOM;\r
-    }\r
-    /** Sets whether to write the BOM when writing the file.\r
-    */\r
-    void SetBOM( bool useBOM ) {\r
-        _writeBOM = useBOM;\r
-    }\r
-\r
-    /** Return the root element of DOM. Equivalent to FirstChildElement().\r
-        To get the first node, use FirstChild().\r
-    */\r
-    XMLElement* RootElement()                          {\r
-        return FirstChildElement();\r
-    }\r
-    const XMLElement* RootElement() const      {\r
-        return FirstChildElement();\r
-    }\r
-\r
-    /** Print the Document. If the Printer is not provided, it will\r
-        print to stdout. If you provide Printer, this can print to a file:\r
-       @verbatim\r
-       XMLPrinter printer( fp );\r
-       doc.Print( &printer );\r
-       @endverbatim\r
-\r
-       Or you can use a printer to print to memory:\r
-       @verbatim\r
-       XMLPrinter printer;\r
-       doc.Print( &printer );\r
-       // printer.CStr() has a const char* to the XML\r
-       @endverbatim\r
-    */\r
-    void Print( XMLPrinter* streamer=0 ) const;\r
-    virtual bool Accept( XMLVisitor* visitor ) const;\r
-\r
-    /**\r
-       Create a new Element associated with\r
-       this Document. The memory for the Element\r
-       is managed by the Document.\r
-    */\r
-    XMLElement* NewElement( const char* name );\r
-    /**\r
-       Create a new Comment associated with\r
-       this Document. The memory for the Comment\r
-       is managed by the Document.\r
-    */\r
-    XMLComment* NewComment( const char* comment );\r
-    /**\r
-       Create a new Text associated with\r
-       this Document. The memory for the Text\r
-       is managed by the Document.\r
-    */\r
-    XMLText* NewText( const char* text );\r
-    /**\r
-       Create a new Declaration associated with\r
-       this Document. The memory for the object\r
-       is managed by the Document.\r
-\r
-       If the 'text' param is null, the standard\r
-       declaration is used.:\r
-       @verbatim\r
-               <?xml version="1.0" encoding="UTF-8"?>\r
-       @endverbatim\r
-    */\r
-    XMLDeclaration* NewDeclaration( const char* text=0 );\r
-    /**\r
-       Create a new Unknown associated with\r
-       this Document. The memory for the object\r
-       is managed by the Document.\r
-    */\r
-    XMLUnknown* NewUnknown( const char* text );\r
-\r
-    /**\r
-       Delete a node associated with this document.\r
-       It will be unlinked from the DOM.\r
-    */\r
-    void DeleteNode( XMLNode* node );\r
-\r
-    void SetError( XMLError error, const char* str1, const char* str2 );\r
-\r
-    /// Return true if there was an error parsing the document.\r
-    bool Error() const {\r
-        return _errorID != XML_NO_ERROR;\r
-    }\r
-    /// Return the errorID.\r
-    XMLError  ErrorID() const {\r
-        return _errorID;\r
-    }\r
-       const char* ErrorName() const;\r
-\r
-    /// Return a possibly helpful diagnostic location or string.\r
-    const char* GetErrorStr1() const {\r
-        return _errorStr1;\r
-    }\r
-    /// Return a possibly helpful secondary diagnostic location or string.\r
-    const char* GetErrorStr2() const {\r
-        return _errorStr2;\r
-    }\r
-    /// If there is an error, print it to stdout.\r
-    void PrintError() const;\r
-    \r
-    /// Clear the document, resetting it to the initial state.\r
-    void Clear();\r
-\r
-    // internal\r
-    char* Identify( char* p, XMLNode** node );\r
-\r
-    virtual XMLNode* ShallowClone( XMLDocument* /*document*/ ) const   {\r
-        return 0;\r
-    }\r
-    virtual bool ShallowEqual( const XMLNode* /*compare*/ ) const      {\r
-        return false;\r
-    }\r
-\r
-private:\r
-    XMLDocument( const XMLDocument& ); // not supported\r
-    void operator=( const XMLDocument& );      // not supported\r
-\r
-    bool        _writeBOM;\r
-    bool        _processEntities;\r
-    XMLError    _errorID;\r
-    Whitespace  _whitespace;\r
-    const char* _errorStr1;\r
-    const char* _errorStr2;\r
-    char*       _charBuffer;\r
-\r
-    MemPoolT< sizeof(XMLElement) >      _elementPool;\r
-    MemPoolT< sizeof(XMLAttribute) > _attributePool;\r
-    MemPoolT< sizeof(XMLText) >                 _textPool;\r
-    MemPoolT< sizeof(XMLComment) >      _commentPool;\r
-\r
-       static const char* _errorNames[XML_ERROR_COUNT];\r
-\r
-    void Parse();\r
-};\r
-\r
-\r
-/**\r
-       A XMLHandle is a class that wraps a node pointer with null checks; this is\r
-       an incredibly useful thing. Note that XMLHandle is not part of the TinyXML-2\r
-       DOM structure. It is a separate utility class.\r
-\r
-       Take an example:\r
-       @verbatim\r
-       <Document>\r
-               <Element attributeA = "valueA">\r
-                       <Child attributeB = "value1" />\r
-                       <Child attributeB = "value2" />\r
-               </Element>\r
-       </Document>\r
-       @endverbatim\r
-\r
-       Assuming you want the value of "attributeB" in the 2nd "Child" element, it's very\r
-       easy to write a *lot* of code that looks like:\r
-\r
-       @verbatim\r
-       XMLElement* root = document.FirstChildElement( "Document" );\r
-       if ( root )\r
-       {\r
-               XMLElement* element = root->FirstChildElement( "Element" );\r
-               if ( element )\r
-               {\r
-                       XMLElement* child = element->FirstChildElement( "Child" );\r
-                       if ( child )\r
-                       {\r
-                               XMLElement* child2 = child->NextSiblingElement( "Child" );\r
-                               if ( child2 )\r
-                               {\r
-                                       // Finally do something useful.\r
-       @endverbatim\r
-\r
-       And that doesn't even cover "else" cases. XMLHandle addresses the verbosity\r
-       of such code. A XMLHandle checks for null pointers so it is perfectly safe\r
-       and correct to use:\r
-\r
-       @verbatim\r
-       XMLHandle docHandle( &document );\r
-       XMLElement* child2 = docHandle.FirstChildElement( "Document" ).FirstChildElement( "Element" ).FirstChildElement().NextSiblingElement();\r
-       if ( child2 )\r
-       {\r
-               // do something useful\r
-       @endverbatim\r
-\r
-       Which is MUCH more concise and useful.\r
-\r
-       It is also safe to copy handles - internally they are nothing more than node pointers.\r
-       @verbatim\r
-       XMLHandle handleCopy = handle;\r
-       @endverbatim\r
-\r
-       See also XMLConstHandle, which is the same as XMLHandle, but operates on const objects.\r
-*/\r
-class TINYXML2_LIB XMLHandle\r
-{\r
-public:\r
-    /// Create a handle from any node (at any depth of the tree.) This can be a null pointer.\r
-    XMLHandle( XMLNode* node )                                                                                         {\r
-        _node = node;\r
-    }\r
-    /// Create a handle from a node.\r
-    XMLHandle( XMLNode& node )                                                                                         {\r
-        _node = &node;\r
-    }\r
-    /// Copy constructor\r
-    XMLHandle( const XMLHandle& ref )                                                                          {\r
-        _node = ref._node;\r
-    }\r
-    /// Assignment\r
-    XMLHandle& operator=( const XMLHandle& ref )                                                       {\r
-        _node = ref._node;\r
-        return *this;\r
-    }\r
-\r
-    /// Get the first child of this handle.\r
-    XMLHandle FirstChild()                                                                                                     {\r
-        return XMLHandle( _node ? _node->FirstChild() : 0 );\r
-    }\r
-    /// Get the first child element of this handle.\r
-    XMLHandle FirstChildElement( const char* name = 0 )                                                {\r
-        return XMLHandle( _node ? _node->FirstChildElement( name ) : 0 );\r
-    }\r
-    /// Get the last child of this handle.\r
-    XMLHandle LastChild()                                                                                                      {\r
-        return XMLHandle( _node ? _node->LastChild() : 0 );\r
-    }\r
-    /// Get the last child element of this handle.\r
-    XMLHandle LastChildElement( const char* name = 0 )                                         {\r
-        return XMLHandle( _node ? _node->LastChildElement( name ) : 0 );\r
-    }\r
-    /// Get the previous sibling of this handle.\r
-    XMLHandle PreviousSibling()                                                                                                {\r
-        return XMLHandle( _node ? _node->PreviousSibling() : 0 );\r
-    }\r
-    /// Get the previous sibling element of this handle.\r
-    XMLHandle PreviousSiblingElement( const char* name = 0 )                           {\r
-        return XMLHandle( _node ? _node->PreviousSiblingElement( name ) : 0 );\r
-    }\r
-    /// Get the next sibling of this handle.\r
-    XMLHandle NextSibling()                                                                                                    {\r
-        return XMLHandle( _node ? _node->NextSibling() : 0 );\r
-    }\r
-    /// Get the next sibling element of this handle.\r
-    XMLHandle NextSiblingElement( const char* name = 0 )                                       {\r
-        return XMLHandle( _node ? _node->NextSiblingElement( name ) : 0 );\r
-    }\r
-\r
-    /// Safe cast to XMLNode. This can return null.\r
-    XMLNode* ToNode()                                                  {\r
-        return _node;\r
-    }\r
-    /// Safe cast to XMLElement. This can return null.\r
-    XMLElement* ToElement()                                    {\r
-        return ( ( _node == 0 ) ? 0 : _node->ToElement() );\r
-    }\r
-    /// Safe cast to XMLText. This can return null.\r
-    XMLText* ToText()                                                  {\r
-        return ( ( _node == 0 ) ? 0 : _node->ToText() );\r
-    }\r
-    /// Safe cast to XMLUnknown. This can return null.\r
-    XMLUnknown* ToUnknown()                                    {\r
-        return ( ( _node == 0 ) ? 0 : _node->ToUnknown() );\r
-    }\r
-    /// Safe cast to XMLDeclaration. This can return null.\r
-    XMLDeclaration* ToDeclaration()                    {\r
-        return ( ( _node == 0 ) ? 0 : _node->ToDeclaration() );\r
-    }\r
-\r
-private:\r
-    XMLNode* _node;\r
-};\r
-\r
-\r
-/**\r
-       A variant of the XMLHandle class for working with const XMLNodes and Documents. It is the\r
-       same in all regards, except for the 'const' qualifiers. See XMLHandle for API.\r
-*/\r
-class TINYXML2_LIB XMLConstHandle\r
-{\r
-public:\r
-    XMLConstHandle( const XMLNode* node )                                                                                      {\r
-        _node = node;\r
-    }\r
-    XMLConstHandle( const XMLNode& node )                                                                                      {\r
-        _node = &node;\r
-    }\r
-    XMLConstHandle( const XMLConstHandle& ref )                                                                                {\r
-        _node = ref._node;\r
-    }\r
-\r
-    XMLConstHandle& operator=( const XMLConstHandle& ref )                                                     {\r
-        _node = ref._node;\r
-        return *this;\r
-    }\r
-\r
-    const XMLConstHandle FirstChild() const                                                                                    {\r
-        return XMLConstHandle( _node ? _node->FirstChild() : 0 );\r
-    }\r
-    const XMLConstHandle FirstChildElement( const char* name = 0 ) const                               {\r
-        return XMLConstHandle( _node ? _node->FirstChildElement( name ) : 0 );\r
-    }\r
-    const XMLConstHandle LastChild()   const                                                                           {\r
-        return XMLConstHandle( _node ? _node->LastChild() : 0 );\r
-    }\r
-    const XMLConstHandle LastChildElement( const char* name = 0 ) const                                {\r
-        return XMLConstHandle( _node ? _node->LastChildElement( name ) : 0 );\r
-    }\r
-    const XMLConstHandle PreviousSibling() const                                                                       {\r
-        return XMLConstHandle( _node ? _node->PreviousSibling() : 0 );\r
-    }\r
-    const XMLConstHandle PreviousSiblingElement( const char* name = 0 ) const          {\r
-        return XMLConstHandle( _node ? _node->PreviousSiblingElement( name ) : 0 );\r
-    }\r
-    const XMLConstHandle NextSibling() const                                                                           {\r
-        return XMLConstHandle( _node ? _node->NextSibling() : 0 );\r
-    }\r
-    const XMLConstHandle NextSiblingElement( const char* name = 0 ) const                      {\r
-        return XMLConstHandle( _node ? _node->NextSiblingElement( name ) : 0 );\r
-    }\r
-\r
-\r
-    const XMLNode* ToNode() const                              {\r
-        return _node;\r
-    }\r
-    const XMLElement* ToElement() const                        {\r
-        return ( ( _node == 0 ) ? 0 : _node->ToElement() );\r
-    }\r
-    const XMLText* ToText() const                              {\r
-        return ( ( _node == 0 ) ? 0 : _node->ToText() );\r
-    }\r
-    const XMLUnknown* ToUnknown() const                        {\r
-        return ( ( _node == 0 ) ? 0 : _node->ToUnknown() );\r
-    }\r
-    const XMLDeclaration* ToDeclaration() const        {\r
-        return ( ( _node == 0 ) ? 0 : _node->ToDeclaration() );\r
-    }\r
-\r
-private:\r
-    const XMLNode* _node;\r
-};\r
-\r
-\r
-/**\r
-       Printing functionality. The XMLPrinter gives you more\r
-       options than the XMLDocument::Print() method.\r
-\r
-       It can:\r
-       -# Print to memory.\r
-       -# Print to a file you provide.\r
-       -# Print XML without a XMLDocument.\r
-\r
-       Print to Memory\r
-\r
-       @verbatim\r
-       XMLPrinter printer;\r
-       doc.Print( &printer );\r
-       SomeFunction( printer.CStr() );\r
-       @endverbatim\r
-\r
-       Print to a File\r
-\r
-       You provide the file pointer.\r
-       @verbatim\r
-       XMLPrinter printer( fp );\r
-       doc.Print( &printer );\r
-       @endverbatim\r
-\r
-       Print without a XMLDocument\r
-\r
-       When loading, an XML parser is very useful. However, sometimes\r
-       when saving, it just gets in the way. The code is often set up\r
-       for streaming, and constructing the DOM is just overhead.\r
-\r
-       The Printer supports the streaming case. The following code\r
-       prints out a trivially simple XML file without ever creating\r
-       an XML document.\r
-\r
-       @verbatim\r
-       XMLPrinter printer( fp );\r
-       printer.OpenElement( "foo" );\r
-       printer.PushAttribute( "foo", "bar" );\r
-       printer.CloseElement();\r
-       @endverbatim\r
-*/\r
-class TINYXML2_LIB XMLPrinter : public XMLVisitor\r
-{\r
-public:\r
-    /** Construct the printer. If the FILE* is specified,\r
-       this will print to the FILE. Else it will print\r
-       to memory, and the result is available in CStr().\r
-       If 'compact' is set to true, then output is created\r
-       with only required whitespace and newlines.\r
-    */\r
-    XMLPrinter( FILE* file=0, bool compact = false, int depth = 0 );\r
-    virtual ~XMLPrinter()      {}\r
-\r
-    /** If streaming, write the BOM and declaration. */\r
-    void PushHeader( bool writeBOM, bool writeDeclaration );\r
-    /** If streaming, start writing an element.\r
-        The element must be closed with CloseElement()\r
-    */\r
-    void OpenElement( const char* name, bool compactMode=false );\r
-    /// If streaming, add an attribute to an open element.\r
-    void PushAttribute( const char* name, const char* value );\r
-    void PushAttribute( const char* name, int value );\r
-    void PushAttribute( const char* name, unsigned value );\r
-    void PushAttribute( const char* name, bool value );\r
-    void PushAttribute( const char* name, double value );\r
-    /// If streaming, close the Element.\r
-    virtual void CloseElement( bool compactMode=false );\r
-\r
-    /// Add a text node.\r
-    void PushText( const char* text, bool cdata=false );\r
-    /// Add a text node from an integer.\r
-    void PushText( int value );\r
-    /// Add a text node from an unsigned.\r
-    void PushText( unsigned value );\r
-    /// Add a text node from a bool.\r
-    void PushText( bool value );\r
-    /// Add a text node from a float.\r
-    void PushText( float value );\r
-    /// Add a text node from a double.\r
-    void PushText( double value );\r
-\r
-    /// Add a comment\r
-    void PushComment( const char* comment );\r
-\r
-    void PushDeclaration( const char* value );\r
-    void PushUnknown( const char* value );\r
-\r
-    virtual bool VisitEnter( const XMLDocument& /*doc*/ );\r
-    virtual bool VisitExit( const XMLDocument& /*doc*/ )                       {\r
-        return true;\r
-    }\r
-\r
-    virtual bool VisitEnter( const XMLElement& element, const XMLAttribute* attribute );\r
-    virtual bool VisitExit( const XMLElement& element );\r
-\r
-    virtual bool Visit( const XMLText& text );\r
-    virtual bool Visit( const XMLComment& comment );\r
-    virtual bool Visit( const XMLDeclaration& declaration );\r
-    virtual bool Visit( const XMLUnknown& unknown );\r
-\r
-    /**\r
-       If in print to memory mode, return a pointer to\r
-       the XML file in memory.\r
-    */\r
-    const char* CStr() const {\r
-        return _buffer.Mem();\r
-    }\r
-    /**\r
-       If in print to memory mode, return the size\r
-       of the XML file in memory. (Note the size returned\r
-       includes the terminating null.)\r
-    */\r
-    int CStrSize() const {\r
-        return _buffer.Size();\r
-    }\r
-    /**\r
-       If in print to memory mode, reset the buffer to the\r
-       beginning.\r
-    */\r
-    void ClearBuffer() {\r
-        _buffer.Clear();\r
-        _buffer.Push(0);\r
-    }\r
-\r
-protected:\r
-       virtual bool CompactMode( const XMLElement& )   { return _compactMode; }\r
-\r
-       /** Prints out the space before an element. You may override to change\r
-           the space and tabs used. A PrintSpace() override should call Print().\r
-       */\r
-    virtual void PrintSpace( int depth );\r
-    void Print( const char* format, ... );\r
-\r
-    void SealElementIfJustOpened();\r
-    bool _elementJustOpened;\r
-    DynArray< const char*, 10 > _stack;\r
-\r
-private:\r
-    void PrintString( const char*, bool restrictedEntitySet ); // prints out, after detecting entities.\r
-\r
-    bool _firstElement;\r
-    FILE* _fp;\r
-    int _depth;\r
-    int _textDepth;\r
-    bool _processEntities;\r
-       bool _compactMode;\r
-\r
-    enum {\r
-        ENTITY_RANGE = 64,\r
-        BUF_SIZE = 200\r
-    };\r
-    bool _entityFlag[ENTITY_RANGE];\r
-    bool _restrictedEntityFlag[ENTITY_RANGE];\r
-\r
-    DynArray< char, 20 > _buffer;\r
-};\r
-\r
-\r
-}      // tinyxml2\r
-\r
-#if defined(_MSC_VER)\r
-#   pragma warning(pop)\r
-#endif\r
-\r
-#endif // TINYXML2_INCLUDED\r
diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt
deleted file mode 100644 (file)
index 569ad55..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-SUBDIRS(
-  cpPluginsGenericFilters
-  cpPluginsIO
-  cpPluginsImageFilters
-  cpPluginsMedialnessFilters
-  cpPluginsMeshSources
-  cpPluginsMeshFilters
-  cpPluginsImageMeshFilters
-  cpPluginsWidgets
-  )
-
-## eof - $RCSfile$
diff --git a/plugins/cpPluginsGenericFilters/CMakeLists.txt b/plugins/cpPluginsGenericFilters/CMakeLists.txt
deleted file mode 100644 (file)
index 390b005..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-SET(lib_NAME cpPluginsGenericFilters)
-FILE(GLOB lib_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/*.h")
-FILE(GLOB lib_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.cxx")
-SET(lib_OTHER_SOURCES "")
-SET(lib_QT4_HEADERS "")
-
-SET(lib_LINKS)
-IF(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux")
-  SET(lib_LINKS cpPlugins ${cpPlugins_LIBRARIES})
-ENDIF(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux")
-
-cpPlugins_WrapPlugins(
-  ${lib_NAME} ${prj_VER} ${prj_sVER}
-  "${lib_HEADERS}"
-  "${lib_SOURCES}"
-  "${lib_OTHER_SOURCES}"
-  "${lib_QT4_HEADERS}"
-  ${lib_LINKS}
-  )
-
-## ========================
-## -- Installation rules --
-## ========================
-
-#INSTALL(
-#  TARGETS ${lib_NAME}
-#  RUNTIME DESTINATION bin
-#  LIBRARY DESTINATION lib
-#  ARCHIVE DESTINATION lib/static
-#  )
-
-## eof - $RCSfile$
diff --git a/plugins/cpPluginsGenericFilters/JoinBoundingBoxes.cxx b/plugins/cpPluginsGenericFilters/JoinBoundingBoxes.cxx
deleted file mode 100644 (file)
index 2c0a00f..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-#include <cpPluginsGenericFilters/JoinBoundingBoxes.h>
-#include <cpPlugins/DataObject.h>
-#include <cpPlugins/BoundingBox.h>
-
-// -------------------------------------------------------------------------
-cpPluginsGenericFilters::JoinBoundingBoxes::
-JoinBoundingBoxes( )
-  : Superclass( )
-{
-  this->_AddInput( "Input0" );
-  this->_AddInput( "Input1", false );
-  this->_AddInput( "Input2", false );
-  this->_AddInput( "Input3", false );
-  this->_AddInput( "Input4", false );
-  this->_AddInput( "Input5", false );
-  this->_AddOutput< cpPlugins::BoundingBox >( "Output" );
-}
-
-// -------------------------------------------------------------------------
-cpPluginsGenericFilters::JoinBoundingBoxes::
-~JoinBoundingBoxes( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpPluginsGenericFilters::JoinBoundingBoxes::
-_GenerateData( )
-{
-  typedef cpPlugins::DataObject _TDO;
-  typedef cpPlugins::BoundingBox _TBB;
-  _TDO* dobjs[ 5 ];
-  
-  auto do0   = dynamic_cast< _TDO* >( this->GetInput( "Input0" ) );
-  dobjs[ 0 ] = dynamic_cast< _TDO* >( this->GetInput( "Input1" ) );
-  dobjs[ 1 ] = dynamic_cast< _TDO* >( this->GetInput( "Input2" ) );
-  dobjs[ 2 ] = dynamic_cast< _TDO* >( this->GetInput( "Input3" ) );
-  dobjs[ 3 ] = dynamic_cast< _TDO* >( this->GetInput( "Input4" ) );
-  dobjs[ 4 ] = dynamic_cast< _TDO* >( this->GetInput( "Input5" ) );
-  auto out = dynamic_cast< _TBB* >( this->GetOutput( "Output" ) );
-
-  out->SetDataObject( do0 );
-  for( unsigned int d = 0; d < 5; ++d )
-  {
-    if( dobjs[ d ] != NULL )
-    {
-      _TBB::Pointer bb = _TBB::New( );
-      bb->SetDataObject( dobjs[ d ] );
-      out->Blend( bb );
-
-    } // fi
-
-  } // rof
-}
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsGenericFilters/JoinBoundingBoxes.h b/plugins/cpPluginsGenericFilters/JoinBoundingBoxes.h
deleted file mode 100644 (file)
index f3ea192..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef __CPPLUGINSGENERICFILTERS__JOINBOUNDINGBOXES__H__
-#define __CPPLUGINSGENERICFILTERS__JOINBOUNDINGBOXES__H__
-
-#include <cpPluginsGenericFilters/cpPluginsGenericFilters_Export.h>
-#include <cpPlugins/ProcessObject.h>
-
-namespace cpPluginsGenericFilters
-{
-  /**
-   */
-  class cpPluginsGenericFilters_EXPORT JoinBoundingBoxes
-    : public cpPlugins::ProcessObject
-  {
-  public:
-    typedef JoinBoundingBoxes               Self;
-    typedef cpPlugins::ProcessObject        Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-  public:
-    itkNewMacro( Self );
-    itkTypeMacro( JoinBoundingBoxes, cpPlugins::ProcessObject );
-    cpPlugins_Id_Macro( JoinBoundingBoxes, GenericFilters );
-
-  protected:
-    JoinBoundingBoxes( );
-    virtual ~JoinBoundingBoxes( );
-
-    virtual void _GenerateData( ) ITK_OVERRIDE;
-
-  private:
-    // Purposely not implemented
-    JoinBoundingBoxes( const Self& );
-    Self& operator=( const Self& );
-  };
-
-} // ecapseman
-
-#endif // __CPPLUGINSGENERICFILTERS__JOINBOUNDINGBOXES__H__
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsIO/CMakeLists.txt b/plugins/cpPluginsIO/CMakeLists.txt
deleted file mode 100644 (file)
index 50310ed..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-SET(lib_NAME cpPluginsIO)
-FILE(GLOB lib_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/*.h")
-FILE(GLOB lib_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.cxx")
-SET(lib_OTHER_SOURCES "")
-SET(lib_QT4_HEADERS "")
-
-SET(lib_LINKS)
-IF(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux")
-  SET(lib_LINKS cpPlugins ${cpPlugins_LIBRARIES})
-ENDIF(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux")
-
-cpPlugins_WrapPlugins(
-  ${lib_NAME} ${prj_VER} ${prj_sVER}
-  "${lib_HEADERS}"
-  "${lib_SOURCES}"
-  "${lib_OTHER_SOURCES}"
-  "${lib_QT4_HEADERS}"
-  ${lib_LINKS}
-  )
-
-## ========================
-## -- Installation rules --
-## ========================
-
-#INSTALL(
-#  TARGETS ${lib_NAME}
-#  RUNTIME DESTINATION bin
-#  LIBRARY DESTINATION lib
-#  ARCHIVE DESTINATION lib/static
-#  )
-
-## eof - $RCSfile$
diff --git a/plugins/cpPluginsIO/DataReproducer.cxx b/plugins/cpPluginsIO/DataReproducer.cxx
deleted file mode 100644 (file)
index 538ad1b..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-#include <cpPluginsIO/DataReproducer.h>
-#include <cpPlugins/DataObject.h>
-
-// -------------------------------------------------------------------------
-cpPluginsIO::DataReproducer::
-DataReproducer( )
-  : Superclass( )
-{
-  this->_AddInput( "Input" );
-  this->_AddOutput< cpPlugins::DataObject >( "Output" );
-}
-
-// -------------------------------------------------------------------------
-cpPluginsIO::DataReproducer::
-~DataReproducer( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpPluginsIO::DataReproducer::
-_GenerateData( )
-{
-  auto i = this->m_Inputs.find( "Input" );
-  auto o = this->m_Outputs.find( "Output" );
-  if( i == this->m_Inputs.end( ) || o == this->m_Outputs.end( ) )
-    this->_Error( "No input/output ports." );
-  o->second->SetITK( i->second->GetITK< itk::LightObject >( ) );
-  o->second->SetVTK( i->second->GetVTK< vtkObjectBase >( ) );
-}
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsIO/DataReproducer.h b/plugins/cpPluginsIO/DataReproducer.h
deleted file mode 100644 (file)
index 475501e..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef __CPPLUGINSIO__DATAREPRODUCER__H__
-#define __CPPLUGINSIO__DATAREPRODUCER__H__
-
-#include <cpPluginsIO/cpPluginsIO_Export.h>
-#include <cpPlugins/ProcessObject.h>
-
-namespace cpPluginsIO
-{
-  /**
-   */
-  class cpPluginsIO_EXPORT DataReproducer
-    : public cpPlugins::ProcessObject
-  {
-  public:
-    typedef DataReproducer                  Self;
-    typedef cpPlugins::ProcessObject        Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-  public:
-    itkNewMacro( Self );
-    itkTypeMacro( DataReproducer, cpPlugins::ProcessObject );
-    cpPlugins_Id_Macro( DataReproducer, IO );
-
-  protected:
-    DataReproducer( );
-    virtual ~DataReproducer( );
-
-    virtual void _GenerateData( )  ITK_OVERRIDE;
-
-  private:
-    // Purposely not implemented
-    DataReproducer( const Self& );
-    Self& operator=( const Self& );
-  };
-
-} // ecapseman
-
-#endif // __CPPLUGINSIO__DATAREPRODUCER__H__
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsIO/DicomSeriesReader.cxx b/plugins/cpPluginsIO/DicomSeriesReader.cxx
deleted file mode 100644 (file)
index 1116560..0000000
+++ /dev/null
@@ -1,233 +0,0 @@
-#include <cpPluginsIO/DicomSeriesReader.h>
-
-#ifdef cpPlugins_QT4
-#include <queue>
-#include <map>
-#include <sstream>
-#include <vector>
-
-#include <QApplication>
-#include <QDialogButtonBox>
-#include <QDir>
-#include <QFileDialog>
-#include <QGridLayout>
-#include <QLabel>
-#include <QTreeWidget>
-#include <QVBoxLayout>
-
-#include <cpPlugins/ParametersQtDialog.h>
-#include <cpPlugins_Instances/ImagesIO.h>
-#include <itkGDCMSeriesFileNames.h>
-
-/**
- */
-class cpPluginsIO_DicomSeriesReader_ParametersQtDialog
-  : public cpPlugins::ParametersQtDialog
-{
-public:
-  cpPluginsIO_DicomSeriesReader_ParametersQtDialog(
-    QWidget* parent = 0, Qt::WindowFlags f = 0
-    )
-    : cpPlugins::ParametersQtDialog( parent, f )
-    {
-    }
-  virtual ~cpPluginsIO_DicomSeriesReader_ParametersQtDialog( )
-    {
-    }
-
-protected:
-  virtual void _dlg_OpenMultipleFiles( )
-    {
-      // DICOM series analyzer
-      itk::GDCMSeriesFileNames::GlobalWarningDisplayOff( );
-      itk::GDCMSeriesFileNames::Pointer series =
-        itk::GDCMSeriesFileNames::New( );
-
-      // Show dialog and check if it was accepted
-      QWidget* parent = dynamic_cast< QWidget* >( this->parent( ) );
-      QFileDialog dialog( parent );
-      dialog.setFileMode( QFileDialog::DirectoryOnly );
-      dialog.setDirectory( QFileDialog::tr( "." ) );
-      if( !dialog.exec( ) )
-        return;
-
-      // Prepare dialog
-      QApplication::setOverrideCursor( Qt::WaitCursor );
-      if( parent != NULL )
-        parent->setEnabled( false );
-
-      QDialog* tree_dialog = new QDialog( parent );
-      QTreeWidget* tree_widget = new QTreeWidget( tree_dialog );
-      QList< QTreeWidgetItem* > tree_items;
-      std::map<
-        std::string,
-        std::map< std::string, std::vector< std::string > >
-        > found_files;
-
-      std::string main_dir_name =
-        dialog.selectedFiles( ).begin( )->toStdString( );
-      std::queue< std::string > q;
-      q.push( main_dir_name );
-      while( !( q.empty( ) ) )
-      {
-        std::string dir_name = q.front( );
-        q.pop( );
-
-        // Get DICOM information
-        series->SetUseSeriesDetails( true );
-        series->AddSeriesRestriction( "0008|0021" );
-        series->SetDirectory( dir_name );
-        const std::vector< std::string >& seriesUID = series->GetSeriesUIDs( );
-        if( seriesUID.size( ) > 0 )
-        {
-          QTreeWidgetItem* new_item = new QTreeWidgetItem(
-            ( QTreeWidgetItem* )( NULL ),
-            QStringList( dir_name.c_str( ) )
-            );
-          QTreeWidgetItem* new_leaf = NULL;
-          std::vector< std::string >::const_iterator sIt = seriesUID.begin( );
-          for( ; sIt != seriesUID.end( ); ++sIt )
-          {
-            std::vector< std::string > filenames = series->GetFileNames( *sIt );
-            if( filenames.size( ) > 0 )
-            {
-              std::stringstream ss;
-              ss << "(" << filenames.size( ) << "): " << *sIt;
-              new_leaf =
-                new QTreeWidgetItem(
-                  new_item, QStringList( ss.str( ).c_str( ) )
-                  );
-              new_item->addChild( new_leaf );
-              found_files[ dir_name ][ *sIt ] = filenames;
-
-            } // fi
-
-          } // rof
-
-          if( new_leaf != NULL )
-            tree_items.append( new_item );
-          else
-            delete new_item;
-
-        } // fi
-
-        // Update queue
-        QDir dir( dir_name.c_str( ) );
-        QFileInfoList contents = dir.entryInfoList( );
-        QFileInfoList::const_iterator i = contents.begin( );
-        for( ; i != contents.end( ); ++i )
-        {
-          if( i->isDir( ) )
-          {
-            std::string new_dir_name = i->absoluteFilePath( ).toStdString( );
-            if( new_dir_name.size( ) > dir_name.size( ) )
-              q.push( new_dir_name );
-
-          } // fi
-
-        } // rof
-
-      } // elihw
-
-      // Show second dialog
-      if( tree_items.size( ) == 0 )
-      {
-        delete tree_widget;
-        delete tree_dialog;
-        return;
-
-      } // fi
-
-      QLabel* title = new QLabel( tree_dialog );
-      title->setText( "Choose a DICOM series" );
-      QGridLayout* mainLayout = new QGridLayout( tree_dialog );
-      QVBoxLayout* toolsLayout = new QVBoxLayout( );
-      toolsLayout->addWidget( title );
-      mainLayout->addLayout( toolsLayout, 0, 0, 1, 1 );
-
-      tree_widget->insertTopLevelItems( 0, tree_items );
-      toolsLayout->addWidget( tree_widget );
-
-      QDialogButtonBox* bb = new QDialogButtonBox(
-        QDialogButtonBox::Ok | QDialogButtonBox::Cancel
-        );
-      tree_dialog->connect(
-        bb, SIGNAL( accepted( ) ), tree_dialog, SLOT( accept( ) )
-        );
-      tree_dialog->connect(
-        bb, SIGNAL( rejected( ) ), tree_dialog, SLOT( reject( ) )
-        );
-      toolsLayout->addWidget( bb );
-
-      QApplication::restoreOverrideCursor( );
-      if( parent != NULL )
-        parent->setEnabled( true );
-
-      if( tree_dialog->exec( ) == 0 )
-        return;
-
-      QTreeWidgetItem* item = tree_widget->currentItem( );
-      if( item != NULL )
-      {
-        QTreeWidgetItem* item_parent = item->parent( );
-        if( item_parent != NULL )
-        {
-          QApplication::setOverrideCursor( Qt::WaitCursor );
-          if( parent != NULL )
-            parent->setEnabled( false );
-
-          auto parameters = this->m_ProcessObject->GetParameters( );
-          std::string serie_dir = item_parent->text( 0 ).toStdString( );
-          std::string serie_id = item->text( 0 ).toStdString( );
-          serie_id = serie_id.substr( serie_id.find_first_of( " " ) + 1 );
-          parameters->ClearOpenFileNameList( "FileNames" );
-          const std::vector< std::string >& names =
-            found_files[ serie_dir ][ serie_id ];
-          for( unsigned int f = 0; f < names.size( ); ++f )
-            parameters->AddToOpenFileNameList( "FileNames", names[ f ] );
-          this->updateView( );
-
-          QApplication::restoreOverrideCursor( );
-          if( parent != NULL )
-            parent->setEnabled( true );
-
-        } // fi
-
-      } // fi
-      itk::GDCMSeriesFileNames::GlobalWarningDisplayOn( );
-    }
-};
-
-#endif // cpPlugins_QT4
-
-// -------------------------------------------------------------------------
-cpPlugins::ParametersQtDialog* cpPluginsIO::DicomSeriesReader::
-CreateQtDialog( )
-{
-#ifdef cpPlugins_QT4
-  cpPluginsIO_DicomSeriesReader_ParametersQtDialog* dlg = NULL;
-  if( QApplication::instance( ) != NULL )
-  {
-    dlg = new cpPluginsIO_DicomSeriesReader_ParametersQtDialog( );
-    dlg->setProcessObject( this );
-
-  } // fi
-  return( dlg );
-#else // cpPlugins_QT4
-  return( NULL );
-#endif // cpPlugins_QT4
-}
-
-// -------------------------------------------------------------------------
-cpPluginsIO::DicomSeriesReader::
-DicomSeriesReader( )
-  : Superclass( )
-{
-}
-// -------------------------------------------------------------------------
-cpPluginsIO::DicomSeriesReader::
-~DicomSeriesReader( )
-{
-}
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsIO/DicomSeriesReader.h b/plugins/cpPluginsIO/DicomSeriesReader.h
deleted file mode 100644 (file)
index 2ad8a9b..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef __CPPLUGINSIO__DICOMSERIESREADER__H__
-#define __CPPLUGINSIO__DICOMSERIESREADER__H__
-
-#include <cpPluginsIO/ImageReader.h>
-
-namespace cpPluginsIO
-{
-  /**
-   */
-  class cpPluginsIO_EXPORT DicomSeriesReader
-    : public ImageReader
-  {
-  public:
-    typedef DicomSeriesReader               Self;
-    typedef ImageReader                     Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-  public:
-    itkNewMacro( Self );
-    itkTypeMacro( DicomSeriesReader, ImageReader );
-    cpPlugins_Id_Macro( DicomSeriesReader, IO );
-
-  public:
-    // Qt dialog creation
-    virtual cpPlugins::ParametersQtDialog* CreateQtDialog( ) ITK_OVERRIDE;
-
-  protected:
-    DicomSeriesReader( );
-    virtual ~DicomSeriesReader( );
-
-  private:
-    // Purposely not implemented
-    DicomSeriesReader( const Self& );
-    Self& operator=( const Self& );
-  };
-
-} // ecapseman
-
-#endif // __CPPLUGINSIO__DICOMSERIESREADER__H__
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsIO/ImageReader.cxx b/plugins/cpPluginsIO/ImageReader.cxx
deleted file mode 100644 (file)
index e10d383..0000000
+++ /dev/null
@@ -1,216 +0,0 @@
-#include <cpPluginsIO/ImageReader.h>
-#include <cpPlugins/Image.h>
-#include <cpPlugins_Instances/ImagesIO.h>
-#include <itkImageIOFactory.h>
-
-// -------------------------------------------------------------------------
-cpPluginsIO::ImageReader::
-ImageReader( )
-  : Superclass( )
-{
-  this->_AddOutput< cpPlugins::Image >( "Output" );
-  this->m_Parameters.Clear( );
-  this->m_Parameters.ConfigureAsOpenFileNameList( "FileNames" );
-  this->m_Parameters.SetAcceptedFileExtensions(
-    "FileNames",
-    "Image files (*.bmp *.png *.jpg *.jpeg *.dcm *.mhd *.nhdr *.nrrd *.tiff)"
-    );
-}
-
-// -------------------------------------------------------------------------
-cpPluginsIO::ImageReader::
-~ImageReader( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpPluginsIO::ImageReader::
-_GenerateData( )
-{
-  // Get filenames
-  auto fnames = this->m_Parameters.GetOpenFileNameList( "FileNames" );
-  if( fnames.size( ) >= 1 )
-  {
-    // Guess image properties
-    itk::ImageIOBase::Pointer io =
-      itk::ImageIOFactory::CreateImageIO(
-        fnames[ 0 ].c_str( ),
-        itk::ImageIOFactory::ReadMode
-        );
-    if( io.IsNotNull( ) )
-    {
-      io->SetFileName( fnames[ 0 ] );
-      io->ReadImageInformation( );
-      if( fnames.size( ) >= 1 )
-      {
-        switch( io->GetNumberOfDimensions( ) )
-        {
-          // TODO: case 1: r = this->_GD0< 1 >( io ); break;
-        case 2: this->_GD0< 2 >( io ); break;
-        case 3: this->_GD0< 3 >( io ); break;
-          // TODO: case 4: r = this->_GD0< 4 >( io ); break;
-        default:
-          this->_Error( "Image dimension not supported." );
-          break;
-        } // hctiws
-
-      } // fi
-    }
-    else
-      this->_Error(
-        std::string( "Could not create an ImageIO for \"" ) +
-        fnames[ 0 ] +
-        std::string( "\"" )
-        );
-  }
-  else
-    this->_Error( "No image(s) given" );
-}
-
-// -------------------------------------------------------------------------
-template< unsigned int _Dim >
-void cpPluginsIO::ImageReader::
-_GD0( itk::ImageIOBase* io )
-{
-  typedef unsigned char  uchar;
-  typedef unsigned short ushort;
-  typedef unsigned int   uint;
-  typedef unsigned long  ulong;
-
-  itk::ImageIOBase::IOComponentType ct = io->GetComponentType( );
-  itk::ImageIOBase::IOPixelType pt = io->GetPixelType( );
-
-  if( pt == itk::ImageIOBase::SCALAR )
-  {
-    switch( ct )
-    {
-    case itk::ImageIOBase::CHAR   : this->_GD1<   char, _Dim >( io ); break;
-    case itk::ImageIOBase::SHORT  : this->_GD1<  short, _Dim >( io ); break;
-    case itk::ImageIOBase::INT    : this->_GD1<    int, _Dim >( io ); break;
-    case itk::ImageIOBase::LONG   : this->_GD1<   long, _Dim >( io ); break;
-    case itk::ImageIOBase::FLOAT  : this->_GD1<  float, _Dim >( io ); break;
-    case itk::ImageIOBase::DOUBLE : this->_GD1< double, _Dim >( io ); break;
-    case itk::ImageIOBase::UCHAR  : this->_GD1<  uchar, _Dim >( io ); break;
-    case itk::ImageIOBase::USHORT : this->_GD1< ushort, _Dim >( io ); break;
-    case itk::ImageIOBase::UINT   : this->_GD1<   uint, _Dim >( io ); break;
-    case itk::ImageIOBase::ULONG  : this->_GD1<  ulong, _Dim >( io ); break;
-    default: this->_Error( "Scalar pixel type not supported." ); break;
-    } // hctiws
-  }
-  else if( pt == itk::ImageIOBase::RGB )
-  {
-    switch( ct )
-    {
-    case itk::ImageIOBase::CHAR   : this->_GD1< itk::RGBPixel<   char >, _Dim >( io ); break;
-    case itk::ImageIOBase::SHORT  : this->_GD1< itk::RGBPixel<  short >, _Dim >( io ); break;
-    case itk::ImageIOBase::INT    : this->_GD1< itk::RGBPixel<    int >, _Dim >( io ); break;
-    case itk::ImageIOBase::LONG   : this->_GD1< itk::RGBPixel<   long >, _Dim >( io ); break;
-    case itk::ImageIOBase::FLOAT  : this->_GD1< itk::RGBPixel<  float >, _Dim >( io ); break;
-    case itk::ImageIOBase::DOUBLE : this->_GD1< itk::RGBPixel< double >, _Dim >( io ); break;
-    case itk::ImageIOBase::UCHAR  : this->_GD1< itk::RGBPixel<  uchar >, _Dim >( io ); break;
-    case itk::ImageIOBase::USHORT : this->_GD1< itk::RGBPixel< ushort >, _Dim >( io ); break;
-    case itk::ImageIOBase::UINT   : this->_GD1< itk::RGBPixel<   uint >, _Dim >( io ); break;
-    case itk::ImageIOBase::ULONG  : this->_GD1< itk::RGBPixel<  ulong >, _Dim >( io ); break;
-    default: this->_Error( "RGB pixel type not supported." ); break;
-    } // hctiws
-  }
-  else if( pt == itk::ImageIOBase::RGBA )
-  {
-    switch( ct )
-    {
-    case itk::ImageIOBase::CHAR   : this->_GD1< itk::RGBAPixel<   char >, _Dim >( io ); break;
-    case itk::ImageIOBase::SHORT  : this->_GD1< itk::RGBAPixel<  short >, _Dim >( io ); break;
-    case itk::ImageIOBase::INT    : this->_GD1< itk::RGBAPixel<    int >, _Dim >( io ); break;
-    case itk::ImageIOBase::LONG   : this->_GD1< itk::RGBAPixel<   long >, _Dim >( io ); break;
-    case itk::ImageIOBase::FLOAT  : this->_GD1< itk::RGBAPixel<  float >, _Dim >( io ); break;
-    case itk::ImageIOBase::DOUBLE : this->_GD1< itk::RGBAPixel< double >, _Dim >( io ); break;
-    case itk::ImageIOBase::UCHAR  : this->_GD1< itk::RGBAPixel<  uchar >, _Dim >( io ); break;
-    case itk::ImageIOBase::USHORT : this->_GD1< itk::RGBAPixel< ushort >, _Dim >( io ); break;
-    case itk::ImageIOBase::UINT   : this->_GD1< itk::RGBAPixel<   uint >, _Dim >( io ); break;
-    case itk::ImageIOBase::ULONG  : this->_GD1< itk::RGBAPixel<  ulong >, _Dim >( io ); break;
-    default: this->_Error( "RGBA pixel type not supported." ); break;
-    } // hctiws
-  }
-  else if( pt == itk::ImageIOBase::COMPLEX )
-  {
-    switch( ct )
-    {
-    case itk::ImageIOBase::FLOAT  : this->_GD1< std::complex< float >, _Dim >( io ); break;
-    case itk::ImageIOBase::DOUBLE : this->_GD1< std::complex< double >, _Dim >( io ); break;
-    default: this->_Error( "Complex pixel type not supported." ); break;
-    } // hctiws
-  }
-  /* TODO
-     else if( pt == itk::ImageIOBase::VECTOR )
-     {
-     }
-     else if( pt == itk::ImageIOBase::POINT )
-     {
-     }
-     else if( pt == itk::ImageIOBase::COVARIANTVECTOR )
-     {
-     }
-     else if( pt == itk::ImageIOBase::SYMMETRICSECONDRANKTENSOR )
-     {
-     }
-     else if( pt == itk::ImageIOBase::DIFFUSIONTENSOR3D )
-     {
-     }
-     else if( pt == itk::ImageIOBase::OFFSET )
-     {
-     }
-     else if( pt == itk::ImageIOBase::FIXEDARRAY )
-     {
-     }
-     else if( pt == itk::ImageIOBase::MATRIX )
-     {
-     }
-  */
-  else
-    this->_Error( "Image pixel type not yet supported." );
-}
-
-// -------------------------------------------------------------------------
-template< class _TPixel, unsigned int _Dim >
-void cpPluginsIO::ImageReader::
-_GD1( itk::ImageIOBase* io )
-{
-  typedef itk::Image< _TPixel, _Dim > _TImage;
-
-  // Get filenames
-  auto fnames = this->m_Parameters.GetOpenFileNameList( "FileNames" );
-  if( fnames.size( ) == 1 )
-  {
-    auto f = this->_CreateITK< itk::ImageFileReader< _TImage > >( );
-    f->SetFileName( fnames[ 0 ] );
-    f->SetImageIO( io );
-    try
-    {
-      f->Update( );
-      this->GetOutput( "Output" )->SetITK( f->GetOutput( ) );
-    }
-    catch( itk::ExceptionObject& err )
-    {
-      this->_Error( err.GetDescription( ) );
-    }
-  }
-  else // if( fnames.size( ) > 1 )
-  {
-    auto f = this->_CreateITK< itk::ImageSeriesReader< _TImage > >( );
-    for( auto i = fnames.begin( ); i != fnames.end( ); ++i )
-      f->AddFileName( *i );
-    f->SetImageIO( io );
-    try
-    {
-      f->Update( );
-      this->GetOutput( "Output" )->SetITK( f->GetOutput( ) );
-    }
-    catch( itk::ExceptionObject& err )
-    {
-      this->_Error( err.GetDescription( ) );
-    }
-
-  } // fi
-}
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsIO/ImageReader.h b/plugins/cpPluginsIO/ImageReader.h
deleted file mode 100644 (file)
index 0e239e1..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-#ifndef __CPPLUGINSIO__IMAGEREADER__H__
-#define __CPPLUGINSIO__IMAGEREADER__H__
-
-#include <cpPluginsIO/cpPluginsIO_Export.h>
-#include <cpPlugins/ProcessObject.h>
-
-namespace itk
-{
-  class ImageIOBase;
-}
-
-namespace cpPluginsIO
-{
-  /**
-   */
-  class cpPluginsIO_EXPORT ImageReader
-    : public cpPlugins::ProcessObject
-  {
-  public:
-    typedef ImageReader                     Self;
-    typedef cpPlugins::ProcessObject        Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-  public:
-    itkNewMacro( Self );
-    itkTypeMacro( ImageReader, cpPlugins::ProcessObject );
-    cpPlugins_Id_Macro( ImageReader, IO );
-
-  protected:
-    ImageReader( );
-    virtual ~ImageReader( );
-
-    virtual void _GenerateData( ) ITK_OVERRIDE;
-
-    template< unsigned int _Dim >
-      inline void _GD0( itk::ImageIOBase* io );
-
-    template< class _TPixel, unsigned int _Dim >
-      inline void _GD1( itk::ImageIOBase* io );
-
-  private:
-    // Purposely not implemented
-    ImageReader( const Self& );
-    Self& operator=( const Self& );
-  };
-
-} // ecapseman
-
-#endif // __CPPLUGINSIO__IMAGEREADER__H__
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsIO/ImageWriter.cxx b/plugins/cpPluginsIO/ImageWriter.cxx
deleted file mode 100644 (file)
index c1239b0..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-#include <cpPluginsIO/ImageWriter.h>
-#include <cpPlugins/Image.h>
-#include <cpPlugins_Instances/ImagesIO.h>
-
-// -------------------------------------------------------------------------
-cpPluginsIO::ImageWriter::
-ImageWriter( )
-  : Superclass( )
-{
-  this->_AddInput( "Input" );
-  this->m_Parameters.Clear( );
-  this->m_Parameters.ConfigureAsSaveFileName( "FileName" );
-  this->m_Parameters.SetAcceptedFileExtensions(
-    "FileName",
-    "Image files (*.bmp *.png *.jpg *.jpeg *.dcm *.mhd *.nhdr *.nrrd *.tiff)"
-    );
-}
-
-// -------------------------------------------------------------------------
-cpPluginsIO::ImageWriter::
-~ImageWriter( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpPluginsIO::ImageWriter::
-_GenerateData( )
-{
-  auto image = this->GetInputData< itk::DataObject >( "Input" );
-  cpPlugins_Image_Demangle_Dim     ( _GD0, image, 2 );
-  else cpPlugins_Image_Demangle_Dim( _GD0, image, 3 );
-  else this->_Error( "No valid input image dimension" );
-}
-
-// -------------------------------------------------------------------------
-template< class _TImage >
-void cpPluginsIO::ImageWriter::
-_GD0( _TImage* image )
-{
-  static const unsigned int D = _TImage::ImageDimension;
-  cpPlugins_Image_Demangle_Pixel_AllScalars          ( _GD1, image, D );
-  else cpPlugins_Image_Demangle_ColorPixel_AllScalars( _GD1, image, RGB, D );
-  else cpPlugins_Image_Demangle_ColorPixel_AllScalars( _GD1, image, RGBA, D );
-}
-
-// -------------------------------------------------------------------------
-template< class _TImage >
-void cpPluginsIO::ImageWriter::
-_GD1( _TImage* image )
-{
-  typedef itk::ImageFileWriter< _TImage > _TFilter;
-  auto f = this->_CreateITK< _TFilter >( );
-  f->SetFileName( this->m_Parameters.GetSaveFileName( "FileName" ) );
-  f->SetInput( image );
-  try
-  {
-    f->Update( );
-  }
-  catch( itk::ExceptionObject& err )
-  {
-    this->_Error( err.GetDescription( ) );
-
-  } // yrt
-}
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsIO/ImageWriter.h b/plugins/cpPluginsIO/ImageWriter.h
deleted file mode 100644 (file)
index ac9e3ad..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef __CPPLUGINSIO__IMAGEWRITER__H__
-#define __CPPLUGINSIO__IMAGEWRITER__H__
-
-#include <cpPluginsIO/cpPluginsIO_Export.h>
-#include <cpPlugins/ProcessObject.h>
-
-namespace cpPluginsIO
-{
-  /**
-   */
-  class cpPluginsIO_EXPORT ImageWriter
-    : public cpPlugins::ProcessObject
-  {
-  public:
-    typedef ImageWriter                     Self;
-    typedef cpPlugins::ProcessObject        Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-  public:
-    itkNewMacro( Self );
-    itkTypeMacro( ImageWriter, cpPlugins::ProcessObject );
-    cpPlugins_Id_Macro( ImageWriter, IO );
-
-  protected:
-    ImageWriter( );
-    virtual ~ImageWriter( );
-
-    virtual void _GenerateData( ) ITK_OVERRIDE;
-
-    template< class _TImage >
-      inline void _GD0( _TImage* image );
-
-    template< class _TImage >
-      inline void _GD1( _TImage* image );
-
-  private:
-    // Purposely not implemented
-    ImageWriter( const Self& );
-    Self& operator=( const Self& );
-  };
-
-} // ecapseman
-
-#endif // __CPPLUGINSIO__IMAGEWRITER__H__
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsIO/MeshReader.cxx b/plugins/cpPluginsIO/MeshReader.cxx
deleted file mode 100644 (file)
index 3a40e42..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-#include <cpPluginsIO/MeshReader.h>
-#include <cpPlugins/Mesh.h>
-
-#include <algorithm>
-#include <cstring>
-
-#include <vtkPolyDataReader.h>
-#include <vtkOBJReader.h>
-#include <vtkSTLReader.h>
-
-// -------------------------------------------------------------------------
-cpPluginsIO::MeshReader::
-MeshReader( )
-  : Superclass( )
-{
-  this->_AddOutput< cpPlugins::Mesh >( "Output" );
-  this->m_Parameters.Clear( );
-  this->m_Parameters.ConfigureAsOpenFileName( "FileName" );
-  this->m_Parameters.ConfigureAsUint( "Dimension" );
-
-  std::vector< std::string > valid_types;
-  valid_types.push_back( "float" );
-  valid_types.push_back( "double" );
-  this->m_Parameters.ConfigureAsChoices( "ScalarType", valid_types );
-  this->m_Parameters.SetSelectedChoice( "ScalarType", "float" );
-
-  this->m_Parameters.SetUint( "Dimension", 3 );
-  this->m_Parameters.SetAcceptedFileExtensions(
-    "FileName",
-    "Mesh files (*.obj *.stl *.vtk)"
-    );
-}
-
-// -------------------------------------------------------------------------
-cpPluginsIO::MeshReader::
-~MeshReader( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpPluginsIO::MeshReader::
-_GenerateData( )
-{
-  auto d = this->m_Parameters.GetUint( "Dimension" );
-  if     ( d == 2 ) this->_GD0< 2 >( );
-  else if( d == 3 ) this->_GD0< 3 >( );
-  else              this->_Error( "Mesh dimension not supported." );
-}
-
-// -------------------------------------------------------------------------
-template< unsigned int _Dim >
-void cpPluginsIO::MeshReader::
-_GD0( )
-{
-  auto s = this->m_Parameters.GetSelectedChoice( "ScalarType" );
-  if     ( s == "float" )  this->_GD1< float, _Dim >( );
-  else if( s == "double" ) this->_GD1< double, _Dim >( );
-  else                     this->_Error( "Mesh type not supported." );
-}
-
-// -------------------------------------------------------------------------
-template< class _TScalar, unsigned int _Dim >
-void cpPluginsIO::MeshReader::
-_GD1( )
-{
-  auto fname = this->m_Parameters.GetOpenFileName( "FileName" );
-
-  // Get file extension
-  std::istringstream fname_str( fname );
-  std::string token, ext;
-  while( std::getline( fname_str, token, '.' ) )
-    ext = token;
-  std::transform( ext.begin( ), ext.end( ), ext.begin( ), tolower );
-
-  // Real read
-  if( ext == "stl" )
-  {
-    vtkSTLReader* stlr = this->_CreateVTK< vtkSTLReader >( );
-    stlr->SetFileName( fname.c_str( ) );
-    stlr->Update( );
-
-    this->GetOutput( "Output" )->SetVTK( stlr->GetOutput( ) );
-  }
-  else if( ext == "obj" )
-  {
-    vtkOBJReader* objr = this->_CreateVTK< vtkOBJReader >( );
-    objr->SetFileName( fname.c_str( ) );
-    objr->Update( );
-
-    this->GetOutput( "Output" )->SetVTK( objr->GetOutput( ) );
-  }
-  else if( ext == "vtk" )
-  {
-    vtkPolyDataReader* pdr = this->_CreateVTK< vtkPolyDataReader >( );
-    pdr->SetFileName( fname.c_str( ) );
-    pdr->Update( );
-
-    this->GetOutput( "Output" )->SetVTK( pdr->GetOutput( ) );
-  }
-  else
-    this->_Error( "Input file format not recognized." );
-}
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsIO/MeshReader.h b/plugins/cpPluginsIO/MeshReader.h
deleted file mode 100644 (file)
index f04fcf6..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef __CPPLUGINSIO__MESHREADER__H__
-#define __CPPLUGINSIO__MESHREADER__H__
-
-#include <cpPluginsIO/cpPluginsIO_Export.h>
-#include <cpPlugins/ProcessObject.h>
-
-namespace cpPluginsIO
-{
-  /**
-   */
-  class cpPluginsIO_EXPORT MeshReader
-    : public cpPlugins::ProcessObject
-  {
-  public:
-    typedef MeshReader                      Self;
-    typedef cpPlugins::ProcessObject        Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-  public:
-    itkNewMacro( Self );
-    itkTypeMacro( MeshReader, cpPlugins::ProcessObject );
-    cpPlugins_Id_Macro( MeshReader, IO );
-
-  protected:
-    MeshReader( );
-    virtual ~MeshReader( );
-
-    virtual void _GenerateData( ) ITK_OVERRIDE;
-
-    template< unsigned int _Dim >
-      inline void _GD0( );
-
-    template< class _TScalar, unsigned int _Dim >
-      inline void _GD1( );
-
-  private:
-    // Purposely not implemented
-    MeshReader( const Self& );
-    Self& operator=( const Self& );
-  };
-
-} // ecapseman
-
-#endif // __CPPLUGINSIO__MESHREADER__H__
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsIO/MeshWriter.cxx b/plugins/cpPluginsIO/MeshWriter.cxx
deleted file mode 100644 (file)
index e69fc41..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-#include <cpPluginsIO/MeshWriter.h>
-#include <cpPlugins/Mesh.h>
-
-#include <algorithm>
-#include <cstring>
-
-#include <vtkPolyDataWriter.h>
-#include <vtkSTLWriter.h>
-
-// -------------------------------------------------------------------------
-cpPluginsIO::MeshWriter::
-MeshWriter( )
-  : Superclass( )
-{
-  this->_AddInput( "Input" );
-  this->m_Parameters.Clear( );
-  this->m_Parameters.ConfigureAsSaveFileName( "FileName" );
-  this->m_Parameters.SetAcceptedFileExtensions(
-    "FileName",
-    "Mesh files (*.stl *.vtk)"
-    );
-}
-
-// -------------------------------------------------------------------------
-cpPluginsIO::MeshWriter::
-~MeshWriter( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpPluginsIO::MeshWriter::
-_GenerateData( )
-{
-  auto mesh = this->GetInputData< vtkPolyData >( "Input" );
-  if( mesh == NULL )
-    this->_Error( "No suitable input." );
-
-  // Get file extension
-  auto fname = this->m_Parameters.GetSaveFileName( "FileName" );
-  std::istringstream fname_str( fname );
-  std::string token, ext;
-  while( std::getline( fname_str, token, '.' ) )
-    ext = token;
-  std::transform( ext.begin( ), ext.end( ), ext.begin( ), tolower );
-
-  // Real read
-  if( ext == "stl" )
-  {
-    vtkSTLWriter* stlw = this->_CreateVTK< vtkSTLWriter >( );
-    stlw->SetInputData( mesh );
-    stlw->SetFileName( fname.c_str( ) );
-    stlw->Update( );
-    if( stlw->GetErrorCode( ) != 0 )
-      this->_Error( "Someting wrong happened." );
-  }
-  else if( ext == "vtk" )
-  {
-    vtkPolyDataWriter* pdw = this->_CreateVTK< vtkPolyDataWriter >( );
-    pdw->SetInputData( mesh );
-    pdw->SetFileName( fname.c_str( ) );
-    pdw->Update( );
-    if( pdw->GetErrorCode( ) != 0 )
-      this->_Error( "Someting wrong happened." );
-  }
-  else
-    this->_Error( "Input file format not recognized." );
-}
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsIO/MeshWriter.h b/plugins/cpPluginsIO/MeshWriter.h
deleted file mode 100644 (file)
index 3957929..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef __CPPLUGINSIO__MESHWRITER__H__
-#define __CPPLUGINSIO__MESHWRITER__H__
-
-#include <cpPluginsIO/cpPluginsIO_Export.h>
-#include <cpPlugins/ProcessObject.h>
-
-namespace cpPluginsIO
-{
-  /**
-   */
-  class cpPluginsIO_EXPORT MeshWriter
-    : public cpPlugins::ProcessObject
-  {
-  public:
-    typedef MeshWriter                      Self;
-    typedef cpPlugins::ProcessObject        Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-  public:
-    itkNewMacro( Self );
-    itkTypeMacro( MeshWriter, cpPlugins::ProcessObject );
-    cpPlugins_Id_Macro( MeshWriter, IO );
-
-  protected:
-    MeshWriter( );
-    virtual ~MeshWriter( );
-
-    virtual void _GenerateData( ) ITK_OVERRIDE;
-
-  private:
-    // Purposely not implemented
-    MeshWriter( const Self& );
-    Self& operator=( const Self& );
-  };
-
-} // ecapseman
-
-#endif // __CPPLUGINSIO__MESHWRITER__H__
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsImageFilters/AndImageFilter.cxx b/plugins/cpPluginsImageFilters/AndImageFilter.cxx
deleted file mode 100644 (file)
index 4744f9d..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-#include <cpPluginsImageFilters/AndImageFilter.h>
-#include <cpPlugins/Image.h>
-#include <cpPlugins_Instances/BitwiseImageFilters.h>
-
-// -------------------------------------------------------------------------
-cpPluginsImageFilters::AndImageFilter::
-AndImageFilter( )
-  : Superclass( )
-{
-  this->_AddInput( "Input0" );
-  this->_AddInput( "Input1" );
-  this->_AddOutput< cpPlugins::Image >( "Output" );
-}
-
-// -------------------------------------------------------------------------
-cpPluginsImageFilters::AndImageFilter::
-~AndImageFilter( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpPluginsImageFilters::AndImageFilter::
-_GenerateData( )
-{
-  auto image = this->GetInputData< itk::DataObject >( "Input0" );
-  cpPlugins_Image_Demangle_Pixel_AllInts      ( _GD0, image, 1 );
-  else cpPlugins_Image_Demangle_Pixel_AllInts ( _GD0, image, 2 );
-  else cpPlugins_Image_Demangle_Pixel_AllInts ( _GD0, image, 3 );
-  else cpPlugins_Image_Demangle_Pixel_AllInts ( _GD0, image, 4 );
-  else cpPlugins_Image_Demangle_Pixel_AllUInts( _GD0, image, 1 );
-  else cpPlugins_Image_Demangle_Pixel_AllUInts( _GD0, image, 2 );
-  else cpPlugins_Image_Demangle_Pixel_AllUInts( _GD0, image, 3 );
-  else cpPlugins_Image_Demangle_Pixel_AllUInts( _GD0, image, 4 );
-  else this->_Error( "No valid input image." );
-}
-
-// -------------------------------------------------------------------------
-template< class _TImage >
-void cpPluginsImageFilters::AndImageFilter::
-_GD0( _TImage* image0 )
-{
-  typedef itk::AndImageFilter< _TImage, _TImage > _TFilter;
-  if( image0 != NULL )
-  {
-    auto image1 = this->GetInputData< _TImage >( "Input1" );
-    if( image1 != NULL )
-    {
-      // Configure filter
-      auto filter = this->_CreateITK< _TFilter >( );
-      filter->SetInput( 0, image0 );
-      filter->SetInput( 1, image1 );
-      filter->Update( );
-
-      // Connect output
-      this->GetOutput( "Output" )->SetITK( filter->GetOutput( ) );
-    }
-    else
-      this->_Error( "No valid second input image." );
-  }
-  else
-    this->_Error( "No valid first input image." );
-}
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsImageFilters/AndImageFilter.h b/plugins/cpPluginsImageFilters/AndImageFilter.h
deleted file mode 100644 (file)
index bab353c..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef __CPPLUGINSIMAGEFILTERS__ANDIMAGEFILTER__H__
-#define __CPPLUGINSIMAGEFILTERS__ANDIMAGEFILTER__H__
-
-#include <plugins/cpPluginsImageFilters/cpPluginsImageFilters_Export.h>
-#include <cpPlugins/ProcessObject.h>
-
-namespace cpPluginsImageFilters
-{
-  /**
-   */
-  class cpPluginsImageFilters_EXPORT AndImageFilter
-    : public cpPlugins::ProcessObject
-  {
-  public:
-    typedef AndImageFilter      Self;
-    typedef cpPlugins::ProcessObject        Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-  public:
-    itkNewMacro( Self );
-    itkTypeMacro( AndImageFilter, cpPlugins::ProcessObject );
-    cpPlugins_Id_Macro( AndImageFilter, ImageFilters );
-
-  protected:
-    AndImageFilter( );
-    virtual ~AndImageFilter( );
-
-    virtual void _GenerateData( ) ITK_OVERRIDE;
-
-    template< class _TImage >
-      inline void _GD0( _TImage* image0 );
-
-  private:
-    // Purposely not implemented
-    AndImageFilter( const Self& );
-    Self& operator=( const Self& );
-  };
-
-} // ecapseman
-
-#endif // __CPPLUGINSIMAGEFILTERS__ANDIMAGEFILTER__H__
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsImageFilters/BinaryContourImageFilter.cxx b/plugins/cpPluginsImageFilters/BinaryContourImageFilter.cxx
deleted file mode 100644 (file)
index 5d3bcad..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-#include <cpPluginsImageFilters/BinaryContourImageFilter.h>
-#include <cpPlugins/Image.h>
-#include <cpPlugins_Instances/DistanceMapFilters.h>
-
-// -------------------------------------------------------------------------
-cpPluginsImageFilters::BinaryContourImageFilter::
-BinaryContourImageFilter( )
-  : Superclass( )
-{
-  this->_AddInput( "Input" );
-  this->_AddOutput< cpPlugins::Image >( "Output" );
-
-  this->m_Parameters.ConfigureAsBool( "FullyConnected" );
-  this->m_Parameters.ConfigureAsReal( "BackgroundValue" );
-  this->m_Parameters.ConfigureAsReal( "ForegroundValue" );
-  std::vector< std::string > choices;
-  choices.push_back( "float" );
-  choices.push_back( "double" );
-  this->m_Parameters.ConfigureAsChoices( "OutputResolution", choices );
-
-  this->m_Parameters.SetBool( "FullyConnected", false );
-  this->m_Parameters.SetReal( "BackgroundValue", 0 );
-  this->m_Parameters.SetReal( "ForegroundValue", 1 );
-  this->m_Parameters.SetSelectedChoice( "OutputResolution", "float" );
-}
-
-// -------------------------------------------------------------------------
-cpPluginsImageFilters::BinaryContourImageFilter::
-~BinaryContourImageFilter( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpPluginsImageFilters::BinaryContourImageFilter::
-_GenerateData( )
-{
-  auto image = this->GetInputData< itk::DataObject >( "Input" );
-  cpPlugins_Image_Demangle_Pixel_AllScalars     ( _GD0, image, 2 );
-  else cpPlugins_Image_Demangle_Pixel_AllScalars( _GD0, image, 3 );
-  else this->_Error( "No valid input image." );
-}
-
-// -------------------------------------------------------------------------
-template< class _TImage >
-void cpPluginsImageFilters::BinaryContourImageFilter::
-_GD0( _TImage* image )
-{
-  static const unsigned int D = _TImage::ImageDimension;
-  if( image != NULL )
-  {
-    std::string out_res =
-      this->m_Parameters.GetSelectedChoice( "OutputResolution" );
-    if( out_res == "float" )
-      this->_GD1< _TImage, itk::Image< float, D > >( image );
-    else // if( out_res == "double" )
-      this->_GD1< _TImage, itk::Image< double, D > >( image );
-  }
-  else
-    this->_Error( "No valid input image." );
-}
-
-// -------------------------------------------------------------------------
-template< class _TImage, class _TContourImage >
-void cpPluginsImageFilters::BinaryContourImageFilter::
-_GD1( _TImage* image )
-{
-  typedef itk::BinaryContourImageFilter< _TImage, _TContourImage > _F;
-
-  // Get parameters
-  bool fc = this->m_Parameters.GetBool( "FullyConnected" );
-  double bv = this->m_Parameters.GetReal( "BackgroundValue" );
-  double fv = this->m_Parameters.GetReal( "ForegroundValue" );
-
-  // Configure filter
-  _F* filter = this->_CreateITK< _F >( );
-  filter->SetInput( image );
-  filter->SetFullyConnected( fc );
-  filter->SetBackgroundValue( bv );
-  filter->SetForegroundValue( fv );
-  filter->Update( );
-
-  // Connect output
-  this->GetOutput( "Output" )->SetITK( filter->GetOutput( ) );
-}
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsImageFilters/BinaryContourImageFilter.h b/plugins/cpPluginsImageFilters/BinaryContourImageFilter.h
deleted file mode 100644 (file)
index cc66531..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef __CPPLUGINSIMAGEFILTERS__BINARYCONTOURIMAGEFILTER__H__
-#define __CPPLUGINSIMAGEFILTERS__BINARYCONTOURIMAGEFILTER__H__
-
-#include <plugins/cpPluginsImageFilters/cpPluginsImageFilters_Export.h>
-#include <cpPlugins/ProcessObject.h>
-
-namespace cpPluginsImageFilters
-{
-  /**
-   */
-  class cpPluginsImageFilters_EXPORT BinaryContourImageFilter
-    : public cpPlugins::ProcessObject
-  {
-  public:
-    typedef BinaryContourImageFilter        Self;
-    typedef cpPlugins::ProcessObject        Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-  public:
-    itkNewMacro( Self );
-    itkTypeMacro( BinaryContourImageFilter, cpPlugins::ProcessObject );
-    cpPlugins_Id_Macro( BinaryContourImageFilter, ImageFilters );
-
-  protected:
-    BinaryContourImageFilter( );
-    virtual ~BinaryContourImageFilter( );
-
-    virtual void _GenerateData( ) ITK_OVERRIDE;
-
-    template< class _TImage >
-      inline void _GD0( _TImage* image );
-
-    template< class _TImage, class _TContourImage >
-      inline void _GD1( _TImage* image );
-
-  private:
-    // Purposely not implemented
-    BinaryContourImageFilter( const Self& );
-    Self& operator=( const Self& );
-  };
-
-} // ecapseman
-
-#endif // __CPPLUGINSIMAGEFILTERS__BINARYCONTOURIMAGEFILTER__H__
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsImageFilters/BinaryDilateParaImageFilter.cxx b/plugins/cpPluginsImageFilters/BinaryDilateParaImageFilter.cxx
deleted file mode 100644 (file)
index fe37f74..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-#include <cpPluginsImageFilters/BinaryDilateParaImageFilter.h>
-#include <cpPlugins/Image.h>
-#include <cpPlugins_Instances/MorphologicalImageFilters.h>
-
-// -------------------------------------------------------------------------
-cpPluginsImageFilters::BinaryDilateParaImageFilter::
-BinaryDilateParaImageFilter( )
-  : Superclass( )
-{
-  this->_AddInput( "Input" );
-  this->_AddOutput< cpPlugins::Image >( "Output" );
-  this->m_Parameters.ConfigureAsReal( "Radius" );
-  this->m_Parameters.ConfigureAsBool( "Circular" );
-  this->m_Parameters.ConfigureAsBool( "UseImageSpacing" );
-
-  this->m_Parameters.SetReal( "Radius", 3 );
-  this->m_Parameters.SetBool( "Circular", true );
-  this->m_Parameters.SetBool( "UseImageSpacing", false );
-}
-
-// -------------------------------------------------------------------------
-cpPluginsImageFilters::BinaryDilateParaImageFilter::
-~BinaryDilateParaImageFilter( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpPluginsImageFilters::BinaryDilateParaImageFilter::
-_GenerateData( )
-{
-  auto image = this->GetInputData< itk::DataObject >( "Input" );
-  cpPlugins_Image_Demangle_Pixel_AllScalars     ( _GD0, image, 2 );
-  else cpPlugins_Image_Demangle_Pixel_AllScalars( _GD0, image, 3 );
-  else this->_Error( "No valid input image." );
-}
-
-// -------------------------------------------------------------------------
-template< class _TInputImage >
-void cpPluginsImageFilters::BinaryDilateParaImageFilter::
-_GD0( _TInputImage* input_image )
-{
-  typedef itk::BinaryDilateParaImageFilter< _TInputImage > _TFilter;
-
-  auto filter = this->_CreateITK< _TFilter >( );
-  filter->SetInput( input_image );
-  filter->SetRadius( this->m_Parameters.GetReal( "Radius" ) );
-  filter->SetCircular( this->m_Parameters.GetBool( "Circular" ) );
-  filter->SetUseImageSpacing( this->m_Parameters.GetBool( "UseImageSpacing" ) );
-  filter->Update( );
-  this->GetOutput( "Output" )->SetITK( filter->GetOutput( ) );
-}
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsImageFilters/BinaryDilateParaImageFilter.h b/plugins/cpPluginsImageFilters/BinaryDilateParaImageFilter.h
deleted file mode 100644 (file)
index 36f957a..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef __CPPLUGINSIMAGEFILTERS__BINARYDILATEPARAIMAGEFILTER__H__
-#define __CPPLUGINSIMAGEFILTERS__BINARYDILATEPARAIMAGEFILTER__H__
-
-#include <plugins/cpPluginsImageFilters/cpPluginsImageFilters_Export.h>
-#include <cpPlugins/ProcessObject.h>
-
-namespace cpPluginsImageFilters
-{
-  /**
-   */
-  class cpPluginsImageFilters_EXPORT BinaryDilateParaImageFilter
-    : public cpPlugins::ProcessObject
-  {
-  public:
-    typedef BinaryDilateParaImageFilter     Self;
-    typedef cpPlugins::ProcessObject        Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-  public:
-    itkNewMacro( Self );
-    itkTypeMacro( BinaryDilateParaImageFilter, cpPlugins::ProcessObject );
-    cpPlugins_Id_Macro( BinaryDilateParaImageFilter, ImageFilters );
-
-  protected:
-    BinaryDilateParaImageFilter( );
-    virtual ~BinaryDilateParaImageFilter( );
-
-    virtual void _GenerateData( ) ITK_OVERRIDE;
-
-    template< class _TInputImage >
-      inline void _GD0( _TInputImage* input_image );
-
-  private:
-    // Purposely not implemented
-    BinaryDilateParaImageFilter( const Self& );
-    Self& operator=( const Self& );
-  };
-
-} // ecapseman
-
-#endif // __CPPLUGINSIMAGEFILTERS__BINARYDILATEPARAIMAGEFILTER__H__
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsImageFilters/BinaryErodeParaImageFilter.cxx b/plugins/cpPluginsImageFilters/BinaryErodeParaImageFilter.cxx
deleted file mode 100644 (file)
index 7aad8cc..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-#include <cpPluginsImageFilters/BinaryErodeParaImageFilter.h>
-#include <cpPlugins/Image.h>
-#include <cpPlugins_Instances/MorphologicalImageFilters.h>
-
-// -------------------------------------------------------------------------
-cpPluginsImageFilters::BinaryErodeParaImageFilter::
-BinaryErodeParaImageFilter( )
-  : Superclass( )
-{
-  this->_AddInput( "Input" );
-  this->_AddOutput< cpPlugins::Image >( "Output" );
-  this->m_Parameters.ConfigureAsReal( "Radius" );
-  this->m_Parameters.ConfigureAsBool( "Circular" );
-  this->m_Parameters.ConfigureAsBool( "UseImageSpacing" );
-
-  this->m_Parameters.SetReal( "Radius", 3 );
-  this->m_Parameters.SetBool( "Circular", true );
-  this->m_Parameters.SetBool( "UseImageSpacing", false );
-}
-
-// -------------------------------------------------------------------------
-cpPluginsImageFilters::BinaryErodeParaImageFilter::
-~BinaryErodeParaImageFilter( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpPluginsImageFilters::BinaryErodeParaImageFilter::
-_GenerateData( )
-{
-  auto image = this->GetInputData< itk::DataObject >( "Input" );
-  cpPlugins_Image_Demangle_Pixel_AllScalars     ( _GD0, image, 2 );
-  else cpPlugins_Image_Demangle_Pixel_AllScalars( _GD0, image, 3 );
-  else this->_Error( "No valid input image." );
-}
-
-// -------------------------------------------------------------------------
-template< class _TInputImage >
-void cpPluginsImageFilters::BinaryErodeParaImageFilter::
-_GD0( _TInputImage* input_image )
-{
-  typedef itk::BinaryErodeParaImageFilter< _TInputImage > _TFilter;
-
-  auto filter = this->_CreateITK< _TFilter >( );
-  filter->SetInput( input_image );
-  filter->SetRadius( this->m_Parameters.GetReal( "Radius" ) );
-  filter->SetCircular( this->m_Parameters.GetBool( "Circular" ) );
-  filter->SetUseImageSpacing( this->m_Parameters.GetBool( "UseImageSpacing" ) );
-  filter->Update( );
-  this->GetOutput( "Output" )->SetITK( filter->GetOutput( ) );
-}
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsImageFilters/BinaryErodeParaImageFilter.h b/plugins/cpPluginsImageFilters/BinaryErodeParaImageFilter.h
deleted file mode 100644 (file)
index a7c9c41..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef __CPPLUGINSIMAGEFILTERS__BINARYERODEPARAIMAGEFILTER__H__
-#define __CPPLUGINSIMAGEFILTERS__BINARYERODEPARAIMAGEFILTER__H__
-
-#include <plugins/cpPluginsImageFilters/cpPluginsImageFilters_Export.h>
-#include <cpPlugins/ProcessObject.h>
-
-namespace cpPluginsImageFilters
-{
-  /**
-   */
-  class cpPluginsImageFilters_EXPORT BinaryErodeParaImageFilter
-    : public cpPlugins::ProcessObject
-  {
-  public:
-    typedef BinaryErodeParaImageFilter     Self;
-    typedef cpPlugins::ProcessObject        Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-  public:
-    itkNewMacro( Self );
-    itkTypeMacro( BinaryErodeParaImageFilter, cpPlugins::ProcessObject );
-    cpPlugins_Id_Macro( BinaryErodeParaImageFilter, ImageFilters );
-
-  protected:
-    BinaryErodeParaImageFilter( );
-    virtual ~BinaryErodeParaImageFilter( );
-
-    virtual void _GenerateData( ) ITK_OVERRIDE;
-
-    template< class _TInputImage >
-      inline void _GD0( _TInputImage* input_image );
-
-  private:
-    // Purposely not implemented
-    BinaryErodeParaImageFilter( const Self& );
-    Self& operator=( const Self& );
-  };
-
-} // ecapseman
-
-#endif // __CPPLUGINSIMAGEFILTERS__BINARYERODEPARAIMAGEFILTER__H__
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsImageFilters/BinaryThresholdImageFilter.cxx b/plugins/cpPluginsImageFilters/BinaryThresholdImageFilter.cxx
deleted file mode 100644 (file)
index b14cca9..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-#include <cpPluginsImageFilters/BinaryThresholdImageFilter.h>
-#include <cpPlugins/Image.h>
-#include <cpPlugins_Instances/ThresholdFilters.h>
-
-// -------------------------------------------------------------------------
-cpPluginsImageFilters::BinaryThresholdImageFilter::
-BinaryThresholdImageFilter( )
-  : Superclass( )
-{
-  this->_AddInput( "Input" );
-  this->_AddOutput< cpPlugins::Image >( "Output" );
-
-  this->m_Parameters.ConfigureAsReal( "LowerThresholdValue" );
-  this->m_Parameters.ConfigureAsReal( "UpperThresholdValue" );
-  this->m_Parameters.ConfigureAsUint( "InsideValue" );
-  this->m_Parameters.ConfigureAsUint( "OutsideValue" );
-
-  this->m_Parameters.SetReal( "LowerThresholdValue", 0 );
-  this->m_Parameters.SetReal( "UpperThresholdValue", 10000 );
-  this->m_Parameters.SetReal( "InsideValue", 1 );
-  this->m_Parameters.SetReal( "OutsideValue", 0 );
-  this->m_Parameters.SetSelectedChoice( "OutputResolution", "unsigned char" );
-}
-
-// -------------------------------------------------------------------------
-cpPluginsImageFilters::BinaryThresholdImageFilter::
-~BinaryThresholdImageFilter( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpPluginsImageFilters::BinaryThresholdImageFilter::
-_GenerateData( )
-{
-  auto image = this->GetInputData< itk::DataObject >( "Input" );
-  cpPlugins_Image_Demangle_Pixel_AllScalars     ( _GD0, image, 2 );
-  else cpPlugins_Image_Demangle_Pixel_AllScalars( _GD0, image, 3 );
-  else this->_Error( "No valid input image." );
-}
-
-// -------------------------------------------------------------------------
-template< class _TImage >
-void cpPluginsImageFilters::BinaryThresholdImageFilter::
-_GD0( _TImage* image )
-{
-  if( image != NULL )
-    this->_GD1< _TImage, unsigned char >( image );
-  else
-    this->_Error( "No valid input image." );
-}
-
-// -------------------------------------------------------------------------
-template< class _TImage, class _TBinaryPixel >
-void cpPluginsImageFilters::BinaryThresholdImageFilter::
-_GD1( _TImage* image )
-{
-  typedef itk::Image< _TBinaryPixel, _TImage::ImageDimension > _TBinaryImage;
-  typedef itk::BinaryThresholdImageFilter< _TImage, _TBinaryImage > _F;
-  typedef typename _TImage::PixelType _TP;
-
-  // Get parameters
-  _TP lower_val = _TP( this->m_Parameters.GetReal( "LowerThresholdValue" ) );
-  _TP upper_val = _TP( this->m_Parameters.GetReal( "UpperThresholdValue" ) );
-  _TBinaryPixel in_val  = _TBinaryPixel( this->m_Parameters.GetReal( "InsideValue" ) );
-  _TBinaryPixel out_val = _TBinaryPixel( this->m_Parameters.GetReal( "OutsideValue" ) );
-
-  // Configure filter
-  _F* filter = this->_CreateITK< _F >( );
-  filter->SetInput( image );
-  filter->SetLowerThreshold( lower_val );
-  filter->SetUpperThreshold( upper_val );
-  filter->SetInsideValue( in_val );
-  filter->SetOutsideValue( out_val );
-  filter->Update( );
-
-  // Connect output
-  this->GetOutput( "Output" )->SetITK( filter->GetOutput( ) );
-}
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsImageFilters/BinaryThresholdImageFilter.h b/plugins/cpPluginsImageFilters/BinaryThresholdImageFilter.h
deleted file mode 100644 (file)
index 30a2208..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef __CPPLUGINSIMAGEFILTERS__BINARYTHRESHOLDIMAGEFILTER__H__
-#define __CPPLUGINSIMAGEFILTERS__BINARYTHRESHOLDIMAGEFILTER__H__
-
-#include <plugins/cpPluginsImageFilters/cpPluginsImageFilters_Export.h>
-#include <cpPlugins/ProcessObject.h>
-
-namespace cpPluginsImageFilters
-{
-  /**
-   */
-  class cpPluginsImageFilters_EXPORT BinaryThresholdImageFilter
-    : public cpPlugins::ProcessObject
-  {
-  public:
-    typedef BinaryThresholdImageFilter      Self;
-    typedef cpPlugins::ProcessObject        Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-  public:
-    itkNewMacro( Self );
-    itkTypeMacro( BinaryThresholdImageFilter, cpPlugins::ProcessObject );
-    cpPlugins_Id_Macro( BinaryThresholdImageFilter, ImageFilters );
-
-  protected:
-    BinaryThresholdImageFilter( );
-    virtual ~BinaryThresholdImageFilter( );
-
-    virtual void _GenerateData( ) ITK_OVERRIDE;
-
-    template< class _TImage >
-      inline void _GD0( _TImage* image );
-
-    template< class _TImage, class _TBinaryPixel >
-      inline void _GD1( _TImage* image );
-
-  private:
-    // Purposely not implemented
-    BinaryThresholdImageFilter( const Self& );
-    Self& operator=( const Self& );
-  };
-
-} // ecapseman
-
-#endif // __CPPLUGINSIMAGEFILTERS__BINARYTHRESHOLDIMAGEFILTER__H__
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsImageFilters/CMakeLists.txt b/plugins/cpPluginsImageFilters/CMakeLists.txt
deleted file mode 100644 (file)
index 3400a8d..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-SET(lib_NAME cpPluginsImageFilters)
-FILE(GLOB lib_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/*.h")
-FILE(GLOB lib_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.cxx")
-SET(lib_OTHER_SOURCES "")
-SET(lib_QT4_HEADERS "")
-
-SET(lib_LINKS)
-IF(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux")
-  SET(lib_LINKS cpPlugins ${cpPlugins_LIBRARIES})
-ENDIF(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux")
-
-cpPlugins_WrapPlugins(
-  ${lib_NAME} ${prj_VER} ${prj_sVER}
-  "${lib_HEADERS}"
-  "${lib_SOURCES}"
-  "${lib_OTHER_SOURCES}"
-  "${lib_QT4_HEADERS}"
-  ${lib_LINKS}
-  )
-
-## ========================
-## -- Installation rules --
-## ========================
-
-#INSTALL(
-#  TARGETS ${lib_NAME}
-#  RUNTIME DESTINATION bin
-#  LIBRARY DESTINATION lib
-#  ARCHIVE DESTINATION lib/static
-#  )
-
-## eof - $RCSfile$
diff --git a/plugins/cpPluginsImageFilters/CastImageFilter.cxx b/plugins/cpPluginsImageFilters/CastImageFilter.cxx
deleted file mode 100644 (file)
index 87f9671..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-#include <cpPluginsImageFilters/CastImageFilter.h>
-#include <cpPlugins/Image.h>
-#include <cpPlugins_Instances/ScalarImagesBaseFilters.h>
-
-// -------------------------------------------------------------------------
-cpPluginsImageFilters::CastImageFilter::
-CastImageFilter( )
-  : Superclass( )
-{
-  this->_AddInput( "Input" );
-  this->_AddOutput< cpPlugins::Image >( "Output" );
-
-  std::vector< std::string > choices;
-  choices.push_back( "char" );
-  choices.push_back( "short" );
-  choices.push_back( "int" );
-  choices.push_back( "long" );
-  choices.push_back( "uchar" );
-  choices.push_back( "ushort" );
-  choices.push_back( "uint" );
-  choices.push_back( "ulong" );
-  choices.push_back( "float" );
-  choices.push_back( "double" );
-  this->m_Parameters.ConfigureAsChoices( "CastType", choices );
-  this->m_Parameters.SetSelectedChoice( "CastType", "uchar" );
-}
-
-// -------------------------------------------------------------------------
-cpPluginsImageFilters::CastImageFilter::
-~CastImageFilter( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpPluginsImageFilters::CastImageFilter::
-_GenerateData( )
-{
-  auto image = this->GetInputData< itk::DataObject >( "Input" );
-  cpPlugins_Image_Demangle_Pixel_AllScalars     ( _GD0, image, 1 );
-  else cpPlugins_Image_Demangle_Pixel_AllScalars( _GD0, image, 2 );
-  else cpPlugins_Image_Demangle_Pixel_AllScalars( _GD0, image, 3 );
-  else cpPlugins_Image_Demangle_Pixel_AllScalars( _GD0, image, 4 );
-  else this->_Error( "No valid input image." );
-}
-
-// -------------------------------------------------------------------------
-template< class _TInputImage >
-void cpPluginsImageFilters::CastImageFilter::
-_GD0( _TInputImage* image )
-{
-  auto out = this->m_Parameters.GetSelectedChoice( "CastType" );
-  if( out == "char" )
-    this->_GD1< _TInputImage, char >( image );
-  else if( out == "short" )
-    this->_GD1< _TInputImage, short >( image );
-  else if( out == "int" )
-    this->_GD1< _TInputImage, int >( image );
-  else if( out == "long" )
-    this->_GD1< _TInputImage, long >( image );
-  else if( out == "float" )
-    this->_GD1< _TInputImage, float >( image );
-  else if( out == "double" )
-    this->_GD1< _TInputImage, double >( image );
-  else if( out == "uchar" )
-    this->_GD1< _TInputImage, unsigned char >( image );
-  else if( out == "ushort" )
-    this->_GD1< _TInputImage, unsigned short >( image );
-  else if( out == "uint" )
-    this->_GD1< _TInputImage, unsigned int >( image );
-  else if( out == "ulong" )
-    this->_GD1< _TInputImage, unsigned long >( image );
-  else
-    this->_Error( "Invalid output casting type." );
-}
-
-// -------------------------------------------------------------------------
-template< class _TInputImage, class _TOutputPixel >
-void cpPluginsImageFilters::CastImageFilter::
-_GD1( _TInputImage* image )
-{
-  typedef itk::Image< _TOutputPixel, _TInputImage::ImageDimension > _TOutputImage;
-  typedef itk::CastImageFilter< _TInputImage, _TOutputImage > _TFilter;
-
-  // Configure filter
-  auto filter = this->_CreateITK< _TFilter >( );
-  filter->SetInput( image );
-  filter->Update( );
-
-  // Connect output
-  this->GetOutput( "Output" )->SetITK( filter->GetOutput( ) );
-}
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsImageFilters/CastImageFilter.h b/plugins/cpPluginsImageFilters/CastImageFilter.h
deleted file mode 100644 (file)
index e3b0eda..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef __CPPLUGINSIMAGEFILTERS__CASTIMAGEFILTER__H__
-#define __CPPLUGINSIMAGEFILTERS__CASTIMAGEFILTER__H__
-
-#include <plugins/cpPluginsImageFilters/cpPluginsImageFilters_Export.h>
-#include <cpPlugins/ProcessObject.h>
-
-namespace cpPluginsImageFilters
-{
-  /**
-   */
-  class cpPluginsImageFilters_EXPORT CastImageFilter
-    : public cpPlugins::ProcessObject
-  {
-  public:
-    typedef CastImageFilter                 Self;
-    typedef cpPlugins::ProcessObject        Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-  public:
-    itkNewMacro( Self );
-    itkTypeMacro( CastImageFilter, cpPlugins::ProcessObject );
-    cpPlugins_Id_Macro( CastImageFilter, ImageFilters );
-
-  protected:
-    CastImageFilter( );
-    virtual ~CastImageFilter( );
-
-    virtual void _GenerateData( ) ITK_OVERRIDE;
-
-    template< class _TInputImage >
-      inline void _GD0( _TInputImage* image );
-
-    template< class _TInputImage, class _TOutputPixel >
-      inline void _GD1( _TInputImage* image );
-
-  private:
-    // Purposely not implemented
-    CastImageFilter( const Self& );
-    Self& operator=( const Self& );
-  };
-
-} // ecapseman
-
-#endif // __CPPLUGINSIMAGEFILTERS__CASTIMAGEFILTER__H__
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsImageFilters/GaussianDensityImageFilter.cxx b/plugins/cpPluginsImageFilters/GaussianDensityImageFilter.cxx
deleted file mode 100644 (file)
index 12e598b..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-#include <cpPluginsImageFilters/GaussianDensityImageFilter.h>
-#include <cpPlugins/Image.h>
-#include <cpExtensions/Algorithms/IterativeGaussianModelEstimator.h>
-#include <cpExtensions/Algorithms/GaussianDensityImageFilter.h>
-
-// -------------------------------------------------------------------------
-cpPluginsImageFilters::GaussianDensityImageFilter::
-GaussianDensityImageFilter( )
-  : Superclass( )
-{
-  this->_AddInput( "Image" );
-  this->_AddInput( "Estimator" );
-  this->_AddOutput< cpPlugins::Image >( "Output" );
-
-  /* TODO
-     this->m_Parameters.ConfigureAsReal( "LowerThresholdValue" );
-     this->m_Parameters.ConfigureAsReal( "UpperThresholdValue" );
-     this->m_Parameters.ConfigureAsUint( "InsideValue" );
-     this->m_Parameters.ConfigureAsUint( "OutsideValue" );
-
-     this->m_Parameters.SetReal( "LowerThresholdValue", 0 );
-     this->m_Parameters.SetReal( "UpperThresholdValue", 10000 );
-     this->m_Parameters.SetReal( "InsideValue", 1 );
-     this->m_Parameters.SetReal( "OutsideValue", 0 );
-     this->m_Parameters.SetSelectedChoice( "OutputResolution", "unsigned char" );
-  */
-}
-
-// -------------------------------------------------------------------------
-cpPluginsImageFilters::GaussianDensityImageFilter::
-~GaussianDensityImageFilter( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpPluginsImageFilters::GaussianDensityImageFilter::
-_GenerateData( )
-{
-  auto image = this->GetInputData< itk::DataObject >( "Image" );
-  cpPlugins_Image_Demangle_Pixel_AllScalars     ( _GD0, image, 2 );
-  else cpPlugins_Image_Demangle_Pixel_AllScalars( _GD0, image, 3 );
-  else this->_Error( "No valid input image." );
-}
-
-// -------------------------------------------------------------------------
-template< class _TImage >
-void cpPluginsImageFilters::GaussianDensityImageFilter::
-_GD0( _TImage* image )
-{
-  static const unsigned int Dim = 1;
-  typedef cpExtensions::Algorithms::IterativeGaussianModelEstimator< float, Dim > _TFloatEst;
-  typedef cpExtensions::Algorithms::IterativeGaussianModelEstimator< double, Dim > _TDoubleEst;
-
-  auto float_est = this->GetInputData< _TFloatEst >( "Estimator" );
-  auto double_est = this->GetInputData< _TDoubleEst >( "Estimator" );
-  if( float_est  != NULL )
-    this->_GD1( image, float_est );
-  else if( double_est != NULL )
-    this->_GD1( image, double_est );
-  else
-    this->_Error( "Invalid gaussian model estimator." );
-}
-
-// -------------------------------------------------------------------------
-template< class _TImage, class _TEstimator >
-void cpPluginsImageFilters::GaussianDensityImageFilter::
-_GD1( _TImage* image, _TEstimator* estimator )
-{
-  typedef
-    cpExtensions::Algorithms::GaussianDensityImageFilter< _TImage, _TEstimator >
-    _TFilter;
-  
-  auto filter = this->_CreateITK< _TFilter >( );
-  filter->SetInput( image );
-  filter->SetEstimator( estimator );
-  filter->Update( );
-  this->GetOutput( "Output" )->SetITK( filter->GetOutput( ) );
-}
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsImageFilters/GaussianDensityImageFilter.h b/plugins/cpPluginsImageFilters/GaussianDensityImageFilter.h
deleted file mode 100644 (file)
index 26dab40..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef __CPPLUGINSIMAGEFILTERS__GAUSSIANDENSITYIMAGEFILTER__H__
-#define __CPPLUGINSIMAGEFILTERS__GAUSSIANDENSITYIMAGEFILTER__H__
-
-#include <plugins/cpPluginsImageFilters/cpPluginsImageFilters_Export.h>
-#include <cpPlugins/ProcessObject.h>
-
-namespace cpPluginsImageFilters
-{
-  /**
-   */
-  class cpPluginsImageFilters_EXPORT GaussianDensityImageFilter
-    : public cpPlugins::ProcessObject
-  {
-  public:
-    typedef GaussianDensityImageFilter      Self;
-    typedef cpPlugins::ProcessObject        Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-  public:
-    itkNewMacro( Self );
-    itkTypeMacro( GaussianDensityImageFilter, cpPlugins::ProcessObject );
-    cpPlugins_Id_Macro( GaussianDensityImageFilter, ImageFilters );
-
-  protected:
-    GaussianDensityImageFilter( );
-    virtual ~GaussianDensityImageFilter( );
-
-    virtual void _GenerateData( ) ITK_OVERRIDE;
-
-    template< class _TImage >
-      inline void _GD0( _TImage* image );
-
-    template< class _TImage, class _TEstimator >
-    inline void _GD1( _TImage* image, _TEstimator* estimator );
-
-  private:
-    // Purposely not implemented
-    GaussianDensityImageFilter( const Self& );
-    Self& operator=( const Self& );
-  };
-
-} // ecapseman
-
-#endif // __CPPLUGINSIMAGEFILTERS__GAUSSIANDENSITYIMAGEFILTER__H__
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsImageFilters/MultiScaleGaussianImageFilter.cxx b/plugins/cpPluginsImageFilters/MultiScaleGaussianImageFilter.cxx
deleted file mode 100644 (file)
index bbdaa98..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-#include <cpPluginsImageFilters/MultiScaleGaussianImageFilter.h>
-#include <cpPlugins/Image.h>
-#include <cpPlugins_Instances/GaussianImageFilters.h>
-
-// -------------------------------------------------------------------------
-cpPluginsImageFilters::MultiScaleGaussianImageFilter::
-MultiScaleGaussianImageFilter( )
-  : Superclass( )
-{
-  this->_AddInput( "Input" );
-  this->_AddOutput< cpPlugins::Image >( "Output" );
-
-  this->m_Parameters.ConfigureAsRealList( "Sigmas" );
-
-  std::vector< std::string > choices;
-  choices.push_back( "float" );
-  choices.push_back( "double" );
-  this->m_Parameters.ConfigureAsChoices( "ScalarType", choices );
-  this->m_Parameters.SetSelectedChoice( "ScalarType", "float" );
-}
-
-// -------------------------------------------------------------------------
-cpPluginsImageFilters::MultiScaleGaussianImageFilter::
-~MultiScaleGaussianImageFilter( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpPluginsImageFilters::MultiScaleGaussianImageFilter::
-_GenerateData( )
-{
-  auto image = this->GetInputData< itk::DataObject >( "Input" );
-  cpPlugins_Image_Demangle_Pixel_AllScalars     ( _GD0, image, 2 );
-  else cpPlugins_Image_Demangle_Pixel_AllScalars( _GD0, image, 3 );
-  else this->_Error( "No valid input image." );
-}
-
-// -------------------------------------------------------------------------
-template< class _TImage >
-void cpPluginsImageFilters::MultiScaleGaussianImageFilter::
-_GD0( _TImage* image )
-{
-  if( image != NULL )
-  {
-    auto choice = this->m_Parameters.GetSelectedChoice( "ScalarType" );
-    if     ( choice == "float" )  this->_GD1< _TImage, float >( image );
-    else if( choice == "double" ) this->_GD1< _TImage, double >( image );
-    else                          this->_Error( "No valid scalar type." );
-  }
-  else
-    this->_Error( "No valid input image." );
-}
-
-// -------------------------------------------------------------------------
-template< class _TImage, class _TScalar >
-void cpPluginsImageFilters::MultiScaleGaussianImageFilter::
-_GD1( _TImage* image )
-{
-  typedef itk::CovariantVector< _TScalar, _TImage::ImageDimension > _TVector;
-  typedef itk::Image< _TVector, _TImage::ImageDimension > _TGradient;
-  typedef
-    cpExtensions::Algorithms::MultiScaleGaussianImageFilter< _TImage, _TGradient >
-    _TFilter;
-
-  auto sigmas = this->m_Parameters.GetRealList( "Sigmas" );
-  if( sigmas.size( ) == 0 )
-    this->_Error( "No given sigmas." );
-
-  // Configure filter
-  _TFilter* filter = this->_CreateITK< _TFilter >( );
-  filter->SetInput( image );
-  for( auto sIt = sigmas.begin( ); sIt != sigmas.end( ); ++sIt )
-    filter->AddScale( *sIt );
-  filter->Update( );
-
-  // Connect output
-  this->GetOutput( "Output" )->SetITK( filter->GetOutput( ) );
-}
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsImageFilters/MultiScaleGaussianImageFilter.h b/plugins/cpPluginsImageFilters/MultiScaleGaussianImageFilter.h
deleted file mode 100644 (file)
index fa5bd17..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef __CPPLUGINSIMAGEFILTERS__MULTISCALEGAUSSIANIMAGEFILTER__H__
-#define __CPPLUGINSIMAGEFILTERS__MULTISCALEGAUSSIANIMAGEFILTER__H__
-
-#include <plugins/cpPluginsImageFilters/cpPluginsImageFilters_Export.h>
-#include <cpPlugins/ProcessObject.h>
-
-namespace cpPluginsImageFilters
-{
-  /**
-   */
-  class cpPluginsImageFilters_EXPORT MultiScaleGaussianImageFilter
-    : public cpPlugins::ProcessObject
-  {
-  public:
-    typedef MultiScaleGaussianImageFilter   Self;
-    typedef cpPlugins::ProcessObject        Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-  public:
-    itkNewMacro( Self );
-    itkTypeMacro( MultiScaleGaussianImageFilter, cpPlugins::ProcessObject );
-    cpPlugins_Id_Macro( MultiScaleGaussianImageFilter, ImageFilters );
-
-  protected:
-    MultiScaleGaussianImageFilter( );
-    virtual ~MultiScaleGaussianImageFilter( );
-
-    virtual void _GenerateData( ) ITK_OVERRIDE;
-
-    template< class _TImage >
-      inline void _GD0( _TImage* image );
-
-    template< class _TImage, class _TScalar >
-      inline void _GD1( _TImage* image );
-
-  private:
-    // Purposely not implemented
-    MultiScaleGaussianImageFilter( const Self& );
-    Self& operator=( const Self& );
-  };
-
-} // ecapseman
-
-#endif // __CPPLUGINSIMAGEFILTERS__MULTISCALEGAUSSIANIMAGEFILTER__H__
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsImageFilters/OrImageFilter.cxx b/plugins/cpPluginsImageFilters/OrImageFilter.cxx
deleted file mode 100644 (file)
index f45774c..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-#include <cpPluginsImageFilters/OrImageFilter.h>
-#include <cpPlugins/Image.h>
-#include <cpPlugins_Instances/BitwiseImageFilters.h>
-
-// -------------------------------------------------------------------------
-cpPluginsImageFilters::OrImageFilter::
-OrImageFilter( )
-  : Superclass( )
-{
-  this->_AddInput( "Input0" );
-  this->_AddInput( "Input1" );
-  this->_AddOutput< cpPlugins::Image >( "Output" );
-}
-
-// -------------------------------------------------------------------------
-cpPluginsImageFilters::OrImageFilter::
-~OrImageFilter( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpPluginsImageFilters::OrImageFilter::
-_GenerateData( )
-{
-  auto image = this->GetInputData< itk::DataObject >( "Input0" );
-  cpPlugins_Image_Demangle_Pixel_AllInts      ( _GD0, image, 1 );
-  else cpPlugins_Image_Demangle_Pixel_AllInts ( _GD0, image, 2 );
-  else cpPlugins_Image_Demangle_Pixel_AllInts ( _GD0, image, 3 );
-  else cpPlugins_Image_Demangle_Pixel_AllInts ( _GD0, image, 4 );
-  else cpPlugins_Image_Demangle_Pixel_AllUInts( _GD0, image, 1 );
-  else cpPlugins_Image_Demangle_Pixel_AllUInts( _GD0, image, 2 );
-  else cpPlugins_Image_Demangle_Pixel_AllUInts( _GD0, image, 3 );
-  else cpPlugins_Image_Demangle_Pixel_AllUInts( _GD0, image, 4 );
-  else this->_Error( "No valid input image." );
-}
-
-// -------------------------------------------------------------------------
-template< class _TImage >
-void cpPluginsImageFilters::OrImageFilter::
-_GD0( _TImage* image0 )
-{
-  typedef itk::OrImageFilter< _TImage, _TImage > _TFilter;
-  if( image0 != NULL )
-  {
-    auto image1 = this->GetInputData< _TImage >( "Input1" );
-    if( image1 != NULL )
-    {
-      // Configure filter
-      auto filter = this->_CreateITK< _TFilter >( );
-      filter->SetInput( 0, image0 );
-      filter->SetInput( 1, image1 );
-      filter->Update( );
-
-      // Connect output
-      this->GetOutput( "Output" )->SetITK( filter->GetOutput( ) );
-    }
-    else
-      this->_Error( "No valid second input image." );
-  }
-  else
-    this->_Error( "No valid first input image." );
-}
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsImageFilters/OrImageFilter.h b/plugins/cpPluginsImageFilters/OrImageFilter.h
deleted file mode 100644 (file)
index f7658b4..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef __CPPLUGINSIMAGEFILTERS__ORIMAGEFILTER__H__
-#define __CPPLUGINSIMAGEFILTERS__ORIMAGEFILTER__H__
-
-#include <plugins/cpPluginsImageFilters/cpPluginsImageFilters_Export.h>
-#include <cpPlugins/ProcessObject.h>
-
-namespace cpPluginsImageFilters
-{
-  /**
-   */
-  class cpPluginsImageFilters_EXPORT OrImageFilter
-    : public cpPlugins::ProcessObject
-  {
-  public:
-    typedef OrImageFilter                   Self;
-    typedef cpPlugins::ProcessObject        Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-  public:
-    itkNewMacro( Self );
-    itkTypeMacro( OrImageFilter, cpPlugins::ProcessObject );
-    cpPlugins_Id_Macro( OrImageFilter, ImageFilters );
-
-  protected:
-    OrImageFilter( );
-    virtual ~OrImageFilter( );
-
-    virtual void _GenerateData( ) ITK_OVERRIDE;
-
-    template< class _TImage >
-      inline void _GD0( _TImage* image0 );
-
-  private:
-    // Purposely not implemented
-    OrImageFilter( const Self& );
-    Self& operator=( const Self& );
-  };
-
-} // ecapseman
-
-#endif // __CPPLUGINSIMAGEFILTERS__ORIMAGEFILTER__H__
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsImageFilters/RegionOfInterestImageFilter.cxx b/plugins/cpPluginsImageFilters/RegionOfInterestImageFilter.cxx
deleted file mode 100644 (file)
index 6a18098..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-#include <cpPluginsImageFilters/RegionOfInterestImageFilter.h>
-#include <cpPlugins/Image.h>
-#include <cpPlugins_Instances/ExtractImageFilters.h>
-
-// -------------------------------------------------------------------------
-cpPluginsImageFilters::RegionOfInterestImageFilter::
-RegionOfInterestImageFilter( )
-  : Superclass( )
-{
-  this->_AddInput( "Input" );
-  this->_AddOutput< cpPlugins::Image >( "Output" );
-  this->m_Parameters.ConfigureAsBool( "AutomaticRegion" );
-  this->m_Parameters.ConfigureAsReal( "BackgroundValue" );
-  this->m_Parameters.SetBool( "AutomaticRegion", true );
-  this->m_Parameters.SetReal( "BackgroundValue", 0 );
-}
-
-// -------------------------------------------------------------------------
-cpPluginsImageFilters::RegionOfInterestImageFilter::
-~RegionOfInterestImageFilter( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpPluginsImageFilters::RegionOfInterestImageFilter::
-_GenerateData( )
-{
-  auto image = this->GetInputData< itk::DataObject >( "Input" );
-  cpPlugins_Image_Demangle_Pixel_AllScalars     ( _GD0, image, 2 );
-  else cpPlugins_Image_Demangle_Pixel_AllScalars( _GD0, image, 3 );
-  else this->_Error( "No valid input image." );
-}
-
-// -------------------------------------------------------------------------
-template< class _TInputImage >
-void cpPluginsImageFilters::RegionOfInterestImageFilter::
-_GD0( _TInputImage* image )
-{
-  typedef
-    itk::RegionOfInterestImageFilter< _TInputImage, _TInputImage >
-    _TFilter;
-  typedef
-    cpExtensions::Algorithms::RegionOfInterestImageCalculator< _TInputImage >
-    _TCalculator;
-
-  if( this->m_Parameters.GetBool( "AutomaticRegion" ) )
-  {
-    typename _TCalculator::Pointer calculator = _TCalculator::New( );
-    calculator->SetImage( image );
-    calculator->Compute( );
-
-    auto minidx = calculator->GetMinimum( );
-    auto maxidx = calculator->GetMaximum( );
-    typename _TInputImage::SizeType size;
-    for( unsigned int d = 0; d < _TInputImage::ImageDimension; ++d )
-      size[ d ] = maxidx[ d ] - minidx[ d ] + 1;
-
-    typename _TInputImage::RegionType roi;
-    roi.SetIndex( minidx );
-    roi.SetSize( size );
-    
-    auto filter = this->_CreateITK< _TFilter >( );
-    filter->SetInput( image );
-    filter->SetRegionOfInterest( roi );
-    filter->Update( );
-    this->GetOutput( "Output" )->SetITK( filter->GetOutput( ) );
-  }
-  else
-    this->_Error( "Manual region not yet implemented." );
-}
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsImageFilters/RegionOfInterestImageFilter.h b/plugins/cpPluginsImageFilters/RegionOfInterestImageFilter.h
deleted file mode 100644 (file)
index b1294b1..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef __CPPLUGINSIMAGEFILTERS__REGIONOFINTERESTIMAGEFILTER__H__
-#define __CPPLUGINSIMAGEFILTERS__REGIONOFINTERESTIMAGEFILTER__H__
-
-#include <plugins/cpPluginsImageFilters/cpPluginsImageFilters_Export.h>
-#include <cpPlugins/ProcessObject.h>
-
-namespace cpPluginsImageFilters
-{
-  /**
-   */
-  class cpPluginsImageFilters_EXPORT RegionOfInterestImageFilter
-    : public cpPlugins::ProcessObject
-  {
-  public:
-    typedef RegionOfInterestImageFilter     Self;
-    typedef cpPlugins::ProcessObject        Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-  public:
-    itkNewMacro( Self );
-    itkTypeMacro( RegionOfInterestImageFilter, cpPlugins::ProcessObject );
-    cpPlugins_Id_Macro( RegionOfInterestImageFilter, ImageFilters );
-
-  protected:
-    RegionOfInterestImageFilter( );
-    virtual ~RegionOfInterestImageFilter( );
-
-    virtual void _GenerateData( ) ITK_OVERRIDE;
-
-    template< class _TInputImage >
-      inline void _GD0( _TInputImage* image );
-
-  private:
-    // Purposely not implemented
-    RegionOfInterestImageFilter( const Self& );
-    Self& operator=( const Self& );
-  };
-
-} // ecapseman
-
-#endif // __CPPLUGINSIMAGEFILTERS__REGIONOFINTERESTIMAGEFILTER__H__
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsImageFilters/ResampleImageFilter.cxx b/plugins/cpPluginsImageFilters/ResampleImageFilter.cxx
deleted file mode 100644 (file)
index ea45ac4..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-#include <cpPluginsImageFilters/ResampleImageFilter.h>
-#include <cpPlugins/Image.h>
-#include <cpPlugins_Instances/ResamplingFilters.h>
-
-// -------------------------------------------------------------------------
-cpPluginsImageFilters::ResampleImageFilter::
-ResampleImageFilter( )
-  : Superclass( )
-{
-  this->_AddInput( "Input" );
-  this->_AddOutput< cpPlugins::Image >( "Output" );
-  std::vector< std::string > choices;
-  choices.push_back( "float" );
-  choices.push_back( "double" );
-  this->m_Parameters.ConfigureAsChoices( "ScalarType", choices );
-  this->m_Parameters.SetSelectedChoice( "ScalarType", "float" );
-}
-
-// -------------------------------------------------------------------------
-cpPluginsImageFilters::ResampleImageFilter::
-~ResampleImageFilter( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpPluginsImageFilters::ResampleImageFilter::
-_GenerateData( )
-{
-  auto image = this->GetInputData< itk::DataObject >( "Input" );
-  cpPlugins_Image_Demangle_Pixel_AllScalars     ( _GD0, image, 2 );
-  else cpPlugins_Image_Demangle_Pixel_AllScalars( _GD0, image, 3 );
-  else this->_Error( "No valid input image." );
-}
-
-// -------------------------------------------------------------------------
-template< class _TImage >
-void cpPluginsImageFilters::ResampleImageFilter::
-_GD0( _TImage* image )
-{
-  if( image != NULL )
-  {
-    auto choice = this->m_Parameters.GetSelectedChoice( "OutputResolution" );
-    if( choice == "float" )
-      this->_GD1< _TImage, float >( image );
-    else if( choice == "double" )
-      this->_GD1< _TImage, double >( image );
-    else this->_Error( "No valid scalar type." );
-  }
-  else
-    this->_Error( "No valid input image." );
-}
-
-// -------------------------------------------------------------------------
-template< class _TImage, class _TScalar >
-void cpPluginsImageFilters::ResampleImageFilter::
-_GD1( _TImage* image )
-{
-  typedef
-    itk::ResampleImageFilter< _TImage, _TImage, _TScalar, _TScalar >
-    _TFilter;
-
-  if( image == NULL )
-    this->_Error( "No valid input image." );
-
-  // Configure filter
-  _TFilter* filter = this->_CreateITK< _TFilter >( );
-  filter->SetInput( image );
-
-  // Connect output
-  this->GetOutput( "Output" )->SetITK( filter->GetOutput( ) );
-}
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsImageFilters/ResampleImageFilter.h b/plugins/cpPluginsImageFilters/ResampleImageFilter.h
deleted file mode 100644 (file)
index fe4124b..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef __CPPLUGINSIMAGEFILTERS__RESAMPLEIMAGEFILTER__H__
-#define __CPPLUGINSIMAGEFILTERS__RESAMPLEIMAGEFILTER__H__
-
-#include <plugins/cpPluginsImageFilters/cpPluginsImageFilters_Export.h>
-#include <cpPlugins/ProcessObject.h>
-
-namespace cpPluginsImageFilters
-{
-  /**
-   */
-  class cpPluginsImageFilters_EXPORT ResampleImageFilter
-    : public cpPlugins::ProcessObject
-  {
-  public:
-    typedef ResampleImageFilter             Self;
-    typedef cpPlugins::ProcessObject        Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-  public:
-    itkNewMacro( Self );
-    itkTypeMacro( ResampleImageFilter, cpPlugins::ProcessObject );
-    cpPlugins_Id_Macro( ResampleImageFilter, ImageFilters );
-
-  protected:
-    ResampleImageFilter( );
-    virtual ~ResampleImageFilter( );
-
-    virtual void _GenerateData( ) ITK_OVERRIDE;
-
-    template< class _TImage >
-      inline void _GD0( _TImage* image );
-
-    template< class _TImage, class _TScalar >
-      inline void _GD1( _TImage* image );
-
-  private:
-    // Purposely not implemented
-    ResampleImageFilter( const Self& );
-    Self& operator=( const Self& );
-  };
-
-} // ecapseman
-
-#endif // __CPPLUGINSIMAGEFILTERS__RESAMPLEIMAGEFILTER__H__
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsImageFilters/SignedMaurerDistanceMapImageFilter.cxx b/plugins/cpPluginsImageFilters/SignedMaurerDistanceMapImageFilter.cxx
deleted file mode 100644 (file)
index cabe80d..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-#include <cpPluginsImageFilters/SignedMaurerDistanceMapImageFilter.h>
-#include <cpPlugins/Image.h>
-#include <cpPlugins_Instances/DistanceMapFilters.h>
-
-// -------------------------------------------------------------------------
-cpPluginsImageFilters::SignedMaurerDistanceMapImageFilter::
-SignedMaurerDistanceMapImageFilter( )
-  : Superclass( )
-{
-  this->_AddInput( "Input" );
-  this->_AddOutput< cpPlugins::Image >( "Output" );
-
-  this->m_Parameters.ConfigureAsReal( "BackgroundValue" );
-  this->m_Parameters.ConfigureAsBool( "InsideIsPositive" );
-  this->m_Parameters.ConfigureAsBool( "SquaredDistance" );
-  this->m_Parameters.ConfigureAsBool( "UseImageSpacing" );
-
-  std::vector< std::string > choices;
-  choices.push_back( "float" );
-  choices.push_back( "double" );
-  this->m_Parameters.ConfigureAsChoices( "OutputResolution", choices );
-
-  this->m_Parameters.SetReal( "BackgroundValue", 0 );
-  this->m_Parameters.SetBool( "InsideIsPositive", true );
-  this->m_Parameters.SetBool( "SquaredDistance", false );
-  this->m_Parameters.SetBool( "UseImageSpacing", true );
-  this->m_Parameters.SetSelectedChoice( "OutputResolution", "float" );
-}
-
-// -------------------------------------------------------------------------
-cpPluginsImageFilters::SignedMaurerDistanceMapImageFilter::
-~SignedMaurerDistanceMapImageFilter( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpPluginsImageFilters::SignedMaurerDistanceMapImageFilter::
-_GenerateData( )
-{
-  auto image = this->GetInputData< itk::DataObject >( "Input" );
-  cpPlugins_Image_Demangle_Pixel_AllScalars     ( _GD0, image, 2 );
-  else cpPlugins_Image_Demangle_Pixel_AllScalars( _GD0, image, 3 );
-  else this->_Error( "No valid input image." );
-}
-
-// -------------------------------------------------------------------------
-template< class _TImage >
-void cpPluginsImageFilters::SignedMaurerDistanceMapImageFilter::
-_GD0( _TImage* image )
-{
-  static const unsigned int D = _TImage::ImageDimension;
-  if( image != NULL )
-  {
-    std::string out_res =
-      this->m_Parameters.GetSelectedChoice( "OutputResolution" );
-    if( out_res == "float" )
-      this->_GD1< _TImage, itk::Image< float, D > >( image );
-    else if( out_res == "double" )
-      this->_GD1< _TImage, itk::Image< double, D > >( image );
-    else
-      this->_Error( "Output resolution not supported." );
-  }
-  else
-    this->_Error( "No valid input image." );
-}
-
-// -------------------------------------------------------------------------
-template< class _TImage, class _TDMap >
-void cpPluginsImageFilters::SignedMaurerDistanceMapImageFilter::
-_GD1( _TImage* image )
-{
-  typedef itk::SignedMaurerDistanceMapImageFilter< _TImage, _TDMap > _F;
-
-  // Get parameters
-  double back_value = this->m_Parameters.GetReal( "BackgroundValue" );
-  bool pos_inside = this->m_Parameters.GetBool( "InsideIsPositive" );
-  bool sqr_dist = this->m_Parameters.GetBool( "SquaredDistance" );
-  bool use_spac = this->m_Parameters.GetBool( "UseImageSpacing" );
-
-  // Configure filter
-  _F* filter = this->_CreateITK< _F >( );
-  filter->SetInput( image );
-  filter->SetBackgroundValue( ( typename _TImage::PixelType )( back_value ) );
-  filter->SetInsideIsPositive( pos_inside );
-  filter->SetSquaredDistance( sqr_dist );
-  filter->SetUseImageSpacing( use_spac );
-  filter->Update( );
-
-  // Connect output
-  this->GetOutput( "Output" )->SetITK( filter->GetOutput( ) );
-}
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsImageFilters/SignedMaurerDistanceMapImageFilter.h b/plugins/cpPluginsImageFilters/SignedMaurerDistanceMapImageFilter.h
deleted file mode 100644 (file)
index 6aaf8d1..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-#ifndef __CPPLUGINSIMAGEFILTERS__SIGNEDMAURERDISTANCEMAPIMAGEFILTER__H__
-#define __CPPLUGINSIMAGEFILTERS__SIGNEDMAURERDISTANCEMAPIMAGEFILTER__H__
-
-#include <plugins/cpPluginsImageFilters/cpPluginsImageFilters_Export.h>
-#include <cpPlugins/ProcessObject.h>
-
-namespace cpPluginsImageFilters
-{
-  /**
-   */
-  class cpPluginsImageFilters_EXPORT SignedMaurerDistanceMapImageFilter
-    : public cpPlugins::ProcessObject
-  {
-  public:
-    typedef SignedMaurerDistanceMapImageFilter Self;
-    typedef cpPlugins::ProcessObject           Superclass;
-    typedef itk::SmartPointer< Self >          Pointer;
-    typedef itk::SmartPointer< const Self >    ConstPointer;
-
-  public:
-    itkNewMacro( Self );
-    itkTypeMacro(
-      SignedMaurerDistanceMapImageFilter, cpPlugins::ProcessObject
-      );
-    cpPlugins_Id_Macro(
-      SignedMaurerDistanceMapImageFilter,
-      ImageFilters
-      );
-
-  protected:
-    SignedMaurerDistanceMapImageFilter( );
-    virtual ~SignedMaurerDistanceMapImageFilter( );
-
-    virtual void _GenerateData( ) ITK_OVERRIDE;
-
-    template< class _TImage >
-      inline void _GD0( _TImage* image );
-
-    template< class _TImage, class _TDMap >
-      inline void _GD1( _TImage* image );
-
-  private:
-    // Purposely not implemented
-    SignedMaurerDistanceMapImageFilter( const Self& );
-    Self& operator=( const Self& );
-  };
-
-} // ecapseman
-
-#endif // __CPPLUGINSIMAGEFILTERS__SIGNEDMAURERDISTANCEMAPIMAGEFILTER__H__
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsImageFilters/UnaryThresholdImageFilter.cxx b/plugins/cpPluginsImageFilters/UnaryThresholdImageFilter.cxx
deleted file mode 100644 (file)
index e46ac82..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-#include <cpPluginsImageFilters/UnaryThresholdImageFilter.h>
-#include <cpPlugins/Image.h>
-#include <cpPlugins_Instances/ThresholdFilters.h>
-
-// -------------------------------------------------------------------------
-cpPluginsImageFilters::UnaryThresholdImageFilter::
-UnaryThresholdImageFilter( )
-  : Superclass( )
-{
-  this->_AddInput( "Input" );
-  this->_AddOutput< cpPlugins::Image >( "Output" );
-
-  this->m_Parameters.ConfigureAsReal( "Threshold" );
-  this->m_Parameters.ConfigureAsReal( "InsideValue" );
-  this->m_Parameters.ConfigureAsReal( "OutsideValue" );
-  this->m_Parameters.ConfigureAsBool( "Strict" );
-
-  this->m_Parameters.SetReal( "Threshold", 0 );
-  this->m_Parameters.SetReal( "InsideValue", 1 );
-  this->m_Parameters.SetReal( "OutsideValue", 0 );
-  this->m_Parameters.SetBool( "Strict", false );
-}
-
-// -------------------------------------------------------------------------
-cpPluginsImageFilters::UnaryThresholdImageFilter::
-~UnaryThresholdImageFilter( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpPluginsImageFilters::UnaryThresholdImageFilter::
-_GenerateData( )
-{
-  auto image = this->GetInputData< itk::DataObject >( "Input" );
-  cpPlugins_Image_Demangle_Pixel_AllScalars     ( _GD0, image, 2 );
-  else cpPlugins_Image_Demangle_Pixel_AllScalars( _GD0, image, 3 );
-  else this->_Error( "No valid input image." );
-}
-
-// -------------------------------------------------------------------------
-template< class _TImage >
-void cpPluginsImageFilters::UnaryThresholdImageFilter::
-_GD0( _TImage* image )
-{
-  typedef
-    cpExtensions::Algorithms::UnaryThresholdImageFilter< _TImage >
-    _TFilter;
-
-  _TFilter* filter = this->_CreateITK< _TFilter >( );
-  filter->SetInput( image );
-  filter->SetThreshold( this->m_Parameters.GetReal( "Threshold" ) );
-  filter->SetInsideValue( this->m_Parameters.GetReal( "InsideValue" ) );
-  filter->SetOutsideValue( this->m_Parameters.GetReal( "OutsideValue" ) );
-  filter->SetStrict( this->m_Parameters.GetBool( "Strict" ) );
-  filter->Update( );
-  this->GetOutput( "Output" )->SetITK( filter->GetOutput( ) );
-}
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsImageFilters/UnaryThresholdImageFilter.h b/plugins/cpPluginsImageFilters/UnaryThresholdImageFilter.h
deleted file mode 100644 (file)
index 533690a..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef __CPPLUGINSIMAGEFILTERS__UNARYTHRESHOLDIMAGEFILTER__H__
-#define __CPPLUGINSIMAGEFILTERS__UNARYTHRESHOLDIMAGEFILTER__H__
-
-#include <plugins/cpPluginsImageFilters/cpPluginsImageFilters_Export.h>
-#include <cpPlugins/ProcessObject.h>
-
-namespace cpPluginsImageFilters
-{
-  /**
-   */
-  class cpPluginsImageFilters_EXPORT UnaryThresholdImageFilter
-    : public cpPlugins::ProcessObject
-  {
-  public:
-    typedef UnaryThresholdImageFilter      Self;
-    typedef cpPlugins::ProcessObject        Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-  public:
-    itkNewMacro( Self );
-    itkTypeMacro( UnaryThresholdImageFilter, cpPlugins::ProcessObject );
-    cpPlugins_Id_Macro( UnaryThresholdImageFilter, ImageFilters );
-
-  protected:
-    UnaryThresholdImageFilter( );
-    virtual ~UnaryThresholdImageFilter( );
-
-    virtual void _GenerateData( ) ITK_OVERRIDE;
-
-    template< class _TImage >
-      inline void _GD0( _TImage* image );
-
-  private:
-    // Purposely not implemented
-    UnaryThresholdImageFilter( const Self& );
-    Self& operator=( const Self& );
-  };
-
-} // ecapseman
-
-#endif // __CPPLUGINSIMAGEFILTERS__UNARYTHRESHOLDIMAGEFILTER__H__
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsImageMeshFilters/CMakeLists.txt b/plugins/cpPluginsImageMeshFilters/CMakeLists.txt
deleted file mode 100644 (file)
index 932bec8..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-SET(lib_NAME cpPluginsImageMeshFilters)
-FILE(GLOB lib_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/*.h")
-FILE(GLOB lib_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.cxx")
-SET(lib_OTHER_SOURCES "")
-SET(lib_QT4_HEADERS "")
-
-SET(lib_LINKS)
-IF(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux")
-  SET(lib_LINKS cpPlugins ${cpPlugins_LIBRARIES})
-ENDIF(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux")
-
-cpPlugins_WrapPlugins(
-  ${lib_NAME} ${prj_VER} ${prj_sVER}
-  "${lib_HEADERS}"
-  "${lib_SOURCES}"
-  "${lib_OTHER_SOURCES}"
-  "${lib_QT4_HEADERS}"
-  ${lib_LINKS}
-  )
-
-## ========================
-## -- Installation rules --
-## ========================
-
-#INSTALL(
-#  TARGETS ${lib_NAME}
-#  RUNTIME DESTINATION bin
-#  LIBRARY DESTINATION lib
-#  ARCHIVE DESTINATION lib/static
-#  )
-
-## eof - $RCSfile$
diff --git a/plugins/cpPluginsImageMeshFilters/MarchingCubes.cxx b/plugins/cpPluginsImageMeshFilters/MarchingCubes.cxx
deleted file mode 100644 (file)
index 5dc5826..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-#include <cpPluginsImageMeshFilters/MarchingCubes.h>
-#include <cpPlugins/Image.h>
-#include <cpPlugins/Mesh.h>
-
-#include <vtkImageData.h>
-#include <vtkMarchingCubes.h>
-#include <vtkMarchingSquares.h>
-
-// -------------------------------------------------------------------------
-cpPluginsImageMeshFilters::MarchingCubes::
-MarchingCubes( )
-  : Superclass( )
-{
-  this->_AddInput( "Input" );
-  this->_AddOutput< cpPlugins::Mesh >( "Output" );
-  this->m_Parameters.ConfigureAsRealList( "Thresholds" );
-}
-
-// -------------------------------------------------------------------------
-cpPluginsImageMeshFilters::MarchingCubes::
-~MarchingCubes( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpPluginsImageMeshFilters::MarchingCubes::
-_GenerateData( )
-{
-  // Get input
-  auto image = this->GetInput( "Input" );
-  vtkImageData* vtk_image = image->GetVTK< vtkImageData >( );
-  if( vtk_image == NULL )
-    this->_Error( "Input does not have a valid VTK conversion." );
-
-  std::vector< double > values =
-    this->m_Parameters.GetRealList( "Thresholds" );
-  vtkPolyData* pd = NULL;
-  if( vtk_image->GetDataDimension( ) == 2 )
-  {
-    vtkMarchingSquares* ms = this->_CreateVTK< vtkMarchingSquares >( );
-    ms->SetInputData( vtk_image );
-    for( unsigned int i = 0; i < values.size( ); ++i )
-      ms->SetValue( i, values[ i ] );
-    ms->Update( );
-    pd = ms->GetOutput( );
-  }
-  else if( vtk_image->GetDataDimension( ) == 3 )
-  {
-    vtkMarchingCubes* mc = this->_CreateVTK< vtkMarchingCubes >( );
-    mc->ComputeNormalsOff( );
-    mc->SetInputData( vtk_image );
-    for( unsigned int i = 0; i < values.size( ); ++i )
-      mc->SetValue( i, values[ i ] );
-    mc->Update( );
-    pd = mc->GetOutput( );
-  }
-  else
-    this->_Error( "Input data does not have a valid dimension." );
-
-  // Connect output
-  this->GetOutput( "Output" )->SetVTK( pd );
-}
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsImageMeshFilters/MarchingCubes.h b/plugins/cpPluginsImageMeshFilters/MarchingCubes.h
deleted file mode 100644 (file)
index d951b7f..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef __CPPLUGINSIMAGEMESH__MARCHINGCUBES__H__
-#define __CPPLUGINSIMAGEMESH__MARCHINGCUBES__H__
-
-#include <plugins/cpPluginsImageMeshFilters/cpPluginsImageMeshFilters_Export.h>
-#include <cpPlugins/ProcessObject.h>
-
-namespace cpPluginsImageMeshFilters
-{
-  /**
-   */
-  class cpPluginsImageMeshFilters_EXPORT MarchingCubes
-    : public cpPlugins::ProcessObject
-  {
-  public:
-    typedef MarchingCubes                   Self;
-    typedef cpPlugins::ProcessObject        Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-  public:
-    itkNewMacro( Self );
-    itkTypeMacro( MarchingCubes, cpPlugins::ProcessObject );
-    cpPlugins_Id_Macro( MarchingCubes, ImageToMeshFilters );
-
-  protected:
-    MarchingCubes( );
-    virtual ~MarchingCubes( );
-
-    virtual void _GenerateData( ) ITK_OVERRIDE;
-
-  private:
-    // Purposely not implemented
-    MarchingCubes( const Self& );
-    Self& operator=( const Self& );
-  };
-
-} // ecapseman
-
-#endif // __CPPLUGINSIMAGEMESH__MARCHINGCUBES__H__
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsImageMeshFilters/TriangleMeshToBinaryImageFilter.cxx b/plugins/cpPluginsImageMeshFilters/TriangleMeshToBinaryImageFilter.cxx
deleted file mode 100644 (file)
index c2442a6..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-#include <cpPluginsImageMeshFilters/TriangleMeshToBinaryImageFilter.h>
-#include <cpPlugins/BoundingBox.h>
-#include <cpPlugins/Image.h>
-#include <cpPlugins/Mesh.h>
-
-#include <cpPlugins_Instances/ImageMeshFilters.h>
-
-// -------------------------------------------------------------------------
-cpPluginsImageMeshFilters::TriangleMeshToBinaryImageFilter::
-TriangleMeshToBinaryImageFilter( )
-  : Superclass( )
-{
-  this->_AddInput( "Input" );
-  this->_AddInput( "BoundingBox", false );
-  this->_AddOutput< cpPlugins::Image >( "Output" );
-
-  this->m_Parameters.ConfigureAsUint( "InsideValue" );
-  this->m_Parameters.ConfigureAsUint( "OutsideValue" );
-  this->m_Parameters.ConfigureAsUint( "MinimumSize" );
-
-  this->m_Parameters.SetUint( "InsideValue", 1 );
-  this->m_Parameters.SetUint( "OutsideValue", 0 );
-  this->m_Parameters.SetUint( "MinimumSize", 100 );
-}
-
-// -------------------------------------------------------------------------
-cpPluginsImageMeshFilters::TriangleMeshToBinaryImageFilter::
-~TriangleMeshToBinaryImageFilter( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpPluginsImageMeshFilters::TriangleMeshToBinaryImageFilter::
-_GenerateData( )
-{
-  typedef itk::Mesh< float, 3 >  _3F;
-  typedef itk::Mesh< double, 3 > _3D;
-
-  auto _3f = this->GetInputData< _3F >( "Input" );
-  auto _3d = this->GetInputData< _3D >( "Input" );
-  if     ( _3f != NULL ) this->_GD0( _3f );
-  else if( _3d != NULL ) this->_GD0( _3d );
-  else this->_Error( "No valid input mesh." );
-}
-
-// -------------------------------------------------------------------------
-template< class _TMesh >
-void cpPluginsImageMeshFilters::TriangleMeshToBinaryImageFilter::
-_GD0( _TMesh* mesh )
-{
-  this->_GD1< _TMesh, unsigned char >( mesh );
-}
-
-// -------------------------------------------------------------------------
-template< class _TMesh, class _TPixel >
-void cpPluginsImageMeshFilters::TriangleMeshToBinaryImageFilter::
-_GD1( _TMesh* mesh )
-{
-  typedef cpPlugins::BoundingBox _TBB;
-  typedef itk::Image< _TPixel, _TMesh::PointDimension > _TImage;
-  typedef itk::TriangleMeshToBinaryImageFilter< _TMesh, _TImage > _TFilter;
-  typedef typename _TImage::PointType _TPoint;
-
-  static const unsigned int PAD = 10;
-
-  _TFilter* filter = this->_CreateITK< _TFilter >( );
-
-  auto in_bb = dynamic_cast< _TBB* >( this->GetInput( "BoundingBox" ) );
-  _TPoint minBB, maxBB;
-  if( in_bb == NULL )
-  {
-    auto bb = mesh->GetBoundingBox( );
-    minBB = bb->GetMinimum( );
-    maxBB = bb->GetMaximum( );
-  }
-  else
-  {
-    minBB = in_bb->GetMinimum< _TPoint >( );
-    maxBB = in_bb->GetMaximum< _TPoint >( );
-
-  } // fi
-
-  double lx = double( maxBB[ 0 ] - minBB[ 0 ] );
-  double ly = double( maxBB[ 1 ] - minBB[ 1 ] );
-  double lz = double( maxBB[ 2 ] - minBB[ 2 ] );
-  double lm = ( lx < ly )? lx: ly;
-  lm = ( lm < lz )? lm: lz;
-
-  // Compute spacing
-  double mSpac = lm / double( this->m_Parameters.GetUint( "MinimumSize" ) );
-  typename _TImage::SpacingType spac;
-  spac.Fill( mSpac );
-  filter->SetSpacing( spac );
-
-  // Compute size
-  typename _TImage::SizeType size;
-  size[ 0 ] = ( unsigned long )( std::ceil( lx / mSpac ) );
-  size[ 1 ] = ( unsigned long )( std::ceil( ly / mSpac ) );
-  size[ 2 ] = ( unsigned long )( std::ceil( lz / mSpac ) );
-
-  // ... add some padding pixels
-  size[ 0 ] += PAD;
-  size[ 1 ] += PAD;
-  size[ 2 ] += PAD;
-  filter->SetSize( size );
-
-  // Set origin
-  typename _TImage::PointType origin = minBB;
-  origin[ 0 ] -= double( PAD >> 1 ) * spac[ 0 ];
-  origin[ 1 ] -= double( PAD >> 1 ) * spac[ 1 ];
-  origin[ 2 ] -= double( PAD >> 1 ) * spac[ 2 ];
-  filter->SetOrigin( origin );
-
-  // Remaining values
-  typename _TImage::DirectionType direction;
-  direction.SetIdentity( );
-  filter->SetDirection( direction );
-
-  typename _TImage::IndexType index;
-  index.Fill( 0 );
-  filter->SetIndex( index );
-
-  // Execute
-  filter->SetInput( mesh );
-  filter->SetInsideValue( this->m_Parameters.GetUint( "InsideValue" ) );
-  filter->SetOutsideValue( this->m_Parameters.GetUint( "OutsideValue" ) );
-  filter->Update( );
-
-  // Connect output
-  this->GetOutput( "Output" )->SetITK( filter->GetOutput( ) );
-}
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsImageMeshFilters/TriangleMeshToBinaryImageFilter.h b/plugins/cpPluginsImageMeshFilters/TriangleMeshToBinaryImageFilter.h
deleted file mode 100644 (file)
index 39d7163..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef __CPPLUGINSIMAGEMESH__TRIANGLEMESHTOBINARYIMAGEFILTER__H__
-#define __CPPLUGINSIMAGEMESH__TRIANGLEMESHTOBINARYIMAGEFILTER__H__
-
-#include <plugins/cpPluginsImageMeshFilters/cpPluginsImageMeshFilters_Export.h>
-#include <cpPlugins/ProcessObject.h>
-
-namespace cpPluginsImageMeshFilters
-{
-  /**
-   */
-  class cpPluginsImageMeshFilters_EXPORT TriangleMeshToBinaryImageFilter
-    : public cpPlugins::ProcessObject
-  {
-  public:
-    typedef TriangleMeshToBinaryImageFilter Self;
-    typedef cpPlugins::ProcessObject        Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-  public:
-    itkNewMacro( Self );
-    itkTypeMacro( TriangleMeshToBinaryImageFilter, cpPlugins::ProcessObject );
-    cpPlugins_Id_Macro( TriangleMeshToBinaryImageFilter, MeshToImageFilters );
-
-  protected:
-    TriangleMeshToBinaryImageFilter( );
-    virtual ~TriangleMeshToBinaryImageFilter( );
-
-    virtual void _GenerateData( ) ITK_OVERRIDE;
-
-    template< class _TMesh >
-      inline void _GD0( _TMesh* mesh );
-
-    template< class _TMesh, class _TPixel >
-      inline void _GD1( _TMesh* mesh );
-
-  private:
-    // Purposely not implemented
-    TriangleMeshToBinaryImageFilter( const Self& );
-    Self& operator=( const Self& );
-  };
-
-} // ecapseman
-
-#endif // __CPPLUGINSIMAGEMESH__TRIANGLEMESHTOBINARYIMAGEFILTER__H__
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsMedialnessFilters/CMakeLists.txt b/plugins/cpPluginsMedialnessFilters/CMakeLists.txt
deleted file mode 100644 (file)
index bb10058..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-SET(lib_NAME cpPluginsMedialnessFilters)
-FILE(GLOB lib_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/*.h")
-FILE(GLOB lib_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.cxx")
-SET(lib_OTHER_SOURCES "")
-SET(lib_QT4_HEADERS "")
-
-SET(lib_LINKS)
-IF(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux")
-  SET(lib_LINKS cpPlugins ${cpPlugins_LIBRARIES})
-ENDIF(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux")
-
-cpPlugins_WrapPlugins(
-  ${lib_NAME} ${prj_VER} ${prj_sVER}
-  "${lib_HEADERS}"
-  "${lib_SOURCES}"
-  "${lib_OTHER_SOURCES}"
-  "${lib_QT4_HEADERS}"
-  ${lib_LINKS}
-  )
-
-## ========================
-## -- Installation rules --
-## ========================
-
-#INSTALL(
-#  TARGETS ${lib_NAME}
-#  RUNTIME DESTINATION bin
-#  LIBRARY DESTINATION lib
-#  ARCHIVE DESTINATION lib/static
-#  )
-
-## eof - $RCSfile$
diff --git a/plugins/cpPluginsMedialnessFilters/GulsunTekMedialness.cxx b/plugins/cpPluginsMedialnessFilters/GulsunTekMedialness.cxx
deleted file mode 100644 (file)
index 5718541..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-#include <cpPluginsMedialnessFilters/GulsunTekMedialness.h>
-#include <cpPlugins_Instances/MedialnessFilters.h>
-
-// -------------------------------------------------------------------------
-cpPluginsMedialnessFilters::GulsunTekMedialness::
-GulsunTekMedialness( )
-  : Superclass( )
-{
-}
-
-// -------------------------------------------------------------------------
-cpPluginsMedialnessFilters::GulsunTekMedialness::
-~GulsunTekMedialness( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpPluginsMedialnessFilters::GulsunTekMedialness::
-_GenerateData( )
-{
-}
-
-// -------------------------------------------------------------------------
-template< class _TImage >
-void cpPluginsMedialnessFilters::GulsunTekMedialness::
-_GD0( _TImage* image )
-{
-}
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsMedialnessFilters/GulsunTekMedialness.h b/plugins/cpPluginsMedialnessFilters/GulsunTekMedialness.h
deleted file mode 100644 (file)
index c32c3be..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef __CPPLUGINSMEDIALNESSFILTERS__GULSUNTEKMEDIALNESS__H__
-#define __CPPLUGINSMEDIALNESSFILTERS__GULSUNTEKMEDIALNESS__H__
-
-#include <cpPluginsMedialnessFilters/cpPluginsMedialnessFilters_Export.h>
-#include <cpPlugins/ProcessObject.h>
-
-namespace cpPluginsMedialnessFilters
-{
-  /**
-   */
-  class cpPluginsMedialnessFilters_EXPORT GulsunTekMedialness
-    : public cpPlugins::ProcessObject
-  {
-  public:
-    typedef GulsunTekMedialness               Self;
-    typedef cpPlugins::ProcessObject        Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-  public:
-    itkNewMacro( Self );
-    itkTypeMacro( GulsunTekMedialness, cpPlugins::ProcessObject );
-    cpPlugins_Id_Macro( GulsunTekMedialness, MedialnessFilters );
-
-  protected:
-    GulsunTekMedialness( );
-    virtual ~GulsunTekMedialness( );
-
-    virtual void _GenerateData( ) ITK_OVERRIDE;
-
-    template< class _TImage >
-      inline void _GD0( _TImage* image );
-
-  private:
-    // Purposely not implemented
-    GulsunTekMedialness( const Self& );
-    Self& operator=( const Self& );
-  };
-
-} // ecapseman
-
-#endif // __CPPLUGINSMEDIALNESSFILTERS__GULSUNTEKMEDIALNESS__H__
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsMeshFilters/AppendMeshesFilter.cxx b/plugins/cpPluginsMeshFilters/AppendMeshesFilter.cxx
deleted file mode 100644 (file)
index b3fd5a6..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-#include <cpPluginsMeshFilters/AppendMeshesFilter.h>
-#include <cpPlugins/Mesh.h>
-
-#include <vtkAppendPolyData.h>
-
-// -------------------------------------------------------------------------
-cpPluginsMeshFilters::AppendMeshesFilter::
-AppendMeshesFilter( )
-  : Superclass( )
-{
-  this->_AddInput( "Input0" );
-  this->_AddInput( "Input1" );
-  this->_AddInput( "Input2", false );
-  this->_AddInput( "Input3", false );
-  this->_AddInput( "Input4", false );
-  this->_AddInput( "Input5", false );
-  this->_AddOutput< cpPlugins::Mesh >( "Output" );
-}
-
-// -------------------------------------------------------------------------
-cpPluginsMeshFilters::AppendMeshesFilter::
-~AppendMeshesFilter( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpPluginsMeshFilters::AppendMeshesFilter::
-_GenerateData( )
-{
-  auto m0 = this->GetInputData< vtkPolyData >( "Input0" );
-  auto m1 = this->GetInputData< vtkPolyData >( "Input1" );
-  auto m2 = this->GetInput( "Input2" );
-  auto m3 = this->GetInput( "Input3" );
-  auto m4 = this->GetInput( "Input4" );
-  auto m5 = this->GetInput( "Input5" );
-
-  if( m0 == NULL || m1 == NULL )
-    this->_Error( "Invalid inputs." );
-
-  auto filter = this->_CreateVTK< vtkAppendPolyData >( );
-  filter->AddInputData( m0 );
-  filter->AddInputData( m1 );
-  if( m2 != NULL ) filter->AddInputData( m2->GetVTK< vtkPolyData >( ) );
-  if( m3 != NULL ) filter->AddInputData( m3->GetVTK< vtkPolyData >( ) );
-  if( m4 != NULL ) filter->AddInputData( m4->GetVTK< vtkPolyData >( ) );
-  if( m5 != NULL ) filter->AddInputData( m5->GetVTK< vtkPolyData >( ) );
-  filter->Update( );
-
-  this->GetOutput( "Output" )->SetVTK( filter->GetOutput( ) );
-}
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsMeshFilters/AppendMeshesFilter.h b/plugins/cpPluginsMeshFilters/AppendMeshesFilter.h
deleted file mode 100644 (file)
index fd6aa0c..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef __CPPLUGINSIMAGEMESH__APPENDMESHESFILTER__H__
-#define __CPPLUGINSIMAGEMESH__APPENDMESHESFILTER__H__
-
-#include <plugins/cpPluginsMeshFilters/cpPluginsMeshFilters_Export.h>
-#include <cpPlugins/ProcessObject.h>
-
-namespace cpPluginsMeshFilters
-{
-  /**
-   */
-  class cpPluginsMeshFilters_EXPORT AppendMeshesFilter
-    : public cpPlugins::ProcessObject
-  {
-  public:
-    typedef AppendMeshesFilter              Self;
-    typedef cpPlugins::ProcessObject        Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-  public:
-    itkNewMacro( Self );
-    itkTypeMacro( AppendMeshesFilter, cpPlugins::ProcessObject );
-    cpPlugins_Id_Macro( AppendMeshesFilter, MeshFilters );
-
-  protected:
-    AppendMeshesFilter( );
-    virtual ~AppendMeshesFilter( );
-
-    virtual void _GenerateData( )  ITK_OVERRIDE;
-
-  private:
-    // Purposely not implemented
-    AppendMeshesFilter( const Self& );
-    Self& operator=( const Self& );
-  };
-
-} // ecapseman
-
-#endif // __CPPLUGINSIMAGEMESH__APPENDMESHESFILTER__H__
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsMeshFilters/CMakeLists.txt b/plugins/cpPluginsMeshFilters/CMakeLists.txt
deleted file mode 100644 (file)
index e7c800d..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-SET(lib_NAME cpPluginsMeshFilters)
-FILE(GLOB lib_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/*.h")
-FILE(GLOB lib_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.cxx")
-SET(lib_OTHER_SOURCES "")
-SET(lib_QT4_HEADERS "")
-
-SET(lib_LINKS)
-IF(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux")
-  SET(lib_LINKS cpPlugins ${cpPlugins_LIBRARIES})
-ENDIF(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux")
-
-cpPlugins_WrapPlugins(
-  ${lib_NAME} ${prj_VER} ${prj_sVER}
-  "${lib_HEADERS}"
-  "${lib_SOURCES}"
-  "${lib_OTHER_SOURCES}"
-  "${lib_QT4_HEADERS}"
-  ${lib_LINKS}
-  )
-
-## ========================
-## -- Installation rules --
-## ========================
-
-#INSTALL(
-#  TARGETS ${lib_NAME}
-#  RUNTIME DESTINATION bin
-#  LIBRARY DESTINATION lib
-#  ARCHIVE DESTINATION lib/static
-#  )
-
-## eof - $RCSfile$
diff --git a/plugins/cpPluginsMeshSources/CMakeLists.txt b/plugins/cpPluginsMeshSources/CMakeLists.txt
deleted file mode 100644 (file)
index a43b959..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-SET(lib_NAME cpPluginsMeshSources)
-FILE(GLOB lib_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/*.h")
-FILE(GLOB lib_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.cxx")
-SET(lib_OTHER_SOURCES "")
-SET(lib_QT4_HEADERS "")
-
-SET(lib_LINKS)
-IF(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux")
-  SET(lib_LINKS cpPlugins ${cpPlugins_LIBRARIES})
-ENDIF(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux")
-
-cpPlugins_WrapPlugins(
-  ${lib_NAME} ${prj_VER} ${prj_sVER}
-  "${lib_HEADERS}"
-  "${lib_SOURCES}"
-  "${lib_OTHER_SOURCES}"
-  "${lib_QT4_HEADERS}"
-  ${lib_LINKS}
-  )
-
-## ========================
-## -- Installation rules --
-## ========================
-
-#INSTALL(
-#  TARGETS ${lib_NAME}
-#  RUNTIME DESTINATION bin
-#  LIBRARY DESTINATION lib
-#  ARCHIVE DESTINATION lib/static
-#  )
-
-## eof - $RCSfile$
diff --git a/plugins/cpPluginsMeshSources/CylinderSource.cxx b/plugins/cpPluginsMeshSources/CylinderSource.cxx
deleted file mode 100644 (file)
index ba233f6..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-#include <cpPluginsMeshSources/CylinderSource.h>
-#include <cpPlugins/Mesh.h>
-
-#include <vtkCylinderSource.h>
-
-// -------------------------------------------------------------------------
-cpPluginsMeshSources::CylinderSource::
-CylinderSource( )
-  : Superclass( )
-{
-  this->_AddOutput< cpPlugins::Mesh >( "Output" );
-  this->m_Parameters.ConfigureAsReal( "Height" );
-  this->m_Parameters.ConfigureAsReal( "Radius" );
-  this->m_Parameters.ConfigureAsUint( "Resolution" );
-  this->m_Parameters.SetReal( "Radius", 1 );
-  this->m_Parameters.SetUint( "Resolution", 8 );
-}
-
-// -------------------------------------------------------------------------
-cpPluginsMeshSources::CylinderSource::
-~CylinderSource( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpPluginsMeshSources::CylinderSource::
-_GenerateData( )
-{
-  auto src = this->_CreateVTK< vtkCylinderSource >( );
-  src->SetHeight( this->m_Parameters.GetReal( "Height" ) );
-  src->SetRadius( this->m_Parameters.GetReal( "Radius" ) );
-  src->SetResolution( this->m_Parameters.GetUint( "Resolution" ) );
-  src->Update( );
-  this->GetOutput( "Output" )->SetVTK( src->GetOutput( ) );
-}
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsMeshSources/CylinderSource.h b/plugins/cpPluginsMeshSources/CylinderSource.h
deleted file mode 100644 (file)
index 0e8d0b2..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef __CPPLUGINSMESHSOURCES__CYLINDERSOURCE__H__
-#define __CPPLUGINSMESHSOURCES__CYLINDERSOURCE__H__
-
-#include <plugins/cpPluginsMeshSources/cpPluginsMeshSources_Export.h>
-#include <cpPlugins/ProcessObject.h>
-
-namespace cpPluginsMeshSources
-{
-  /**
-   */
-  class cpPluginsMeshSources_EXPORT CylinderSource
-    : public cpPlugins::ProcessObject
-  {
-  public:
-    typedef CylinderSource                    Self;
-    typedef cpPlugins::ProcessObject        Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-  public:
-    itkNewMacro( Self );
-    itkTypeMacro( CylinderSource, cpPlugins::ProcessObject );
-    cpPlugins_Id_Macro( CylinderSource, MeshSources );
-
-  protected:
-    CylinderSource( );
-    virtual ~CylinderSource( );
-
-    virtual void _GenerateData( ) ITK_OVERRIDE;
-
-  private:
-    // Purposely not implemented
-    CylinderSource( const Self& );
-    Self& operator=( const Self& );
-  };
-
-} // ecapseman
-
-#endif // __CPPLUGINSMESHSOURCES__CYLINDERSOURCE__H__
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsMeshSources/SphereSource.cxx b/plugins/cpPluginsMeshSources/SphereSource.cxx
deleted file mode 100644 (file)
index 96d7677..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-#include <cpPluginsMeshSources/SphereSource.h>
-#include <cpPlugins/Mesh.h>
-
-#include <vtkSphereSource.h>
-
-// -------------------------------------------------------------------------
-cpPluginsMeshSources::SphereSource::
-SphereSource( )
-  : Superclass( )
-{
-  this->_AddOutput< cpPlugins::Mesh >( "Output" );
-  this->m_Parameters.ConfigureAsReal( "Radius" );
-  this->m_Parameters.ConfigureAsUint( "PhiResolution" );
-  this->m_Parameters.ConfigureAsUint( "ThetaResolution" );
-  this->m_Parameters.SetReal( "Radius", 1 );
-  this->m_Parameters.SetUint( "PhiResolution", 8 );
-  this->m_Parameters.SetUint( "ThetaResolution", 8 );
-}
-
-// -------------------------------------------------------------------------
-cpPluginsMeshSources::SphereSource::
-~SphereSource( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpPluginsMeshSources::SphereSource::
-_GenerateData( )
-{
-  auto src = this->_CreateVTK< vtkSphereSource >( );
-  src->SetRadius( this->m_Parameters.GetReal( "Radius" ) );
-  src->SetPhiResolution( this->m_Parameters.GetUint( "PhiResolution" ) );
-  src->SetThetaResolution( this->m_Parameters.GetUint( "ThetaResolution" ) );
-  src->Update( );
-  this->GetOutput( "Output" )->SetVTK( src->GetOutput( ) );
-}
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsMeshSources/SphereSource.h b/plugins/cpPluginsMeshSources/SphereSource.h
deleted file mode 100644 (file)
index 624b27e..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef __CPPLUGINSMESHSOURCES__SPHERESOURCE__H__
-#define __CPPLUGINSMESHSOURCES__SPHERESOURCE__H__
-
-#include <plugins/cpPluginsMeshSources/cpPluginsMeshSources_Export.h>
-#include <cpPlugins/ProcessObject.h>
-
-namespace cpPluginsMeshSources
-{
-  /**
-   */
-  class cpPluginsMeshSources_EXPORT SphereSource
-    : public cpPlugins::ProcessObject
-  {
-  public:
-    typedef SphereSource                    Self;
-    typedef cpPlugins::ProcessObject        Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-  public:
-    itkNewMacro( Self );
-    itkTypeMacro( SphereSource, cpPlugins::ProcessObject );
-    cpPlugins_Id_Macro( SphereSource, MeshSources );
-
-  protected:
-    SphereSource( );
-    virtual ~SphereSource( );
-
-    virtual void _GenerateData( ) ITK_OVERRIDE;
-
-  private:
-    // Purposely not implemented
-    SphereSource( const Self& );
-    Self& operator=( const Self& );
-  };
-
-} // ecapseman
-
-#endif // __CPPLUGINSMESHSOURCES__SPHERESOURCE__H__
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsWidgets/CMakeLists.txt b/plugins/cpPluginsWidgets/CMakeLists.txt
deleted file mode 100644 (file)
index 49acd6a..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-SET(lib_NAME cpPluginsWidgets)
-FILE(GLOB lib_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/*.h")
-FILE(GLOB lib_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.cxx")
-SET(lib_OTHER_SOURCES "")
-SET(lib_QT4_HEADERS "")
-
-SET(lib_LINKS)
-IF(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux")
-  SET(lib_LINKS cpPlugins ${cpPlugins_LIBRARIES})
-ENDIF(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux")
-
-cpPlugins_WrapPlugins(
-  ${lib_NAME} ${prj_VER} ${prj_sVER}
-  "${lib_HEADERS}"
-  "${lib_SOURCES}"
-  "${lib_OTHER_SOURCES}"
-  "${lib_QT4_HEADERS}"
-  ${lib_LINKS}
-  )
-
-## ========================
-## -- Installation rules --
-## ========================
-
-#INSTALL(
-#  TARGETS ${lib_NAME}
-#  RUNTIME DESTINATION bin
-#  LIBRARY DESTINATION lib
-#  ARCHIVE DESTINATION lib/static
-#  )
-
-## eof - $RCSfile$
diff --git a/plugins/cpPluginsWidgets/SeedWidget.cxx b/plugins/cpPluginsWidgets/SeedWidget.cxx
deleted file mode 100644 (file)
index 40b251b..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-#include "SeedWidget.h"
-
-#include <vtkCommand.h>
-#include <vtkProperty.h>
-#include <vtkRenderer.h>
-#include <vtkRenderWindowInteractor.h>
-#include <cpExtensions/QT/SimpleMPRWidget.h>
-
-// -------------------------------------------------------------------------
-// This callback is responsible for changing update time
-namespace cpPluginsWidgets
-{
-  /**
-   */
-  class SeedWidgetCallback
-    : public vtkCommand
-  {
-  public:
-    static SeedWidgetCallback* New( )
-      { return( new SeedWidgetCallback ); }
-    virtual void Execute( vtkObject* caller, unsigned long id, void* data )
-      {
-        if(
-          id == vtkCommand::CursorChangedEvent ||
-          id == vtkCommand::PlacePointEvent
-          )
-          this->Widget->Modified( );
-      }
-    SeedWidget* Widget;
-  };
-
-} // ecapseman
-
-// -------------------------------------------------------------------------
-void cpPluginsWidgets::SeedWidget::WidgetData::
-Configure(
-  cpPluginsWidgets::SeedWidget* parent,
-  vtkRenderWindowInteractor* interactor, vtkImageActor* actor
-  )
-{
-  this->Placer = vtkSmartPointer< vtkImageActorPointPlacer >::New( );
-  this->Handle = vtkSmartPointer< vtkPointHandleRepresentation3D >::New( );
-  this->Seed = vtkSmartPointer< vtkSeedRepresentation >::New( );
-  this->Widget =
-    vtkSmartPointer< cpExtensions::Interaction::SeedWidget >::New( );
-
-  this->Placer->SetImageActor( actor );
-  this->Handle->GetProperty( )->SetColor( 1, 0, 0 );
-  this->Handle->SetPointPlacer( this->Placer );
-  this->Seed->SetHandleRepresentation( this->Handle );
-  this->Widget->SetRepresentation( this->Seed );
-  this->Widget->SetInteractor( interactor );
-
-  vtkSmartPointer< SeedWidgetCallback > cb =
-    vtkSmartPointer< SeedWidgetCallback >::New( );
-  cb->Widget = parent;
-  this->Widget->AddObserver( vtkCommand::PlacePointEvent, cb );
-  this->Widget->AddObserver( vtkCommand::CursorChangedEvent, cb );
-}
-
-// -------------------------------------------------------------------------
-void cpPluginsWidgets::SeedWidget::WidgetData::
-On( )
-{
-  this->Widget->On( );
-}
-
-// -------------------------------------------------------------------------
-void cpPluginsWidgets::SeedWidget::WidgetData::
-Off( )
-{
-  this->Widget->Off( );
-}
-
-// -------------------------------------------------------------------------
-cpPluginsWidgets::SeedWidget::
-SeedWidget( )
-  : Superclass( ),
-    m_Configured( false ),
-    m_InitialNumberOfSeeds( 0 )
-{
-  this->_AddOutput< cpPlugins::DataObject >( "Output" );
-}
-
-// -------------------------------------------------------------------------
-cpPluginsWidgets::SeedWidget::
-~SeedWidget( )
-{
-}
-
-// -------------------------------------------------------------------------
-void cpPluginsWidgets::SeedWidget::
-_GenerateData( )
-{
-  auto points = this->_CreateVTK< vtkPoints >( );
-  if( this->m_Configured )
-  {
-    std::stringstream text;
-    points->Resize( this->m_InitialNumberOfSeeds );
-    for(
-      auto wIt = this->m_Widgets.begin( );
-      wIt != this->m_Widgets.end( );
-      ++wIt
-      )
-    {
-      double pos[ 3 ];
-      for( unsigned int i = 0; i < wIt->Seed->GetNumberOfSeeds( ); ++i )
-      {
-        wIt->Seed->GetSeedWorldPosition( i, pos );
-        if( i > 0 )
-          text << "#";
-        text << pos[ 0 ] << " " << pos[ 1 ] << " " << pos[ 2 ];
-        points->InsertNextPoint( pos );
-
-      } // rof
-
-    } // rof
-    this->m_Parameters.SetString( "Text", text.str( ) );
-  }
-  else
-  {
-    std::vector< std::string > tokens;
-    cpPlugins::TokenizeString(
-      tokens, this->m_Parameters.GetString( "Text" ), "#"
-      );
-    this->m_InitialNumberOfSeeds = tokens.size( );
-    points->SetNumberOfPoints( 0 );
-    for( auto tIt = tokens.begin( ); tIt != tokens.end( ); ++tIt )
-    {
-      std::vector< std::string > coords;
-      cpPlugins::TokenizeString( coords, *tIt, " \t" );
-      int dim = ( coords.size( ) < 3 )? coords.size( ): 3;
-      double pos[ 3 ];
-      for( unsigned int d = 0; d < 3; ++d )
-      {
-        pos[ d ] = double( 0 );
-        if( d < dim )
-        {
-          std::istringstream value( coords[ d ] );
-          value >> pos[ d ];
-
-        } // fi
-
-      } // rof
-      points->InsertNextPoint( pos );
-      this->m_Configured = true;
-
-    } // rof
-
-    std::vector< vtkRenderWindowInteractor* > ints;
-    if( this->m_MPRViewer != NULL )
-    {
-      ints.push_back( this->m_MPRViewer->GetInteractor( 0 ) );
-      ints.push_back( this->m_MPRViewer->GetInteractor( 1 ) );
-      ints.push_back( this->m_MPRViewer->GetInteractor( 2 ) );
-
-    } // fi
-    if( this->m_SingleInteractor != NULL )
-      ints.push_back( this->m_SingleInteractor );
-
-    for( auto iIt = ints.begin( ); iIt !=  ints.end( ); ++iIt )
-    {
-      auto ren = ( *iIt )->GetInteractorStyle( )->GetCurrentRenderer( );
-      if( ren != NULL )
-      {
-        auto props = ren->GetViewProps( );
-        if( props != NULL )
-        {
-          props->InitTraversal( );
-          vtkProp* prop;
-          while( ( prop = props->GetNextProp( ) ) != NULL )
-          {
-            auto actor = dynamic_cast< vtkImageActor* >( prop );
-            if( actor != NULL )
-            {
-              WidgetData d;
-              d.Configure( this, *iIt, actor );
-              d.On( );
-              this->m_Widgets.push_back( d );
-              this->m_Configured = true;
-
-            } // fi
-
-          } // elihw
-
-        } // fi
-
-      } // fi
-
-    } // rof
-
-  } // fi
-  if( this->m_Configured )
-    this->Modified( );
-  else
-    this->_Error(
-      "Could not create valid widget: are there any valid actors?"
-      );
-  this->GetOutput( "Output" )->SetVTK( points );
-}
-
-// eof - $RCSfile$
diff --git a/plugins/cpPluginsWidgets/SeedWidget.h b/plugins/cpPluginsWidgets/SeedWidget.h
deleted file mode 100644 (file)
index 92c744b..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef __CPPLUGINSWIDGETS__SEEDWIDGET__H__
-#define __CPPLUGINSWIDGETS__SEEDWIDGET__H__
-
-#include <plugins/cpPluginsWidgets/cpPluginsWidgets_Export.h>
-#include <cpPlugins/BaseWidget.h>
-
-#include <cpExtensions/Interaction/SeedWidget.h>
-#include <vtkImageActorPointPlacer.h>
-#include <vtkPointHandleRepresentation3D.h>
-#include <vtkSeedRepresentation.h>
-#include <vtkSmartPointer.h>
-
-namespace cpPluginsWidgets
-{
-  /**
-   */
-  class cpPluginsWidgets_EXPORT SeedWidget
-    : public cpPlugins::BaseWidget
-  {
-  public:
-    typedef SeedWidget                      Self;
-    typedef cpPlugins::BaseWidget           Superclass;
-    typedef itk::SmartPointer< Self >       Pointer;
-    typedef itk::SmartPointer< const Self > ConstPointer;
-
-  public:
-    itkNewMacro( Self );
-    itkTypeMacro( SeedWidget, cpPlugins::BaseWidget );
-    cpPlugins_Id_Macro( SeedWidget, Widgets );
-
-    struct WidgetData
-    {
-      vtkSmartPointer< cpExtensions::Interaction::SeedWidget > Widget;
-      vtkSmartPointer< vtkImageActorPointPlacer >              Placer;
-      vtkSmartPointer< vtkPointHandleRepresentation3D >        Handle;
-      vtkSmartPointer< vtkSeedRepresentation >                 Seed;
-
-      void Configure(
-        cpPluginsWidgets::SeedWidget* parent,
-        vtkRenderWindowInteractor* interactor, vtkImageActor* actor
-        );
-      void On( );
-      void Off( );
-    };
-
-  protected:
-    SeedWidget( );
-    virtual ~SeedWidget( );
-
-    virtual void _GenerateData( ) ITK_OVERRIDE;
-
-  private:
-    // Purposely not implemented
-    SeedWidget( const Self& );
-    Self& operator=( const Self& );
-
-  protected:
-    bool m_Configured;
-    std::vector< WidgetData > m_Widgets;
-    unsigned int m_InitialNumberOfSeeds;
-  };
-
-} // ecapseman
-
-#endif // __CPPLUGINSWIDGETS__SEEDWIDGET__H__
-
-// eof - $RCSfile$
diff --git a/third_party_installers/cpPlugins_Install_CMAKE.sh b/third_party_installers/cpPlugins_Install_CMAKE.sh
deleted file mode 100755 (executable)
index ed6256f..0000000
+++ /dev/null
@@ -1,194 +0,0 @@
-#!/bin/bash
-
-function abspath()
-{
-    pushd . > /dev/null
-    if [ -d "$1" ]; then
-        cd "$1"
-        dirs -l +0
-    else
-        cd "`dirname \"$1\"`"
-        cur_dir=`dirs -l +0`
-        if [ "$cur_dir" == "/" ]; then
-            echo "$cur_dir`basename \"$1\"`"
-        else
-            echo "$cur_dir/`basename \"$1\"`"
-        fi
-    fi
-    popd > /dev/null
-}
-
-function get_file_extension
-{
-    valid_extensions=("zip" "tar" "tar.gz" "tar.bz2")
-    actual_file=`abspath $1`
-    actual_ext=""
-    for ext in ${valid_extensions[@]}; do
-        test_str=`dirname $actual_file`/`basename $actual_file $ext`
-        if [ $test_str != $actual_file ]; then
-            actual_ext=$ext
-        fi
-    done
-    echo "$actual_ext"
-}
-
-function print_help()
-{
-    echo "Usage: `basename $0` -f=compressed_code -c=source_dir -b=build_dir [-p=instalation_prefix] [-q=qmake_executable]"
-}
-
-## Analyze command-line arguments
-if [ $# -eq 0 ]; then
-        print_help
-        exit 1
-fi
-prefix="${HOME}/local"
-for i in "$@"; do
-    case $i in
-    -f=*|--file=*)
-    source_file="${i#*=}"
-    shift
-    ;;
-    -c=*|--source_dir=*)
-    source_dir="${i#*=}"
-    shift
-    ;;
-    -b=*|--build_dir=*)
-    build_dir="${i#*=}"
-    shift
-    ;;
-    -p=*|--prefix=*)
-    prefix="${i#*=}"
-    shift
-    ;;
-    -q=*|--qmake=*)
-    qmake_exec="${i#*=}"
-    shift
-    ;;
-    *)
-    ;;
-    esac
-done
-
-## Check command line arguments
-if [ "x$source_dir" == "x" ]; then
-    if [ "x$source_file" != "x" ]; then
-        base_path=`abspath $source_file`
-        base_ext=`get_file_extension $base_path`
-        base_dir=`dirname $base_path`
-        if [ "x$base_ext" != "x" ]; then
-            source_dir="$base_dir"/`basename $base_path .$base_ext`
-        else
-            echo "Error: Input compressed file extension not recognized."
-            exit 1
-        fi
-    else
-        print_help
-        exit 1
-    fi
-fi
-if [ "x$build_dir" == "x" ]; then
-    if [ "x$source_dir" != "x" ]; then
-        base_dir=$source_dir
-        if [ "${source_dir:$((${#str}-1)):1}" == "/" ]; then
-            base_dir=`echo $source_dir | rev | cut -c 2- | rev`
-        fi
-        build_dir="$base_dir-build"
-    else
-        print_help
-        exit 1
-    fi
-fi
-
-# Locate qmake executable
-if [ "x$qmake_exec" == "x" ]; then
-    qmake_locations=("/usr/bin" "/usr/local/bin" "${HOME}/local/bin")
-    for loc in ${qmake_locations[@]}; do
-        qmake_file="$loc/qmake"
-        if [ -x $qmake_file ]; then
-            version=`$qmake_file --version | grep Using\ Qt\ version | cut -d ' ' -f 4`
-            if [ "${version:0:3}" == "4.8" ]; then
-                qmake_exec=$qmake_file
-            fi
-        fi
-    done
-fi
-qmake_exec=`abspath $qmake_exec`
-if [ -x $qmake_exec ]; then
-    qt_options="--qt-gui --qt-qmake=$qmake_exec"
-else
-    qt_options="--no-qt-gui"
-fi
-
-## Other configuration variables
-platform=`uname`
-number_of_cores=`grep -c ^processor /proc/cpuinfo`
-number_of_threads=`expr $number_of_cores / 2`
-if [ "x$source_file" != "x" ]; then
-    source_file=`abspath $source_file`
-fi
-source_dir=`abspath $source_dir`
-build_dir=`abspath $build_dir`
-
-echo "====================================================================="
-echo "==> Source file       : $source_file"
-echo "==> Source dir        : $source_dir"
-echo "==> Build dir         : $build_dir"
-echo "==> Prefix            : $prefix"
-echo "==> qmake             : $qmake_exec"
-echo "==> Qt options        : $qt_options"
-echo "==> Platform          : $platform"
-echo "==> Number of cores   : $number_of_cores"
-echo "==> Number of threads : $number_of_threads"
-echo "====================================================================="
-read -n1 -r -p "Continue? [Y/N]... " key
-echo
-if [ "$key" != 'Y' -a "$key" != 'y' ] ; then
-    exit 1
-fi
-
-## Create paths
-if [ "x$source_file" != "x" ]; then
-    echo -n "==> Cleaning directories... "
-    rm -rf $source_dir
-    rm -rf $build_dir
-    echo "done."
-    echo -n "==> Creating directories... "
-    mkdir -p $source_dir
-    mkdir -p $build_dir
-    echo "done."
-fi
-
-## Extract source code
-if [ "x$source_file" != "x" ]; then
-    echo -n "==> Extracting sources... "
-    base_path=`abspath $source_file`
-    base_ext=`get_file_extension $base_path`
-    if [ "$base_ext" == "zip" ]; then
-        echo unzip $base_path
-    elif [ "$base_ext" == "tar" ]; then
-        tar xf $base_path -C $source_dir --strip-components=1
-    elif [ "$base_ext" == "tar.gz" ]; then
-        tar xzf $base_path -C $source_dir --strip-components=1
-    elif [ "$base_ext" == "tar.bz2" ]; then
-        tar xjf $base_path -C $source_dir --strip-components=1
-    fi
-    echo "done."
-fi
-
-echo "==> Configuring sources... "
-cd $build_dir
-$source_dir/bootstrap --prefix=$prefix $qt_options
-echo "==> Configuring sources... done."
-
-echo "==> Compiling sources..."
-cd $build_dir
-make -j$number_of_threads
-echo "==> Compiling sources... done."
-
-echo "==> Installing package..."
-cd $build_dir
-make -j install
-echo "==> Installing package... done."
-
-## eof - $RCSfile$
diff --git a/third_party_installers/cpPlugins_Install_ITK.sh b/third_party_installers/cpPlugins_Install_ITK.sh
deleted file mode 100755 (executable)
index 51e0ea0..0000000
+++ /dev/null
@@ -1,212 +0,0 @@
-#!/bin/bash
-
-function abspath()
-{
-    pushd . > /dev/null
-    if [ -d "$1" ]; then
-        cd "$1"
-        dirs -l +0
-    else
-        cd "`dirname \"$1\"`"
-        cur_dir=`dirs -l +0`
-        if [ "$cur_dir" == "/" ]; then
-            echo "$cur_dir`basename \"$1\"`"
-        else
-            echo "$cur_dir/`basename \"$1\"`"
-        fi
-    fi
-    popd > /dev/null
-}
-
-function get_file_extension
-{
-    valid_extensions=("zip" "tar" "tar.gz" "tar.bz2")
-    actual_file=`abspath $1`
-    actual_ext=""
-    for ext in ${valid_extensions[@]}; do
-        test_str=`dirname $actual_file`/`basename $actual_file $ext`
-        if [ $test_str != $actual_file ]; then
-            actual_ext=$ext
-        fi
-    done
-    echo "$actual_ext"
-}
-
-function print_help()
-{
-    echo "Usage: `basename $0` -f=compressed_code -c=source_dir -b=build_dir [-p=instalation_prefix] [-m=cmake_executable] [-t=build_type[MinSizeRel/Debug/Release]]"
-}
-
-## Analyze command-line arguments
-if [ $# -eq 0 ]; then
-        print_help
-        exit 1
-fi
-prefix="${HOME}/local"
-build_type="MinSizeRel"
-for i in "$@"; do
-    case $i in
-    -f=*|--file=*)
-    source_file="${i#*=}"
-    shift
-    ;;
-    -c=*|--source_dir=*)
-    source_dir="${i#*=}"
-    shift
-    ;;
-    -b=*|--build_dir=*)
-    build_dir="${i#*=}"
-    shift
-    ;;
-    -t=*|--build_type=*)
-    build_type="${i#*=}"
-    shift
-    ;;
-    -p=*|--prefix=*)
-    prefix="${i#*=}"
-    shift
-    ;;
-    -m=*|--cmake=*)
-    cmake_exec="${i#*=}"
-    shift
-    ;;
-    *)
-    ;;
-    esac
-done
-
-## Check command line arguments
-if [ "x$source_dir" == "x" ]; then
-    if [ "x$source_file" != "x" ]; then
-        base_path=`abspath $source_file`
-        base_ext=`get_file_extension $base_path`
-        base_dir=`dirname $base_path`
-        if [ "x$base_ext" != "x" ]; then
-            source_dir="$base_dir"/`basename $base_path .$base_ext`
-        else
-            echo "Error: Input compressed file extension not recognized."
-            exit 1
-        fi
-    else
-        print_help
-        exit 1
-    fi
-fi
-if [ "x$build_dir" == "x" ]; then
-    if [ "x$source_dir" != "x" ]; then
-        base_dir=$source_dir
-        if [ "${source_dir:$((${#str}-1)):1}" == "/" ]; then
-            base_dir=`echo $source_dir | rev | cut -c 2- | rev`
-        fi
-        build_dir="$base_dir-build"
-    else
-        print_help
-        exit 1
-    fi
-fi
-
-## Locate cmake executable
-if [ "x$cmake_exec" == "x" ]; then
-    cmake_locations=("/usr/bin" "/usr/local/bin" "${HOME}/local/bin")
-    cmake_ver=""
-    for loc in ${cmake_locations[@]}; do
-        cmake_file="$loc/cmake"
-        if [ -x $cmake_file ]; then
-            str=`$cmake_file --version | grep version`
-            version=${str:14}
-            if [ "$cmake_ver" \< "$version" ]; then
-                cmake_ver=$version
-                cmake_exec=$cmake_file
-            fi
-        fi
-    done
-fi
-if [ ! -x $cmake_exec ]; then
-    echo "ERROR: no valid cmake found."
-    exit 1
-fi
-cmake_exec=`abspath $cmake_exec`
-
-## Other configuration variables
-platform=`uname`
-number_of_cores=`grep -c ^processor /proc/cpuinfo`
-number_of_threads=`expr $number_of_cores / 2`
-if [ "x$source_file" != "x" ]; then
-    source_file=`abspath $source_file`
-fi
-source_dir=`abspath $source_dir`
-build_dir=`abspath $build_dir`
-
-echo "====================================================================="
-echo "==> Source file       : $source_file"
-echo "==> Source dir        : $source_dir"
-echo "==> Build dir         : $build_dir"
-echo "==> Build type        : $build_type"
-echo "==> Prefix            : $prefix"
-echo "==> cmake             : $cmake_exec"
-echo "==> Platform          : $platform"
-echo "==> Number of cores   : $number_of_cores"
-echo "==> Number of threads : $number_of_threads"
-echo "====================================================================="
-read -n1 -r -p "Continue? [Y/N]... " key
-echo
-if [ "$key" != 'Y' -a "$key" != 'y' ] ; then
-    exit 1
-fi
-
-## Create paths
-if [ "x$source_file" != "x" ]; then
-    echo -n "==> Cleaning directories... "
-    rm -rf $source_dir
-    rm -rf $build_dir
-    echo "done."
-    echo -n "==> Creating directories... "
-    mkdir -p $source_dir
-    mkdir -p $build_dir
-    echo "done."
-fi
-
-## Extract source code
-if [ "x$source_file" != "x" ]; then
-    echo -n "==> Extracting sources... "
-    base_path=`abspath $source_file`
-    base_ext=`get_file_extension $base_path`
-    if [ "$base_ext" == "zip" ]; then
-        echo unzip $base_path
-    elif [ "$base_ext" == "tar" ]; then
-        tar xf $base_path -C $source_dir --strip-components=1
-    elif [ "$base_ext" == "tar.gz" ]; then
-        tar xzf $base_path -C $source_dir --strip-components=1
-    elif [ "$base_ext" == "tar.bz2" ]; then
-        tar xjf $base_path -C $source_dir --strip-components=1
-    fi
-    echo "done."
-fi
-
-echo "==> Configuring sources... "
-cd $build_dir
-$cmake_exec \
-    -DCMAKE_CXX_FLAGS:STRING=-std=c++11 \
-    -DBUILD_DOCUMENTATION:BOOL=OFF \
-    -DBUILD_EXAMPLES:BOOL=OFF \
-    -DBUILD_SHARED_LIBS:BOOL=ON \
-    -DBUILD_TESTING:BOOL=OFF \
-    -DCMAKE_BUILD_TYPE:STRING=$build_type \
-    -DModule_ITKReview:BOOL=ON \
-    -DModule_ITKVtkGlue:BOOL=OFF \
-    -DModule_ParabolicMorphology:BOOL=ON \
-    -DCMAKE_INSTALL_PREFIX:PATH=$prefix \
-    ${source_dir}
-echo "==> Configuring sources... done."
-
-echo "==> Compiling sources..."
-cd $build_dir
-make -j$number_of_threads
-echo "==> Compiling sources... done."
-
-echo "==> Installing package..."
-cd $build_dir
-make -j install
-echo "==> Installing package... done."
-
-## eof - $RCSfile$
diff --git a/third_party_installers/cpPlugins_Install_QT4.sh b/third_party_installers/cpPlugins_Install_QT4.sh
deleted file mode 100755 (executable)
index 36c5d13..0000000
+++ /dev/null
@@ -1,219 +0,0 @@
-#!/bin/bash
-
-function abspath()
-{
-    pushd . > /dev/null
-    if [ -d "$1" ]; then
-        cd "$1"
-        dirs -l +0
-    else
-        cd "`dirname \"$1\"`"
-        cur_dir=`dirs -l +0`
-        if [ "$cur_dir" == "/" ]; then
-            echo "$cur_dir`basename \"$1\"`"
-        else
-            echo "$cur_dir/`basename \"$1\"`"
-        fi
-    fi
-    popd > /dev/null
-}
-
-function get_file_extension
-{
-    valid_extensions=("zip" "tar" "tar.gz" "tar.bz2")
-    actual_file=`abspath $1`
-    actual_ext=""
-    for ext in ${valid_extensions[@]}; do
-        test_str=`dirname $actual_file`/`basename $actual_file $ext`
-        if [ $test_str != $actual_file ]; then
-            actual_ext=$ext
-        fi
-    done
-    echo "$actual_ext"
-}
-
-function print_help()
-{
-    echo "Usage: `basename $0` -f=compressed_code -c=source_dir -b=build_dir [-t=build_type[release/debug]] [-p=instalation_prefix] [--full]"
-}
-
-## Analyze command-line arguments
-if [ $# -eq 0 ]; then
-        print_help
-        exit 1
-fi
-full_compile="0"
-prefix="${HOME}/local"
-build_type="release"
-for i in "$@"; do
-    case $i in
-    -f=*|--file=*)
-    source_file="${i#*=}"
-    shift
-    ;;
-    -c=*|--source_dir=*)
-    source_dir="${i#*=}"
-    shift
-    ;;
-    -b=*|--build_dir=*)
-    build_dir="${i#*=}"
-    shift
-    ;;
-    -t=*|--build_type=*)
-    build_type="${i#*=}"
-    shift
-    ;;
-    -p=*|--prefix=*)
-    prefix="${i#*=}"
-    shift
-    ;;
-    --full)
-    full_compile="1"
-    shift
-    ;;
-    *)
-    ;;
-    esac
-done
-
-## Check command line arguments
-if [ "x$source_dir" == "x" ]; then
-    if [ "x$source_file" != "x" ]; then
-        base_path=`abspath $source_file`
-        base_ext=`get_file_extension $base_path`
-        base_dir=`dirname $base_path`
-        if [ "x$base_ext" != "x" ]; then
-            source_dir="$base_dir"/`basename $base_path .$base_ext`
-        else
-            echo "Error: Input compressed file extension not recognized."
-            exit 1
-        fi
-    else
-        print_help
-        exit 1
-    fi
-fi
-if [ "x$build_dir" == "x" ]; then
-    if [ "x$source_dir" != "x" ]; then
-        base_dir=$source_dir
-        if [ "${source_dir:$((${#str}-1)):1}" == "/" ]; then
-            base_dir=`echo $source_dir | rev | cut -c 2- | rev`
-        fi
-        build_dir="$base_dir-build"
-    else
-        print_help
-        exit 1
-    fi
-fi
-
-## Other configuration variables
-platform=`uname`
-particular_options=""
-patch_file=""
-if [ "$platform" == "Darwin" ]; then
-    particular_options=-no-framework
-    bash_path=`abspath $0`
-    bash_dir=`dirname $bash_path`
-    patch_file=$bash_dir/qt-4.8.6.patch
-fi
-number_of_cores=`grep -c ^processor /proc/cpuinfo`
-number_of_threads=`expr $number_of_cores / 2`
-if [ "x$source_file" != "x" ]; then
-    source_file=`abspath $source_file`
-fi
-source_dir=`abspath $source_dir`
-build_dir=`abspath $build_dir`
-
-echo "====================================================================="
-echo "==> Source file       : $source_file"
-echo "==> Source dir        : $source_dir"
-echo "==> Build dir         : $build_dir"
-echo "==> Build type        : $build_type"
-echo "==> Prefix            : $prefix"
-echo "==> Full compile      : $full_compile"
-echo "==> Platform          : $platform"
-echo "==> Number of cores   : $number_of_cores"
-echo "==> Number of threads : $number_of_threads"
-echo "==> Patch file        : $patch_file"
-echo "====================================================================="
-read -n1 -r -p "Continue? [Y/N]... " key
-echo
-if [ "$key" != 'Y' -a "$key" != 'y' ] ; then
-    exit 1
-fi
-
-## Create paths
-if [ "x$source_file" != "x" ]; then
-    echo -n "==> Cleaning directories... "
-    rm -rf $source_dir
-    rm -rf $build_dir
-    echo "done."
-    echo -n "==> Creating directories... "
-    mkdir -p $source_dir
-    mkdir -p $build_dir
-    echo "done."
-fi
-
-## Extract source code
-if [ "x$source_file" != "x" ]; then
-    echo -n "==> Extracting sources... "
-    base_path=`abspath $source_file`
-    base_ext=`get_file_extension $base_path`
-    if [ "$base_ext" == "zip" ]; then
-        echo unzip $base_path
-    elif [ "$base_ext" == "tar" ]; then
-        tar xf $base_path -C $source_dir --strip-components=1
-    elif [ "$base_ext" == "tar.gz" ]; then
-        tar xzf $base_path -C $source_dir --strip-components=1
-    elif [ "$base_ext" == "tar.bz2" ]; then
-        tar xjf $base_path -C $source_dir --strip-components=1
-    fi
-    echo "done."
-fi
-
-# Apply patch
-if [ "x$patch_file" != "x" ]; then
-    echo -n "==> Applying patch... "
-    cd $source_dir
-    patch -p0 < $patch_file
-    echo "done."
-fi
-
-echo "==> Configuring sources... "
-cd $build_dir
-if [ "x$full_compile" == "xfull" ]; then
-    $source_dir/configure \
-        -prefix $prefix \
-        -$build_type \
-        -opensource -shared -fast \
-        -no-webkit \
-        -optimized-qmake \
-        $particular_options \
-        -confirm-license
-else
-    $source_dir/configure \
-        -prefix $prefix \
-        -$build_type \
-        -opensource -shared -fast \
-        -no-phonon \
-        -no-phonon-backend \
-        -no-webkit \
-        -no-openvg \
-        -nomake demos -nomake examples \
-        -optimized-qmake \
-        $particular_options \
-        -confirm-license
-fi
-echo "==> Configuring sources... done."
-
-echo "==> Compiling sources..."
-cd $build_dir
-make -j$number_of_threads
-echo "==> Compiling sources... done."
-
-echo "==> Installing package..."
-cd $build_dir
-make -j install
-echo "==> Installing package... done."
-
-## eof - $RCSfile$
diff --git a/third_party_installers/cpPlugins_Install_VTK.sh b/third_party_installers/cpPlugins_Install_VTK.sh
deleted file mode 100755 (executable)
index 1f8ecc3..0000000
+++ /dev/null
@@ -1,252 +0,0 @@
-#!/bin/bash
-
-function abspath()
-{
-    pushd . > /dev/null
-    if [ -d "$1" ]; then
-        cd "$1"
-        dirs -l +0
-    else
-        cd "`dirname \"$1\"`"
-        cur_dir=`dirs -l +0`
-        if [ "$cur_dir" == "/" ]; then
-            echo "$cur_dir`basename \"$1\"`"
-        else
-            echo "$cur_dir/`basename \"$1\"`"
-        fi
-    fi
-    popd > /dev/null
-}
-
-function get_file_extension
-{
-    valid_extensions=("zip" "tar" "tar.gz" "tar.bz2")
-    actual_file=`abspath $1`
-    actual_ext=""
-    for ext in ${valid_extensions[@]}; do
-        test_str=`dirname $actual_file`/`basename $actual_file $ext`
-        if [ $test_str != $actual_file ]; then
-            actual_ext=$ext
-        fi
-    done
-    echo "$actual_ext"
-}
-
-function print_help()
-{
-    echo "Usage: `basename $0` -f=compressed_code -c=source_dir -b=build_dir [-p=instalation_prefix] [-q=qmake_executable] [-m=cmake_executable] [-t=build_type[MinSizeRel/Debug/Release]]"
-}
-
-## Analyze command-line arguments
-if [ $# -eq 0 ]; then
-        print_help
-        exit 1
-fi
-prefix="${HOME}/local"
-build_type="MinSizeRel"
-for i in "$@"; do
-    case $i in
-    -f=*|--file=*)
-    source_file="${i#*=}"
-    shift
-    ;;
-    -c=*|--source_dir=*)
-    source_dir="${i#*=}"
-    shift
-    ;;
-    -b=*|--build_dir=*)
-    build_dir="${i#*=}"
-    shift
-    ;;
-    -t=*|--build_type=*)
-    build_type="${i#*=}"
-    shift
-    ;;
-    -p=*|--prefix=*)
-    prefix="${i#*=}"
-    shift
-    ;;
-    -m=*|--cmake=*)
-    cmake_exec="${i#*=}"
-    shift
-    ;;
-    -q=*|--qmake=*)
-    qmake_exec="${i#*=}"
-    shift
-    ;;
-    *)
-    ;;
-    esac
-done
-
-## Check command line arguments
-if [ "x$source_dir" == "x" ]; then
-    if [ "x$source_file" != "x" ]; then
-        base_path=`abspath $source_file`
-        base_ext=`get_file_extension $base_path`
-        base_dir=`dirname $base_path`
-        if [ "x$base_ext" != "x" ]; then
-            source_dir="$base_dir"/`basename $base_path .$base_ext`
-        else
-            echo "Error: Input compressed file extension not recognized."
-            exit 1
-        fi
-    else
-        print_help
-        exit 1
-    fi
-fi
-if [ "x$build_dir" == "x" ]; then
-    if [ "x$source_dir" != "x" ]; then
-        base_dir=$source_dir
-        if [ "${source_dir:$((${#str}-1)):1}" == "/" ]; then
-            base_dir=`echo $source_dir | rev | cut -c 2- | rev`
-        fi
-        build_dir="$base_dir-build"
-    else
-        print_help
-        exit 1
-    fi
-fi
-
-## Locate cmake executable
-if [ "x$cmake_exec" == "x" ]; then
-    cmake_locations=("/usr/bin" "/usr/local/bin" "${HOME}/local/bin")
-    cmake_ver=""
-    for loc in ${cmake_locations[@]}; do
-        cmake_file="$loc/cmake"
-        if [ -x $cmake_file ]; then
-            str=`$cmake_file --version | grep version`
-            version=${str:14}
-            if [ "$cmake_ver" \< "$version" ]; then
-                cmake_ver=$version
-                cmake_exec=$cmake_file
-            fi
-        fi
-    done
-fi
-if [ ! -x $cmake_exec ]; then
-    echo "ERROR: no valid cmake found."
-    exit 1
-fi
-cmake_exec=`abspath $cmake_exec`
-
-# Locate qmake executable
-if [ "x$qmake_exec" == "x" ]; then
-    qmake_locations=("/usr/bin" "/usr/local/bin" "${HOME}/local/bin")
-    for loc in ${qmake_locations[@]}; do
-        qmake_file="$loc/qmake"
-        if [ -x $qmake_file ]; then
-            version=`$qmake_file --version | grep Using\ Qt\ version | cut -d ' ' -f 4`
-            if [ "${version:0:3}" == "4.8" ]; then
-                qmake_exec=$qmake_file
-            fi
-        fi
-    done
-fi
-qmake_exec=`abspath $qmake_exec`
-if [ -x $qmake_exec ]; then
-    use_qt="1"
-else
-    use_qt="0"
-fi
-
-## Other configuration variables
-platform=`uname`
-number_of_cores=`grep -c ^processor /proc/cpuinfo`
-number_of_threads=`expr $number_of_cores / 2`
-if [ "x$source_file" != "x" ]; then
-    source_file=`abspath $source_file`
-fi
-source_dir=`abspath $source_dir`
-build_dir=`abspath $build_dir`
-
-echo "====================================================================="
-echo "==> Source file       : $source_file"
-echo "==> Source dir        : $source_dir"
-echo "==> Build dir         : $build_dir"
-echo "==> Build type        : $build_type"
-echo "==> Prefix            : $prefix"
-echo "==> cmake             : $cmake_exec"
-echo "==> qmake             : $qmake_exec"
-echo "==> Use Qt            : $use_qt"
-echo "==> Platform          : $platform"
-echo "==> Number of cores   : $number_of_cores"
-echo "==> Number of threads : $number_of_threads"
-echo "====================================================================="
-read -n1 -r -p "Continue? [Y/N]... " key
-echo
-if [ "$key" != 'Y' -a "$key" != 'y' ] ; then
-    exit 1
-fi
-
-## Create paths
-if [ "x$source_file" != "x" ]; then
-    echo -n "==> Cleaning directories... "
-    rm -rf $source_dir
-    rm -rf $build_dir
-    echo "done."
-    echo -n "==> Creating directories... "
-    mkdir -p $source_dir
-    mkdir -p $build_dir
-    echo "done."
-fi
-
-## Extract source code
-if [ "x$source_file" != "x" ]; then
-    echo -n "==> Extracting sources... "
-    base_path=`abspath $source_file`
-    base_ext=`get_file_extension $base_path`
-    if [ "$base_ext" == "zip" ]; then
-        echo unzip $base_path
-    elif [ "$base_ext" == "tar" ]; then
-        tar xf $base_path -C $source_dir --strip-components=1
-    elif [ "$base_ext" == "tar.gz" ]; then
-        tar xzf $base_path -C $source_dir --strip-components=1
-    elif [ "$base_ext" == "tar.bz2" ]; then
-        tar xjf $base_path -C $source_dir --strip-components=1
-    fi
-    echo "done."
-fi
-
-echo "==> Configuring sources... "
-cd $build_dir
-if [ "$use_qt" == "1" ]; then
-    $cmake_exec \
-        -DCMAKE_CXX_FLAGS:STRING=-std=c++11 \
-        -DBUILD_DOCUMENTATION:BOOL=OFF \
-        -DBUILD_EXAMPLES:BOOL=OFF \
-        -DBUILD_SHARED_LIBS:BOOL=ON \
-        -DBUILD_TESTING:BOOL=OFF \
-        -DQT_QMAKE_EXECUTABLE:PATH=$qmake_exec \
-        -DCMAKE_BUILD_TYPE:STRING=$build_type \
-        -DModule_vtkGUISupportQt:BOOL=ON \
-        -DModule_vtkGUISupportQtOpenGL:BOOL=ON \
-        -DModule_vtkGUISupportQtSQL:BOOL=OFF \
-        -DModule_vtkGUISupportQtWebkit:BOOL=OFF \
-        -DCMAKE_INSTALL_PREFIX:PATH=$prefix \
-        ${source_dir}
-else
-    $cmake_exec \
-        -DCMAKE_CXX_FLAGS:STRING=-std=c++11 \
-        -DBUILD_DOCUMENTATION:BOOL=OFF \
-        -DBUILD_EXAMPLES:BOOL=OFF \
-        -DBUILD_SHARED_LIBS:BOOL=ON \
-        -DBUILD_TESTING:BOOL=OFF \
-        -DCMAKE_BUILD_TYPE:STRING=$build_type \
-        -DCMAKE_INSTALL_PREFIX:PATH=$prefix \
-        ${source_dir}
-fi
-echo "==> Configuring sources... done."
-
-echo "==> Compiling sources..."
-cd $build_dir
-make -j$number_of_threads
-echo "==> Compiling sources... done."
-
-echo "==> Installing package..."
-cd $build_dir
-make -j install
-echo "==> Installing package... done."
-
-## eof - $RCSfile$
diff --git a/third_party_installers/qt-4.8.6.patch b/third_party_installers/qt-4.8.6.patch
deleted file mode 100644 (file)
index f0d2122..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
---- src/gui/painting/qpaintengine_mac.cpp.orig 2015-05-07 14:14:43.000000000 +0000
-+++ src/gui/painting/qpaintengine_mac.cpp
-@@ -340,13 +340,7 @@ CGColorSpaceRef QCoreGraphicsPaintEngine
-     }
-     // Get the color space from the display profile.
--    CGColorSpaceRef colorSpace = 0;
--    CMProfileRef displayProfile = 0;
--    CMError err = CMGetProfileByAVID((CMDisplayIDType)displayID, &displayProfile);
--    if (err == noErr) {
--        colorSpace = CGColorSpaceCreateWithPlatformColorSpace(displayProfile);
--        CMCloseProfile(displayProfile);
--    }
-+    CGColorSpaceRef colorSpace = CGDisplayCopyColorSpace(displayID);
-     // Fallback: use generic DeviceRGB
-     if (colorSpace == 0)
-