mirror of https://github.com/CGAL/cgal
Merge remote-tracking branch 'cgal/master' into PMP-BF_autorefine
This commit is contained in:
commit
d75e4f2f54
|
|
@ -1,11 +1,29 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y libmpfr-dev \
|
||||
libeigen3-dev qtbase5-dev libqt5sql5-sqlite libqt5opengl5-dev qtscript5-dev \
|
||||
libqt5svg5-dev qttools5-dev qttools5-dev-tools libboost-dev libinsighttoolkit4-dev zsh
|
||||
#update cmake to 3.18.4
|
||||
sudo apt-get install -y \
|
||||
libmpfr-dev \
|
||||
libtbb-dev \
|
||||
libmetis-dev \
|
||||
libssh-dev \
|
||||
libeigen3-dev \
|
||||
qtbase5-dev libqt5sql5-sqlite libqt5opengl5-dev qtscript5-dev libqt5websockets5-dev \
|
||||
libqt5svg5-dev qttools5-dev qttools5-dev-tools \
|
||||
libboost-dev libboost-serialization-dev libboost-iostreams-dev libboost-filesystem-dev libboost-filesystem-dev \
|
||||
libvtk9-dev libgdcm-tools libvtkgdcm-dev libunwind-dev \
|
||||
libinsighttoolkit5-dev \
|
||||
libceres-dev \
|
||||
libglpk-dev \
|
||||
libopencv-dev \
|
||||
zsh \
|
||||
qt6-base-dev qt6-declarative-dev libqt6svg6-dev libqt6websockets6-dev
|
||||
|
||||
#update CMake
|
||||
sudo apt purge --auto-remove cmake
|
||||
cd /tmp
|
||||
wget https://cmake.org/files/v3.18/cmake-3.18.4-Linux-x86_64.sh
|
||||
sudo sh cmake-3.18.4-Linux-x86_64.sh --skip-license --prefix=/usr/local
|
||||
rm cmake-3.18.4-Linux-x86_64.sh
|
||||
CMAKE_VER=$(curl --silent https://cmake.org/files/LatestRelease/cmake-latest-files-v1.json | jq -r .version.string)
|
||||
wget https://cmake.org/files/LatestRelease/cmake-$CMAKE_VER-linux-x86_64.sh
|
||||
sudo sh cmake-*.sh --skip-license --prefix=/usr/local
|
||||
rm cmake-*.sh
|
||||
|
|
|
|||
|
|
@ -3,11 +3,10 @@
|
|||
FACTOR=$1
|
||||
set -ex
|
||||
cd Polyhedron/demo
|
||||
LIST_OF_PLUGINS=$(/usr/local/bin/cmake --build . -t help | egrep 'plugin$' |& cut -d\ -f2)
|
||||
/usr/local/bin/cmake -S Polyhedron -B build -DCGAL_DIR=$2
|
||||
LIST_OF_PLUGINS=$(/usr/local/bin/cmake --build build -t help | egrep 'plugin$' |& cut -d\ -f2)
|
||||
PLUGINS_ARRAY=(${LIST_OF_PLUGINS});
|
||||
NB_OF_PLUGINS=${#PLUGINS_ARRAY[@]}
|
||||
DEL=$(($NB_OF_PLUGINS / 4))
|
||||
mkdir build
|
||||
cd build
|
||||
/usr/local/bin/cmake -DCGAL_DIR=$2 ../Polyhedron
|
||||
make -j2 ${PLUGINS_ARRAY[@]:$(($FACTOR * $DEL)):$((($FACTOR + 1) * $DEL))}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ jobs:
|
|||
name: remove label
|
||||
steps:
|
||||
- name: removelabel
|
||||
uses: actions/github-script@v6
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
script: |
|
||||
|
|
@ -21,7 +21,7 @@ jobs:
|
|||
name: "Tested",
|
||||
});
|
||||
- name: Post address
|
||||
uses: actions/github-script@v6
|
||||
uses: actions/github-script@v7
|
||||
if: ${{ success() }}
|
||||
with:
|
||||
script: |
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ jobs:
|
|||
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/github-script@v6
|
||||
- uses: actions/github-script@v7
|
||||
id: get_round
|
||||
with:
|
||||
result-encoding: string
|
||||
|
|
@ -38,7 +38,7 @@ jobs:
|
|||
}
|
||||
}
|
||||
return 'stop'
|
||||
- uses: actions/github-script@v6
|
||||
- uses: actions/github-script@v7
|
||||
if: steps.get_round.outputs.result != 'stop'
|
||||
id: get_pr_number
|
||||
with:
|
||||
|
|
@ -49,7 +49,7 @@ jobs:
|
|||
return pr_number
|
||||
|
||||
- name: Emoji-comment
|
||||
uses: actions/github-script@v6
|
||||
uses: actions/github-script@v7
|
||||
if: steps.get_round.outputs.result != 'stop'
|
||||
with:
|
||||
script: |
|
||||
|
|
@ -60,7 +60,7 @@ jobs:
|
|||
content: 'rocket'
|
||||
})
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
name: "checkout branch"
|
||||
if: steps.get_round.outputs.result != 'stop'
|
||||
with:
|
||||
|
|
@ -136,7 +136,7 @@ jobs:
|
|||
fi
|
||||
|
||||
- name: Post address
|
||||
uses: actions/github-script@v6
|
||||
uses: actions/github-script@v7
|
||||
if: ${{ success() && steps.get_round.outputs.result != 'stop' }}
|
||||
with:
|
||||
script: |
|
||||
|
|
@ -154,7 +154,7 @@ jobs:
|
|||
- name: Post error
|
||||
env:
|
||||
ERRORMSG: ${{steps.build_and_run.outputs.DoxygenError}}
|
||||
uses: actions/github-script@v6
|
||||
uses: actions/github-script@v7
|
||||
if: ${{ failure() && steps.get_round.outputs.result != 'stop' }}
|
||||
with:
|
||||
script: |
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: install dependencies
|
||||
run: |
|
||||
.github/install.sh
|
||||
|
|
|
|||
|
|
@ -11,25 +11,25 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: install dependencies
|
||||
run: sudo apt-get install -y libboost-dev libboost-program-options-dev libmpfr-dev libeigen3-dev
|
||||
- name: configure all
|
||||
run: |
|
||||
set -e
|
||||
mkdir build && cd build && CXX=clang++ cmake -DWITH_examples=ON -DWITH_tests=ON -DWITH_demos=ON -DBUILD_TESTING=ON ..
|
||||
mkdir build && cd build && CXX=clang++ cmake -DWITH_examples=ON -DWITH_tests=ON -DWITH_demos=ON -DCGAL_ENABLE_TESTING=ON ..
|
||||
ctest -L Installation -j $(getconf _NPROCESSORS_ONLN)
|
||||
|
||||
cmake-testsuite-with-qt5:
|
||||
cmake-testsuite-with-qt:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: install dependencies
|
||||
run: sudo bash -e .github/install.sh
|
||||
- name: configure all
|
||||
run: |
|
||||
set -e
|
||||
mkdir build && cd build && CXX=clang++ cmake -DWITH_examples=ON -DWITH_tests=ON -DWITH_demos=ON -DBUILD_TESTING=ON ..
|
||||
mkdir build && cd build && CXX=clang++ cmake -DWITH_examples=ON -DWITH_tests=ON -DWITH_demos=ON -DCGAL_ENABLE_TESTING=ON ..
|
||||
ctest -L Installation -j $(getconf _NPROCESSORS_ONLN)
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: delete directory
|
||||
run: |
|
||||
set -x
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ jobs:
|
|||
batch_1:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: install dependencies
|
||||
run: .github/install.sh
|
||||
- name: run1
|
||||
|
|
@ -17,7 +17,7 @@ jobs:
|
|||
batch_2:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: install dependencies
|
||||
run: .github/install.sh
|
||||
- name: run2
|
||||
|
|
@ -25,7 +25,7 @@ jobs:
|
|||
batch_3:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: install dependencies
|
||||
run: .github/install.sh
|
||||
- name: run3
|
||||
|
|
@ -33,7 +33,7 @@ jobs:
|
|||
batch_4:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: install dependencies
|
||||
run: .github/install.sh
|
||||
- name: run4
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ jobs:
|
|||
if: (github.event.comment.user.login == 'sloriot' || github.event.comment.user.login == 'lrineau') && contains(github.event.comment.body, '/testme')
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/github-script@v6
|
||||
- uses: actions/github-script@v7
|
||||
id: get_label
|
||||
with:
|
||||
result-encoding: string
|
||||
|
|
@ -63,7 +63,7 @@ jobs:
|
|||
ssh ${HOST} "${PATH_TO_SCRIPT}/run_testsuite_from_branch_name.sh $USER_NAME $BRANCH_NAME $BASE $PR_NUMBER"
|
||||
done
|
||||
- name: Post address
|
||||
uses: actions/github-script@v6
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
const address = "Testsuite launched. Results will appear on the following page: https://cgal.geometryfactory.com/~cgaltest/test_suite/TESTRESULTS/index.shtml "
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
messages: ${{ steps.cat_output.outputs.message }}
|
||||
steps:
|
||||
- name: checkout
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
- name: run script
|
||||
run: |
|
||||
chmod +x ./Scripts/developer_scripts/list_cgal_workflows_last_run.sh
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ jobs:
|
|||
reuse:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: REUSE version
|
||||
uses: fsfe/reuse-action@v2
|
||||
with:
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ jobs:
|
|||
messages: ${{ steps.set-result.outputs.result }}
|
||||
steps:
|
||||
- name: get informations and prepare email
|
||||
uses: actions/github-script@v6
|
||||
uses: actions/github-script@v7
|
||||
id: set-result
|
||||
with:
|
||||
result-encoding: string
|
||||
|
|
|
|||
|
|
@ -178,12 +178,6 @@ GraphicsView/demo/Triangulation_2/Makefile
|
|||
GraphicsView/demo/Triangulation_2/Regular_triangulation_2
|
||||
GraphicsView/demo/Triangulation_2/qrc_*.cxx
|
||||
GraphicsView/demo/Triangulation_2/ui_*.h
|
||||
GraphicsView/src/CGAL_Qt5/*.dll
|
||||
GraphicsView/src/CGAL_Qt5/*.lib
|
||||
GraphicsView/src/CGAL_Qt5/*.so
|
||||
GraphicsView/src/CGAL_Qt5/Makefile
|
||||
GraphicsView/src/CGAL_Qt5/moc_*.cxx
|
||||
GraphicsView/src/CGAL_Qt5/qrc_*.cxx
|
||||
HalfedgeDS/test/HalfedgeDS/cgal_test_with_cmake
|
||||
HalfedgeDS/test/HalfedgeDS/test_hds
|
||||
HalfedgeDS/test/HalfedgeDS/test_hds_decorator
|
||||
|
|
@ -879,7 +873,6 @@ Surface_mesher/demo/Surface_mesher/.*.deps
|
|||
Surface_mesher/demo/Surface_mesher/.qglviewer.xml
|
||||
Surface_mesher/demo/Surface_mesher/Makefile
|
||||
Surface_mesher/demo/Surface_mesher/Surface_mesher
|
||||
Surface_mesher/demo/Surface_mesher/Surface_mesher_Qt5_Demo
|
||||
Surface_mesher/demo/Surface_mesher/VTK/Makefile
|
||||
Surface_mesher/demo/Surface_mesher/VTK/mesh_a_3D_image
|
||||
Surface_mesher/demo/Surface_mesher/VTK/mesh_a_VTK_3D_image
|
||||
|
|
@ -894,7 +887,6 @@ Surface_mesher/demo/Surface_mesher/out*.off
|
|||
Surface_mesher/demo/Surface_mesher/polyhedron_remesher
|
||||
Surface_mesher/demo/Surface_mesher/polyhedron_remesher_with_edges
|
||||
Surface_mesher/demo/Surface_mesher/qrc_*.c*
|
||||
Surface_mesher/demo/Surface_mesher/qt5-demo
|
||||
Surface_mesher/demo/Surface_mesher/ui_*.h
|
||||
Surface_mesher/doxygen
|
||||
Surface_mesher/examples/Surface_mesher/.*.deps
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ int main(int argc, char **argv)
|
|||
app.setOrganizationName("INRIA");
|
||||
app.setApplicationName("AABB tree demo");
|
||||
|
||||
// Import resources from libCGALQt (Qt5).
|
||||
// Import resources from libCGALQt (Qt6).
|
||||
CGAL_QT_INIT_RESOURCES;
|
||||
|
||||
MainWindow mainWindow;
|
||||
|
|
@ -49,12 +49,3 @@ int main(int argc, char **argv)
|
|||
|
||||
return app.exec();
|
||||
}
|
||||
|
||||
# include "Scene.cpp"
|
||||
# include "Scene_moc.cpp"
|
||||
# include "benchmarks.cpp"
|
||||
# include "Viewer.cpp"
|
||||
# include "Viewer_moc.cpp"
|
||||
# include "MainWindow.cpp"
|
||||
# include "MainWindow_moc.cpp"
|
||||
|
||||
|
|
|
|||
|
|
@ -6,73 +6,46 @@ project(AABB_tree_Demo)
|
|||
# Find includes in corresponding build directories
|
||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||
|
||||
# Instruct CMake to run moc automatically when needed.
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
if(NOT POLICY CMP0070 AND POLICY CMP0053)
|
||||
# Only set CMP0053 to OLD with CMake<3.10, otherwise there is a warning.
|
||||
cmake_policy(SET CMP0053 OLD)
|
||||
endif()
|
||||
# Find CGAL and CGAL Qt6
|
||||
find_package(CGAL REQUIRED OPTIONAL_COMPONENTS Qt6)
|
||||
|
||||
if(POLICY CMP0071)
|
||||
cmake_policy(SET CMP0071 NEW)
|
||||
endif()
|
||||
# Find Qt6 itself
|
||||
find_package(Qt6 QUIET COMPONENTS Gui OpenGL)
|
||||
|
||||
# Include this package's headers first
|
||||
include_directories(BEFORE ./ ./include)
|
||||
if(CGAL_Qt6_FOUND AND Qt6_FOUND)
|
||||
|
||||
# Find CGAL and CGAL Qt5
|
||||
find_package(CGAL REQUIRED OPTIONAL_COMPONENTS Qt5)
|
||||
add_definitions(-DQT_NO_KEYWORDS)
|
||||
|
||||
# Find Qt5 itself
|
||||
find_package(Qt5 QUIET COMPONENTS Widgets OpenGL)
|
||||
# Instruct CMake to run moc/ui/rcc automatically when needed.
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_AUTOUIC ON)
|
||||
set(CMAKE_AUTORCC ON)
|
||||
|
||||
if(CGAL_Qt5_FOUND AND Qt5_FOUND)
|
||||
|
||||
qt5_wrap_ui(UI_FILES MainWindow.ui)
|
||||
|
||||
include(AddFileDependencies)
|
||||
|
||||
qt5_generate_moc("MainWindow.h" "${CMAKE_CURRENT_BINARY_DIR}/MainWindow_moc.cpp")
|
||||
add_file_dependencies(MainWindow_moc.cpp "${CMAKE_CURRENT_SOURCE_DIR}/MainWindow.h")
|
||||
|
||||
qt5_generate_moc("Viewer.h" "${CMAKE_CURRENT_BINARY_DIR}/Viewer_moc.cpp")
|
||||
add_file_dependencies(Viewer_moc.cpp "${CMAKE_CURRENT_SOURCE_DIR}/Viewer.h")
|
||||
|
||||
qt5_generate_moc("Scene.h" "${CMAKE_CURRENT_BINARY_DIR}/Scene_moc.cpp")
|
||||
add_file_dependencies(Scene_moc.cpp "${CMAKE_CURRENT_SOURCE_DIR}/Scene.h")
|
||||
|
||||
qt5_add_resources(CGAL_Qt5_RESOURCE_FILES AABB_demo.qrc)
|
||||
|
||||
add_file_dependencies(
|
||||
AABB_demo.cpp "${CMAKE_CURRENT_BINARY_DIR}/MainWindow_moc.cpp"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/Viewer_moc.cpp"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/Scene_moc.cpp")
|
||||
|
||||
add_executable(
|
||||
AABB_demo AABB_demo.cpp ${UI_FILES} ${CGAL_Qt5_RESOURCE_FILES}
|
||||
#${CGAL_Qt5_MOC_FILES}
|
||||
qt_add_executable(
|
||||
AABB_demo AABB_demo.cpp Scene.cpp benchmarks.cpp Viewer.cpp MainWindow.cpp
|
||||
MainWindow.ui AABB_demo.qrc
|
||||
)
|
||||
# Link with Qt libraries
|
||||
target_link_libraries(AABB_demo PRIVATE Qt5::Widgets Qt5::OpenGL
|
||||
CGAL::CGAL CGAL::CGAL_Qt5)
|
||||
target_link_libraries(AABB_demo PRIVATE Qt6::Gui Qt6::OpenGL
|
||||
CGAL::CGAL CGAL::CGAL_Qt6)
|
||||
|
||||
add_to_cached_list(CGAL_EXECUTABLE_TARGETS AABB_demo)
|
||||
|
||||
include(${CGAL_MODULES_DIR}/CGAL_add_test.cmake)
|
||||
cgal_add_compilation_test(AABB_demo)
|
||||
|
||||
else(CGAL_Qt5_FOUND AND Qt5_FOUND)
|
||||
else(CGAL_Qt6_FOUND AND Qt6_FOUND)
|
||||
|
||||
set(AABB_MISSING_DEPS "")
|
||||
|
||||
if(NOT CGAL_Qt5_FOUND)
|
||||
set(AABB_MISSING_DEPS "CGAL_Qt5, ${AABB_MISSING_DEPS}")
|
||||
if(NOT CGAL_Qt6_FOUND)
|
||||
set(AABB_MISSING_DEPS "CGAL_Qt6, ${AABB_MISSING_DEPS}")
|
||||
endif()
|
||||
|
||||
if(NOT Qt5_FOUND)
|
||||
set(AABB_MISSING_DEPS "Qt5, ${AABB_MISSING_DEPS}")
|
||||
if(NOT Qt6_FOUND)
|
||||
set(AABB_MISSING_DEPS "Qt6, ${AABB_MISSING_DEPS}")
|
||||
endif()
|
||||
|
||||
message("NOTICE: This demo requires ${AABB_MISSING_DEPS}, and will not be compiled.")
|
||||
|
||||
endif(CGAL_Qt5_FOUND AND Qt5_FOUND)
|
||||
endif(CGAL_Qt6_FOUND AND Qt6_FOUND)
|
||||
|
|
|
|||
|
|
@ -10,15 +10,19 @@
|
|||
#include <QSettings>
|
||||
#include <QHeaderView>
|
||||
#include <QClipboard>
|
||||
#include <QInputDialog>
|
||||
|
||||
#include "ui_MainWindow.h"
|
||||
|
||||
MainWindow::MainWindow(QWidget* parent)
|
||||
: CGAL::Qt::DemosMainWindow(parent)
|
||||
: CGAL::Qt::DemosMainWindow(parent)
|
||||
{
|
||||
ui = new Ui::MainWindow;
|
||||
ui->setupUi(this);
|
||||
|
||||
this->addAboutDemo(":/cgal/AABB_demo/about.html");
|
||||
this->addAboutCGAL();
|
||||
|
||||
// saves some pointers from ui, for latter use.
|
||||
m_pViewer = ui->viewer;
|
||||
|
||||
|
|
@ -418,7 +422,3 @@ void MainWindow::on_actionCopy_snapshot_triggered()
|
|||
qb->setImage(snapshot);
|
||||
QApplication::restoreOverrideCursor();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
#ifndef MAINWINDOW_H
|
||||
#define MAINWINDOW_H
|
||||
|
||||
#include <QtOpenGL/qgl.h>
|
||||
#include <CGAL/Qt/DemosMainWindow.h>
|
||||
|
||||
class QDragEnterEvent;
|
||||
|
|
@ -12,7 +11,6 @@ namespace Ui {
|
|||
class MainWindow;
|
||||
}
|
||||
|
||||
|
||||
class MainWindow :
|
||||
public CGAL::Qt::DemosMainWindow
|
||||
{
|
||||
|
|
@ -21,12 +19,12 @@ public:
|
|||
MainWindow(QWidget* parent = nullptr);
|
||||
~MainWindow();
|
||||
|
||||
public slots:
|
||||
public Q_SLOTS:
|
||||
void updateViewerBBox();
|
||||
void open(QString filename);
|
||||
void setAddKeyFrameKeyboardModifiers(Qt::KeyboardModifiers);
|
||||
|
||||
protected slots:
|
||||
protected Q_SLOTS:
|
||||
|
||||
// settings
|
||||
void quit();
|
||||
|
|
|
|||
|
|
@ -618,7 +618,7 @@ void Scene::draw(CGAL::QGLViewer* viewer)
|
|||
vao[0].bind();
|
||||
attrib_buffers(viewer);
|
||||
rendering_program.bind();
|
||||
color.setRgbF(0.7,0.0,0.0);
|
||||
color.setRgbF(0.7f,0.0f,0.0f);
|
||||
rendering_program.setUniformValue(colorLocation, color);
|
||||
rendering_program.setUniformValue(fLocation, fMatrix);
|
||||
gl->glDrawArrays(GL_POINTS, 0, static_cast<GLsizei>(pos_points.size()/3));
|
||||
|
|
@ -631,7 +631,7 @@ void Scene::draw(CGAL::QGLViewer* viewer)
|
|||
vao[1].bind();
|
||||
attrib_buffers(viewer);
|
||||
rendering_program.bind();
|
||||
color.setRgbF(0.0,0.7,0.0);
|
||||
color.setRgbF(0.0f,0.7f,0.0f);
|
||||
rendering_program.setUniformValue(colorLocation, color);
|
||||
rendering_program.setUniformValue(fLocation, fMatrix);
|
||||
gl->glDrawArrays(GL_LINES, 0, static_cast<GLsizei>(pos_lines.size()/3));
|
||||
|
|
@ -669,7 +669,7 @@ void Scene::draw(CGAL::QGLViewer* viewer)
|
|||
vao[3].bind();
|
||||
attrib_buffers(viewer);
|
||||
rendering_program.bind();
|
||||
color.setRgbF(1.0,0.0,0.0);
|
||||
color.setRgbF(1.0f,0.0f,0.0f);
|
||||
rendering_program.setUniformValue(colorLocation, color);
|
||||
rendering_program.setUniformValue(fLocation, fMatrix);
|
||||
gl->glDrawArrays(GL_LINES, 0, static_cast<GLsizei>(pos_cut_segments.size()/3));
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
#ifndef SCENE_H
|
||||
#define SCENE_H
|
||||
|
||||
#include <QtOpenGL/qgl.h>
|
||||
#include <iostream>
|
||||
#include <cmath>
|
||||
|
||||
|
|
@ -77,7 +76,6 @@ private:
|
|||
};
|
||||
|
||||
public:
|
||||
QGLContext* context;
|
||||
void draw(CGAL::QGLViewer*);
|
||||
void update_bbox();
|
||||
Bbox bbox() { return m_bbox; }
|
||||
|
|
@ -173,7 +171,7 @@ private:
|
|||
void attrib_buffers(CGAL::QGLViewer*);
|
||||
void compile_shaders();
|
||||
void compute_texture(int, int, Color_ramp, Color_ramp);
|
||||
private slots:
|
||||
private Q_SLOTS:
|
||||
void updateCutPlane();
|
||||
|
||||
public:
|
||||
|
|
@ -255,7 +253,7 @@ public:
|
|||
|
||||
|
||||
|
||||
public slots:
|
||||
public Q_SLOTS:
|
||||
// cutting plane
|
||||
void cutting_plane(bool override = false);
|
||||
void changed();
|
||||
|
|
|
|||
|
|
@ -1,9 +1,6 @@
|
|||
#include "Viewer.h"
|
||||
#include "Scene.h"
|
||||
#include <QMouseEvent>
|
||||
#include <QGLFunctions>
|
||||
#include <CGAL/Qt/CreateOpenGLContext.h>
|
||||
|
||||
Viewer::Viewer(QWidget* parent)
|
||||
: CGAL::QGLViewer(parent),
|
||||
m_pScene(nullptr),
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#include "Scene.h"
|
||||
#include "Refiner.h"
|
||||
#include <QInputDialog>
|
||||
#include <CGAL/Memory_sizer.h>
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,9 @@ and the primitives stored in the AABB tree.
|
|||
|
||||
\cgalRefines{SearchGeomTraits_3}
|
||||
|
||||
\cgalHasModel All models of the concept `Kernel`
|
||||
\cgalHasModelsBegin
|
||||
\cgalHasModelsBare{All models of the concept `Kernel`}
|
||||
\cgalHasModelsEnd
|
||||
|
||||
\sa `CGAL::AABB_traits<AABBGeomTraits,AABBPrimitive>`
|
||||
\sa `CGAL::AABB_tree<AABBTraits>`
|
||||
|
|
|
|||
|
|
@ -12,11 +12,13 @@ The concept `AABBPrimitive` describes the requirements for the primitives stored
|
|||
|
||||
The `Primitive` type can be, e.g., a wrapper around a `Handle`. Assume for instance that the input objects are the triangle faces of a mesh stored as a `CGAL::Polyhedron_3`. The `Datum` would be a `Triangle_3` and the `Id` would be a polyhedron `Face_handle`. Method `datum()` can return either a `Triangle_3` constructed on the fly from the face handle or a `Triangle_3` stored internally. This provides a way for the user to trade memory for efficiency.
|
||||
|
||||
\cgalHasModel `CGAL::AABB_primitive<Id,ObjectPropertyMap,PointPropertyMap,Tag_false,CacheDatum>`
|
||||
\cgalHasModel `CGAL::AABB_segment_primitive<Iterator,CacheDatum>`
|
||||
\cgalHasModel `CGAL::AABB_triangle_primitive<Iterator,CacheDatum>`
|
||||
\cgalHasModel `CGAL::AABB_halfedge_graph_segment_primitive<HalfedgeGraph,VertexPointPMap,Tag_false,CacheDatum>`
|
||||
\cgalHasModel `CGAL::AABB_face_graph_triangle_primitive<FaceGraph,VertexPointPMap,Tag_false,CacheDatum>`
|
||||
\cgalHasModelsBegin
|
||||
\cgalHasModels{CGAL::AABB_primitive<Id,ObjectPropertyMap,PointPropertyMap,Tag_false,CacheDatum>}
|
||||
\cgalHasModels{CGAL::AABB_segment_primitive<Iterator,CacheDatum>}
|
||||
\cgalHasModels{CGAL::AABB_triangle_primitive<Iterator,CacheDatum>}
|
||||
\cgalHasModels{CGAL::AABB_halfedge_graph_segment_primitive<HalfedgeGraph,VertexPointPMap,Tag_false,CacheDatum>}
|
||||
\cgalHasModels{CGAL::AABB_face_graph_triangle_primitive<FaceGraph,VertexPointPMap,Tag_false,CacheDatum>}
|
||||
\cgalHasModelsEnd
|
||||
*/
|
||||
|
||||
class AABBPrimitive {
|
||||
|
|
|
|||
|
|
@ -21,9 +21,11 @@ The `Datum` would be a `Triangle_3` and the `Id` a `std::size_t`. The shared dat
|
|||
`std::vector<Triangle_3>`.
|
||||
The method `datum(const Shared_data&)` then returns a triangle from the vector.
|
||||
|
||||
\cgalHasModel `CGAL::AABB_primitive<Id,ObjectPropertyMap,PointPropertyMap,Tag_true,CacheDatum>`
|
||||
\cgalHasModel `CGAL::AABB_halfedge_graph_segment_primitive<HalfedgeGraph,VertexPointPMap,Tag_true,CacheDatum>`
|
||||
\cgalHasModel `CGAL::AABB_face_graph_triangle_primitive<FaceGraph,VertexPointPMap,Tag_true,CacheDatum>`
|
||||
\cgalHasModelsBegin
|
||||
\cgalHasModels{CGAL::AABB_primitive<Id,ObjectPropertyMap,PointPropertyMap,Tag_true,CacheDatum>}
|
||||
\cgalHasModels{CGAL::AABB_halfedge_graph_segment_primitive<HalfedgeGraph,VertexPointPMap,Tag_true,CacheDatum>}
|
||||
\cgalHasModels{CGAL::AABB_face_graph_triangle_primitive<FaceGraph,VertexPointPMap,Tag_true,CacheDatum>}
|
||||
\cgalHasModelsEnd
|
||||
*/
|
||||
|
||||
class AABBPrimitiveWithSharedData {
|
||||
|
|
|
|||
|
|
@ -9,7 +9,9 @@ define the Intersection_distance functor.
|
|||
|
||||
\cgalRefines{AABBGeomTraits}
|
||||
|
||||
\cgalHasModel All models of the concept `Kernel`
|
||||
\cgalHasModelsBegin
|
||||
\cgalHasModelsBare{All models of the concept `Kernel`}
|
||||
\cgalHasModelsEnd
|
||||
|
||||
\sa `CGAL::AABB_traits<AABBGeomTraits,AABBPrimitive>`
|
||||
\sa `CGAL::AABB_tree<AABBTraits>`
|
||||
|
|
|
|||
|
|
@ -7,7 +7,9 @@ The concept `AABBRayIntersectionTraits` is a refinement of the concept
|
|||
`AABBTraits` it also requires function objects to calculate the
|
||||
distance of an intersection along a ray.
|
||||
|
||||
\cgalHasModel `CGAL::AABB_traits<AABBGeomTraits,AABBPrimitive>`
|
||||
\cgalHasModelsBegin
|
||||
\cgalHasModels{CGAL::AABB_traits<AABBGeomTraits,AABBPrimitive>}
|
||||
\cgalHasModelsEnd
|
||||
|
||||
\sa `CGAL::AABB_tree<AABBTraits>`
|
||||
\sa `AABBPrimitive`
|
||||
|
|
|
|||
|
|
@ -5,7 +5,9 @@
|
|||
|
||||
The concept `AABBTraits` provides the geometric primitive types and methods for the class `CGAL::AABB_tree<AABBTraits>`.
|
||||
|
||||
\cgalHasModel `CGAL::AABB_traits<AABBGeomTraits,AABBPrimitive>`
|
||||
\cgalHasModelsBegin
|
||||
\cgalHasModels{CGAL::AABB_traits<AABBGeomTraits,AABBPrimitive>}
|
||||
\cgalHasModelsEnd
|
||||
|
||||
\cgalRefines{SearchGeomTraits_3}
|
||||
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ namespace CGAL {
|
|||
* while the AABB tree holding the primitive is in use.
|
||||
* The triangle type of the primitive (`Datum`) is `CGAL::Kernel_traits< boost::property_traits< VertexPointPMap >::%value_type >::%Kernel::Triangle_3`.
|
||||
*
|
||||
* \cgalModels `AABBPrimitiveWithSharedData`
|
||||
* \cgalModels{AABBPrimitiveWithSharedData}
|
||||
*
|
||||
*\tparam FaceGraph is a model of the face graph concept.
|
||||
*\tparam VertexPointPMap is a property map with `boost::graph_traits<FaceGraph>::%vertex_descriptor`
|
||||
|
|
|
|||
|
|
@ -41,8 +41,10 @@ namespace CGAL {
|
|||
* of `VertexPointPMap` (using the `Kernel_traits` mechanism).
|
||||
* The segment type of the primitive (`Datum`) is `CGAL::Kernel_traits< boost::property_traits< VertexPointPMap >::%value_type >::%Kernel::Segment_3`.
|
||||
*
|
||||
* \cgalModels `AABBPrimitive` if `OneHalfedgeGraphPerTree` is `CGAL::Tag_false`,
|
||||
* and `AABBPrimitiveWithSharedData` if `OneHalfedgeGraphPerTree` is `CGAL::Tag_true`.
|
||||
* \cgalModelsBareBegin
|
||||
* \cgalModelsBare{`AABBPrimitive` if `OneHalfedgeGraphPerTree` is `CGAL::Tag_false`}
|
||||
* \cgalModelsBare{`AABBPrimitiveWithSharedData` if `OneHalfedgeGraphPerTree` is `CGAL::Tag_true`}
|
||||
* \cgalModelsBareEnd
|
||||
*
|
||||
* \tparam HalfedgeGraph is a model of the halfedge graph concept.
|
||||
* as key type and a \cgal Kernel `Point_3` as value type.
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ namespace CGAL {
|
|||
/// AABB tree is built should not be deleted while the AABB tree
|
||||
/// is in use.
|
||||
///
|
||||
/// \cgalModels `AABBPrimitive`
|
||||
/// \cgalModels{AABBPrimitive}
|
||||
/// \tparam GeomTraits must provide a \c %Point_3
|
||||
/// type, used as \c Point, and a \c %Segment_3 type, used as \c
|
||||
/// Datum and constructible from two arguments of type \c
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ namespace CGAL {
|
|||
/// the polyhedron from which the AABB tree is built should not be
|
||||
/// deleted while the AABB tree is in use.
|
||||
///
|
||||
/// \cgalModels `AABBPrimitive`
|
||||
/// \cgalModels{AABBPrimitive}
|
||||
/// \tparam GeomTraits must provides a \c %Point_3
|
||||
/// type, used as \c Point, and a \c %Triangle_3 type, used as \c
|
||||
/// Datum and constructible from three arguments of type \c
|
||||
|
|
|
|||
|
|
@ -53,8 +53,10 @@ public:
|
|||
* The two property maps which are template parameters of the class enable to get the datum and the reference point of
|
||||
* the primitive from the identifier. The last template parameter controls whether the primitive class holds a copy of the datum.
|
||||
*
|
||||
* \cgalModels `AABBPrimitive` if `ExternalPropertyMaps` is `CGAL::Tag_false`.
|
||||
* \cgalModels `AABBPrimitiveWithSharedData` if `ExternalPropertyMaps` is `CGAL::Tag_true`.
|
||||
* \cgalModelsBareBegin
|
||||
* \cgalModelsBare{`AABBPrimitive` if `ExternalPropertyMaps` is `CGAL::Tag_false`}
|
||||
* \cgalModelsBare{`AABBPrimitiveWithSharedData` if `ExternalPropertyMaps` is `CGAL::Tag_true`}
|
||||
* \cgalModelsBareEnd
|
||||
*
|
||||
* \tparam ObjectPropertyMap is a model of `ReadablePropertyMap` with `Id` as
|
||||
* `key_type`. It must be a model of `CopyConstructible`, `DefaultConstructible`, and `CopyAssignable`.
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ namespace internal {
|
|||
* The iterator from which the primitive is built should not be invalided
|
||||
* while the AABB tree holding the primitive is in use.
|
||||
*
|
||||
* \cgalModels `AABBPrimitive`
|
||||
* \cgalModels{AABBPrimitive}
|
||||
*
|
||||
* \tparam GeomTraits is a traits class providing the nested type `Point_3` and `Segment_3`.
|
||||
* It also provides the functor `Construct_source_3` that has an operator taking a `Segment_3`
|
||||
|
|
|
|||
|
|
@ -149,9 +149,8 @@ class AABB_tree;
|
|||
/// computations, and it handles points as query type for distance
|
||||
/// queries.
|
||||
///
|
||||
/// \cgalModels AABBTraits
|
||||
/// \cgalModels AABBRayIntersectionTraits
|
||||
|
||||
/// \cgalModels{AABBTraits,AABBRayIntersectionTraits}
|
||||
///
|
||||
/// \tparam GeomTraits must be a model of the concept \ref AABBGeomTraits,
|
||||
/// and provide the geometric types as well as the intersection tests and computations.
|
||||
/// \tparam Primitive provide the type of primitives stored in the AABB_tree.
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ namespace internal {
|
|||
* The iterator from which the primitive is built should not be invalided
|
||||
* while the AABB tree holding the primitive is in use.
|
||||
*
|
||||
* \cgalModels `AABBPrimitive`
|
||||
* \cgalModels{AABBPrimitive}
|
||||
*
|
||||
* \tparam GeomTraits is a traits class providing the nested type `Point_3` and `Triangle_3`.
|
||||
* It also provides the functor `Construct_vertex_3` that has an operator taking a `Triangle_3`
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ namespace CGAL {
|
|||
// the TriangleMesh from which the AABB tree is built should not be
|
||||
// deleted while the AABB tree is in use.
|
||||
//
|
||||
// \cgalModels `AABBPrimitive`
|
||||
// \cgalModels{AABBPrimitive}
|
||||
// \tparam GeomTraits must provides a \c %Point_3
|
||||
// type, used as \c Point, and a \c %Triangle_3 type, used as \c
|
||||
// Datum and constructible from three arguments of type \c
|
||||
|
|
|
|||
|
|
@ -11,7 +11,9 @@ together with a few geometric predicates and constructions on these objects.
|
|||
|
||||
\cgalRefines{DelaunayTriangulationTraits_3}
|
||||
|
||||
\cgalHasModel All models of `Kernel`.
|
||||
\cgalHasModelsBegin
|
||||
\cgalHasModelsBare{All models of the concept `Kernel`}
|
||||
\cgalHasModelsEnd
|
||||
*/
|
||||
class AdvancingFrontSurfaceReconstructionTraits_3
|
||||
{
|
||||
|
|
|
|||
|
|
@ -169,8 +169,8 @@ Every \cgal `Kernel` comes with two <I>real number types</I>
|
|||
(number types embeddable into the real numbers). One of them is a
|
||||
`FieldNumberType`, and the other a `RingNumberType`. The
|
||||
coordinates of the basic kernel objects (points, vectors, etc.) come
|
||||
from one of these types (the `FieldNumberType` in case of Cartesian
|
||||
kernels, and the `RingNumberType` for Homogeneous kernels).
|
||||
from one of these types (the `FieldNumberType` in case of %Cartesian
|
||||
kernels, and the `RingNumberType` for %Homogeneous kernels).
|
||||
|
||||
The concept `FieldNumberType` combines the requirements of the
|
||||
concepts `Field` and `RealEmbeddable`, while
|
||||
|
|
@ -277,4 +277,3 @@ subsequent chapters.
|
|||
|
||||
*/
|
||||
} /* namespace CGAL */
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ namespace CGAL {
|
|||
|
||||
An instance of `Algebraic_structure_traits` is a model of `AlgebraicStructureTraits`, where <span class="textsc">T</span> is the associated type.
|
||||
|
||||
\cgalModels `AlgebraicStructureTraits`
|
||||
\cgalModels{AlgebraicStructureTraits}
|
||||
|
||||
*/
|
||||
template< typename T >
|
||||
|
|
@ -22,7 +22,7 @@ namespace CGAL {
|
|||
Tag indicating that a type is a model of the
|
||||
`EuclideanRing` concept.
|
||||
|
||||
\cgalModels `DefaultConstructible`
|
||||
\cgalModels{DefaultConstructible}
|
||||
|
||||
\sa `EuclideanRing`
|
||||
\sa `AlgebraicStructureTraits`
|
||||
|
|
@ -38,7 +38,7 @@ struct Euclidean_ring_tag : public Unique_factorization_domain_tag {
|
|||
|
||||
Tag indicating that a type is a model of the `Field` concept.
|
||||
|
||||
\cgalModels `DefaultConstructible`
|
||||
\cgalModels{DefaultConstructible}
|
||||
|
||||
\sa `Field`
|
||||
\sa `AlgebraicStructureTraits`
|
||||
|
|
@ -54,7 +54,7 @@ struct Field_tag : public Integral_domain_tag {
|
|||
|
||||
Tag indicating that a type is a model of the `FieldWithKthRoot` concept.
|
||||
|
||||
\cgalModels `DefaultConstructible`
|
||||
\cgalModels{DefaultConstructible}
|
||||
|
||||
\sa `FieldWithKthRoot`
|
||||
\sa `AlgebraicStructureTraits`
|
||||
|
|
@ -70,7 +70,7 @@ struct Field_with_kth_root_tag : public Field_with_sqrt_tag {
|
|||
|
||||
Tag indicating that a type is a model of the `FieldWithRootOf` concept.
|
||||
|
||||
\cgalModels `DefaultConstructible`
|
||||
\cgalModels{DefaultConstructible}
|
||||
|
||||
\sa `FieldWithRootOf`
|
||||
\sa `AlgebraicStructureTraits`
|
||||
|
|
@ -86,7 +86,7 @@ struct Field_with_root_of_tag : public Field_with_kth_root_tag {
|
|||
|
||||
Tag indicating that a type is a model of the `FieldWithSqrt` concept.
|
||||
|
||||
\cgalModels `DefaultConstructible`
|
||||
\cgalModels{DefaultConstructible}
|
||||
|
||||
\sa `FieldWithSqrt`
|
||||
\sa `AlgebraicStructureTraits`
|
||||
|
|
@ -102,7 +102,7 @@ struct Field_with_sqrt_tag : public Field_tag {
|
|||
|
||||
Tag indicating that a type is a model of the `IntegralDomain` concept.
|
||||
|
||||
\cgalModels `DefaultConstructible`
|
||||
\cgalModels{DefaultConstructible}
|
||||
|
||||
\sa `IntegralDomain`
|
||||
\sa `AlgebraicStructureTraits`
|
||||
|
|
@ -118,7 +118,7 @@ struct Integral_domain_tag : public Integral_domain_without_division_tag {
|
|||
|
||||
Tag indicating that a type is a model of the `IntegralDomainWithoutDivision` concept.
|
||||
|
||||
\cgalModels `DefaultConstructible`
|
||||
\cgalModels{DefaultConstructible}
|
||||
|
||||
\sa `IntegralDomainWithoutDivision`
|
||||
|
||||
|
|
@ -133,7 +133,7 @@ struct Integral_domain_without_division_tag {
|
|||
|
||||
Tag indicating that a type is a model of the `UniqueFactorizationDomain` concept.
|
||||
|
||||
\cgalModels `DefaultConstructible`
|
||||
\cgalModels{DefaultConstructible}
|
||||
|
||||
\sa `UniqueFactorizationDomain`
|
||||
\sa `AlgebraicStructureTraits`
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ namespace CGAL {
|
|||
An instance of `Fraction_traits` is a model of `FractionTraits`,
|
||||
where `T` is the associated type.
|
||||
|
||||
\cgalModels `FractionTraits`
|
||||
\cgalModels{FractionTraits}
|
||||
|
||||
*/
|
||||
template< typename T >
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ namespace CGAL {
|
|||
|
||||
An instance of `Real_embeddable_traits` is a model of `RealEmbeddableTraits`, where <span class="textsc">T</span> is the associated type.
|
||||
|
||||
\cgalModels `RealEmbeddableTraits`
|
||||
\cgalModels{RealEmbeddableTraits}
|
||||
|
||||
*/
|
||||
template< typename T >
|
||||
|
|
|
|||
|
|
@ -28,7 +28,9 @@ algebraic operations within that structure.
|
|||
\sa `CGAL::Field_with_kth_root_tag`
|
||||
\sa `CGAL::Field_with_root_of_tag`
|
||||
|
||||
\cgalHasModel `CGAL::Algebraic_structure_traits<T>`
|
||||
\cgalHasModelsBegin
|
||||
\cgalHasModels{CGAL::Algebraic_structure_traits<T>}
|
||||
\cgalHasModelsEnd
|
||||
|
||||
*/
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
/*!
|
||||
\ingroup PkgAlgebraicFoundationsInteroperabilityConcepts
|
||||
\ingroup PkgAlgebraicFoundationsAlgebraicStructuresConcepts
|
||||
\cgalConcept
|
||||
|
||||
Two types `A` and `B` are a model of the `ExplicitInteroperable`
|
||||
|
|
@ -27,4 +27,3 @@ class ExplicitInteroperable {
|
|||
public:
|
||||
|
||||
}; /* end ExplicitInteroperable */
|
||||
|
||||
|
|
|
|||
|
|
@ -5,20 +5,22 @@
|
|||
The concept `FieldNumberType` combines the requirements of the concepts
|
||||
`Field` and `RealEmbeddable`.
|
||||
A model of `FieldNumberType` can be used as a template parameter
|
||||
for Cartesian kernels.
|
||||
for %Cartesian kernels.
|
||||
|
||||
\cgalRefines{Field,RealEmbeddable}
|
||||
|
||||
\cgalHasModel float
|
||||
\cgalHasModel double
|
||||
\cgalHasModel `CGAL::Gmpq`
|
||||
\cgalHasModel `CGAL::Interval_nt`
|
||||
\cgalHasModel `CGAL::Interval_nt_advanced`
|
||||
\cgalHasModel `CGAL::Lazy_exact_nt<FieldNumberType>`
|
||||
\cgalHasModel `CGAL::Quotient<RingNumberType>`
|
||||
\cgalHasModel `leda_rational`
|
||||
\cgalHasModel `leda_bigfloat`
|
||||
\cgalHasModel `leda_real`
|
||||
\cgalHasModelsBegin
|
||||
\cgalHasModels{float}
|
||||
\cgalHasModels{double}
|
||||
\cgalHasModels{CGAL::Gmpq}
|
||||
\cgalHasModels{CGAL::Interval_nt}
|
||||
\cgalHasModels{CGAL::Interval_nt_advanced}
|
||||
\cgalHasModels{CGAL::Lazy_exact_nt<FieldNumberType>}
|
||||
\cgalHasModels{CGAL::Quotient<RingNumberType>}
|
||||
\cgalHasModels{leda_rational}
|
||||
\cgalHasModels{leda_bigfloat}
|
||||
\cgalHasModels{leda_real}
|
||||
\cgalHasModelsEnd
|
||||
|
||||
\sa `RingNumberType`
|
||||
\sa `Kernel`
|
||||
|
|
@ -32,4 +34,3 @@ public:
|
|||
/// @}
|
||||
|
||||
}; /* end FieldNumberType */
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
/*!
|
||||
\ingroup PkgAlgebraicFoundationsFractionsConcepts
|
||||
\ingroup PkgAlgebraicFoundationsAlgebraicStructuresConcepts
|
||||
\cgalConcept
|
||||
|
||||
A type is considered as a `Fraction`, if there is a reasonable way to
|
||||
|
|
@ -17,4 +17,3 @@ class Fraction {
|
|||
public:
|
||||
|
||||
}; /* end Fraction */
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,9 @@ A model of `FractionTraits` is associated with a type `Type`.
|
|||
In case the associated type is a `Fraction`, a model of `FractionTraits` provides the relevant functionality for decomposing and re-composing as well
|
||||
as the numerator and denominator type.
|
||||
|
||||
\cgalHasModel `CGAL::Fraction_traits<T>`
|
||||
\cgalHasModelsBegin
|
||||
\cgalHasModels{CGAL::Fraction_traits<T>}
|
||||
\cgalHasModelsEnd
|
||||
|
||||
\sa `FractionTraits_::Decompose`
|
||||
\sa `FractionTraits_::Compose`
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
/*!
|
||||
\ingroup PkgAlgebraicFoundationsConcepts
|
||||
\ingroup PkgAlgebraicFoundationsAlgebraicStructuresConcepts
|
||||
\cgalConcept
|
||||
|
||||
A model of the concept `FromDoubleConstructible` is required
|
||||
|
|
@ -27,4 +27,3 @@ FromDoubleConstructible(const double& d);
|
|||
/// @}
|
||||
|
||||
}; /* end FromDoubleConstructible */
|
||||
|
||||
|
|
|
|||
|
|
@ -1,14 +1,16 @@
|
|||
|
||||
/*!
|
||||
\ingroup PkgAlgebraicFoundationsConcepts
|
||||
\ingroup PkgAlgebraicFoundationsAlgebraicStructuresConcepts
|
||||
\cgalConcept
|
||||
|
||||
A model of the concept `FromIntConstructible` is required
|
||||
to be constructible from int.
|
||||
|
||||
\cgalHasModel int
|
||||
\cgalHasModel long
|
||||
\cgalHasModel double
|
||||
\cgalHasModelsBegin
|
||||
\cgalHasModels{int}
|
||||
\cgalHasModels{long}
|
||||
\cgalHasModels{double}
|
||||
\cgalHasModelsEnd
|
||||
|
||||
*/
|
||||
|
||||
|
|
@ -26,4 +28,3 @@ FromIntConstructible(int& i);
|
|||
/// @}
|
||||
|
||||
}; /* end FromIntConstructible */
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
/*!
|
||||
\ingroup PkgAlgebraicFoundationsInteroperabilityConcepts
|
||||
\ingroup PkgAlgebraicFoundationsAlgebraicStructuresConcepts
|
||||
\cgalConcept
|
||||
|
||||
Two types `A` and `B` are a model of the concept
|
||||
|
|
@ -29,4 +29,3 @@ class ImplicitInteroperable {
|
|||
public:
|
||||
|
||||
}; /* end ImplicitInteroperable */
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,9 @@ A model of `RealEmbeddableTraits` is associated to a number type
|
|||
`Type` and reflects the properties of this type with respect
|
||||
to the concept `RealEmbeddable`.
|
||||
|
||||
\cgalHasModel `CGAL::Real_embeddable_traits<T>`
|
||||
\cgalHasModelsBegin
|
||||
\cgalHasModels{CGAL::Real_embeddable_traits<T>}
|
||||
\cgalHasModelsEnd
|
||||
*/
|
||||
|
||||
class RealEmbeddableTraits {
|
||||
|
|
|
|||
|
|
@ -6,23 +6,25 @@
|
|||
The concept `RingNumberType` combines the requirements of the concepts
|
||||
`IntegralDomainWithoutDivision` and `RealEmbeddable`.
|
||||
A model of `RingNumberType` can be used as a template parameter
|
||||
for Homogeneous kernels.
|
||||
for homogeneous kernels.
|
||||
|
||||
\cgalRefines{IntegralDomainWithoutDivision,RealEmbeddable}
|
||||
|
||||
\cgalHasModel \cpp built-in number types
|
||||
\cgalHasModel `CGAL::Gmpq`
|
||||
\cgalHasModel `CGAL::Gmpz`
|
||||
\cgalHasModel `CGAL::Interval_nt`
|
||||
\cgalHasModel `CGAL::Interval_nt_advanced`
|
||||
\cgalHasModel `CGAL::Lazy_exact_nt<RingNumberType>`
|
||||
\cgalHasModel `CGAL::MP_Float`
|
||||
\cgalHasModel `CGAL::Gmpzf`
|
||||
\cgalHasModel `CGAL::Quotient<RingNumberType>`
|
||||
\cgalHasModel `leda_integer`
|
||||
\cgalHasModel `leda_rational`
|
||||
\cgalHasModel `leda_bigfloat`
|
||||
\cgalHasModel `leda_real`
|
||||
\cgalHasModelsBegin
|
||||
\cgalHasModelsBare{\cpp built-in number types}
|
||||
\cgalHasModels{CGAL::Gmpq}
|
||||
\cgalHasModels{CGAL::Gmpz}
|
||||
\cgalHasModels{CGAL::Interval_nt}
|
||||
\cgalHasModels{CGAL::Interval_nt_advanced}
|
||||
\cgalHasModels{CGAL::Lazy_exact_nt<RingNumberType>}
|
||||
\cgalHasModels{CGAL::MP_Float}
|
||||
\cgalHasModels{CGAL::Gmpzf}
|
||||
\cgalHasModels{CGAL::Quotient<RingNumberType>}
|
||||
\cgalHasModels{leda_integer}
|
||||
\cgalHasModels{leda_rational}
|
||||
\cgalHasModels{leda_bigfloat}
|
||||
\cgalHasModels{leda_real}
|
||||
\cgalHasModelsEnd
|
||||
|
||||
\sa `FieldNumberType`
|
||||
|
||||
|
|
@ -32,4 +34,3 @@ class RingNumberType {
|
|||
public:
|
||||
|
||||
}; /* end RingNumberType */
|
||||
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ approximation of an algebraic real root is a slightly modified
|
|||
(filtered) version of the one presented in \cgalCite{abbott-qir-06}. The
|
||||
method has quadratic convergence.
|
||||
|
||||
\cgalModels `AlgebraicKernel_d_1`
|
||||
\cgalModels{AlgebraicKernel_d_1}
|
||||
|
||||
\sa `AlgebraicKernel_d_1`
|
||||
\sa `Polynomial_d`
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ above. `ROOT` should be one of the integer types. See also the
|
|||
documentation of `Sqrt_extension<NT,ROOT>`.
|
||||
\cgalAdvancedEnd
|
||||
|
||||
\cgalModels `AlgebraicKernel_d_2`
|
||||
\cgalModels{AlgebraicKernel_d_2}
|
||||
|
||||
\sa `AlgebraicKernel_d_1`
|
||||
\sa `AlgebraicKernel_d_2`
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ rational univariate polynomial root isolation. It is a model of the
|
|||
isolate integer polynomials, the operations of this kernel have the
|
||||
overhead of converting the polynomials to integer.
|
||||
|
||||
\cgalModels `AlgebraicKernel_d_1`
|
||||
\cgalModels{AlgebraicKernel_d_1}
|
||||
|
||||
\sa `Algebraic_kernel_rs_gmpz_d_1`
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ This univariate algebraic kernel uses the Rs library to perform
|
|||
integer univariate polynomial root isolation. It is a model of the
|
||||
`AlgebraicKernel_d_1` concept.
|
||||
|
||||
\cgalModels `AlgebraicKernel_d_1`
|
||||
\cgalModels{AlgebraicKernel_d_1}
|
||||
|
||||
\sa `Algebraic_kernel_rs_gmpz_d_1`
|
||||
|
||||
|
|
|
|||
|
|
@ -8,8 +8,10 @@ algebraic functionalities on univariate polynomials of general degree \f$ d\f$.
|
|||
|
||||
\cgalRefines{CopyConstructible,Assignable}
|
||||
|
||||
\cgalHasModel `CGAL::Algebraic_kernel_rs_gmpz_d_1`
|
||||
\cgalHasModel `CGAL::Algebraic_kernel_rs_gmpq_d_1`
|
||||
\cgalHasModelsBegin
|
||||
\cgalHasModels{CGAL::Algebraic_kernel_rs_gmpz_d_1}
|
||||
\cgalHasModels{CGAL::Algebraic_kernel_rs_gmpq_d_1}
|
||||
\cgalHasModelsEnd
|
||||
|
||||
\sa `AlgebraicKernel_d_2`
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ if `Alpha_shape_face_base_2` is intended to be used with an alpha-shape class ba
|
|||
\link Tag_true `Tag_true`\endlink, triggers exact comparisons between alpha values. See the description
|
||||
provided in the documentation of `Alpha_shape_2` for more details. The default value is \link Tag_false `Tag_false`\endlink.
|
||||
|
||||
\cgalModels `AlphaShapeFace_2`
|
||||
\cgalModels{AlphaShapeFace_2}
|
||||
|
||||
\sa `Triangulation_face_base_2`
|
||||
\sa `Regular_triangulation_face_base_2`
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ if `Alpha_shape_vertex_base_2` is intended to be used with an alpha-shape class
|
|||
\link Tag_true `Tag_true`\endlink, triggers exact comparisons between alpha values. See the description
|
||||
provided in the documentation of `Alpha_shape_2` for more details. The default value is \link Tag_false `Tag_false`\endlink.
|
||||
|
||||
\cgalModels `AlphaShapeVertex_2`
|
||||
\cgalModels{AlphaShapeVertex_2}
|
||||
|
||||
\sa `Triangulation_vertex_base_2`
|
||||
\sa `Regular_triangulation_vertex_base_2`
|
||||
|
|
|
|||
|
|
@ -9,7 +9,9 @@ The concept `AlphaShapeFace_2` describes the requirements for the base face of a
|
|||
RegularTriangulationFaceBase_2 if the underlying triangulation of the alpha shape is a regular triangulation,
|
||||
Periodic_2TriangulationFaceBase_2 if the underlying triangulation of the alpha shape is a periodic triangulation}
|
||||
|
||||
\cgalHasModel `CGAL::Alpha_shape_face_base_2` (templated with the appropriate triangulation face base class).
|
||||
\cgalHasModelsBegin
|
||||
\cgalHasModels{CGAL::Alpha_shape_face_base_2 (templated with the appropriate triangulation face base class)}
|
||||
\cgalHasModelsEnd
|
||||
|
||||
*/
|
||||
class AlphaShapeFace_2 {
|
||||
|
|
|
|||
|
|
@ -9,8 +9,10 @@ class of the underlying Delaunay triangulation of a basic alpha shape.
|
|||
\cgalRefines{DelaunayTriangulationTraits_2 if the underlying triangulation of the alpha shape is a Delaunay triangulation,
|
||||
Periodic_2DelaunayTriangulationTraits_2 if the underlying triangulation of the alpha shape is a periodic Delaunay triangulation}
|
||||
|
||||
\cgalHasModel All models of `Kernel`.
|
||||
\cgalHasModel Projection traits such as `CGAL::Projection_traits_xy_3<K>`.
|
||||
\cgalHasModelsBegin
|
||||
\cgalHasModelsBare{All models of `Kernel`}
|
||||
\cgalHasModelsBare{Projection traits such as `CGAL::Projection_traits_xy_3<K>`}
|
||||
\cgalHasModelsEnd
|
||||
|
||||
\sa `CGAL::Exact_predicates_inexact_constructions_kernel` (recommended kernel)
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -9,7 +9,9 @@ The concept `AlphaShapeVertex_2` describes the requirements for the base vertex
|
|||
RegularTriangulationVertexBase_2 if the underlying triangulation of the alpha shape is a regular triangulation,
|
||||
Periodic_2TriangulationVertexBase_2 if the underlying triangulation of the alpha shape is a periodic triangulation}
|
||||
|
||||
\cgalHasModel `CGAL::Alpha_shape_vertex_base_2` (templated with the appropriate triangulation vertex base class).
|
||||
\cgalHasModelsBegin
|
||||
\cgalHasModelsBare{`CGAL::Alpha_shape_vertex_base_2` (templated with the appropriate triangulation vertex base class)}
|
||||
\cgalHasModelsEnd
|
||||
*/
|
||||
class AlphaShapeVertex_2 {
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -9,8 +9,10 @@ of the underlying regular triangulation of a weighted alpha shape.
|
|||
|
||||
\cgalRefines{RegularTriangulationTraits_2 if the underlying triangulation of the alpha shape is a regular triangulation.}
|
||||
|
||||
\cgalHasModel All models of `Kernel`.
|
||||
\cgalHasModel Projection traits such as `CGAL::Projection_traits_xy_3<K>`.
|
||||
\cgalHasModelsBegin
|
||||
\cgalHasModelsBare{All models of `Kernel`,}
|
||||
\cgalHasModelsBare{Projection traits such as `CGAL::Projection_traits_xy_3<K>`}
|
||||
\cgalHasModelsEnd
|
||||
|
||||
\sa `CGAL::Exact_predicates_inexact_constructions_kernel` (recommended kernel)
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@ int main(int argc, char** argv)
|
|||
application.setOrganizationName("GeometryFactory");
|
||||
application.setApplicationName("Alpha Shape Reconstruction");
|
||||
|
||||
// Import resources from libCGALQt (Qt5).
|
||||
// See https://doc.qt.io/qt-5/qdir.html#Q_INIT_RESOURCE
|
||||
// Import resources from libCGAL_Qt6
|
||||
// See https://doc.qt.io/qt-6/qtresource-proxy.html#Q_INIT_RESOURCE
|
||||
|
||||
CGAL_QT_INIT_RESOURCES;
|
||||
Q_INIT_RESOURCE(Alpha_shape_3);
|
||||
|
|
|
|||
|
|
@ -7,46 +7,32 @@ project(Alpha_shapes_3_Demo)
|
|||
# Find includes in corresponding build directories
|
||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||
|
||||
# Instruct CMake to run moc automatically when needed.
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
if(NOT POLICY CMP0070 AND POLICY CMP0053)
|
||||
# Only set CMP0053 to OLD with CMake<3.10, otherwise there is a warning.
|
||||
cmake_policy(SET CMP0053 OLD)
|
||||
endif()
|
||||
if(POLICY CMP0071)
|
||||
cmake_policy(SET CMP0071 NEW)
|
||||
endif()
|
||||
find_package(CGAL REQUIRED OPTIONAL_COMPONENTS Qt6)
|
||||
|
||||
find_package(CGAL REQUIRED OPTIONAL_COMPONENTS Qt5)
|
||||
find_package(Qt6 QUIET COMPONENTS Widgets OpenGL)
|
||||
|
||||
find_package(Qt5 QUIET COMPONENTS Widgets OpenGL)
|
||||
|
||||
if(CGAL_Qt5_FOUND AND Qt5_FOUND)
|
||||
if(CGAL_Qt6_FOUND AND Qt6_FOUND)
|
||||
|
||||
add_definitions(-DQT_NO_KEYWORDS)
|
||||
|
||||
# include(${QT_USE_FILE})
|
||||
include_directories(BEFORE ./)
|
||||
# Instruct CMake to run moc/ui/rcc automatically when needed.
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_AUTOUIC ON)
|
||||
set(CMAKE_AUTORCC ON)
|
||||
|
||||
# ui file, created with Qt Designer
|
||||
qt5_wrap_ui(uis MainWindow.ui)
|
||||
qt_add_executable(Alpha_shape_3 Alpha_shape_3.cpp MainWindow.cpp Viewer.cpp
|
||||
MainWindow.ui Alpha_shape_3.qrc)
|
||||
|
||||
# qrc files (resources files, that contain icons, at least)
|
||||
qt5_add_resources(CGAL_Qt5_RESOURCE_FILES ./Alpha_shape_3.qrc)
|
||||
|
||||
add_executable(
|
||||
Alpha_shape_3 Alpha_shape_3.cpp MainWindow.cpp Viewer.cpp ${uis}
|
||||
${CGAL_Qt5_RESOURCE_FILES} ${CGAL_Qt5_MOC_FILES})
|
||||
add_to_cached_list(CGAL_EXECUTABLE_TARGETS Alpha_shape_3)
|
||||
|
||||
target_link_libraries(Alpha_shape_3 PRIVATE CGAL::CGAL CGAL::CGAL_Qt5
|
||||
Qt5::Widgets Qt5::OpenGL)
|
||||
target_link_libraries(Alpha_shape_3 PRIVATE CGAL::CGAL CGAL::CGAL_Qt6
|
||||
Qt6::Widgets Qt6::OpenGL)
|
||||
|
||||
include(${CGAL_MODULES_DIR}/CGAL_add_test.cmake)
|
||||
cgal_add_compilation_test(Alpha_shape_3)
|
||||
|
||||
else()
|
||||
|
||||
message("NOTICE: This demo requires CGAL and Qt5, and will not be compiled.")
|
||||
message("NOTICE: This demo requires CGAL and Qt6, and will not be compiled.")
|
||||
|
||||
endif()
|
||||
|
|
|
|||
|
|
@ -0,0 +1,14 @@
|
|||
The purpose of this repository is to make some range data
|
||||
and detailed reconstructions available to the public. Currently, this repository only contains models that were scanned and reconstructed
|
||||
at the Stanford Computer Graphics Laboratory . In the future, we hope to include data sets and reconstructions from other sources.
|
||||
|
||||
The models in this repository were all scanned with a Cyberware 3030MS optical triangulation scanner.
|
||||
Please acknowledge ....
|
||||
|
||||
http://www-graphics.stanford.edu/data/3Dscanrep/
|
||||
e-mail: 3Dscanrep@graphics.stanford.edu
|
||||
file://www-graphics.stanford.edu/pub/zippack/data/
|
||||
|
||||
http://www.hs.washington.edu/locke/vislab/
|
||||
http://biocomp.arc.nasa.gov/3dreconstruction/data/
|
||||
medical data
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,582 @@
|
|||
581
|
||||
-9496.000158 -6621.999660 73324.000108
|
||||
1941.000008 -502.999956 53448.000262
|
||||
-13993.000076 -9472.000458 73547.999893
|
||||
-3165.000198 2805.999696 53841.000158
|
||||
3941.000109 -826.999564 53350.999780
|
||||
-13992.999698 -6391.999696 73548.000325
|
||||
-4629.000334 -2729.999756 72919.999638
|
||||
-14544.000229 7643.999701 62169.999969
|
||||
-3539.000009 -7617.000066 72743.000159
|
||||
-3569.999951 1963.000330 53954.000331
|
||||
4099.000115 540.000082 55720.000195
|
||||
3946.000208 3611.000347 54343.000242
|
||||
3942.000336 -1955.000290 53845.000430
|
||||
24.000106 -8480.000056 72560.000446
|
||||
-2817.999819 -7080.000021 72739.999999
|
||||
274.999768 2681.999578 53612.999729
|
||||
-5673.000363 -8522.000312 72919.999924
|
||||
-3569.999681 5328.999917 53954.000391
|
||||
7057.000447 22.999921 72019.999778
|
||||
-7114.999994 -4259.000412 73100.000243
|
||||
3129.999877 -1020.000207 53119.999650
|
||||
-14575.999938 2064.000292 60412.000409
|
||||
-8087.999603 -2692.999873 73164.999998
|
||||
-9496.000263 -8099.000270 73323.999696
|
||||
-14575.999757 4785.999619 60412.000416
|
||||
1767.000453 -2710.000440 72380.000399
|
||||
4723.999558 2984.999684 72199.999829
|
||||
4173.000154 -1942.000364 57518.000224
|
||||
-14185.000047 -8155.999786 69664.999947
|
||||
8462.999751 -2789.999723 72019.999998
|
||||
-14475.999680 -6322.000368 63961.000010
|
||||
-14185.000218 -6669.000381 69665.000452
|
||||
-14411.999521 8769.999611 63528.000202
|
||||
-3929.999793 121.999623 53660.000393
|
||||
-3538.999885 -6227.999801 72743.000078
|
||||
5664.000221 8483.999673 72199.999788
|
||||
4160.000223 3746.999664 57257.999712
|
||||
16.999585 1061.999516 53479.999584
|
||||
3441.000482 4789.999724 53120.000035
|
||||
3941.000301 861.000216 53350.999558
|
||||
3941.000166 186.000103 53350.999891
|
||||
-5672.999756 5721.000193 72920.000053
|
||||
-14411.999799 1051.999879 63528.000013
|
||||
3441.000192 5308.999633 53119.999836
|
||||
-13970.999556 -6778.999631 71592.999827
|
||||
-5673.000352 1448.000308 72919.999896
|
||||
1941.000287 3661.000398 53448.000221
|
||||
4159.999588 2681.999997 57257.999788
|
||||
2098.999573 1058.000232 53299.999983
|
||||
-3569.999774 280.000127 53953.999842
|
||||
-3538.999679 -9006.000017 72743.000111
|
||||
-3570.000143 -1402.000081 53954.000006
|
||||
-7115.000060 5734.999820 73099.999872
|
||||
-1026.999875 -1026.999558 53479.999537
|
||||
7056.999811 -4195.999750 72020.000402
|
||||
-3570.000168 3085.000137 53954.000020
|
||||
-13970.999844 -9803.999811 71592.999532
|
||||
17.000252 6285.000424 53479.999576
|
||||
-14322.999690 -2587.000320 65092.999918
|
||||
-5387.999792 -1969.999910 72920.000067
|
||||
-1426.999888 2743.999772 53744.000433
|
||||
-3538.999950 -2059.999970 72742.999563
|
||||
-14412.000000 6664.999905 63527.999948
|
||||
-3570.000271 3646.000059 53954.000087
|
||||
-3929.999828 -1973.999852 53659.999952
|
||||
-4237.999601 -7080.000344 72740.000252
|
||||
-14373.000194 -7866.999965 65785.999683
|
||||
3946.000001 2584.000490 54343.000220
|
||||
3941.000101 2886.999557 53350.999752
|
||||
4160.000230 551.000414 57257.999512
|
||||
4264.000084 1686.000457 60564.000497
|
||||
-9495.999646 -3667.999852 73323.999965
|
||||
4288.000261 1950.999734 60834.000001
|
||||
1432.000381 -1938.999865 53464.000475
|
||||
-5126.999748 3887.999847 72980.999916
|
||||
4287.999632 278.999662 60833.999729
|
||||
-2072.000101 17.000308 53479.999547
|
||||
-14411.999918 5261.999514 63527.999544
|
||||
-14185.000455 -5180.999602 69665.000041
|
||||
4263.999685 -536.999855 60563.999513
|
||||
4724.000258 1575.000409 72200.000149
|
||||
4159.999987 4812.999838 57258.000035
|
||||
-3930.000140 4837.999779 53659.999939
|
||||
-8543.000324 -8542.999590 73099.999989
|
||||
-3570.000177 840.999915 53954.000138
|
||||
3941.000105 1874.000098 53351.000382
|
||||
3946.000349 4637.999658 54342.999822
|
||||
8462.999539 8462.999818 72019.999892
|
||||
5664.000082 4253.999844 72200.000354
|
||||
-5387.999671 2302.000049 72920.000121
|
||||
-5388.000189 166.000459 72919.999521
|
||||
5664.000053 -4206.999676 72200.000476
|
||||
2473.999900 -2709.999879 72380.000265
|
||||
16.999506 -1027.000446 53479.999576
|
||||
4263.999639 -1647.999637 60564.000406
|
||||
3441.000140 1676.999539 53120.000327
|
||||
-9496.000107 -5145.000342 73323.999932
|
||||
-13992.999533 -4852.000259 73548.000110
|
||||
4287.999970 6968.000328 60833.999686
|
||||
275.000199 3746.999653 53612.999629
|
||||
-14412.000182 -350.999721 63528.000472
|
||||
-13992.999868 -4338.000196 73547.999622
|
||||
-8543.000347 -4259.000087 73100.000032
|
||||
16.999876 5240.000063 53479.999960
|
||||
-14372.999770 -9301.999508 65786.000118
|
||||
-5127.000314 8129.000114 72980.999503
|
||||
-1394.000093 -4227.999771 72560.000486
|
||||
4098.999711 3673.000482 55719.999928
|
||||
3946.000083 -1523.000092 54342.999694
|
||||
4724.000061 -1246.000449 72200.000281
|
||||
-13720.999502 -5353.000086 73556.000360
|
||||
4723.999887 7215.000403 72200.000242
|
||||
-14184.999932 -2754.999701 67936.999780
|
||||
1437.000194 -5630.999670 72380.000099
|
||||
-5444.999665 -9188.000372 72930.000378
|
||||
-4238.000442 -8500.999822 72740.000263
|
||||
-8542.999594 4307.000192 73099.999910
|
||||
-5388.000269 6574.999714 72920.000493
|
||||
-1394.000324 -2811.000366 72559.999570
|
||||
16.999584 16.999963 53479.999782
|
||||
-14327.000037 -2687.000254 67063.000303
|
||||
-1027.000347 6284.999698 53480.000414
|
||||
2850.999763 -5631.000213 72380.000333
|
||||
-14543.999669 -8982.999787 62170.000241
|
||||
-1426.999789 563.000156 53743.999616
|
||||
-5127.000214 -2474.000449 72980.999585
|
||||
-8542.999689 5734.999797 73100.000259
|
||||
-13993.000354 -8958.999738 73548.000223
|
||||
1057.999632 3139.999725 53299.999575
|
||||
7056.999573 1429.999852 72020.000196
|
||||
-13412.999816 -2989.999795 73597.999993
|
||||
-14411.999793 5963.000061 63527.999980
|
||||
-14544.000399 3487.000172 62169.999836
|
||||
4723.999840 869.999743 72200.000174
|
||||
1940.999817 5742.999710 53447.999666
|
||||
-14411.999874 7365.999941 63528.000371
|
||||
3441.000223 5827.000153 53120.000059
|
||||
1941.000349 1579.000153 53447.999990
|
||||
4723.999767 5099.999678 72199.999767
|
||||
-5444.999773 -6354.000185 72929.999902
|
||||
-11526.999785 -8253.000306 73393.000090
|
||||
4287.999859 5853.000374 60833.999882
|
||||
-3538.999732 -3449.999625 72742.999793
|
||||
-13993.000364 -7932.000020 73548.000260
|
||||
-14373.000228 -3563.000378 65785.999768
|
||||
4253.999995 -7026.999870 72200.000060
|
||||
-3164.999721 -539.000085 53841.000259
|
||||
3940.999621 -1165.000187 53351.000040
|
||||
4251.999655 -1611.999954 58826.000287
|
||||
3130.000441 1055.000205 53119.999800
|
||||
-7114.999827 -7115.000264 73100.000269
|
||||
-5388.000004 5151.000233 72919.999833
|
||||
-14543.999690 -4825.999812 62169.999558
|
||||
-3929.999555 6411.000130 53659.999733
|
||||
1940.999639 4702.000362 53447.999846
|
||||
-14411.999716 2454.999607 63527.999612
|
||||
3440.999501 -915.999922 53119.999778
|
||||
4288.000012 -1950.999731 60833.999534
|
||||
275.000261 1616.000437 53612.999949
|
||||
-1427.000136 -527.000171 53743.999568
|
||||
4251.999503 -525.000281 58825.999809
|
||||
-260.999615 -1966.999943 53479.999718
|
||||
7057.000208 -5603.000018 72020.000259
|
||||
-5127.000479 6715.000320 72980.999619
|
||||
-1427.000327 3834.000257 53744.000353
|
||||
3440.999911 6346.000423 53120.000030
|
||||
2850.999822 -7045.000455 72380.000243
|
||||
5664.000435 -1386.999766 72200.000059
|
||||
-14412.000002 3156.999581 63527.999801
|
||||
-8543.000189 -7115.000435 73099.999877
|
||||
3445.999629 2566.999931 53380.000265
|
||||
3440.999872 -1434.999562 53119.999546
|
||||
-3165.000457 5035.000031 53841.000213
|
||||
-3929.999582 2218.000457 53659.999557
|
||||
3445.999965 -1512.999532 53379.999504
|
||||
-1958.000338 -1957.000101 53738.999698
|
||||
275.000452 -1581.000215 53613.000308
|
||||
-14088.000048 -2934.999842 70989.999715
|
||||
-14373.000177 -4997.999695 65786.000128
|
||||
8462.999777 5649.999794 72019.999678
|
||||
1058.000275 6263.000038 53300.000358
|
||||
-7102.000019 -2619.000327 73101.999718
|
||||
-8542.999951 -5687.000307 73099.999616
|
||||
-3930.000250 2741.999930 53660.000203
|
||||
1300.999742 -1960.999792 53299.999640
|
||||
4723.999966 4394.999535 72200.000035
|
||||
4098.999994 1583.999527 55720.000241
|
||||
-13992.999829 -8445.999614 73548.000422
|
||||
4098.999861 -1548.999788 55719.999858
|
||||
-3930.000368 -1449.999960 53660.000492
|
||||
4287.999872 3066.000210 60833.999876
|
||||
4287.999522 2508.000016 60833.999841
|
||||
-5445.000250 -3519.000073 72930.000344
|
||||
-14232.999547 -8002.000380 67645.000212
|
||||
-5126.999777 -1767.000240 72980.999857
|
||||
3129.999543 5204.999843 53119.999708
|
||||
3946.000005 530.999826 54343.000175
|
||||
-13721.000221 -3816.000216 73556.000357
|
||||
8463.000349 22.999637 72020.000002
|
||||
4724.000003 3690.000471 72200.000108
|
||||
1058.000380 4180.999601 53300.000207
|
||||
274.999810 5879.000134 53613.000459
|
||||
354.000245 -2715.999978 72560.000238
|
||||
1437.000165 -4217.000476 72380.000479
|
||||
3940.999844 4913.000151 53350.999582
|
||||
-2895.000382 -1945.000376 53846.999541
|
||||
2099.000389 2099.000230 53300.000474
|
||||
8463.000426 1430.000487 72020.000078
|
||||
4252.000374 561.000004 58826.000032
|
||||
3940.999558 523.000164 53351.000416
|
||||
1437.000253 -2804.000496 72380.000323
|
||||
-14543.999762 -3440.999829 62169.999916
|
||||
-14543.999982 -6211.999551 62170.000041
|
||||
3441.000291 2714.999685 53119.999987
|
||||
5663.999985 -2797.000025 72200.000024
|
||||
-14411.999984 -1051.999942 63528.000370
|
||||
3440.999562 4271.000407 53120.000029
|
||||
-3539.000186 2107.000409 72743.000388
|
||||
1057.999822 -1024.000255 53300.000171
|
||||
3945.999666 5664.999689 54342.999562
|
||||
-5126.999539 5301.000010 72981.000462
|
||||
-14575.999627 -3379.999597 60411.999811
|
||||
3180.999744 -2710.000374 72380.000052
|
||||
-1026.999719 4195.999827 53480.000234
|
||||
-3165.000176 575.999615 53840.999507
|
||||
3941.000445 -151.999807 53351.000391
|
||||
-14576.000174 -657.999845 60411.999636
|
||||
-2349.999962 -1966.999590 53479.999902
|
||||
-14411.999854 3858.999681 63528.000283
|
||||
-10090.000319 -2795.000040 73260.999652
|
||||
3941.000477 5924.999710 53350.999731
|
||||
4085.000468 -1954.000357 55213.000428
|
||||
4253.999936 -8436.999819 72199.999776
|
||||
-1394.000360 -8479.999946 72559.999636
|
||||
-3569.999726 -841.000285 53953.999993
|
||||
-9083.999507 -2718.999761 73217.000072
|
||||
3441.000399 640.000398 53120.000050
|
||||
4287.999748 -1394.000023 60833.999874
|
||||
5664.000340 7073.999686 72199.999963
|
||||
-5387.999666 4438.999817 72919.999562
|
||||
7056.999636 -7010.000061 72019.999662
|
||||
1057.999689 5222.000173 53299.999663
|
||||
-5673.000248 4296.000142 72920.000031
|
||||
-1027.000260 5239.999713 53480.000273
|
||||
-7114.999766 -8543.000300 73100.000022
|
||||
274.999590 551.000141 53612.999775
|
||||
-3929.999711 -926.000493 53660.000132
|
||||
4288.000365 -836.000403 60833.999756
|
||||
3446.000332 3586.999913 53379.999531
|
||||
3887.999686 -2709.999801 72379.999876
|
||||
-3539.000418 -670.999562 72742.999614
|
||||
4251.999963 1648.000235 58826.000350
|
||||
7056.999875 -1382.999580 72019.999867
|
||||
-11526.999831 -9757.999777 73393.000349
|
||||
3130.000328 4167.000247 53120.000320
|
||||
8463.000402 2837.000196 72020.000275
|
||||
3446.000436 -493.000175 53380.000405
|
||||
-1427.000357 6013.999828 53744.000254
|
||||
-13993.000352 -5365.000211 73547.999983
|
||||
3130.000064 6241.999698 53120.000243
|
||||
-1393.999680 -7061.999503 72559.999762
|
||||
-3929.999947 3266.000354 53660.000396
|
||||
-5388.000052 8711.000308 72919.999522
|
||||
-5387.999641 5862.999935 72920.000126
|
||||
-5673.000220 24.000330 72919.999842
|
||||
4160.000111 -514.999580 57257.999620
|
||||
3445.999928 527.000347 53379.999914
|
||||
-8542.999580 7162.000367 73099.999863
|
||||
2947.999993 -1968.000009 53405.999963
|
||||
-3929.999592 -1974.000291 53659.999860
|
||||
-1305.999625 -1967.000077 53480.000398
|
||||
3129.999665 3130.000305 53119.999882
|
||||
-4237.999635 -4237.999904 72739.999541
|
||||
7057.000491 4243.000297 72019.999582
|
||||
-14576.000246 -6102.000206 60411.999747
|
||||
4264.000083 2796.999726 60563.999829
|
||||
4724.000254 5805.000459 72199.999985
|
||||
-5672.999808 -7097.000478 72920.000322
|
||||
-7114.999930 1452.000036 73099.999694
|
||||
-3929.999839 4313.999708 53660.000336
|
||||
-13971.000086 -5267.000118 71592.999574
|
||||
-3164.999892 1691.000266 53840.999559
|
||||
3941.000485 1198.999988 53351.000119
|
||||
-2071.999680 1062.000046 53480.000119
|
||||
-3930.000107 5362.999664 53659.999659
|
||||
-13972.000434 -2989.999797 73073.000355
|
||||
-5387.999734 1589.999640 72920.000470
|
||||
-14575.999747 6147.000157 60412.000152
|
||||
-3539.000484 4885.000479 72743.000415
|
||||
-8543.000350 23.999745 73100.000201
|
||||
4159.999933 5878.999799 57258.000196
|
||||
-5444.999733 -7771.000335 72929.999842
|
||||
-14372.999532 -6432.999688 65786.000443
|
||||
3941.000032 5250.000483 53350.999566
|
||||
-2817.999801 -4237.999840 72739.999681
|
||||
2099.000054 4180.999939 53300.000374
|
||||
3440.999903 121.000021 53120.000493
|
||||
-14575.999797 -4741.000478 60411.999775
|
||||
3940.999685 1535.999624 53351.000429
|
||||
-14576.000473 702.999598 60412.000428
|
||||
-14475.999775 -4911.999679 63960.999993
|
||||
-14131.000326 -2857.999672 69963.000289
|
||||
2099.000221 -1024.000206 53299.999555
|
||||
-3539.000177 -4839.000490 72742.999973
|
||||
-5672.999696 -4248.999669 72919.999901
|
||||
1057.999780 16.999883 53300.000257
|
||||
5663.999977 5663.999867 72199.999515
|
||||
5663.999992 -8436.999738 72200.000314
|
||||
-14412.000335 8068.000149 63527.999665
|
||||
-5388.000218 -545.999702 72919.999648
|
||||
4264.000448 3907.999781 60564.000285
|
||||
3129.999620 2092.000354 53120.000415
|
||||
1062.999967 -2715.999634 72560.000024
|
||||
3940.999708 -1840.000490 53351.000006
|
||||
23.999785 -4227.999646 72560.000090
|
||||
-3165.000129 -1654.000323 53840.999660
|
||||
-5127.000159 2474.000343 72981.000044
|
||||
3941.000234 2210.999659 53351.000276
|
||||
1436.999565 -7045.000204 72380.000395
|
||||
-1426.999662 1654.000050 53744.000497
|
||||
4159.999762 -1580.999657 57257.999765
|
||||
2099.000277 6263.000009 53300.000166
|
||||
-14233.000173 -9461.999637 67644.999640
|
||||
4724.000132 6510.000452 72199.999686
|
||||
-5388.000295 3014.999741 72919.999528
|
||||
4107.000341 -1973.999932 55973.999842
|
||||
-1027.000486 1061.999561 53480.000336
|
||||
4263.999763 5018.999546 60563.999509
|
||||
-3126.999968 6305.999575 53660.000329
|
||||
-1062.999814 -2715.999805 72559.999701
|
||||
3441.000092 -398.000054 53119.999576
|
||||
23.999882 -5645.000302 72559.999942
|
||||
-5126.999834 4594.000338 72980.999829
|
||||
4252.000254 4907.999952 58825.999554
|
||||
-3569.999712 4767.999673 53953.999940
|
||||
-14476.000032 -9143.000078 63960.999819
|
||||
4071.000131 -1967.999892 54460.000432
|
||||
3440.999875 3752.000283 53120.000467
|
||||
-14576.000485 3424.999842 60411.999944
|
||||
-5160.999508 -2520.999928 72949.000110
|
||||
4287.999692 3622.999957 60834.000077
|
||||
-5127.000118 1767.000066 72980.999700
|
||||
5663.999655 24.000344 72200.000194
|
||||
-14576.000480 7508.000120 60411.999689
|
||||
-2881.999956 -1974.000116 53659.999591
|
||||
3129.999776 16.999790 53119.999905
|
||||
-13993.000072 -5879.000105 73548.000170
|
||||
4723.999855 -2656.000037 72200.000312
|
||||
3940.999633 4574.999653 53351.000095
|
||||
17.000159 3150.999751 53479.999993
|
||||
-13721.000066 -6890.000008 73555.999864
|
||||
-5673.000136 8569.000239 72919.999812
|
||||
4287.999834 1393.999656 60834.000047
|
||||
-5127.000002 3181.000499 72980.999577
|
||||
1437.000111 -8457.999664 72379.999810
|
||||
-1027.000182 3151.000481 53480.000213
|
||||
8462.999880 -5602.999786 72020.000397
|
||||
5663.999998 -7027.000337 72200.000179
|
||||
-2071.999836 5240.000427 53480.000403
|
||||
3445.999729 4607.000036 53380.000383
|
||||
-1394.000136 -5645.000011 72559.999949
|
||||
-3127.000033 2113.999786 53660.000272
|
||||
3941.000324 2548.999788 53350.999985
|
||||
3940.999570 -1502.000342 53351.000013
|
||||
-3126.999914 -1030.999894 53659.999552
|
||||
-4238.000253 -2817.999880 72739.999988
|
||||
3440.999843 -1953.999504 53120.000421
|
||||
259.999737 -1960.999636 53300.000138
|
||||
-245.000117 -1948.999943 53618.999915
|
||||
-11526.999811 -5243.000037 73392.999756
|
||||
4724.000234 165.000038 72199.999547
|
||||
-3126.999977 3161.999991 53659.999978
|
||||
-3569.999564 4207.000094 53953.999501
|
||||
275.000170 -514.999842 53613.000034
|
||||
-11526.999613 -6747.999928 73392.999616
|
||||
-7390.999730 -5035.000249 73077.999705
|
||||
275.000340 4813.000352 53612.999844
|
||||
-2071.999948 3150.999602 53480.000403
|
||||
4251.999765 2735.000064 58826.000103
|
||||
-7115.000351 -5686.999885 73100.000358
|
||||
4098.999827 2628.999611 55719.999560
|
||||
8463.000124 -7010.000397 72020.000009
|
||||
-14232.999615 -6543.000442 67645.000485
|
||||
-3930.000232 5887.000299 53659.999634
|
||||
-14544.000461 2101.000409 62170.000359
|
||||
3372.000265 -1954.000261 53119.999806
|
||||
-14412.000115 1754.000439 63527.999500
|
||||
-14438.999828 -2520.999738 64242.999578
|
||||
-14329.999599 -2661.000068 66073.000238
|
||||
1941.000120 -1544.000357 53448.000031
|
||||
-4238.000332 -5659.000491 72740.000442
|
||||
4098.999594 -505.000192 55720.000025
|
||||
-2818.000128 -5658.999652 72739.999655
|
||||
4288.000306 -278.999978 60833.999586
|
||||
-1026.999893 17.000290 53480.000077
|
||||
-7114.999937 2878.999603 73099.999625
|
||||
4251.999706 3821.999721 58825.999856
|
||||
-14544.000411 -7596.999761 62170.000298
|
||||
-3539.000189 6273.999627 72742.999519
|
||||
-8542.999929 8590.000255 73100.000232
|
||||
-14544.000350 715.999575 62170.000076
|
||||
-9495.999848 -9576.000383 73323.999907
|
||||
-14576.000232 -7462.000020 60411.999731
|
||||
-14184.999642 -9643.999972 69665.000056
|
||||
-13970.999811 -8291.000315 71593.000038
|
||||
-5126.999814 1060.000113 72981.000052
|
||||
-7115.000366 7162.000434 73099.999958
|
||||
-3165.000448 6150.000036 53840.999507
|
||||
8462.999808 4242.999904 72020.000254
|
||||
7057.000202 -2790.000123 72020.000020
|
||||
-2071.999832 -1026.999844 53479.999642
|
||||
-7114.999518 -1404.000177 73100.000300
|
||||
3941.000476 3223.999580 53351.000151
|
||||
-3569.999782 1402.000069 53953.999777
|
||||
-3570.000289 7012.000244 53953.999930
|
||||
-5388.000194 877.999982 72919.999818
|
||||
-5126.999702 6008.000102 72980.999919
|
||||
4263.999700 6130.999796 60564.000158
|
||||
-8543.000290 1452.000226 73100.000426
|
||||
2850.999705 -4217.000056 72379.999818
|
||||
7056.999509 7057.000433 72019.999792
|
||||
-13992.999692 -3312.000439 73548.000061
|
||||
2850.999879 -8457.999587 72380.000259
|
||||
-3538.999600 718.000352 72742.999931
|
||||
-3930.000315 646.000457 53659.999635
|
||||
4264.000193 573.999697 60564.000002
|
||||
2099.000093 5221.999649 53300.000412
|
||||
-2071.999917 6284.999527 53479.999583
|
||||
4723.999862 7920.000427 72199.999887
|
||||
4330.999705 -1963.000266 59887.000081
|
||||
2851.000238 -2803.999644 72380.000218
|
||||
3440.999720 2195.999826 53119.999530
|
||||
-14543.999739 -2055.000043 62170.000137
|
||||
-14544.000178 -669.999739 62170.000308
|
||||
-14411.999915 351.000242 63527.999545
|
||||
3940.999876 5587.999982 53351.000452
|
||||
-11526.999792 -3737.999544 73392.999629
|
||||
3940.999584 4236.999929 53351.000136
|
||||
-7115.000083 -2831.999613 73099.999909
|
||||
-14232.999742 -5082.999812 67645.000324
|
||||
-3570.000011 -1963.000243 53954.000457
|
||||
-14575.999963 -8822.999905 60411.999771
|
||||
-3196.999729 -2722.999629 72739.999728
|
||||
4270.999791 -1943.999513 59089.999553
|
||||
-3930.000132 -402.000411 53659.999785
|
||||
4287.999518 -1951.000148 60834.000344
|
||||
1057.999742 2098.999992 53299.999970
|
||||
24.000007 -2810.999989 72560.000497
|
||||
-3570.000037 -280.000196 53954.000365
|
||||
7056.999709 -8415.999536 72020.000349
|
||||
7057.000090 5650.000225 72020.000014
|
||||
4099.000497 4718.000121 55719.999993
|
||||
-7115.000395 24.000272 73099.999724
|
||||
-14476.000166 -3502.000326 63961.000485
|
||||
-3569.999717 6450.999920 53954.000143
|
||||
-1163.000334 -1973.999751 53745.000092
|
||||
4723.999824 -541.000100 72200.000243
|
||||
3940.999990 3899.999923 53350.999622
|
||||
-3127.000218 5257.999652 53659.999673
|
||||
8463.000217 -1382.999504 72019.999695
|
||||
-14232.999844 -3624.000203 67645.000238
|
||||
-7390.999511 -3588.999711 73077.999992
|
||||
-5127.000472 352.999759 72981.000130
|
||||
2099.000363 16.999945 53300.000261
|
||||
-7390.999682 -6480.000469 73077.999642
|
||||
-5387.999952 7999.000376 72920.000277
|
||||
-3569.999553 2524.000332 53954.000210
|
||||
3445.999802 5627.000372 53380.000121
|
||||
-8543.000137 2878.999786 73100.000062
|
||||
-11225.000154 -2878.000184 73429.000219
|
||||
-5444.999752 -4937.000206 72929.999910
|
||||
-3539.000116 3495.999641 72743.000028
|
||||
4724.000434 -1950.999984 72200.000236
|
||||
-5387.999758 7287.000091 72920.000451
|
||||
3694.000162 -1947.999707 53364.999539
|
||||
-14412.000272 -1753.999800 63528.000480
|
||||
4724.000342 8625.000362 72199.999560
|
||||
2341.999734 -1961.000092 53299.999848
|
||||
-2071.999756 4196.000324 53480.000336
|
||||
-8543.000296 -2832.000371 73099.999810
|
||||
-5127.000024 8834.999681 72980.999971
|
||||
-13992.999602 -3825.000472 73548.000110
|
||||
3446.000174 1546.999928 53380.000489
|
||||
-3127.000366 4209.999619 53659.999561
|
||||
-5387.999685 -1258.000068 72920.000033
|
||||
-13720.999529 -8426.000197 73555.999797
|
||||
4135.999975 -1958.000343 56742.000312
|
||||
1058.000030 1057.999685 53299.999642
|
||||
2194.000288 -1954.000142 53438.999837
|
||||
1821.999693 -1961.000245 53300.000177
|
||||
-2486.000272 -2723.000311 72740.000113
|
||||
4251.999519 5994.999969 58825.999706
|
||||
-782.999723 -1966.999702 53480.000385
|
||||
-14184.999503 -3694.000155 69664.999741
|
||||
-7391.000162 -7925.000424 73077.999760
|
||||
3941.000365 3562.000286 53350.999697
|
||||
-5673.000072 -2824.999976 72920.000076
|
||||
-3929.999836 3789.999783 53660.000108
|
||||
4288.000033 5295.999782 60834.000285
|
||||
8463.000290 -4195.999621 72020.000158
|
||||
-1026.999905 2106.000122 53480.000172
|
||||
-14544.000315 6258.000031 62169.999860
|
||||
2098.999845 3140.000130 53300.000384
|
||||
17.000326 2105.999614 53480.000329
|
||||
-2817.999707 -2817.999500 72740.000297
|
||||
-5127.000216 7421.999889 72980.999545
|
||||
-14035.000213 -2961.999816 72026.999857
|
||||
3941.000206 -490.000295 53351.000305
|
||||
-3127.000000 1065.999857 53660.000041
|
||||
-14412.000070 4560.000349 63527.999884
|
||||
-1427.000275 -1616.999797 53744.000069
|
||||
-6126.000265 -2593.999720 73030.000099
|
||||
4099.000391 5762.000184 55719.999589
|
||||
3440.999902 1159.000232 53119.999985
|
||||
23.999963 -7062.000133 72559.999953
|
||||
-3164.999618 3921.000274 53840.999514
|
||||
3940.999690 6263.000241 53351.000160
|
||||
5663.999668 1434.000202 72199.999998
|
||||
3946.000045 -496.000294 54342.999676
|
||||
-3538.999923 7662.999718 72742.999936
|
||||
3946.000069 1557.999781 54343.000397
|
||||
-13992.999519 -7419.000292 73548.000211
|
||||
-14576.000246 -2018.999804 60411.999775
|
||||
4724.000039 2279.999748 72200.000311
|
||||
4253.999732 -5616.999621 72199.999908
|
||||
1940.999753 2619.999683 53447.999667
|
||||
3441.000116 3234.000032 53120.000379
|
||||
-7114.999901 4307.000119 73100.000483
|
||||
4288.000399 4738.000285 60834.000007
|
||||
4253.999724 -2797.000058 72199.999720
|
||||
5664.000222 2843.999541 72200.000437
|
||||
7056.999584 8463.000456 72020.000228
|
||||
-3930.000418 1694.000154 53659.999991
|
||||
-353.999670 -2715.999787 72559.999549
|
||||
-14162.999975 -2781.999699 68944.999901
|
||||
4287.999827 4180.999517 60834.000197
|
||||
-2071.999586 2105.999678 53480.000453
|
||||
-7390.999953 -9370.000271 73077.999510
|
||||
8462.999606 7057.000057 72020.000254
|
||||
7056.999555 2837.000361 72019.999548
|
||||
-7114.999806 8589.999936 73100.000030
|
||||
-5126.999903 -1060.000339 72980.999664
|
||||
8463.000265 -8415.999563 72019.999761
|
||||
-14475.999815 -7732.000263 63960.999905
|
||||
-14411.999736 -2454.999933 63528.000161
|
||||
4253.999680 -4207.000000 72200.000403
|
||||
-5341.000241 -2729.999555 72920.000190
|
||||
2853.000367 -1953.999662 53119.999629
|
||||
-3406.000346 -1973.999690 53659.999516
|
||||
-1775.999547 -2723.000080 72740.000246
|
||||
4217.999913 -1960.999660 58299.999623
|
||||
-12252.999887 -2905.000019 73451.999641
|
||||
-8542.999786 -1404.000473 73099.999728
|
||||
-3126.999630 16.999618 53660.000475
|
||||
4159.999910 1615.999982 57258.000198
|
||||
-2818.000192 -8501.000061 72739.999578
|
||||
-5673.000319 -5673.000048 72919.999599
|
||||
-5126.999657 -352.999916 72981.000008
|
||||
-14543.999526 4873.000287 62170.000355
|
||||
5664.000113 -5617.000339 72200.000484
|
||||
-13992.999970 -6905.000388 73548.000167
|
||||
-3906.999574 -2723.000211 72740.000342
|
||||
-5672.999570 -1399.999715 72920.000026
|
||||
-3569.999982 5890.000467 53954.000331
|
||||
4288.000173 6409.999525 60833.999858
|
||||
-5387.999815 -2682.000374 72920.000431
|
||||
-13971.000415 -3755.000354 71592.999978
|
||||
-3930.000128 1170.000156 53659.999938
|
||||
-1828.000158 -1966.999726 53479.999657
|
||||
17.000335 4196.000427 53479.999613
|
||||
-1427.000066 4924.000037 53743.999863
|
||||
-13721.000451 -9963.000322 73555.999557
|
||||
-5388.000021 3727.000164 72919.999832
|
||||
1941.000051 538.000495 53448.000163
|
||||
4287.999864 836.000460 60833.999839
|
||||
780.999670 -1960.999553 53299.999658
|
||||
-5673.000397 7144.999809 72919.999807
|
||||
-5673.000146 2871.999537 72920.000249
|
||||
533.000383 -1965.000046 53607.999748
|
||||
-13992.999662 -9985.999679 73548.000146
|
||||
4582.999714 -2702.999761 72199.999726
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
7
|
||||
5.51274721097227705 8.87625776353026552 1.95944807904169238
|
||||
9.0973375091665627 3.5350701520269201 4.7238755547204434
|
||||
0.911806739546155987 6.95856700036594145 2.36699662526417143
|
||||
5.36336900378107373 1.05840486239320186 1.22179856797203001
|
||||
0.289239615689291796 9.24621240074391082 2.17110435171762095
|
||||
1.39772879354093327 3.51084799856703622 9.44541630320511771
|
||||
7.31227573940480369 2.67306741439382023 0.511378392640958745
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
5.51275 8.87626 1.95945
|
||||
0.911807 6.95857 2.367
|
||||
5.36337 1.0584 1.2218
|
||||
7.31228 2.67307 0.511378
|
||||
9.09734 3.53507 4.72388
|
||||
1.39773 3.51085 9.44542
|
||||
0.28924 9.24621 2.1711
|
||||
4 5 0
|
||||
5 6 0
|
||||
1 0 6
|
||||
3 2 4
|
||||
4 0 3
|
||||
2 3 1
|
||||
0 1 3
|
||||
2 5 4
|
||||
5 2 1
|
||||
6 5 1
|
||||
|
|
@ -0,0 +1,857 @@
|
|||
856
|
||||
304.000000 483.000000 110.000433
|
||||
173.000000 315.000000 150.000135
|
||||
389.000000 259.000000 110.000009
|
||||
197.000000 341.000000 130.000097
|
||||
390.000000 329.000000 69.999907
|
||||
87.000000 189.000000 119.999588
|
||||
427.000000 391.000000 19.999914
|
||||
219.000000 283.000000 159.999587
|
||||
228.000000 410.000000 149.999687
|
||||
176.000000 356.000000 150.000143
|
||||
36.000000 243.000000 40.000174
|
||||
409.000000 409.000000 9.999581
|
||||
345.000000 395.000000 130.000241
|
||||
378.000000 336.000000 79.999859
|
||||
405.000000 442.000000 29.999878
|
||||
437.000000 388.000000 20.000099
|
||||
385.000000 345.000000 90.000418
|
||||
223.000000 509.000000 10.000330
|
||||
253.000000 62.000000 10.000304
|
||||
339.000000 498.000000 40.000232
|
||||
418.000000 406.000000 20.000279
|
||||
203.000000 86.000000 99.999776
|
||||
96.000000 159.000000 120.000081
|
||||
390.000000 320.000000 69.999762
|
||||
344.000000 362.000000 139.999772
|
||||
157.000000 57.000000 -0.000304
|
||||
130.000000 480.000000 40.000064
|
||||
190.000000 294.000000 160.000245
|
||||
407.000000 398.000000 30.000234
|
||||
396.000000 436.000000 40.000360
|
||||
387.000000 332.000000 49.999562
|
||||
192.000000 317.000000 149.999693
|
||||
90.000000 134.000000 99.999822
|
||||
92.000000 252.000000 130.000028
|
||||
164.000000 251.000000 159.999649
|
||||
161.000000 448.000000 120.000467
|
||||
380.000000 453.000000 50.000039
|
||||
76.000000 423.000000 39.999921
|
||||
410.000000 176.000000 40.000464
|
||||
346.000000 238.000000 140.000280
|
||||
278.000000 464.000000 130.000458
|
||||
318.000000 464.000000 110.000374
|
||||
421.000000 273.000000 39.999857
|
||||
320.000000 85.000000 9.999990
|
||||
230.000000 60.000000 40.000167
|
||||
403.000000 443.000000 9.999941
|
||||
377.000000 278.000000 129.999965
|
||||
211.000000 75.000000 79.999614
|
||||
396.000000 451.000000 19.999695
|
||||
379.000000 323.000000 100.000100
|
||||
138.000000 162.000000 149.999904
|
||||
373.000000 359.000000 119.999709
|
||||
298.000000 154.000000 140.000005
|
||||
377.000000 481.000000 19.999977
|
||||
405.000000 280.000000 99.999667
|
||||
412.000000 329.000000 20.000329
|
||||
392.000000 320.000000 80.000343
|
||||
155.000000 323.000000 159.999924
|
||||
171.000000 323.000000 149.999700
|
||||
70.000000 369.000000 60.000396
|
||||
270.000000 512.000000 100.000031
|
||||
62.000000 359.000000 10.000338
|
||||
401.000000 300.000000 49.999758
|
||||
366.000000 156.000000 99.999742
|
||||
125.000000 289.000000 150.000344
|
||||
306.000000 417.000000 140.000297
|
||||
189.000000 303.000000 160.000009
|
||||
215.000000 339.000000 140.000396
|
||||
346.000000 349.000000 139.999537
|
||||
73.000000 365.000000 69.999577
|
||||
127.000000 77.000000 70.000150
|
||||
108.000000 80.000000 9.999701
|
||||
416.000000 396.000000 29.999763
|
||||
355.000000 471.000000 70.000335
|
||||
383.000000 332.000000 79.999789
|
||||
279.000000 495.000000 109.999962
|
||||
182.000000 392.000000 139.999695
|
||||
418.000000 194.000000 20.000169
|
||||
399.000000 396.000000 49.999602
|
||||
323.000000 406.000000 139.999632
|
||||
401.000000 296.000000 70.000372
|
||||
116.000000 94.000000 90.000421
|
||||
408.000000 302.000000 39.999870
|
||||
398.000000 444.000000 39.999970
|
||||
391.000000 316.000000 59.999679
|
||||
34.000000 233.000000 29.999582
|
||||
406.000000 412.000000 20.000116
|
||||
75.000000 278.000000 109.999973
|
||||
36.000000 251.000000 19.999539
|
||||
387.000000 142.000000 -0.000290
|
||||
415.000000 231.000000 60.000112
|
||||
114.000000 84.000000 59.999969
|
||||
176.000000 309.000000 159.999733
|
||||
104.000000 469.000000 79.999782
|
||||
134.000000 80.000000 80.000475
|
||||
365.000000 453.000000 60.000166
|
||||
76.000000 325.000000 100.000301
|
||||
372.000000 346.000000 120.000425
|
||||
384.000000 160.000000 79.999710
|
||||
352.000000 318.000000 129.999934
|
||||
385.000000 317.000000 40.000493
|
||||
381.000000 319.000000 110.000497
|
||||
103.000000 84.000000 19.999857
|
||||
400.000000 406.000000 40.000279
|
||||
354.000000 491.000000 60.000459
|
||||
419.000000 282.000000 10.000487
|
||||
203.000000 507.000000 60.000487
|
||||
235.000000 510.000000 89.999674
|
||||
444.000000 387.000000 29.999811
|
||||
391.000000 313.000000 99.999893
|
||||
398.000000 450.000000 9.999883
|
||||
131.000000 300.000000 150.000225
|
||||
83.000000 110.000000 40.000016
|
||||
187.000000 503.000000 -0.000434
|
||||
155.000000 323.000000 150.000140
|
||||
212.000000 54.000000 19.999945
|
||||
97.000000 291.000000 129.999725
|
||||
148.000000 308.000000 149.999883
|
||||
343.000000 211.000000 139.999546
|
||||
198.000000 328.000000 120.000389
|
||||
431.000000 405.000000 19.999725
|
||||
400.000000 300.000000 89.999605
|
||||
400.000000 184.000000 80.000122
|
||||
362.000000 340.000000 129.999568
|
||||
347.000000 272.000000 140.000053
|
||||
104.000000 251.000000 140.000464
|
||||
71.000000 131.000000 59.999648
|
||||
110.000000 94.000000 79.999923
|
||||
374.000000 479.000000 40.000239
|
||||
372.000000 328.000000 99.999759
|
||||
374.000000 456.000000 49.999600
|
||||
217.000000 466.000000 129.999695
|
||||
207.000000 340.000000 119.999813
|
||||
394.000000 298.000000 109.999600
|
||||
398.000000 158.000000 20.000463
|
||||
376.000000 422.000000 69.999535
|
||||
419.000000 204.000000 39.999848
|
||||
397.000000 425.000000 39.999772
|
||||
425.000000 394.000000 -0.000166
|
||||
395.000000 469.000000 0.000180
|
||||
203.000000 347.000000 130.000090
|
||||
175.000000 356.000000 159.999756
|
||||
337.000000 482.000000 79.999700
|
||||
403.000000 290.000000 100.000395
|
||||
384.000000 441.000000 59.999825
|
||||
103.000000 268.000000 139.999921
|
||||
88.000000 158.000000 110.000417
|
||||
420.000000 264.000000 49.999543
|
||||
394.000000 309.000000 59.999763
|
||||
403.000000 385.000000 49.999907
|
||||
398.000000 274.000000 109.999683
|
||||
398.000000 396.000000 30.000477
|
||||
188.000000 376.000000 149.999695
|
||||
251.000000 467.000000 129.999727
|
||||
410.000000 173.000000 -0.000375
|
||||
419.000000 388.000000 30.000459
|
||||
53.000000 178.000000 70.000064
|
||||
386.000000 456.000000 29.999720
|
||||
230.000000 432.000000 139.999657
|
||||
209.000000 102.000000 119.999952
|
||||
399.000000 261.000000 100.000481
|
||||
34.000000 263.000000 9.999982
|
||||
387.000000 185.000000 100.000227
|
||||
166.000000 200.000000 160.000091
|
||||
397.000000 459.000000 10.000459
|
||||
112.000000 355.000000 119.999623
|
||||
151.000000 416.000000 119.999934
|
||||
387.000000 396.000000 70.000126
|
||||
414.000000 205.000000 59.999887
|
||||
84.000000 431.000000 49.999623
|
||||
54.000000 333.000000 40.000151
|
||||
226.000000 489.000000 120.000098
|
||||
210.000000 331.000000 139.999959
|
||||
62.000000 355.000000 59.999599
|
||||
128.000000 201.000000 149.999744
|
||||
399.000000 310.000000 40.000499
|
||||
285.000000 137.000000 129.999978
|
||||
271.000000 90.000000 79.999948
|
||||
392.000000 406.000000 39.999814
|
||||
126.000000 71.000000 19.999775
|
||||
395.000000 316.000000 69.999631
|
||||
196.000000 340.000000 140.000123
|
||||
172.000000 101.000000 119.999703
|
||||
386.000000 386.000000 20.000299
|
||||
412.000000 373.000000 20.000375
|
||||
368.000000 337.000000 119.999973
|
||||
192.000000 56.000000 29.999926
|
||||
326.000000 425.000000 129.999868
|
||||
328.000000 124.000000 100.000456
|
||||
419.000000 252.000000 60.000317
|
||||
101.000000 187.000000 130.000292
|
||||
282.000000 510.000000 40.000476
|
||||
48.000000 169.000000 19.999612
|
||||
368.000000 263.000000 130.000181
|
||||
106.000000 86.000000 40.000336
|
||||
137.000000 485.000000 60.000020
|
||||
337.000000 498.000000 10.000284
|
||||
179.000000 390.000000 149.999695
|
||||
57.000000 165.000000 60.000363
|
||||
370.000000 319.000000 119.999686
|
||||
159.000000 305.000000 159.999920
|
||||
380.000000 410.000000 69.999540
|
||||
66.000000 161.000000 80.000411
|
||||
211.000000 325.000000 120.000116
|
||||
207.000000 322.000000 110.000247
|
||||
136.000000 139.000000 139.999844
|
||||
425.000000 364.000000 0.000175
|
||||
46.000000 181.000000 50.000130
|
||||
407.000000 374.000000 39.999586
|
||||
410.000000 170.000000 9.999842
|
||||
416.000000 288.000000 40.000290
|
||||
301.000000 198.000000 149.999552
|
||||
368.000000 431.000000 79.999967
|
||||
95.000000 115.000000 89.999527
|
||||
190.000000 504.000000 40.000392
|
||||
431.000000 381.000000 39.999951
|
||||
389.000000 385.000000 60.000331
|
||||
111.000000 236.000000 139.999941
|
||||
305.000000 86.000000 49.999887
|
||||
174.000000 344.000000 150.000400
|
||||
406.000000 290.000000 79.999632
|
||||
411.000000 176.000000 30.000029
|
||||
403.000000 401.000000 0.000395
|
||||
186.000000 371.000000 149.999597
|
||||
396.000000 378.000000 19.999972
|
||||
407.000000 393.000000 50.000248
|
||||
314.000000 84.000000 30.000111
|
||||
82.000000 442.000000 40.000237
|
||||
190.000000 63.000000 59.999546
|
||||
418.000000 280.000000 50.000063
|
||||
107.000000 109.000000 99.999534
|
||||
429.000000 377.000000 20.000148
|
||||
241.000000 399.000000 149.999519
|
||||
231.000000 480.000000 119.999633
|
||||
293.000000 494.000000 110.000320
|
||||
386.000000 395.000000 50.000398
|
||||
189.000000 304.000000 150.000129
|
||||
359.000000 426.000000 100.000239
|
||||
404.000000 445.000000 20.000042
|
||||
390.000000 362.000000 60.000269
|
||||
255.000000 393.000000 149.999647
|
||||
266.000000 511.000000 60.000270
|
||||
445.000000 377.000000 19.999922
|
||||
238.000000 512.000000 80.000183
|
||||
263.000000 74.000000 60.000051
|
||||
345.000000 327.000000 130.000341
|
||||
297.000000 510.000000 69.999558
|
||||
204.000000 336.000000 110.000464
|
||||
93.000000 273.000000 130.000439
|
||||
156.000000 143.000000 149.999849
|
||||
214.000000 414.000000 150.000013
|
||||
208.000000 475.000000 130.000315
|
||||
174.000000 350.000000 149.999545
|
||||
406.000000 179.000000 59.999608
|
||||
397.000000 418.000000 39.999645
|
||||
197.000000 340.000000 109.999887
|
||||
305.000000 95.000000 70.000078
|
||||
223.000000 451.000000 130.000063
|
||||
67.000000 291.000000 99.999993
|
||||
374.000000 461.000000 59.999831
|
||||
395.000000 317.000000 89.999780
|
||||
140.000000 482.000000 100.000201
|
||||
364.000000 361.000000 129.999692
|
||||
396.000000 462.000000 0.000002
|
||||
403.000000 421.000000 10.000436
|
||||
373.000000 174.000000 109.999736
|
||||
393.000000 458.000000 19.999949
|
||||
379.000000 456.000000 39.999971
|
||||
396.000000 240.000000 100.000184
|
||||
71.000000 118.000000 20.000391
|
||||
364.000000 427.000000 90.000438
|
||||
390.000000 440.000000 49.999887
|
||||
44.000000 183.000000 0.000039
|
||||
75.000000 348.000000 90.000315
|
||||
405.000000 315.000000 0.000238
|
||||
320.000000 96.000000 60.000082
|
||||
85.000000 447.000000 50.000024
|
||||
391.000000 313.000000 40.000474
|
||||
303.000000 506.000000 29.999976
|
||||
346.000000 147.000000 110.000432
|
||||
203.000000 323.000000 120.000169
|
||||
185.000000 502.000000 90.000110
|
||||
135.000000 94.000000 100.000385
|
||||
385.000000 326.000000 99.999934
|
||||
388.000000 474.000000 39.999867
|
||||
43.000000 221.000000 70.000067
|
||||
415.000000 267.000000 79.999572
|
||||
401.000000 300.000000 80.000252
|
||||
54.000000 190.000000 79.999547
|
||||
388.000000 414.000000 49.999501
|
||||
400.000000 435.000000 29.999929
|
||||
179.000000 325.000000 149.999681
|
||||
390.000000 475.000000 20.000480
|
||||
210.000000 329.000000 110.000432
|
||||
124.000000 264.000000 149.999656
|
||||
380.000000 357.000000 110.000447
|
||||
35.000000 221.000000 0.000130
|
||||
422.000000 256.000000 -0.000478
|
||||
297.000000 502.000000 100.000074
|
||||
387.000000 404.000000 40.000484
|
||||
121.000000 142.000000 129.999588
|
||||
363.000000 488.000000 49.999644
|
||||
81.000000 441.000000 -0.000224
|
||||
310.000000 125.000000 110.000381
|
||||
202.000000 330.000000 129.999580
|
||||
154.000000 79.000000 90.000488
|
||||
349.000000 281.000000 139.999939
|
||||
266.000000 452.000000 139.999876
|
||||
419.000000 273.000000 60.000253
|
||||
60.000000 291.000000 90.000373
|
||||
53.000000 160.000000 30.000462
|
||||
401.000000 327.000000 29.999868
|
||||
388.000000 333.000000 90.000054
|
||||
409.000000 393.000000 39.999876
|
||||
329.000000 501.000000 19.999774
|
||||
66.000000 203.000000 99.999570
|
||||
84.000000 101.000000 0.000252
|
||||
378.000000 372.000000 110.000496
|
||||
177.000000 378.000000 160.000055
|
||||
378.000000 208.000000 120.000080
|
||||
39.000000 260.000000 49.999598
|
||||
113.000000 439.000000 90.000322
|
||||
386.000000 404.000000 50.000352
|
||||
88.000000 335.000000 110.000457
|
||||
408.000000 239.000000 80.000309
|
||||
385.000000 339.000000 79.999563
|
||||
65.000000 359.000000 -0.000186
|
||||
388.000000 339.000000 70.000118
|
||||
194.000000 479.000000 130.000054
|
||||
205.000000 359.000000 150.000249
|
||||
308.000000 366.000000 149.999771
|
||||
411.000000 305.000000 9.999644
|
||||
336.000000 473.000000 90.000141
|
||||
107.000000 380.000000 100.000196
|
||||
413.000000 210.000000 69.999762
|
||||
417.000000 191.000000 9.999593
|
||||
422.000000 243.000000 30.000485
|
||||
290.000000 76.000000 39.999602
|
||||
387.000000 321.000000 99.999700
|
||||
107.000000 439.000000 79.999777
|
||||
240.000000 254.000000 160.000437
|
||||
422.000000 265.000000 9.999794
|
||||
49.000000 243.000000 79.999624
|
||||
396.000000 392.000000 29.999964
|
||||
69.000000 389.000000 9.999977
|
||||
393.000000 327.000000 79.999595
|
||||
383.000000 337.000000 90.000313
|
||||
124.000000 155.000000 139.999884
|
||||
390.000000 328.000000 89.999610
|
||||
388.000000 310.000000 109.999974
|
||||
401.000000 437.000000 20.000420
|
||||
181.000000 305.000000 149.999817
|
||||
122.000000 121.000000 119.999998
|
||||
81.000000 441.000000 20.000065
|
||||
107.000000 303.000000 129.999801
|
||||
51.000000 295.000000 60.000192
|
||||
97.000000 458.000000 70.000150
|
||||
112.000000 293.000000 140.000309
|
||||
392.000000 147.000000 29.999844
|
||||
395.000000 458.000000 -0.000345
|
||||
396.000000 471.000000 20.000089
|
||||
205.000000 445.000000 139.999722
|
||||
392.000000 425.000000 49.999927
|
||||
407.000000 291.000000 60.000455
|
||||
364.000000 329.000000 109.999573
|
||||
334.000000 449.000000 110.000287
|
||||
377.000000 296.000000 129.999513
|
||||
202.000000 396.000000 149.999929
|
||||
68.000000 386.000000 19.999990
|
||||
376.000000 332.000000 89.999690
|
||||
442.000000 399.000000 20.000326
|
||||
388.000000 295.000000 120.000295
|
||||
387.000000 341.000000 50.000408
|
||||
112.000000 81.000000 49.999621
|
||||
410.000000 386.000000 50.000226
|
||||
59.000000 311.000000 80.000359
|
||||
330.000000 499.000000 80.000308
|
||||
199.000000 332.000000 110.000351
|
||||
202.000000 332.000000 140.000116
|
||||
38.000000 196.000000 30.000366
|
||||
206.000000 407.000000 150.000108
|
||||
385.000000 458.000000 39.999801
|
||||
178.000000 370.000000 150.000203
|
||||
74.000000 419.000000 10.000074
|
||||
417.000000 405.000000 29.999702
|
||||
47.000000 272.000000 69.999870
|
||||
164.000000 373.000000 160.000203
|
||||
408.000000 409.000000 29.999548
|
||||
376.000000 335.000000 99.999615
|
||||
399.000000 396.000000 19.999683
|
||||
334.000000 491.000000 79.999633
|
||||
379.000000 478.000000 -0.000167
|
||||
303.000000 471.000000 120.000457
|
||||
291.000000 478.000000 120.000436
|
||||
400.000000 433.000000 0.000031
|
||||
90.000000 450.000000 59.999865
|
||||
319.000000 291.000000 150.000192
|
||||
33.000000 256.000000 20.000497
|
||||
445.000000 393.000000 10.000151
|
||||
341.000000 497.000000 69.999978
|
||||
390.000000 240.000000 110.000036
|
||||
276.000000 69.000000 19.999504
|
||||
173.000000 57.000000 40.000059
|
||||
209.000000 359.000000 139.999774
|
||||
387.000000 392.000000 20.000481
|
||||
318.000000 503.000000 89.999523
|
||||
378.000000 478.000000 39.999991
|
||||
84.000000 285.000000 119.999551
|
||||
337.000000 335.000000 140.000134
|
||||
117.000000 372.000000 109.999629
|
||||
359.000000 458.000000 79.999820
|
||||
146.000000 67.000000 60.000076
|
||||
377.000000 406.000000 90.000477
|
||||
381.000000 316.000000 109.999684
|
||||
48.000000 183.000000 60.000220
|
||||
302.000000 452.000000 130.000413
|
||||
138.000000 100.000000 109.999758
|
||||
268.000000 511.000000 20.000319
|
||||
210.000000 324.000000 109.999505
|
||||
331.000000 180.000000 139.999527
|
||||
354.000000 422.000000 109.999787
|
||||
287.000000 509.000000 80.000157
|
||||
217.000000 437.000000 139.999915
|
||||
348.000000 294.000000 139.999826
|
||||
145.000000 109.000000 119.999748
|
||||
86.000000 413.000000 69.999800
|
||||
407.000000 365.000000 39.999844
|
||||
393.000000 458.000000 29.999694
|
||||
180.000000 409.000000 139.999597
|
||||
79.000000 429.000000 0.000369
|
||||
385.000000 468.000000 50.000300
|
||||
167.000000 68.000000 70.000425
|
||||
424.000000 392.000000 40.000496
|
||||
334.000000 328.000000 139.999843
|
||||
88.000000 115.000000 79.999614
|
||||
185.000000 284.000000 160.000326
|
||||
178.000000 122.000000 140.000324
|
||||
96.000000 434.000000 69.999906
|
||||
138.000000 390.000000 119.999927
|
||||
379.000000 449.000000 60.000479
|
||||
383.000000 360.000000 100.000229
|
||||
394.000000 447.000000 40.000372
|
||||
429.000000 374.000000 0.000267
|
||||
250.000000 447.000000 140.000291
|
||||
374.000000 395.000000 99.999977
|
||||
421.000000 400.000000 29.999804
|
||||
173.000000 498.000000 100.000223
|
||||
112.000000 80.000000 29.999608
|
||||
397.000000 307.000000 69.999990
|
||||
94.000000 95.000000 30.000227
|
||||
365.000000 214.000000 130.000457
|
||||
69.000000 124.000000 -0.000140
|
||||
214.000000 342.000000 129.999922
|
||||
378.000000 324.000000 50.000407
|
||||
170.000000 92.000000 110.000496
|
||||
396.000000 206.000000 99.999936
|
||||
385.000000 359.000000 89.999911
|
||||
262.000000 483.000000 120.000212
|
||||
73.000000 418.000000 0.000094
|
||||
263.000000 117.000000 120.000412
|
||||
392.000000 469.000000 40.000013
|
||||
203.000000 340.000000 120.000411
|
||||
206.000000 141.000000 149.999614
|
||||
65.000000 250.000000 100.000372
|
||||
408.000000 263.000000 89.999711
|
||||
356.000000 326.000000 120.000249
|
||||
390.000000 318.000000 90.000241
|
||||
357.000000 369.000000 129.999641
|
||||
200.000000 332.000000 149.999692
|
||||
356.000000 314.000000 130.000478
|
||||
206.000000 335.000000 150.000105
|
||||
388.000000 349.000000 79.999724
|
||||
422.000000 361.000000 29.999572
|
||||
336.000000 384.000000 139.999898
|
||||
371.000000 477.000000 49.999938
|
||||
383.000000 332.000000 70.000333
|
||||
358.000000 117.000000 49.999606
|
||||
228.000000 511.000000 109.999685
|
||||
391.000000 449.000000 50.000425
|
||||
210.000000 331.000000 130.000294
|
||||
414.000000 332.000000 10.000205
|
||||
79.000000 429.000000 20.000389
|
||||
425.000000 348.000000 19.999522
|
||||
188.000000 500.000000 120.000132
|
||||
414.000000 395.000000 19.999694
|
||||
333.000000 502.000000 0.000474
|
||||
163.000000 74.000000 80.000256
|
||||
414.000000 352.000000 0.000273
|
||||
396.000000 471.000000 29.999511
|
||||
161.000000 113.000000 130.000121
|
||||
38.000000 271.000000 0.000064
|
||||
406.000000 390.000000 29.999509
|
||||
255.000000 136.000000 140.000180
|
||||
143.000000 362.000000 130.000256
|
||||
205.000000 348.000000 149.999703
|
||||
370.000000 484.000000 39.999679
|
||||
361.000000 394.000000 119.999961
|
||||
236.000000 511.000000 69.999764
|
||||
161.000000 344.000000 150.000324
|
||||
271.000000 99.000000 100.000087
|
||||
347.000000 129.000000 90.000352
|
||||
383.000000 473.000000 20.000348
|
||||
418.000000 261.000000 69.999636
|
||||
342.000000 477.000000 80.000249
|
||||
240.000000 212.000000 159.999945
|
||||
93.000000 387.000000 89.999525
|
||||
214.000000 335.000000 130.000266
|
||||
434.000000 365.000000 19.999711
|
||||
377.000000 248.000000 120.000476
|
||||
84.000000 227.000000 120.000431
|
||||
391.000000 462.000000 39.999559
|
||||
390.000000 473.000000 -0.000072
|
||||
442.000000 378.000000 29.999932
|
||||
357.000000 126.000000 69.999812
|
||||
64.000000 143.000000 49.999661
|
||||
339.000000 310.000000 139.999787
|
||||
376.000000 446.000000 69.999556
|
||||
421.000000 272.000000 29.999579
|
||||
383.000000 398.000000 79.999947
|
||||
377.000000 339.000000 90.000050
|
||||
357.000000 461.000000 70.000494
|
||||
381.000000 346.000000 99.999989
|
||||
198.000000 335.000000 129.999550
|
||||
383.000000 383.000000 89.999876
|
||||
392.000000 395.000000 50.000489
|
||||
385.000000 318.000000 50.000068
|
||||
196.000000 506.000000 109.999506
|
||||
183.000000 138.000000 150.000295
|
||||
434.000000 396.000000 0.000059
|
||||
38.000000 219.000000 50.000182
|
||||
390.000000 284.000000 120.000395
|
||||
365.000000 347.000000 129.999830
|
||||
74.000000 118.000000 30.000426
|
||||
207.000000 122.000000 140.000380
|
||||
113.000000 116.000000 109.999784
|
||||
416.000000 292.000000 30.000362
|
||||
414.000000 279.000000 80.000030
|
||||
441.000000 386.000000 0.000095
|
||||
144.000000 337.000000 139.999525
|
||||
386.000000 148.000000 60.000351
|
||||
93.000000 409.000000 79.999575
|
||||
170.000000 409.000000 129.999719
|
||||
104.000000 348.000000 119.999514
|
||||
377.000000 416.000000 80.000066
|
||||
392.000000 410.000000 40.000224
|
||||
322.000000 258.000000 150.000354
|
||||
387.000000 142.000000 39.999842
|
||||
378.000000 327.000000 109.999670
|
||||
403.000000 268.000000 99.999822
|
||||
219.000000 183.000000 160.000476
|
||||
196.000000 361.000000 150.000187
|
||||
436.000000 397.000000 30.000102
|
||||
187.000000 334.000000 150.000416
|
||||
361.000000 476.000000 60.000302
|
||||
265.000000 462.000000 129.999811
|
||||
357.000000 334.000000 129.999518
|
||||
397.000000 317.000000 80.000196
|
||||
201.000000 110.000000 129.999544
|
||||
170.000000 292.000000 159.999874
|
||||
376.000000 342.000000 110.000096
|
||||
288.000000 382.000000 150.000470
|
||||
385.000000 328.000000 40.000208
|
||||
380.000000 263.000000 120.000184
|
||||
279.000000 96.000000 90.000454
|
||||
298.000000 508.000000 10.000017
|
||||
391.000000 274.000000 119.999504
|
||||
80.000000 121.000000 70.000114
|
||||
414.000000 240.000000 70.000303
|
||||
72.000000 385.000000 50.000489
|
||||
312.000000 443.000000 129.999958
|
||||
381.000000 307.000000 119.999893
|
||||
147.000000 60.000000 29.999771
|
||||
233.000000 512.000000 49.999755
|
||||
129.000000 479.000000 69.999985
|
||||
383.000000 474.000000 -0.000300
|
||||
119.000000 474.000000 50.000440
|
||||
162.000000 87.000000 99.999822
|
||||
388.000000 320.000000 60.000475
|
||||
208.000000 92.000000 110.000454
|
||||
402.000000 441.000000 -0.000434
|
||||
247.000000 61.000000 30.000254
|
||||
60.000000 177.000000 89.999508
|
||||
375.000000 338.000000 100.000112
|
||||
388.000000 475.000000 30.000200
|
||||
169.000000 361.000000 150.000305
|
||||
73.000000 138.000000 69.999613
|
||||
151.000000 130.000000 140.000243
|
||||
292.000000 428.000000 139.999652
|
||||
43.000000 288.000000 40.000209
|
||||
411.000000 196.000000 69.999886
|
||||
191.000000 440.000000 139.999870
|
||||
188.000000 393.000000 150.000062
|
||||
379.000000 331.000000 100.000426
|
||||
421.000000 211.000000 10.000373
|
||||
151.000000 489.000000 110.000018
|
||||
214.000000 501.000000 120.000350
|
||||
186.000000 475.000000 130.000205
|
||||
119.000000 171.000000 139.999644
|
||||
166.000000 495.000000 49.999638
|
||||
94.000000 139.000000 110.000263
|
||||
361.000000 113.000000 30.000475
|
||||
287.000000 462.000000 129.999600
|
||||
119.000000 472.000000 0.000324
|
||||
336.000000 499.000000 59.999701
|
||||
397.000000 309.000000 79.999503
|
||||
396.000000 468.000000 9.999539
|
||||
418.000000 219.000000 50.000021
|
||||
188.000000 53.000000 9.999892
|
||||
317.000000 484.000000 99.999771
|
||||
87.000000 99.000000 9.999789
|
||||
440.000000 400.000000 10.000026
|
||||
77.000000 414.000000 50.000086
|
||||
59.000000 334.000000 69.999692
|
||||
389.000000 473.000000 10.000131
|
||||
93.000000 364.000000 99.999586
|
||||
191.000000 380.000000 140.000324
|
||||
397.000000 463.000000 20.000440
|
||||
314.000000 83.000000 -0.000144
|
||||
404.000000 252.000000 89.999526
|
||||
192.000000 55.000000 0.000057
|
||||
37.000000 211.000000 39.999811
|
||||
408.000000 337.000000 0.000463
|
||||
386.000000 321.000000 50.000145
|
||||
57.000000 307.000000 69.999726
|
||||
399.000000 434.000000 9.999597
|
||||
440.000000 394.000000 0.000167
|
||||
194.000000 347.000000 139.999819
|
||||
187.000000 359.000000 160.000408
|
||||
82.000000 430.000000 30.000265
|
||||
292.000000 510.000000 90.000293
|
||||
179.000000 291.000000 160.000422
|
||||
346.000000 484.000000 69.999785
|
||||
433.000000 395.000000 19.999927
|
||||
238.000000 463.000000 129.999988
|
||||
431.000000 404.000000 10.000165
|
||||
125.000000 346.000000 130.000258
|
||||
364.000000 483.000000 50.000249
|
||||
152.000000 60.000000 10.000471
|
||||
412.000000 390.000000 50.000296
|
||||
167.000000 492.000000 119.999873
|
||||
162.000000 360.000000 140.000440
|
||||
76.000000 394.000000 60.000355
|
||||
404.000000 389.000000 0.000108
|
||||
131.000000 68.000000 10.000393
|
||||
79.000000 430.000000 9.999539
|
||||
414.000000 282.000000 59.999976
|
||||
171.000000 344.000000 160.000494
|
||||
140.000000 307.000000 150.000051
|
||||
371.000000 276.000000 130.000475
|
||||
410.000000 320.000000 9.999772
|
||||
399.000000 300.000000 60.000152
|
||||
410.000000 275.000000 90.000213
|
||||
178.000000 501.000000 69.999844
|
||||
396.000000 463.000000 29.999717
|
||||
270.000000 511.000000 0.000287
|
||||
105.000000 365.000000 110.000111
|
||||
36.000000 263.000000 29.999728
|
||||
42.000000 269.000000 60.000204
|
||||
152.000000 382.000000 129.999554
|
||||
139.000000 124.000000 129.999830
|
||||
178.000000 499.000000 9.999512
|
||||
380.000000 329.000000 60.000364
|
||||
195.000000 398.000000 149.999704
|
||||
105.000000 138.000000 120.000289
|
||||
130.000000 480.000000 19.999848
|
||||
241.000000 504.000000 110.000227
|
||||
249.000000 61.000000 0.000215
|
||||
149.000000 63.000000 50.000394
|
||||
435.000000 381.000000 19.999612
|
||||
370.000000 120.000000 19.999582
|
||||
395.000000 363.000000 50.000173
|
||||
390.000000 455.000000 0.000083
|
||||
345.000000 465.000000 89.999529
|
||||
321.000000 451.000000 120.000069
|
||||
232.000000 72.000000 69.999566
|
||||
78.000000 441.000000 10.000433
|
||||
411.000000 254.000000 79.999644
|
||||
349.000000 104.000000 9.999972
|
||||
40.000000 224.000000 59.999868
|
||||
401.000000 417.000000 30.000379
|
||||
55.000000 328.000000 60.000186
|
||||
136.000000 66.000000 39.999869
|
||||
387.000000 459.000000 19.999694
|
||||
238.000000 120.000000 129.999648
|
||||
380.000000 232.000000 119.999852
|
||||
387.000000 336.000000 59.999680
|
||||
386.000000 316.000000 100.000192
|
||||
202.000000 323.000000 110.000169
|
||||
421.000000 243.000000 39.999865
|
||||
378.000000 477.000000 19.999946
|
||||
403.000000 407.000000 0.000441
|
||||
117.000000 473.000000 10.000461
|
||||
388.000000 454.000000 40.000397
|
||||
36.000000 209.000000 9.999788
|
||||
344.000000 158.000000 120.000283
|
||||
167.000000 319.000000 160.000206
|
||||
80.000000 432.000000 39.999684
|
||||
124.000000 318.000000 139.999804
|
||||
379.000000 285.000000 130.000148
|
||||
420.000000 205.000000 29.999982
|
||||
364.000000 457.000000 60.000173
|
||||
314.000000 319.000000 150.000372
|
||||
271.000000 387.000000 149.999929
|
||||
405.000000 324.000000 -0.000038
|
||||
393.000000 305.000000 49.999780
|
||||
380.000000 472.000000 50.000100
|
||||
392.000000 455.000000 10.000360
|
||||
430.000000 366.000000 30.000433
|
||||
88.000000 433.000000 60.000203
|
||||
400.000000 426.000000 20.000350
|
||||
198.000000 506.000000 19.999553
|
||||
369.000000 321.000000 109.999993
|
||||
389.000000 376.000000 70.000300
|
||||
447.000000 391.000000 19.999590
|
||||
78.000000 255.000000 120.000420
|
||||
201.000000 310.000000 150.000380
|
||||
385.000000 330.000000 99.999671
|
||||
313.000000 506.000000 50.000090
|
||||
398.000000 286.000000 110.000315
|
||||
366.000000 325.000000 119.999806
|
||||
431.000000 389.000000 39.999680
|
||||
71.000000 122.000000 9.999706
|
||||
416.000000 393.000000 -0.000388
|
||||
339.000000 98.000000 40.000373
|
||||
354.000000 120.000000 59.999789
|
||||
163.000000 480.000000 119.999792
|
||||
209.000000 78.000000 90.000471
|
||||
340.000000 454.000000 100.000347
|
||||
344.000000 120.000000 79.999566
|
||||
34.000000 221.000000 20.000076
|
||||
130.000000 440.000000 100.000378
|
||||
367.000000 328.000000 100.000402
|
||||
372.000000 485.000000 29.999664
|
||||
35.000000 247.000000 -0.000266
|
||||
230.000000 454.000000 130.000398
|
||||
155.000000 314.000000 150.000438
|
||||
386.000000 168.000000 89.999942
|
||||
423.000000 398.000000 20.000409
|
||||
252.000000 68.000000 49.999609
|
||||
405.000000 314.000000 30.000086
|
||||
78.000000 140.000000 90.000406
|
||||
373.000000 453.000000 60.000142
|
||||
159.000000 328.000000 150.000142
|
||||
74.000000 417.000000 30.000409
|
||||
330.000000 91.000000 20.000081
|
||||
388.000000 332.000000 80.000109
|
||||
385.000000 328.000000 60.000013
|
||||
174.000000 447.000000 130.000073
|
||||
316.000000 226.000000 149.999931
|
||||
393.000000 453.000000 30.000415
|
||||
361.000000 321.000000 119.999624
|
||||
376.000000 465.000000 60.000467
|
||||
366.000000 448.000000 79.999941
|
||||
58.000000 346.000000 50.000010
|
||||
391.000000 384.000000 50.000228
|
||||
162.000000 396.000000 129.999672
|
||||
425.000000 378.000000 40.000076
|
||||
421.000000 278.000000 -0.000240
|
||||
179.000000 381.000000 150.000273
|
||||
355.000000 483.000000 60.000125
|
||||
82.000000 442.000000 29.999998
|
||||
83.000000 108.000000 50.000310
|
||||
407.000000 175.000000 49.999596
|
||||
74.000000 418.000000 19.999690
|
||||
132.000000 415.000000 109.999606
|
||||
327.000000 489.000000 90.000109
|
||||
408.000000 211.000000 79.999683
|
||||
416.000000 201.000000 50.000427
|
||||
69.000000 380.000000 40.000280
|
||||
235.000000 151.000000 150.000472
|
||||
369.000000 307.000000 130.000229
|
||||
396.000000 164.000000 70.000265
|
||||
308.000000 338.000000 149.999970
|
||||
175.000000 330.000000 159.999778
|
||||
150.000000 349.000000 139.999937
|
||||
421.000000 219.000000 -0.000068
|
||||
444.000000 384.000000 9.999661
|
||||
407.000000 335.000000 29.999975
|
||||
123.000000 480.000000 90.000020
|
||||
388.000000 207.000000 110.000124
|
||||
190.000000 372.000000 140.000446
|
||||
127.000000 482.000000 30.000090
|
||||
276.000000 476.000000 120.000370
|
||||
413.000000 289.000000 49.999591
|
||||
240.000000 510.000000 30.000054
|
||||
410.000000 316.000000 20.000107
|
||||
354.000000 109.000000 -0.000420
|
||||
56.000000 226.000000 90.000305
|
||||
55.000000 346.000000 20.000297
|
||||
373.000000 329.000000 109.999831
|
||||
421.000000 269.000000 20.000125
|
||||
417.000000 194.000000 -0.000244
|
||||
377.000000 477.000000 10.000096
|
||||
311.000000 136.000000 120.000023
|
||||
355.000000 326.000000 130.000433
|
||||
84.000000 110.000000 60.000454
|
||||
202.000000 506.000000 80.000296
|
||||
398.000000 392.000000 0.000118
|
||||
261.000000 501.000000 110.000266
|
||||
386.000000 140.000000 10.000112
|
||||
75.000000 210.000000 110.000483
|
||||
418.000000 392.000000 39.999772
|
||||
47.000000 172.000000 39.999530
|
||||
201.000000 61.000000 50.000348
|
||||
174.000000 426.000000 129.999769
|
||||
406.000000 287.000000 89.999588
|
||||
406.000000 294.000000 50.000482
|
||||
178.000000 464.000000 129.999690
|
||||
379.000000 481.000000 0.000359
|
||||
66.000000 135.000000 40.000472
|
||||
439.000000 380.000000 -0.000057
|
||||
410.000000 300.000000 0.000483
|
||||
400.000000 198.000000 90.000463
|
||||
396.000000 305.000000 99.999628
|
||||
112.000000 327.000000 129.999537
|
||||
400.000000 351.000000 39.999731
|
||||
285.000000 445.000000 140.000481
|
||||
194.000000 345.000000 120.000109
|
||||
395.000000 373.000000 49.999714
|
||||
417.000000 277.000000 69.999982
|
||||
220.000000 511.000000 100.000036
|
||||
368.000000 181.000000 119.999800
|
||||
330.000000 162.000000 130.000194
|
||||
355.000000 188.000000 130.000376
|
||||
158.000000 58.000000 20.000298
|
||||
402.000000 419.000000 0.000043
|
||||
389.000000 147.000000 50.000103
|
||||
77.000000 161.000000 99.999915
|
||||
99.000000 98.000000 69.999881
|
||||
383.000000 472.000000 10.000356
|
||||
123.000000 366.000000 120.000131
|
||||
109.000000 78.000000 -0.000493
|
||||
441.000000 394.000000 29.999848
|
||||
118.000000 405.000000 100.000021
|
||||
148.000000 454.000000 109.999506
|
||||
416.000000 405.000000 10.000422
|
||||
214.000000 331.000000 120.000073
|
||||
377.000000 481.000000 9.999558
|
||||
381.000000 413.000000 59.999620
|
||||
400.000000 448.000000 30.000243
|
||||
185.000000 358.000000 149.999663
|
||||
194.000000 362.000000 139.999629
|
||||
184.000000 183.000000 160.000453
|
||||
391.000000 348.000000 50.000085
|
||||
378.000000 477.000000 30.000336
|
||||
314.000000 349.000000 150.000272
|
||||
159.000000 302.000000 150.000093
|
||||
70.000000 396.000000 29.999689
|
||||
186.000000 428.000000 140.000092
|
||||
384.000000 460.000000 50.000420
|
||||
240.000000 438.000000 139.999721
|
||||
384.000000 426.000000 59.999785
|
||||
396.000000 389.000000 50.000117
|
||||
210.000000 348.000000 139.999537
|
||||
46.000000 171.000000 9.999837
|
||||
173.000000 498.000000 30.000387
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,384 @@
|
|||
383
|
||||
27.850301 -17.970299 134.875148
|
||||
-30.421501 -21.008499 144.254249
|
||||
0.114400 -1.784400 50.132200
|
||||
-18.264400 12.484400 101.627799
|
||||
17.396600 -1.906600 99.023301
|
||||
21.063600 -19.043600 132.826796
|
||||
29.463299 -5.123300 142.671651
|
||||
28.427000 -18.197000 149.973500
|
||||
20.364199 6.405800 114.632099
|
||||
14.811500 -9.141500 105.235749
|
||||
19.542701 -11.952700 123.446353
|
||||
-15.004000 -8.116000 98.497997
|
||||
-10.693900 -4.016100 58.998050
|
||||
-24.134400 11.784400 107.332801
|
||||
-23.475999 8.946000 104.191998
|
||||
-4.457700 9.027700 56.901148
|
||||
16.912700 15.277300 98.476347
|
||||
12.924100 12.075900 77.677051
|
||||
-21.715099 6.515100 96.397452
|
||||
10.053100 -2.053100 61.576548
|
||||
8.974900 -5.644900 68.852447
|
||||
8.249500 -14.839500 101.639749
|
||||
29.422501 -20.732500 142.186247
|
||||
27.104600 -21.824600 149.962300
|
||||
31.013999 -2.164000 149.977000
|
||||
27.157400 -17.317400 149.988700
|
||||
30.981799 -14.521800 149.960900
|
||||
31.027899 -19.127900 149.983950
|
||||
20.507200 17.852800 112.518598
|
||||
21.309300 -12.729300 134.384644
|
||||
19.385099 -11.085100 123.957550
|
||||
22.975500 -13.585500 143.232755
|
||||
14.246800 -7.776800 92.238399
|
||||
15.299200 -12.349200 106.839596
|
||||
-20.686101 6.686100 104.721952
|
||||
10.410300 -14.950300 109.945149
|
||||
-0.572800 -12.837200 104.743602
|
||||
9.430900 -11.520900 105.765453
|
||||
22.088301 -9.988300 120.869147
|
||||
18.696699 -9.706700 114.113353
|
||||
20.051600 -15.941601 125.510798
|
||||
17.014300 -12.824300 114.637149
|
||||
25.541301 -12.251300 134.885648
|
||||
22.033800 -2.333800 121.891898
|
||||
-18.289400 -7.380600 96.930299
|
||||
-21.954500 4.094500 101.622749
|
||||
-19.513600 4.613600 100.078202
|
||||
-20.256000 10.436000 98.992001
|
||||
-13.608300 -11.011700 97.960850
|
||||
-2.165500 -7.894500 80.802246
|
||||
-2.200600 2.110600 56.369702
|
||||
14.424000 10.726000 88.107003
|
||||
-17.650600 6.960600 97.964700
|
||||
-16.106900 1.746900 89.671550
|
||||
3.865300 -3.635300 75.612649
|
||||
3.290200 -2.310200 69.370102
|
||||
-16.555599 8.445600 91.712202
|
||||
-7.549400 1.549400 62.095299
|
||||
7.074300 -4.804300 73.542148
|
||||
10.674700 -9.114700 102.117354
|
||||
6.940000 -9.100000 95.914998
|
||||
-20.917200 -9.272800 92.751403
|
||||
-4.043800 -2.546200 51.163101
|
||||
-15.706300 -13.303700 92.791853
|
||||
-22.591499 15.911500 100.584248
|
||||
-15.927600 14.587600 91.711202
|
||||
3.550800 8.709200 54.815400
|
||||
-19.986700 12.906700 96.921649
|
||||
-11.174600 7.344600 64.152697
|
||||
5.729900 -1.889900 53.249949
|
||||
7.298300 1.991700 57.419149
|
||||
17.288300 -16.248301 111.504147
|
||||
11.139900 -5.079900 66.779953
|
||||
9.299900 -4.059900 60.559951
|
||||
23.049200 11.560800 111.494597
|
||||
24.139500 4.980500 116.704751
|
||||
29.687400 -21.817400 149.958700
|
||||
22.317100 -19.487100 141.113554
|
||||
23.782200 -13.892200 146.856105
|
||||
28.643601 -7.063600 145.816796
|
||||
-19.830300 13.350300 103.164847
|
||||
19.028700 14.271300 109.414352
|
||||
28.074900 -4.714900 140.597449
|
||||
22.833101 4.646900 119.306550
|
||||
22.090100 5.439900 116.685051
|
||||
22.567500 9.082500 114.078753
|
||||
20.163701 14.096300 113.586848
|
||||
20.742100 -11.562100 131.231049
|
||||
21.981901 -17.111900 134.370944
|
||||
25.385999 -12.786000 140.117995
|
||||
24.287300 -11.777300 136.968650
|
||||
27.245601 -13.955600 143.737795
|
||||
27.890600 -16.050599 147.355294
|
||||
21.251200 -8.951200 115.150604
|
||||
12.877700 -11.097700 103.713851
|
||||
-18.707900 5.677900 101.101053
|
||||
12.688800 -9.448800 105.264399
|
||||
-11.035400 -9.444600 102.652300
|
||||
-14.368000 -10.892000 101.091003
|
||||
-1.861500 -14.028500 102.634250
|
||||
-13.923300 -12.566700 98.998351
|
||||
12.485200 -11.985200 105.252599
|
||||
11.048700 -13.378700 106.834346
|
||||
15.585200 -10.855200 108.912598
|
||||
16.027501 -12.237500 112.513748
|
||||
14.253200 -14.333200 110.456603
|
||||
16.070500 -14.640500 114.080253
|
||||
17.983100 -12.533100 114.631549
|
||||
6.535600 -13.215600 105.777803
|
||||
21.772400 1.057600 117.201198
|
||||
22.093599 -4.353600 119.821796
|
||||
12.941200 -11.261200 110.465603
|
||||
8.894700 -11.624700 107.357351
|
||||
19.696600 0.693400 108.898298
|
||||
21.726600 6.443400 112.543298
|
||||
18.646500 -13.406500 116.678251
|
||||
21.180000 -14.900000 129.675001
|
||||
24.322701 -5.942700 126.056352
|
||||
20.577200 -13.737200 125.553598
|
||||
23.806999 -11.367000 134.358494
|
||||
21.780000 -11.330000 131.770003
|
||||
23.553400 -3.403400 121.911698
|
||||
-18.976199 -4.463800 99.036901
|
||||
-18.976499 -2.053500 99.036751
|
||||
-20.277900 -7.612100 97.431053
|
||||
-20.563300 -1.986700 97.458353
|
||||
-21.594099 7.434100 103.177947
|
||||
-20.604900 6.144900 101.112553
|
||||
-19.292400 9.542400 100.588798
|
||||
-22.819500 11.419500 103.675251
|
||||
-21.773300 11.133300 102.113354
|
||||
-16.047000 -8.803000 98.486497
|
||||
-17.838200 -12.431800 97.955900
|
||||
-18.931901 -9.888100 98.489047
|
||||
-2.144400 1.054400 53.792799
|
||||
-4.323100 1.703100 55.838451
|
||||
1.430600 -2.270600 61.570298
|
||||
-2.026100 -1.613900 55.831951
|
||||
2.131900 -1.761900 54.815950
|
||||
-0.320800 -1.229200 52.214602
|
||||
6.954800 -1.014800 57.937399
|
||||
4.719600 1.400400 55.329801
|
||||
-6.380700 2.000700 58.964650
|
||||
1.736200 -5.286200 72.513097
|
||||
5.514400 -4.744400 71.962200
|
||||
3.504500 -4.074500 74.042252
|
||||
-0.940300 5.240300 57.939849
|
||||
0.447400 8.312600 61.558698
|
||||
7.754600 1.155400 61.057302
|
||||
7.038400 3.821600 60.524201
|
||||
-18.130300 12.180300 96.929849
|
||||
0.591600 -4.271600 79.750803
|
||||
-16.671001 -7.499000 95.374502
|
||||
-17.649101 -4.930900 92.780453
|
||||
-14.640000 -9.350000 96.914999
|
||||
-9.162100 -7.997900 88.098953
|
||||
-15.918000 -6.132000 86.515998
|
||||
-19.701600 12.661600 100.069202
|
||||
-20.835200 13.045200 96.912399
|
||||
-18.631699 13.451700 92.279149
|
||||
-18.708099 7.788100 96.405952
|
||||
-7.977300 3.337300 60.541351
|
||||
-10.023200 0.453200 62.598399
|
||||
-7.388900 -3.921100 68.870547
|
||||
-3.846100 -3.533900 69.391952
|
||||
0.788000 -3.358000 76.674000
|
||||
-2.012200 -3.767800 75.083903
|
||||
-7.760200 6.150200 62.099899
|
||||
-9.870600 7.370600 66.764703
|
||||
-11.900100 5.990100 72.514947
|
||||
3.315700 -5.645700 77.702851
|
||||
-0.920200 -10.459800 101.614899
|
||||
-1.343500 -7.016500 82.893248
|
||||
6.011700 -11.191700 100.565848
|
||||
7.105100 -12.185100 103.692551
|
||||
-10.273400 -10.216600 99.028301
|
||||
-11.712200 -9.327800 96.408902
|
||||
-8.960200 -11.809800 97.454903
|
||||
3.113900 -12.953900 100.591948
|
||||
3.243300 -10.013300 101.081653
|
||||
-20.770601 -11.609400 92.244699
|
||||
-19.028101 -12.051900 90.675951
|
||||
-20.208101 13.128100 90.710951
|
||||
-9.834500 10.214500 64.157747
|
||||
4.486300 2.443700 51.688151
|
||||
9.673400 0.846600 60.536701
|
||||
9.712600 8.327400 65.196298
|
||||
13.512100 -4.832100 74.061052
|
||||
12.061000 -4.051000 66.245499
|
||||
22.982500 17.437500 112.026251
|
||||
23.673800 14.956200 114.606899
|
||||
20.499800 9.810200 108.359902
|
||||
21.161500 11.518500 111.515747
|
||||
22.374501 15.865500 108.362252
|
||||
24.998800 -17.598800 145.279407
|
||||
26.518900 -9.998900 142.679451
|
||||
27.565800 -12.355800 145.307907
|
||||
24.669799 -12.679800 143.214905
|
||||
23.095200 -1.885200 121.892598
|
||||
24.370300 1.799700 121.900148
|
||||
21.694800 8.405200 114.607399
|
||||
24.475301 -14.645300 142.167647
|
||||
23.101000 -12.941000 136.965500
|
||||
23.011600 -11.721600 136.445796
|
||||
11.249500 -10.039500 102.144754
|
||||
11.478300 -9.638300 105.789153
|
||||
-12.076300 -11.093700 102.666850
|
||||
-10.158400 -11.291600 100.555798
|
||||
-14.430500 -13.689500 100.589748
|
||||
-11.942100 -12.587900 101.628949
|
||||
4.210800 -13.780800 102.150404
|
||||
11.627100 -10.087100 103.713551
|
||||
13.965000 -12.725000 108.367502
|
||||
13.494400 -10.934400 107.342201
|
||||
11.087800 -11.727800 107.343901
|
||||
17.523701 -10.653700 114.596849
|
||||
15.976999 -14.507000 112.003501
|
||||
22.654100 0.555900 117.237048
|
||||
21.217500 1.302500 117.223748
|
||||
10.458900 -12.888900 110.959450
|
||||
20.789201 -3.569200 115.119604
|
||||
12.419000 -14.169000 106.289500
|
||||
26.735001 -12.275000 134.897498
|
||||
23.753101 -11.153100 131.261549
|
||||
25.044499 -9.814500 134.397244
|
||||
-15.024300 -9.735700 103.167847
|
||||
-18.943901 -9.896100 101.638049
|
||||
-19.183900 -0.826100 97.473053
|
||||
-21.081500 4.011500 100.074252
|
||||
-21.030300 -7.229700 97.474853
|
||||
-20.216900 -5.253100 99.011551
|
||||
-20.370299 9.710300 100.569848
|
||||
-18.827300 4.747300 101.606349
|
||||
-17.820599 -13.119400 96.429702
|
||||
-19.615700 -11.634300 96.937149
|
||||
-17.897401 -11.592600 99.541298
|
||||
-4.505300 -1.134700 55.352351
|
||||
-3.076800 -0.133200 54.281600
|
||||
-1.984000 -0.956000 53.782999
|
||||
-1.971800 5.601800 55.859101
|
||||
4.345700 1.744300 56.382852
|
||||
4.337700 0.212300 53.788849
|
||||
-5.845100 -0.054900 57.392449
|
||||
-2.207900 2.327900 56.896048
|
||||
-4.803200 5.673200 58.448400
|
||||
-3.315500 7.895500 58.437250
|
||||
-4.058200 3.998200 57.390899
|
||||
-2.918700 2.268700 55.330651
|
||||
1.922000 -4.172000 72.991001
|
||||
8.036200 6.673800 64.173097
|
||||
9.331000 0.699000 62.070499
|
||||
15.177400 9.722600 87.078702
|
||||
-15.047600 -11.302400 96.401202
|
||||
-18.230100 -10.259900 96.959949
|
||||
-19.210901 -7.459100 95.914548
|
||||
-20.057501 -6.162500 95.906248
|
||||
-14.785000 9.135000 81.832497
|
||||
-6.880700 -4.639300 67.304650
|
||||
0.504400 -5.664400 76.667200
|
||||
-9.644500 3.944500 63.637750
|
||||
-5.252100 8.492100 60.543951
|
||||
-8.323400 7.803400 64.193297
|
||||
-7.812700 5.902700 64.168647
|
||||
12.889700 -9.189700 101.594849
|
||||
-8.747400 -8.232600 93.291300
|
||||
-8.437700 -9.452300 99.006151
|
||||
4.299700 -11.999700 101.089853
|
||||
-13.059600 -9.500400 97.980200
|
||||
-4.751400 -11.228600 101.629299
|
||||
-5.702600 -11.687400 100.078702
|
||||
-0.019300 -11.130700 99.550348
|
||||
-1.125500 -12.214500 101.077253
|
||||
1.704500 -9.164500 92.257249
|
||||
-8.743600 -12.276400 95.388202
|
||||
-6.535000 -12.745000 98.482497
|
||||
-0.395100 -12.694900 102.657450
|
||||
8.012100 -6.662100 76.156054
|
||||
5.773300 -7.943300 83.946649
|
||||
-13.410600 -8.179400 97.974700
|
||||
2.629100 -10.759100 104.719552
|
||||
17.136201 12.023800 100.573098
|
||||
18.969300 1.950700 106.829646
|
||||
18.233000 12.227000 105.786503
|
||||
19.635699 9.214300 108.397852
|
||||
-19.567501 14.097500 89.146254
|
||||
-10.928400 9.608400 64.670801
|
||||
4.128600 -1.358600 51.189301
|
||||
23.612199 17.337800 114.111103
|
||||
22.350301 12.439700 113.035152
|
||||
20.050601 16.059400 108.890298
|
||||
25.622900 -14.602900 141.656443
|
||||
13.433900 -12.663900 105.271949
|
||||
14.446700 -13.526700 106.293350
|
||||
-12.458200 -10.991800 104.215898
|
||||
-7.977000 -12.133000 102.136504
|
||||
-10.337200 -11.122800 98.996401
|
||||
8.685300 -12.285300 103.677651
|
||||
11.915700 -12.805700 110.432853
|
||||
15.323500 -12.373500 108.876748
|
||||
21.036700 2.813300 115.143354
|
||||
20.474001 -10.874000 126.566998
|
||||
-15.678100 -9.831900 101.605949
|
||||
-18.537900 -9.082100 100.051052
|
||||
-19.415301 0.275300 95.892348
|
||||
-20.074500 -1.855500 98.997751
|
||||
-20.657700 -11.132300 96.921149
|
||||
-16.127301 -11.362700 102.676350
|
||||
-4.404800 -1.805200 55.352601
|
||||
3.603800 0.256200 52.236902
|
||||
-1.456500 2.376500 55.346751
|
||||
-6.989300 -0.650700 59.515350
|
||||
-3.508500 6.938500 57.420749
|
||||
13.405600 2.894400 79.752803
|
||||
5.013300 -5.403300 77.176647
|
||||
-16.463399 -12.186600 95.398302
|
||||
-17.237900 -8.492100 96.956049
|
||||
-15.187700 -11.322300 99.526148
|
||||
-19.380301 -9.519700 94.354851
|
||||
-17.254100 -10.525900 93.792946
|
||||
-10.367600 -8.342400 93.286200
|
||||
-18.943799 -7.526200 94.333101
|
||||
-18.886901 -5.823100 95.911548
|
||||
-18.345499 13.475500 90.702251
|
||||
0.806700 -5.676700 77.718351
|
||||
1.046900 -4.706900 77.708451
|
||||
-9.061500 5.131500 65.209248
|
||||
-11.407800 7.057800 72.511097
|
||||
-4.013600 -10.796400 100.058202
|
||||
3.416100 -12.676100 104.238048
|
||||
2.260000 -12.440000 102.655000
|
||||
7.753900 -12.673900 102.156954
|
||||
9.956900 -9.976900 102.113454
|
||||
7.505000 -11.235000 104.212498
|
||||
5.119000 -10.599000 102.669500
|
||||
-3.021400 -11.178600 103.199297
|
||||
-8.721000 -11.079000 99.034501
|
||||
-5.856500 -11.553500 98.481747
|
||||
3.042600 -10.732600 99.536298
|
||||
1.399600 -11.809600 101.119803
|
||||
-8.425600 8.965600 60.527201
|
||||
2.854500 -0.104500 50.117250
|
||||
20.102601 14.287400 110.996300
|
||||
20.071300 15.338700 106.825646
|
||||
25.300099 -13.550100 140.075045
|
||||
-14.544200 -10.735800 102.672900
|
||||
8.899800 -11.309800 103.694901
|
||||
8.373500 -13.593500 103.701751
|
||||
14.957000 -13.707000 108.393502
|
||||
-14.790800 -10.369200 100.579598
|
||||
-19.526100 -0.693900 99.016951
|
||||
-19.891100 1.501100 99.004451
|
||||
-20.159900 -11.180100 95.360052
|
||||
-19.838100 -11.101900 93.795946
|
||||
3.044600 0.755400 51.682301
|
||||
3.687800 1.442200 52.738898
|
||||
-6.885100 -3.294900 61.557448
|
||||
-6.215400 1.495400 59.492300
|
||||
-17.352500 -7.377500 94.313751
|
||||
-16.239999 -6.860000 91.224998
|
||||
-20.576800 0.046800 95.891598
|
||||
-18.031599 5.911600 96.409202
|
||||
-16.499700 13.289700 90.685151
|
||||
-9.316800 8.566800 63.131600
|
||||
-6.187100 -10.722900 98.486447
|
||||
3.329400 -10.959400 102.659700
|
||||
-9.227300 -10.502700 100.586348
|
||||
-5.203100 -11.776900 96.948449
|
||||
2.934500 -1.344500 50.157250
|
||||
21.912201 13.157800 111.506097
|
||||
-17.928601 0.158600 95.890698
|
||||
-17.785900 3.815900 96.932049
|
||||
-20.299200 3.889200 98.485397
|
||||
4.120400 0.749600 54.270200
|
||||
-17.981600 -6.818400 94.324201
|
||||
-19.942101 -5.897900 94.318951
|
||||
-18.396400 7.436400 94.846797
|
||||
-9.592500 7.612500 63.663750
|
||||
21.840700 14.839300 110.435353
|
||||
-20.119800 2.629800 96.935099
|
||||
21.831000 16.478999 112.030501
|
||||
20.249299 14.330700 108.894648
|
||||
21.416699 14.473300 113.053352
|
||||
21.707799 13.162200 109.433902
|
||||
|
|
@ -0,0 +1,500 @@
|
|||
500
|
||||
231.000000 182.000000 0.000351
|
||||
14.000000 115.000000 -15.999829
|
||||
71.000000 94.000000 31.999592
|
||||
68.000000 54.000000 47.999560
|
||||
207.000000 119.000000 31.999602
|
||||
108.000000 241.000000 -31.999965
|
||||
36.000000 131.000000 -31.999798
|
||||
61.000000 79.000000 -16.000061
|
||||
158.000000 29.000000 47.999573
|
||||
171.000000 20.000000 32.000102
|
||||
80.000000 21.000000 15.999613
|
||||
208.000000 209.000000 -32.000094
|
||||
72.000000 154.000000 -0.000168
|
||||
130.000000 195.000000 0.000267
|
||||
159.000000 185.000000 0.000415
|
||||
165.000000 172.000000 -15.999620
|
||||
189.000000 138.000000 -16.000149
|
||||
180.000000 211.000000 -48.000257
|
||||
152.000000 182.000000 -32.000245
|
||||
196.000000 216.000000 -0.000361
|
||||
171.000000 63.000000 47.999650
|
||||
8.000000 118.000000 -0.000377
|
||||
167.000000 228.000000 0.000447
|
||||
149.000000 64.000000 -0.000335
|
||||
26.000000 166.000000 -31.999897
|
||||
62.000000 132.000000 15.999507
|
||||
129.000000 244.000000 -15.999563
|
||||
223.000000 57.000000 15.999837
|
||||
142.000000 25.000000 47.999532
|
||||
119.000000 12.000000 15.999691
|
||||
51.000000 213.000000 -32.000051
|
||||
67.000000 59.000000 47.999558
|
||||
244.000000 118.000000 16.000059
|
||||
229.000000 186.000000 0.000022
|
||||
151.000000 232.000000 0.000274
|
||||
177.000000 166.000000 -0.000265
|
||||
139.000000 71.000000 16.000400
|
||||
201.000000 184.000000 16.000257
|
||||
149.000000 26.000000 47.999937
|
||||
144.000000 184.000000 -32.000347
|
||||
212.000000 44.000000 16.000372
|
||||
122.000000 243.000000 -32.000271
|
||||
63.000000 226.000000 -15.999717
|
||||
14.000000 92.000000 -0.000228
|
||||
79.000000 191.000000 -48.000345
|
||||
168.000000 174.000000 -31.999750
|
||||
94.000000 239.000000 -15.999957
|
||||
128.000000 196.000000 -0.000407
|
||||
10.000000 151.000000 -0.000198
|
||||
28.000000 63.000000 16.000490
|
||||
50.000000 217.000000 -15.999698
|
||||
147.000000 242.000000 -16.000115
|
||||
11.000000 139.000000 -16.000482
|
||||
208.000000 183.000000 16.000006
|
||||
153.000000 28.000000 47.999911
|
||||
63.000000 29.000000 15.999721
|
||||
18.000000 173.000000 0.000064
|
||||
80.000000 86.000000 31.999967
|
||||
214.000000 131.000000 -31.999614
|
||||
25.000000 164.000000 -32.000292
|
||||
18.000000 81.000000 15.999688
|
||||
174.000000 164.000000 -15.999519
|
||||
112.000000 58.000000 48.000316
|
||||
221.000000 196.000000 0.000020
|
||||
87.000000 228.000000 0.000271
|
||||
85.000000 82.000000 31.999577
|
||||
136.000000 185.000000 -31.999946
|
||||
139.000000 12.000000 15.999814
|
||||
207.000000 136.000000 -31.999751
|
||||
243.000000 127.000000 -16.000406
|
||||
238.000000 83.000000 16.000043
|
||||
236.000000 175.000000 0.000133
|
||||
59.000000 39.000000 -0.000173
|
||||
138.000000 58.000000 48.000435
|
||||
63.000000 125.000000 -15.999958
|
||||
148.000000 59.000000 47.999763
|
||||
11.000000 116.000000 16.000295
|
||||
12.000000 104.000000 16.000059
|
||||
99.000000 195.000000 -47.999545
|
||||
176.000000 168.000000 -32.000485
|
||||
97.000000 186.000000 -0.000049
|
||||
26.000000 69.000000 0.000408
|
||||
67.000000 196.000000 -48.000408
|
||||
197.000000 73.000000 -15.999752
|
||||
180.000000 99.000000 15.999739
|
||||
246.000000 145.000000 0.000341
|
||||
54.000000 184.000000 15.999968
|
||||
194.000000 78.000000 -15.999879
|
||||
16.000000 144.000000 15.999772
|
||||
100.000000 28.000000 47.999568
|
||||
26.000000 108.000000 32.000427
|
||||
188.000000 58.000000 48.000056
|
||||
104.000000 23.000000 0.000019
|
||||
186.000000 193.000000 -47.999712
|
||||
242.000000 100.000000 16.000407
|
||||
139.000000 12.000000 31.999602
|
||||
229.000000 168.000000 -31.999564
|
||||
96.000000 230.000000 -0.000241
|
||||
144.000000 71.000000 31.999954
|
||||
139.000000 184.000000 -16.000332
|
||||
158.000000 226.000000 -48.000437
|
||||
54.000000 143.000000 -31.999968
|
||||
241.000000 163.000000 -0.000375
|
||||
110.000000 59.000000 47.999725
|
||||
88.000000 27.000000 0.000264
|
||||
159.000000 25.000000 0.000204
|
||||
228.000000 68.000000 0.000450
|
||||
53.000000 114.000000 31.999861
|
||||
76.000000 22.000000 16.000012
|
||||
238.000000 172.000000 -16.000306
|
||||
27.000000 174.000000 -32.000074
|
||||
71.000000 64.000000 48.000089
|
||||
58.000000 73.000000 -16.000054
|
||||
226.000000 75.000000 31.999956
|
||||
64.000000 224.000000 -32.000409
|
||||
219.000000 79.000000 -16.000015
|
||||
171.000000 219.000000 -48.000443
|
||||
17.000000 149.000000 15.999620
|
||||
85.000000 219.000000 -47.999948
|
||||
139.000000 243.000000 -31.999927
|
||||
64.000000 132.000000 -15.999923
|
||||
133.000000 60.000000 0.000370
|
||||
141.000000 13.000000 32.000016
|
||||
144.000000 193.000000 0.000487
|
||||
29.000000 77.000000 32.000389
|
||||
186.000000 227.000000 -31.999584
|
||||
51.000000 211.000000 -0.000140
|
||||
100.000000 67.000000 -0.000192
|
||||
153.000000 240.000000 -31.999932
|
||||
184.000000 64.000000 48.000329
|
||||
118.000000 233.000000 0.000081
|
||||
37.000000 196.000000 -32.000450
|
||||
196.000000 35.000000 32.000130
|
||||
43.000000 51.000000 32.000190
|
||||
97.000000 61.000000 47.999902
|
||||
18.000000 174.000000 -15.999889
|
||||
54.000000 112.000000 32.000389
|
||||
244.000000 102.000000 -0.000141
|
||||
26.000000 89.000000 31.999633
|
||||
183.000000 101.000000 -0.000397
|
||||
190.000000 155.000000 -32.000059
|
||||
141.000000 61.000000 -0.000261
|
||||
122.000000 69.000000 31.999905
|
||||
159.000000 239.000000 -31.999703
|
||||
180.000000 156.000000 -16.000295
|
||||
122.000000 186.000000 -32.000017
|
||||
159.000000 16.000000 31.999811
|
||||
111.000000 62.000000 0.000081
|
||||
30.000000 73.000000 32.000406
|
||||
40.000000 131.000000 -32.000022
|
||||
185.000000 50.000000 47.999556
|
||||
46.000000 121.000000 32.000010
|
||||
15.000000 91.000000 15.999817
|
||||
139.000000 243.000000 -15.999875
|
||||
194.000000 110.000000 -15.999682
|
||||
200.000000 221.000000 -16.000194
|
||||
146.000000 183.000000 -32.000064
|
||||
106.000000 191.000000 0.000436
|
||||
182.000000 156.000000 -0.000125
|
||||
201.000000 71.000000 -16.000001
|
||||
127.000000 59.000000 0.000459
|
||||
141.000000 242.000000 -32.000493
|
||||
171.000000 235.000000 -31.999615
|
||||
61.000000 176.000000 15.999908
|
||||
151.000000 14.000000 31.999740
|
||||
121.000000 185.000000 -16.000410
|
||||
9.000000 110.000000 -0.000308
|
||||
36.000000 124.000000 31.999681
|
||||
162.000000 16.000000 16.000300
|
||||
80.000000 234.000000 -16.000029
|
||||
15.000000 164.000000 -15.999884
|
||||
208.000000 72.000000 -16.000103
|
||||
67.000000 114.000000 15.999868
|
||||
120.000000 60.000000 0.000358
|
||||
153.000000 24.000000 -0.000315
|
||||
167.000000 77.000000 0.000084
|
||||
88.000000 178.000000 -0.000296
|
||||
178.000000 88.000000 31.999579
|
||||
75.000000 99.000000 16.000467
|
||||
151.000000 241.000000 -31.999550
|
||||
47.000000 183.000000 15.999840
|
||||
151.000000 180.000000 -15.999625
|
||||
112.000000 230.000000 -47.999580
|
||||
152.000000 60.000000 47.999920
|
||||
145.000000 183.000000 -15.999679
|
||||
62.000000 123.000000 -16.000320
|
||||
228.000000 142.000000 -32.000272
|
||||
106.000000 232.000000 0.000122
|
||||
89.000000 33.000000 48.000060
|
||||
118.000000 231.000000 -48.000438
|
||||
162.000000 239.000000 -15.999565
|
||||
196.000000 220.000000 -31.999656
|
||||
189.000000 117.000000 15.999870
|
||||
73.000000 46.000000 48.000414
|
||||
193.000000 37.000000 0.000188
|
||||
187.000000 221.000000 0.000304
|
||||
61.000000 140.000000 15.999972
|
||||
115.000000 184.000000 -15.999817
|
||||
153.000000 231.000000 -0.000374
|
||||
46.000000 134.000000 -31.999890
|
||||
68.000000 201.000000 -47.999923
|
||||
217.000000 55.000000 -0.000048
|
||||
200.000000 34.000000 16.000119
|
||||
152.000000 195.000000 -48.000153
|
||||
146.000000 72.000000 32.000142
|
||||
105.000000 242.000000 -15.999819
|
||||
158.000000 69.000000 0.000177
|
||||
145.000000 72.000000 15.999652
|
||||
103.000000 73.000000 32.000330
|
||||
246.000000 112.000000 -0.000307
|
||||
243.000000 128.000000 16.000331
|
||||
46.000000 48.000000 0.000354
|
||||
99.000000 15.000000 31.999993
|
||||
96.000000 70.000000 0.000313
|
||||
192.000000 129.000000 15.999724
|
||||
171.000000 36.000000 48.000142
|
||||
56.000000 41.000000 -0.000237
|
||||
87.000000 236.000000 -32.000264
|
||||
110.000000 242.000000 -32.000440
|
||||
90.000000 26.000000 0.000233
|
||||
219.000000 176.000000 16.000414
|
||||
196.000000 32.000000 15.999647
|
||||
225.000000 119.000000 31.999763
|
||||
168.000000 81.000000 31.999513
|
||||
103.000000 182.000000 -31.999641
|
||||
28.000000 192.000000 -16.000020
|
||||
225.000000 136.000000 -32.000475
|
||||
62.000000 117.000000 -15.999916
|
||||
58.000000 182.000000 16.000479
|
||||
94.000000 71.000000 0.000277
|
||||
210.000000 43.000000 16.000458
|
||||
238.000000 86.000000 -0.000143
|
||||
186.000000 28.000000 32.000422
|
||||
208.000000 46.000000 32.000427
|
||||
99.000000 60.000000 47.999544
|
||||
85.000000 36.000000 47.999560
|
||||
14.000000 140.000000 16.000064
|
||||
174.000000 91.000000 16.000080
|
||||
72.000000 33.000000 0.000351
|
||||
230.000000 95.000000 31.999702
|
||||
153.000000 15.000000 31.999736
|
||||
180.000000 44.000000 48.000142
|
||||
147.000000 13.000000 16.000173
|
||||
168.000000 27.000000 0.000135
|
||||
16.000000 168.000000 -16.000330
|
||||
12.000000 98.000000 0.000077
|
||||
84.000000 88.000000 15.999770
|
||||
175.000000 162.000000 -15.999729
|
||||
122.000000 12.000000 31.999587
|
||||
194.000000 145.000000 16.000214
|
||||
245.000000 104.000000 0.000096
|
||||
38.000000 50.000000 16.000261
|
||||
102.000000 231.000000 -0.000273
|
||||
120.000000 70.000000 32.000247
|
||||
103.000000 241.000000 -15.999562
|
||||
24.000000 73.000000 0.000059
|
||||
153.000000 241.000000 -16.000022
|
||||
80.000000 29.000000 -0.000425
|
||||
73.000000 223.000000 0.000246
|
||||
25.000000 91.000000 -15.999716
|
||||
110.000000 13.000000 31.999612
|
||||
142.000000 230.000000 -47.999894
|
||||
23.000000 185.000000 -16.000220
|
||||
226.000000 180.000000 -31.999881
|
||||
230.000000 105.000000 32.000364
|
||||
80.000000 169.000000 -31.999656
|
||||
219.000000 203.000000 -16.000266
|
||||
69.000000 142.000000 -0.000292
|
||||
33.000000 61.000000 0.000446
|
||||
66.000000 119.000000 15.999737
|
||||
29.000000 178.000000 -31.999839
|
||||
122.000000 195.000000 0.000250
|
||||
95.000000 79.000000 15.999537
|
||||
53.000000 141.000000 -32.000021
|
||||
228.000000 113.000000 31.999506
|
||||
110.000000 196.000000 -48.000009
|
||||
84.000000 167.000000 -16.000145
|
||||
221.000000 123.000000 32.000377
|
||||
192.000000 126.000000 -16.000016
|
||||
163.000000 237.000000 -32.000336
|
||||
107.000000 73.000000 15.999636
|
||||
30.000000 59.000000 15.999555
|
||||
143.000000 233.000000 -0.000014
|
||||
76.000000 233.000000 -16.000291
|
||||
140.000000 24.000000 48.000373
|
||||
13.000000 122.000000 -16.000396
|
||||
119.000000 243.000000 -15.999928
|
||||
219.000000 52.000000 15.999516
|
||||
39.000000 207.000000 -16.000205
|
||||
11.000000 153.000000 0.000400
|
||||
153.000000 227.000000 -47.999632
|
||||
197.000000 182.000000 15.999689
|
||||
96.000000 15.000000 16.000408
|
||||
189.000000 27.000000 16.000370
|
||||
85.000000 173.000000 -32.000317
|
||||
137.000000 185.000000 -15.999535
|
||||
186.000000 113.000000 0.000316
|
||||
47.000000 72.000000 -16.000307
|
||||
26.000000 147.000000 -31.999760
|
||||
34.000000 59.000000 0.000272
|
||||
184.000000 191.000000 -47.999729
|
||||
135.000000 195.000000 0.000041
|
||||
137.000000 22.000000 0.000252
|
||||
137.000000 70.000000 16.000342
|
||||
25.000000 164.000000 16.000081
|
||||
241.000000 162.000000 -16.000253
|
||||
25.000000 91.000000 31.999907
|
||||
204.000000 44.000000 -0.000409
|
||||
110.000000 184.000000 -32.000070
|
||||
71.000000 191.000000 -47.999714
|
||||
186.000000 141.000000 -0.000049
|
||||
112.000000 22.000000 -0.000413
|
||||
27.000000 187.000000 -0.000197
|
||||
28.000000 139.000000 -31.999749
|
||||
155.000000 76.000000 16.000041
|
||||
31.000000 135.000000 -31.999815
|
||||
99.000000 240.000000 -32.000440
|
||||
218.000000 59.000000 32.000098
|
||||
240.000000 164.000000 -16.000179
|
||||
186.000000 62.000000 48.000381
|
||||
193.000000 120.000000 -15.999543
|
||||
87.000000 19.000000 32.000031
|
||||
185.000000 148.000000 -0.000396
|
||||
187.000000 139.000000 -0.000262
|
||||
194.000000 177.000000 15.999986
|
||||
13.000000 133.000000 15.999525
|
||||
217.000000 131.000000 -32.000238
|
||||
73.000000 229.000000 -31.999844
|
||||
218.000000 196.000000 -31.999779
|
||||
62.000000 218.000000 -0.000483
|
||||
131.000000 12.000000 16.000284
|
||||
68.000000 136.000000 -0.000446
|
||||
14.000000 94.000000 16.000185
|
||||
112.000000 197.000000 -48.000241
|
||||
223.000000 198.000000 -15.999801
|
||||
71.000000 161.000000 -32.000219
|
||||
86.000000 18.000000 16.000351
|
||||
100.000000 227.000000 -47.999777
|
||||
17.000000 169.000000 -0.000308
|
||||
118.000000 24.000000 47.999953
|
||||
190.000000 100.000000 31.999686
|
||||
72.000000 103.000000 0.000019
|
||||
214.000000 124.000000 32.000046
|
||||
221.000000 132.000000 -32.000248
|
||||
81.000000 217.000000 -48.000242
|
||||
54.000000 71.000000 -16.000327
|
||||
14.000000 161.000000 -16.000004
|
||||
64.000000 31.000000 31.999705
|
||||
196.000000 223.000000 -16.000117
|
||||
114.000000 194.000000 0.000448
|
||||
239.000000 109.000000 -15.999611
|
||||
242.000000 155.000000 -15.999961
|
||||
62.000000 138.000000 15.999829
|
||||
155.000000 188.000000 -0.000170
|
||||
12.000000 131.000000 15.999532
|
||||
230.000000 150.000000 -31.999836
|
||||
12.000000 124.000000 -15.999937
|
||||
244.000000 137.000000 -15.999895
|
||||
38.000000 200.000000 0.000110
|
||||
175.000000 93.000000 16.000389
|
||||
40.000000 124.000000 32.000203
|
||||
129.000000 11.000000 15.999840
|
||||
39.000000 48.000000 16.000091
|
||||
23.000000 70.000000 15.999560
|
||||
89.000000 222.000000 -47.999557
|
||||
73.000000 26.000000 31.999999
|
||||
242.000000 94.000000 -0.000065
|
||||
229.000000 148.000000 -32.000276
|
||||
86.000000 237.000000 -15.999800
|
||||
229.000000 190.000000 -15.999638
|
||||
115.000000 71.000000 15.999835
|
||||
180.000000 95.000000 -0.000262
|
||||
247.000000 137.000000 0.000076
|
||||
130.000000 69.000000 31.999978
|
||||
38.000000 205.000000 -15.999885
|
||||
95.000000 238.000000 -31.999829
|
||||
155.000000 179.000000 -16.000164
|
||||
25.000000 153.000000 -32.000133
|
||||
17.000000 106.000000 -15.999715
|
||||
178.000000 167.000000 -31.999967
|
||||
209.000000 207.000000 -0.000472
|
||||
68.000000 34.000000 0.000071
|
||||
239.000000 146.000000 15.999682
|
||||
81.000000 38.000000 47.999976
|
||||
110.000000 23.000000 -0.000396
|
||||
27.000000 81.000000 31.999842
|
||||
136.000000 70.000000 32.000427
|
||||
145.000000 232.000000 0.000270
|
||||
140.000000 231.000000 -47.999598
|
||||
148.000000 196.000000 -48.000069
|
||||
16.000000 111.000000 -16.000408
|
||||
108.000000 14.000000 31.999518
|
||||
240.000000 91.000000 16.000149
|
||||
230.000000 160.000000 -32.000275
|
||||
64.000000 123.000000 15.999728
|
||||
16.000000 87.000000 15.999844
|
||||
8.000000 141.000000 0.000100
|
||||
222.000000 194.000000 -0.000178
|
||||
160.000000 61.000000 48.000409
|
||||
174.000000 20.000000 15.999672
|
||||
171.000000 174.000000 0.000162
|
||||
84.000000 81.000000 -0.000264
|
||||
151.000000 75.000000 15.999741
|
||||
36.000000 79.000000 -16.000373
|
||||
163.000000 18.000000 31.999651
|
||||
68.000000 116.000000 -0.000288
|
||||
185.000000 205.000000 -48.000148
|
||||
193.000000 135.000000 16.000057
|
||||
187.000000 119.000000 0.000122
|
||||
19.000000 80.000000 0.000444
|
||||
173.000000 64.000000 47.999899
|
||||
237.000000 82.000000 0.000371
|
||||
212.000000 211.000000 -15.999928
|
||||
229.000000 87.000000 31.999870
|
||||
69.000000 114.000000 0.000236
|
||||
97.000000 194.000000 -48.000360
|
||||
36.000000 176.000000 15.999577
|
||||
55.000000 213.000000 -0.000157
|
||||
189.000000 228.000000 -15.999840
|
||||
110.000000 192.000000 -0.000275
|
||||
174.000000 235.000000 -15.999655
|
||||
73.000000 99.000000 -0.000327
|
||||
28.000000 116.000000 31.999974
|
||||
229.000000 107.000000 31.999858
|
||||
153.000000 14.000000 15.999576
|
||||
103.000000 14.000000 16.000290
|
||||
130.000000 186.000000 -31.999906
|
||||
162.000000 62.000000 48.000005
|
||||
75.000000 160.000000 0.000127
|
||||
13.000000 161.000000 -0.000169
|
||||
183.000000 222.000000 -0.000352
|
||||
107.000000 182.000000 -15.999640
|
||||
105.000000 13.000000 15.999856
|
||||
50.000000 38.000000 16.000248
|
||||
175.000000 86.000000 0.000015
|
||||
30.000000 196.000000 -15.999867
|
||||
51.000000 42.000000 31.999990
|
||||
241.000000 93.000000 15.999799
|
||||
131.000000 243.000000 -16.000487
|
||||
243.000000 102.000000 15.999527
|
||||
30.000000 182.000000 -32.000239
|
||||
120.000000 185.000000 -31.999833
|
||||
66.000000 136.000000 -16.000264
|
||||
200.000000 42.000000 -0.000351
|
||||
25.000000 102.000000 32.000231
|
||||
176.000000 87.000000 32.000019
|
||||
160.000000 194.000000 -47.999614
|
||||
96.000000 240.000000 -16.000345
|
||||
230.000000 91.000000 -15.999643
|
||||
243.000000 157.000000 -0.000306
|
||||
243.000000 153.000000 -16.000310
|
||||
217.000000 124.000000 32.000136
|
||||
188.000000 197.000000 -47.999767
|
||||
121.000000 70.000000 15.999790
|
||||
242.000000 134.000000 16.000201
|
||||
165.000000 229.000000 -0.000410
|
||||
102.000000 24.000000 -0.000139
|
||||
230.000000 164.000000 16.000285
|
||||
182.000000 32.000000 0.000135
|
||||
247.000000 114.000000 -0.000002
|
||||
43.000000 204.000000 -32.000367
|
||||
210.000000 212.000000 -15.999682
|
||||
37.000000 59.000000 32.000195
|
||||
94.000000 16.000000 15.999830
|
||||
112.000000 25.000000 48.000203
|
||||
95.000000 17.000000 31.999534
|
||||
171.000000 192.000000 -48.000241
|
||||
125.000000 60.000000 0.000292
|
||||
12.000000 151.000000 -15.999890
|
||||
162.000000 193.000000 -48.000247
|
||||
161.000000 184.000000 0.000343
|
||||
70.000000 107.000000 -0.000360
|
||||
31.000000 120.000000 32.000491
|
||||
73.000000 209.000000 -47.999995
|
||||
106.000000 73.000000 31.999769
|
||||
145.000000 63.000000 -0.000340
|
||||
183.000000 152.000000 0.000134
|
||||
138.000000 197.000000 -47.999966
|
||||
106.000000 182.000000 -32.000377
|
||||
95.000000 176.000000 -15.999590
|
||||
61.000000 115.000000 -16.000234
|
||||
80.000000 169.000000 0.000431
|
||||
149.000000 23.000000 0.000338
|
||||
242.000000 121.000000 -16.000055
|
||||
63.000000 130.000000 16.000208
|
||||
229.000000 65.000000 15.999791
|
||||
152.000000 73.000000 31.999837
|
||||
9.000000 143.000000 -0.000190
|
||||
13.000000 100.000000 15.999721
|
||||
78.000000 89.000000 0.000382
|
||||
175.000000 226.000000 -0.000207
|
||||
79.000000 64.000000 47.999724
|
||||
165.000000 83.000000 15.999635
|
||||
173.000000 191.000000 -48.000118
|
||||
67.000000 141.000000 -15.999508
|
||||
149.000000 229.000000 -48.000104
|
||||
75.000000 156.000000 -15.999668
|
||||
13.000000 155.000000 -15.999930
|
||||
110.000000 71.000000 32.000201
|
||||
|
|
@ -19,7 +19,7 @@ provided in the documentation of `Alpha_shape_3` for more details. The default v
|
|||
must be \link Tag_true `Tag_true`\endlink if the underlying triangulation of the alpha shape to be used is a regular triangulation
|
||||
and \link Tag_false `Tag_false`\endlink otherwise. The default is \link Tag_false `Tag_false`\endlink.
|
||||
|
||||
\cgalModels `AlphaShapeCell_3`
|
||||
\cgalModels{AlphaShapeCell_3}
|
||||
|
||||
\sa `Delaunay_triangulation_cell_base_3`
|
||||
\sa `Regular_triangulation_cell_base_3`
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ provided in the documentation of `Alpha_shape_3` for more details. The default v
|
|||
must be \link Tag_true `Tag_true`\endlink if the underlying triangulation of the alpha shape to be used is a regular triangulation
|
||||
and \link Tag_false `Tag_false`\endlink otherwise. The default is \link Tag_false `Tag_false`\endlink.
|
||||
|
||||
\cgalModels `AlphaShapeVertex_3`
|
||||
\cgalModels{AlphaShapeVertex_3}
|
||||
|
||||
\sa `Triangulation_vertex_base_3`
|
||||
\sa `Regular_triangulation_vertex_base_3`
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ to the `Alpha_shape_3` class.
|
|||
By default, it is instantiated with `Delaunay_triangulation_cell_base_3<Traits>`,
|
||||
which is appropriate for basic alpha shapes.
|
||||
|
||||
\cgalModels `FixedAlphaShapeCell_3`
|
||||
\cgalModels{FixedAlphaShapeCell_3}
|
||||
|
||||
\sa `Alpha_shape_cell_base_3`
|
||||
\sa `Delaunay_triangulation_cell_base_3`
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ to the `Alpha_shape_3` class.
|
|||
By default, it is instantiated with `Triangulation_vertex_base_3<Traits>`,
|
||||
which is appropriate for basic alpha shapes.
|
||||
|
||||
\cgalModels `FixedAlphaShapeVertex_3`
|
||||
\cgalModels{FixedAlphaShapeVertex_3}
|
||||
|
||||
\sa `Alpha_shape_vertex_base_3`
|
||||
\sa `Triangulation_vertex_base_3`
|
||||
|
|
|
|||
|
|
@ -9,7 +9,9 @@ The concept `AlphaShapeCell_3` describes the requirements for the base cell of a
|
|||
RegularTriangulationCellBase_3 if the underlying triangulation of the alpha shape is a regular triangulation,
|
||||
Periodic_3TriangulationDSCellBase_3 if the underlying triangulation of the alpha shape is a periodic triangulation}
|
||||
|
||||
\cgalHasModel `CGAL::Alpha_shape_cell_base_3` (templated with the appropriate triangulation cell base class).
|
||||
\cgalHasModelsBegin
|
||||
\cgalHasModelsBare{`CGAL::Alpha_shape_cell_base_3` (templated with the appropriate triangulation cell base class)}
|
||||
\cgalHasModelsEnd
|
||||
|
||||
\sa `CGAL::Alpha_status`
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,9 @@ of the underlying Delaunay triangulation of a basic alpha shape.
|
|||
\cgalRefines{DelaunayTriangulationTraits_3 if the underlying triangulation of the alpha shape is a Delaunay triangulation,
|
||||
Periodic_3DelaunayTriangulationTraits_3 if the underlying triangulation of the alpha shape is a periodic Delaunay triangulation}
|
||||
|
||||
\cgalHasModel All models of `Kernel`.
|
||||
\cgalHasModelsBegin
|
||||
\cgalHasModelsBare{All models of `Kernel`}
|
||||
\cgalHasModelsEnd
|
||||
|
||||
\sa `CGAL::Exact_predicates_inexact_constructions_kernel` (recommended kernel)
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -9,7 +9,9 @@ The concept `AlphaShapeVertex_3` describes the requirements for the base vertex
|
|||
RegularTriangulationVertexBase_3 if the underlying triangulation of the alpha shape is a regular triangulation.
|
||||
Periodic_3TriangulationDSVertexBase_3 if the underlying triangulation of the alpha shape is a periodic triangulation}
|
||||
|
||||
\cgalHasModel `CGAL::Alpha_shape_vertex_base_3` (templated with the appropriate triangulation vertex base class).
|
||||
\cgalHasModelsBegin
|
||||
\cgalHasModelsBare{`CGAL::Alpha_shape_vertex_base_3` (templated with the appropriate triangulation vertex base class)}
|
||||
\cgalHasModelsEnd
|
||||
|
||||
\sa `CGAL::Alpha_status`
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,9 @@ The concept `FixedAlphaShapeCell_3` describes the requirements for the base cell
|
|||
RegularTriangulationCellBase_3 if the underlying triangulation of the alpha shape is a regular triangulation,
|
||||
Periodic_3TriangulationDSCellBase_3 if the underlying triangulation of the alpha shape is a periodic triangulation}
|
||||
|
||||
\cgalHasModel `CGAL::Fixed_alpha_shape_cell_base_3` (templated with the appropriate triangulation cell base class).
|
||||
\cgalHasModelsBegin
|
||||
\cgalHasModelsBare{`CGAL::Fixed_alpha_shape_cell_base_3` (templated with the appropriate triangulation cell base class)}
|
||||
\cgalHasModelsEnd
|
||||
*/
|
||||
class FixedAlphaShapeCell_3 {
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -10,7 +10,9 @@ of the underlying Delaunay triangulation of a basic alpha shape with a fixed val
|
|||
\cgalRefines{DelaunayTriangulationTraits_3 if the underlying triangulation of the alpha shape is a Delaunay triangulation,
|
||||
Periodic_3DelaunayTriangulationTraits_3 if the underlying triangulation of the alpha shape is a periodic Delaunay triangulation}
|
||||
|
||||
\cgalHasModel All models of `Kernel`.
|
||||
\cgalHasModelsBegin
|
||||
\cgalHasModelsBare{All models of `Kernel`}
|
||||
\cgalHasModelsEnd
|
||||
|
||||
\sa CGAL::Exact_predicates_inexact_constructions_kernel (recommended kernel)
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -9,7 +9,9 @@ The concept `FixedAlphaShapeVertex_3` describes the requirements for the base ve
|
|||
RegularTriangulationVertexBase_3 if the underlying triangulation of the alpha shape is a regular triangulation,
|
||||
Periodic_3TriangulationDSVertexBase_3 if the underlying triangulation of the alpha shape is a periodic triangulation}
|
||||
|
||||
\cgalHasModel `CGAL::Fixed_alpha_shape_vertex_base_3` (templated with the appropriate triangulation vertex base class).
|
||||
\cgalHasModelsBegin
|
||||
\cgalHasModelsBare{`CGAL::Fixed_alpha_shape_vertex_base_3` (templated with the appropriate triangulation vertex base class)}
|
||||
\cgalHasModelsEnd
|
||||
*/
|
||||
|
||||
class FixedAlphaShapeVertex_3 {
|
||||
|
|
|
|||
|
|
@ -9,7 +9,9 @@ for the geometric traits class of the underlying regular triangulation of a weig
|
|||
\cgalRefines{RegularTriangulationTraits_3 if the underlying triangulation of the alpha shape is a regular triangulation,
|
||||
Periodic_3RegularTriangulationTraits_3 if the underlying triangulation of the alpha shape is a periodic regular triangulation}
|
||||
|
||||
\cgalHasModel All models of `Kernel`.
|
||||
\cgalHasModelsBegin
|
||||
\cgalHasModelsBare{All models of `Kernel`}
|
||||
\cgalHasModelsEnd
|
||||
|
||||
\sa `CGAL::Exact_predicates_inexact_constructions_kernel` (recommended kernel)
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -10,7 +10,9 @@ of the underlying regular triangulation of a weighted alpha shape.
|
|||
\cgalRefines{RegularTriangulationTraits_3 if the underlying triangulation of the alpha shape is a regular triangulation,
|
||||
Periodic_3RegularTriangulationTraits_3 if the underlying triangulation of the alpha shape is a periodic regular triangulation}
|
||||
|
||||
\cgalHasModel All models of `Kernel`.
|
||||
\cgalHasModelsBegin
|
||||
\cgalHasModelsBare{All models of `Kernel`}
|
||||
\cgalHasModelsEnd
|
||||
|
||||
\sa `CGAL::Exact_predicates_inexact_constructions_kernel` (recommended kernel)
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -9,10 +9,12 @@ The concept `AlphaWrapOracle` defines the requirements for an Alpha Wrap <em>Ora
|
|||
that answers a number of queries over the input of the algorithm.
|
||||
The oracle is the template parameter of the class `CGAL::Alpha_wraps_3_::Alpha_wrap_3`.
|
||||
|
||||
\cgalHasModel `CGAL::Alpha_wraps_3_::Point_set_oracle`
|
||||
\cgalHasModel `CGAL::Alpha_wraps_3_::Segment_soup_oracle`
|
||||
\cgalHasModel `CGAL::Alpha_wraps_3_::Triangle_mesh_oracle`
|
||||
\cgalHasModel `CGAL::Alpha_wraps_3_::Triangle_soup_oracle`
|
||||
\cgalHasModelsBegin
|
||||
\cgalHasModels{CGAL::Alpha_wraps_3_::Point_set_oracle}
|
||||
\cgalHasModels{CGAL::Alpha_wraps_3_::Segment_soup_oracle}
|
||||
\cgalHasModels{CGAL::Alpha_wraps_3_::Triangle_mesh_oracle}
|
||||
\cgalHasModels{CGAL::Alpha_wraps_3_::Triangle_soup_oracle}
|
||||
\cgalHasModelsEnd
|
||||
|
||||
*/
|
||||
template <typename GeomTraits>
|
||||
|
|
|
|||
|
|
@ -11,7 +11,9 @@ you require Kernel. Stitch_borders doesn't even have clear geometric traits requ
|
|||
The concept `AlphaWrapTraits_3` defines the requirements for the geometric traits class
|
||||
of an alpha wrap oracle.
|
||||
|
||||
\cgalHasModel Any 3D %kernel is a model of this traits concept.
|
||||
\cgalHasModelsBegin
|
||||
\cgalHasModelsBare{Any 3D %kernel is a model of this traits concept}
|
||||
\cgalHasModelsEnd
|
||||
*/
|
||||
|
||||
class AlphaWrapTraits_3
|
||||
|
|
|
|||
|
|
@ -12,3 +12,4 @@ create_single_source_cgal_program("triangle_soup_wrap.cpp")
|
|||
create_single_source_cgal_program("point_set_wrap.cpp")
|
||||
create_single_source_cgal_program("wrap_from_cavity.cpp")
|
||||
create_single_source_cgal_program("mixed_inputs_wrap.cpp")
|
||||
create_single_source_cgal_program("volumetric_wrap.cpp")
|
||||
|
|
|
|||
|
|
@ -16,9 +16,9 @@ using K = CGAL::Exact_predicates_inexact_constructions_kernel;
|
|||
using Point_3 = K::Point_3;
|
||||
using Segment_3 = K::Segment_3;
|
||||
|
||||
using Face = std::array<std::size_t, 3>;
|
||||
using Segments = std::vector<Segment_3>;
|
||||
using Points = std::vector<Point_3>;
|
||||
using Face = std::array<std::size_t, 3>;
|
||||
using Faces = std::vector<Face>;
|
||||
|
||||
using Mesh = CGAL::Surface_mesh<Point_3>;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,173 @@
|
|||
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
||||
#include <CGAL/Surface_mesh.h>
|
||||
|
||||
#include <CGAL/alpha_wrap_3.h>
|
||||
|
||||
#include <CGAL/tetrahedral_remeshing.h>
|
||||
#include <CGAL/Tetrahedral_remeshing/Remeshing_cell_base_3.h>
|
||||
#include <CGAL/Tetrahedral_remeshing/Remeshing_vertex_base_3.h>
|
||||
#include <CGAL/Simplicial_mesh_cell_base_3.h>
|
||||
#include <CGAL/Simplicial_mesh_vertex_base_3.h>
|
||||
|
||||
#include <CGAL/Polygon_mesh_processing/bbox.h>
|
||||
#include <CGAL/Polygon_mesh_processing/IO/polygon_mesh_io.h>
|
||||
#include <CGAL/property_map.h>
|
||||
#include <CGAL/Real_timer.h>
|
||||
|
||||
#include <CGAL/Delaunay_triangulation_3.h>
|
||||
#include <CGAL/draw_triangulation_3.h>
|
||||
|
||||
#include <CGAL/IO/Triangulation_off_ostream_3.h>
|
||||
#include <CGAL/IO/File_medit.h>
|
||||
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
|
||||
namespace PMP = CGAL::Polygon_mesh_processing;
|
||||
namespace AW3i = CGAL::Alpha_wraps_3::internal;
|
||||
|
||||
using K = CGAL::Exact_predicates_inexact_constructions_kernel;
|
||||
using Point_3 = K::Point_3;
|
||||
|
||||
using Points = std::vector<Point_3>;
|
||||
using Face = std::array<std::size_t, 3>;
|
||||
using Faces = std::vector<Face>;
|
||||
|
||||
using Mesh = CGAL::Surface_mesh<Point_3>;
|
||||
|
||||
// If we provide a triangulation, AW3 uses its Gt, so we have to make the Gt stack explicit
|
||||
using Gtb = AW3i::Alpha_wrap_AABB_geom_traits<K>; // provides Ball_3
|
||||
using Gt = CGAL::Robust_circumcenter_filtered_traits_3<Gtb>; // better inexact constructions (not mandatory)
|
||||
|
||||
// Since we are going to use tetrahedral remeshing on the underlying triangulation,
|
||||
// we need special vertex and cell base types that meets the requirements of the
|
||||
// tetrahedral remeshing concepts
|
||||
using Vbbb = AW3i::Alpha_wrap_triangulation_vertex_base_3<K>;
|
||||
using Vbb = CGAL::Simplicial_mesh_vertex_base_3<K, int, int, int, int, Vbbb>;
|
||||
using Vb = CGAL::Tetrahedral_remeshing::Remeshing_vertex_base_3<K, Vbb>;
|
||||
|
||||
using Cbbb = AW3i::Alpha_wrap_triangulation_cell_base_3<K>;
|
||||
using Cbb = CGAL::Simplicial_mesh_cell_base_3<K, int, int, Cbbb>;
|
||||
using Cb = CGAL::Tetrahedral_remeshing::Remeshing_cell_base_3<K, Cbb>;
|
||||
|
||||
using Tds = CGAL::Triangulation_data_structure_3<Vb, Cb>;
|
||||
|
||||
using Delaunay_triangulation = CGAL::Delaunay_triangulation_3<Gt, Tds, CGAL::Fast_location>;
|
||||
|
||||
// because the Fast_location does all kinds of rebinding shenanigans + T3_hierarchy is in the stack...
|
||||
using Triangulation = CGAL::Triangulation_3<typename Delaunay_triangulation::Geom_traits,
|
||||
typename Delaunay_triangulation::Triangulation_data_structure>;
|
||||
|
||||
using Facet = Triangulation::Facet;
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
// Read the input
|
||||
const std::string filename = (argc > 1) ? argv[1] : CGAL::data_file_path("meshes/bull.off");
|
||||
std::cout << "Reading " << filename << "..." << std::endl;
|
||||
|
||||
Points points;
|
||||
Faces faces;
|
||||
if(!CGAL::IO::read_polygon_soup(filename, points, faces) || faces.empty())
|
||||
{
|
||||
std::cerr << "Invalid input." << std::endl;
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
std::cout << "Input: " << points.size() << " vertices, " << faces.size() << " faces" << std::endl;
|
||||
|
||||
// Compute the alpha and offset values
|
||||
const double relative_alpha = (argc > 2) ? std::stod(argv[2]) : 20.;
|
||||
const double relative_offset = (argc > 3) ? std::stod(argv[3]) : 600.;
|
||||
|
||||
CGAL::Bbox_3 bbox;
|
||||
for(const Point_3& p : points)
|
||||
bbox += p.bbox();
|
||||
|
||||
const double diag_length = std::sqrt(CGAL::square(bbox.xmax() - bbox.xmin()) +
|
||||
CGAL::square(bbox.ymax() - bbox.ymin()) +
|
||||
CGAL::square(bbox.zmax() - bbox.zmin()));
|
||||
|
||||
const double alpha = diag_length / relative_alpha;
|
||||
const double offset = diag_length / relative_offset;
|
||||
std::cout << "alpha: " << alpha << ", offset: " << offset << std::endl;
|
||||
|
||||
// Construct the wrap
|
||||
CGAL::Real_timer t;
|
||||
t.start();
|
||||
|
||||
using Oracle = CGAL::Alpha_wraps_3::internal::Triangle_soup_oracle<K>;
|
||||
|
||||
Oracle oracle(K{});
|
||||
oracle.add_triangle_soup(points, faces, CGAL::parameters::default_values());
|
||||
|
||||
CGAL::Alpha_wraps_3::internal::Alpha_wrap_3<Oracle, Delaunay_triangulation> aw3(oracle);
|
||||
Mesh wrap;
|
||||
aw3(alpha, offset, wrap);
|
||||
|
||||
t.stop();
|
||||
std::cout << "Result: " << num_vertices(wrap) << " vertices, " << num_faces(wrap) << " faces" << std::endl;
|
||||
std::cout << "Took " << t.time() << " s." << std::endl;
|
||||
|
||||
// Get the interior tetrahedrization
|
||||
auto dt = aw3.triangulation();
|
||||
|
||||
// Save the result
|
||||
std::string input_name = std::string(filename);
|
||||
input_name = input_name.substr(input_name.find_last_of("/") + 1, input_name.length() - 1);
|
||||
input_name = input_name.substr(0, input_name.find_last_of("."));
|
||||
std::string output_name = input_name
|
||||
+ "_" + std::to_string(static_cast<int>(relative_alpha))
|
||||
+ "_" + std::to_string(static_cast<int>(relative_offset)) + ".off";
|
||||
std::cout << "Writing to " << output_name << std::endl;
|
||||
CGAL::IO::write_polygon_mesh(output_name, wrap, CGAL::parameters::stream_precision(17));
|
||||
|
||||
// Remesh the interior of the wrap
|
||||
const Delaunay_triangulation& aw3_dt = aw3.triangulation();
|
||||
const Triangulation& aw3_tr = static_cast<const Triangulation&>(aw3_dt);
|
||||
Triangulation tr = aw3_tr; // intentional copy
|
||||
|
||||
std::cout << "BEFORE: " << tr.number_of_vertices() << " vertices, " << tr.number_of_cells() << " cells" << std::endl;
|
||||
|
||||
// Set up the c3t3 information
|
||||
for(auto v : tr.finite_vertex_handles())
|
||||
v->set_dimension(3);
|
||||
|
||||
for(auto c : tr.finite_cell_handles())
|
||||
{
|
||||
if(c->is_outside())
|
||||
c->set_subdomain_index(0);
|
||||
else
|
||||
c->set_subdomain_index(1);
|
||||
|
||||
// if the neighboring cell has a different outside info, put the vertices
|
||||
// of the common face on the surface boundary
|
||||
for(int i=0; i<4; ++i)
|
||||
{
|
||||
if(c->neighbor(i)->is_outside() != c->is_outside())
|
||||
{
|
||||
c->set_surface_patch_index(i, 1);
|
||||
for(int j=1; j<4; ++j)
|
||||
c->vertex((i+j)%4)->set_dimension(2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
std::ofstream out_before("before_remeshing.mesh");
|
||||
CGAL::IO::write_MEDIT(out_before, tr);
|
||||
|
||||
// edge length of equilateral triangle with circumradius alpha
|
||||
// const double l = 2 * alpha * 0.8660254037844386; // sqrt(3)/2
|
||||
|
||||
// edge length of regular tetrahedron with circumradius alpha
|
||||
const double l = 1.6329931618554521 * alpha; // sqrt(8/3)
|
||||
|
||||
CGAL::tetrahedral_isotropic_remeshing(tr, l, CGAL::parameters::remesh_boundaries(false));
|
||||
|
||||
std::cout << "AFTER: " << tr.number_of_vertices() << " vertices, " << tr.number_of_cells() << " cells" << std::endl;
|
||||
|
||||
std::ofstream out_after("after_remeshing.mesh");
|
||||
CGAL::IO::write_MEDIT(out_after, tr);
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (c) 2019-2022 Google LLC (USA).
|
||||
// Copyright (c) 2019-2023 Google LLC (USA).
|
||||
// All rights reserved.
|
||||
//
|
||||
// This file is part of CGAL (www.cgal.org).
|
||||
|
|
@ -29,16 +29,25 @@
|
|||
|
||||
#include <CGAL/license/Alpha_wrap_3.h>
|
||||
|
||||
#include <CGAL/Alpha_wrap_3/internal/Alpha_wrap_triangulation_cell_base_3.h>
|
||||
#include <CGAL/Alpha_wrap_3/internal/Alpha_wrap_triangulation_vertex_base_3.h>
|
||||
#include <CGAL/Alpha_wrap_3/internal/Alpha_wrap_AABB_geom_traits.h>
|
||||
#include <CGAL/Alpha_wrap_3/internal/gate_priority_queue.h>
|
||||
#include <CGAL/Alpha_wrap_3/internal/geometry_utils.h>
|
||||
#include <CGAL/Alpha_wrap_3/internal/oracles.h>
|
||||
|
||||
#include <CGAL/Delaunay_triangulation_3.h>
|
||||
#include <CGAL/Triangulation_data_structure_3.h>
|
||||
#include <CGAL/Delaunay_triangulation_cell_base_3.h>
|
||||
#include <CGAL/Delaunay_triangulation_cell_base_with_circumcenter_3.h>
|
||||
#include <CGAL/Robust_weighted_circumcenter_filtered_traits_3.h>
|
||||
|
||||
#include <CGAL/Cartesian_converter.h>
|
||||
#include <CGAL/Simple_cartesian.h>
|
||||
|
||||
#include <CGAL/boost/graph/Euler_operations.h>
|
||||
#include <CGAL/boost/graph/named_params_helper.h>
|
||||
#include <CGAL/Default.h>
|
||||
#include <CGAL/Named_function_parameters.h>
|
||||
#include <CGAL/Modifiable_priority_queue.h>
|
||||
#include <CGAL/Polygon_mesh_processing/bbox.h>
|
||||
|
|
@ -50,16 +59,9 @@
|
|||
#include <CGAL/Polygon_mesh_processing/stitch_borders.h> // only if non-manifoldness is not treated
|
||||
#include <CGAL/property_map.h>
|
||||
#include <CGAL/Real_timer.h>
|
||||
#include <CGAL/Delaunay_triangulation_3.h>
|
||||
#include <CGAL/Triangulation_data_structure_3.h>
|
||||
#include <CGAL/Delaunay_triangulation_cell_base_3.h>
|
||||
#include <CGAL/Triangulation_cell_base_with_info_3.h>
|
||||
#include <CGAL/Delaunay_triangulation_cell_base_with_circumcenter_3.h>
|
||||
#include <CGAL/Triangulation_vertex_base_with_info_3.h>
|
||||
#include <CGAL/Robust_weighted_circumcenter_filtered_traits_3.h>
|
||||
|
||||
#include <array>
|
||||
#include <algorithm>
|
||||
#include <array>
|
||||
#include <fstream>
|
||||
#include <functional>
|
||||
#include <iostream>
|
||||
|
|
@ -74,30 +76,11 @@ namespace CGAL {
|
|||
namespace Alpha_wraps_3 {
|
||||
namespace internal {
|
||||
|
||||
template <typename Cb>
|
||||
class Cell_base_with_timestamp
|
||||
: public Cb
|
||||
{
|
||||
std::size_t time_stamp_;
|
||||
namespace {
|
||||
|
||||
public:
|
||||
template <typename... Args>
|
||||
Cell_base_with_timestamp(const Args&... args) : Cb(args...), time_stamp_(-1) { }
|
||||
namespace AW3i = ::CGAL::Alpha_wraps_3::internal;
|
||||
|
||||
Cell_base_with_timestamp(const Cell_base_with_timestamp& other) : Cb(other), time_stamp_(other.time_stamp_) { }
|
||||
|
||||
typedef CGAL::Tag_true Has_timestamp;
|
||||
|
||||
std::size_t time_stamp() const { return time_stamp_; }
|
||||
void set_time_stamp(const std::size_t& ts) { time_stamp_ = ts; }
|
||||
|
||||
template <class TDS>
|
||||
struct Rebind_TDS
|
||||
{
|
||||
typedef typename Cb::template Rebind_TDS<TDS>::Other Cb2;
|
||||
typedef Cell_base_with_timestamp<Cb2> Other;
|
||||
};
|
||||
};
|
||||
} // unnamed namespace
|
||||
|
||||
struct Wrapping_default_visitor
|
||||
{
|
||||
|
|
@ -125,11 +108,34 @@ struct Wrapping_default_visitor
|
|||
void on_alpha_wrapping_end(const AlphaWrapper&) { };
|
||||
};
|
||||
|
||||
template <typename Oracle>
|
||||
template <typename Oracle_,
|
||||
typename Triangulation_ = CGAL::Default>
|
||||
class Alpha_wrap_3
|
||||
{
|
||||
using Oracle = Oracle_;
|
||||
|
||||
// Triangulation
|
||||
using Base_GT = typename Oracle::Geom_traits;
|
||||
using Geom_traits = Robust_circumcenter_filtered_traits_3<Base_GT>;
|
||||
using Default_Gt = CGAL::Robust_circumcenter_filtered_traits_3<Base_GT>;
|
||||
|
||||
using Default_Vb = Alpha_wrap_triangulation_vertex_base_3<Default_Gt>;
|
||||
using Default_Cb = Alpha_wrap_triangulation_cell_base_3<Default_Gt>;
|
||||
using Default_Cbt = Cell_base_with_timestamp<Default_Cb>; // determinism
|
||||
using Default_Tds = CGAL::Triangulation_data_structure_3<Default_Vb, Default_Cbt>;
|
||||
using Default_Triangulation = CGAL::Delaunay_triangulation_3<Default_Gt, Default_Tds, Fast_location>;
|
||||
|
||||
using Triangulation = typename Default::Get<Triangulation_, Default_Triangulation>::type;
|
||||
|
||||
using Cell_handle = typename Triangulation::Cell_handle;
|
||||
using Facet = typename Triangulation::Facet;
|
||||
using Vertex_handle = typename Triangulation::Vertex_handle;
|
||||
using Locate_type = typename Triangulation::Locate_type;
|
||||
|
||||
using Gate = internal::Gate<Triangulation>;
|
||||
using Alpha_PQ = Modifiable_priority_queue<Gate, Less_gate, Gate_ID_PM<Triangulation>, CGAL_BOOST_PAIRING_HEAP>;
|
||||
|
||||
// Use the geom traits from the triangulation, and trust the (advanced) user that provided it
|
||||
using Geom_traits = typename Triangulation::Geom_traits;
|
||||
|
||||
using FT = typename Geom_traits::FT;
|
||||
using Point_3 = typename Geom_traits::Point_3;
|
||||
|
|
@ -143,34 +149,6 @@ class Alpha_wrap_3
|
|||
using SC_Iso_cuboid_3 = SC::Iso_cuboid_3;
|
||||
using SC2GT = Cartesian_converter<SC, Geom_traits>;
|
||||
|
||||
struct Cell_info
|
||||
{
|
||||
bool is_outside = false;
|
||||
};
|
||||
|
||||
enum Vertex_info
|
||||
{
|
||||
DEFAULT = 0,
|
||||
BBOX_VERTEX,
|
||||
SEED_VERTEX
|
||||
};
|
||||
|
||||
using Vb = Triangulation_vertex_base_3<Geom_traits>;
|
||||
using Vbi = Triangulation_vertex_base_with_info_3<Vertex_info, Geom_traits, Vb>;
|
||||
using Cbb = Delaunay_triangulation_cell_base_3<Geom_traits>;
|
||||
using Cb = Delaunay_triangulation_cell_base_with_circumcenter_3<Geom_traits, Cbb>;
|
||||
using Cbi = Triangulation_cell_base_with_info_3<Cell_info, Geom_traits, Cb>;
|
||||
using Cbt = Cell_base_with_timestamp<Cbi>;
|
||||
using Tds = Triangulation_data_structure_3<Vbi, Cbt>;
|
||||
using Dt = Delaunay_triangulation_3<Geom_traits, Tds, Fast_location>;
|
||||
|
||||
using Cell_handle = typename Dt::Cell_handle;
|
||||
using Facet = typename Dt::Facet;
|
||||
using Vertex_handle = typename Dt::Vertex_handle;
|
||||
using Locate_type = typename Dt::Locate_type;
|
||||
|
||||
using Gate = internal::Gate<Dt>;
|
||||
using Alpha_PQ = Modifiable_priority_queue<Gate, Less_gate, Gate_ID_PM<Dt>, CGAL_BOOST_PAIRING_HEAP>;
|
||||
|
||||
protected:
|
||||
const Oracle m_oracle;
|
||||
|
|
@ -179,7 +157,7 @@ protected:
|
|||
FT m_alpha, m_sq_alpha;
|
||||
FT m_offset, m_sq_offset;
|
||||
|
||||
Dt m_dt;
|
||||
Triangulation m_tr;
|
||||
Alpha_PQ m_queue;
|
||||
|
||||
public:
|
||||
|
|
@ -187,7 +165,7 @@ public:
|
|||
Alpha_wrap_3(const Oracle& oracle)
|
||||
:
|
||||
m_oracle(oracle),
|
||||
m_dt(Geom_traits(oracle.geom_traits())),
|
||||
m_tr(Geom_traits(oracle.geom_traits())),
|
||||
// used to set up the initial MPQ, use some arbitrary not-too-small value
|
||||
m_queue(4096)
|
||||
{
|
||||
|
|
@ -197,9 +175,9 @@ public:
|
|||
}
|
||||
|
||||
public:
|
||||
const Geom_traits& geom_traits() const { return m_dt.geom_traits(); }
|
||||
Dt& triangulation() { return m_dt; }
|
||||
const Dt& triangulation() const { return m_dt; }
|
||||
const Geom_traits& geom_traits() const { return m_tr.geom_traits(); }
|
||||
Triangulation& triangulation() { return m_tr; }
|
||||
const Triangulation& triangulation() const { return m_tr; }
|
||||
const Alpha_PQ& queue() const { return m_queue; }
|
||||
|
||||
double default_alpha() const
|
||||
|
|
@ -216,13 +194,13 @@ private:
|
|||
const Point_3& circumcenter(const Cell_handle c) const
|
||||
{
|
||||
// We only cross an infinite facet once, so this isn't going to be recomputed many times
|
||||
if(m_dt.is_infinite(c))
|
||||
if(m_tr.is_infinite(c))
|
||||
{
|
||||
const int inf_index = c->index(m_dt.infinite_vertex());
|
||||
const int inf_index = c->index(m_tr.infinite_vertex());
|
||||
c->set_circumcenter(
|
||||
geom_traits().construct_circumcenter_3_object()(m_dt.point(c, (inf_index+1)&3),
|
||||
m_dt.point(c, (inf_index+2)&3),
|
||||
m_dt.point(c, (inf_index+3)&3)));
|
||||
geom_traits().construct_circumcenter_3_object()(m_tr.point(c, (inf_index+1)&3),
|
||||
m_tr.point(c, (inf_index+2)&3),
|
||||
m_tr.point(c, (inf_index+3)&3)));
|
||||
}
|
||||
|
||||
return c->circumcenter(geom_traits());
|
||||
|
|
@ -418,11 +396,11 @@ private:
|
|||
for(int i=0; i<8; ++i)
|
||||
{
|
||||
const Point_3 bp = SC2GT()(m_bbox.vertex(i));
|
||||
Vertex_handle bv = m_dt.insert(bp);
|
||||
Vertex_handle bv = m_tr.insert(bp);
|
||||
#ifdef CGAL_AW3_DEBUG_INITIALIZATION
|
||||
std::cout << "\t" << bp << std::endl;
|
||||
#endif
|
||||
bv->info() = BBOX_VERTEX;
|
||||
bv->type() = AW3i::Vertex_type:: BBOX_VERTEX;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -433,7 +411,7 @@ private:
|
|||
// that the refinement point is separated from the existing point set.
|
||||
bool cavity_cell_outside_tag(const Cell_handle ch)
|
||||
{
|
||||
CGAL_precondition(!m_dt.is_infinite(ch));
|
||||
CGAL_precondition(!m_tr.is_infinite(ch));
|
||||
|
||||
const Tetrahedron_with_outside_info<Geom_traits> tet(ch, geom_traits());
|
||||
if(m_oracle.do_intersect(tet))
|
||||
|
|
@ -536,8 +514,8 @@ private:
|
|||
// This problem only appears when the seed and icosahedron vertices are close to the offset surface,
|
||||
// which usually happens for large alpha values.
|
||||
|
||||
Vertex_handle seed_v = m_dt.insert(seed_p);
|
||||
seed_v->info() = SEED_VERTEX;
|
||||
Vertex_handle seed_v = m_tr.insert(seed_p);
|
||||
seed_v->type() = AW3i::Vertex_type:: SEED_VERTEX;
|
||||
seed_vs.push_back(seed_v);
|
||||
|
||||
// Icosahedron vertices (see also BGL::make_icosahedron())
|
||||
|
|
@ -573,8 +551,8 @@ private:
|
|||
if(bbox.has_on_unbounded_side(seed_neighbor_p))
|
||||
continue;
|
||||
|
||||
Vertex_handle ico_v = m_dt.insert(seed_neighbor_p, seed_v /*hint*/);
|
||||
ico_v->info() = SEED_VERTEX;
|
||||
Vertex_handle ico_v = m_tr.insert(seed_neighbor_p, seed_v /*hint*/);
|
||||
ico_v->type() = AW3i::Vertex_type:: SEED_VERTEX;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -587,26 +565,26 @@ private:
|
|||
}
|
||||
|
||||
#ifdef CGAL_AW3_DEBUG_INITIALIZATION
|
||||
std::cout << m_dt.number_of_vertices() - 8 /*bbox*/ << " vertice(s) due to seeds" << std::endl;
|
||||
std::cout << m_tr.number_of_vertices() - 8 /*bbox*/ << " vertice(s) due to seeds" << std::endl;
|
||||
#endif
|
||||
|
||||
for(Vertex_handle seed_v : seed_vs)
|
||||
{
|
||||
std::vector<Cell_handle> inc_cells;
|
||||
inc_cells.reserve(64);
|
||||
m_dt.incident_cells(seed_v, std::back_inserter(inc_cells));
|
||||
m_tr.incident_cells(seed_v, std::back_inserter(inc_cells));
|
||||
for(Cell_handle ch : inc_cells)
|
||||
ch->info().is_outside = cavity_cell_outside_tag(ch);
|
||||
ch->is_outside() = cavity_cell_outside_tag(ch);
|
||||
}
|
||||
|
||||
// Might as well go through the full triangulation since only seeds should have been inserted
|
||||
for(Cell_handle ch : m_dt.all_cell_handles())
|
||||
for(Cell_handle ch : m_tr.all_cell_handles())
|
||||
{
|
||||
if(!ch->info().is_outside)
|
||||
if(!ch->is_outside())
|
||||
continue;
|
||||
|
||||
// When the algorithm starts from a manually dug hole, infinite cells are tagged "inside"
|
||||
CGAL_assertion(!m_dt.is_infinite(ch));
|
||||
CGAL_assertion(!m_tr.is_infinite(ch));
|
||||
|
||||
for(int i=0; i<4; ++i)
|
||||
push_facet(std::make_pair(ch, i));
|
||||
|
|
@ -627,17 +605,17 @@ private:
|
|||
// init queue with all convex hull facets
|
||||
bool initialize_from_infinity()
|
||||
{
|
||||
for(Cell_handle ch : m_dt.all_cell_handles())
|
||||
for(Cell_handle ch : m_tr.all_cell_handles())
|
||||
{
|
||||
if(m_dt.is_infinite(ch))
|
||||
if(m_tr.is_infinite(ch))
|
||||
{
|
||||
ch->info().is_outside = true;
|
||||
const int inf_index = ch->index(m_dt.infinite_vertex());
|
||||
ch->is_outside() = true;
|
||||
const int inf_index = ch->index(m_tr.infinite_vertex());
|
||||
push_facet(std::make_pair(ch, inf_index));
|
||||
}
|
||||
else
|
||||
{
|
||||
ch->info().is_outside = false;
|
||||
ch->is_outside() = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -659,13 +637,13 @@ public:
|
|||
|
||||
clear(output_mesh);
|
||||
|
||||
CGAL_assertion_code(for(auto cit=m_dt.finite_cells_begin(), cend=m_dt.finite_cells_end(); cit!=cend; ++cit))
|
||||
CGAL_assertion_code(for(auto cit=m_tr.finite_cells_begin(), cend=m_tr.finite_cells_end(); cit!=cend; ++cit))
|
||||
CGAL_assertion(cit->tds_data().is_clear());
|
||||
|
||||
for(auto cit=m_dt.finite_cells_begin(), cend=m_dt.finite_cells_end(); cit!=cend; ++cit)
|
||||
for(auto cit=m_tr.finite_cells_begin(), cend=m_tr.finite_cells_end(); cit!=cend; ++cit)
|
||||
{
|
||||
Cell_handle seed = cit;
|
||||
if(seed->info().is_outside || seed->tds_data().processed())
|
||||
if(seed->is_outside() || seed->tds_data().processed())
|
||||
continue;
|
||||
|
||||
std::queue<Cell_handle> to_visit;
|
||||
|
|
@ -678,7 +656,7 @@ public:
|
|||
while(!to_visit.empty())
|
||||
{
|
||||
const Cell_handle cell = to_visit.front();
|
||||
CGAL_assertion(!cell->info().is_outside && !m_dt.is_infinite(cell));
|
||||
CGAL_assertion(!cell->is_outside() && !m_tr.is_infinite(cell));
|
||||
|
||||
to_visit.pop();
|
||||
|
||||
|
|
@ -690,17 +668,17 @@ public:
|
|||
for(int fid=0; fid<4; ++fid)
|
||||
{
|
||||
const Cell_handle neighbor = cell->neighbor(fid);
|
||||
if(neighbor->info().is_outside)
|
||||
if(neighbor->is_outside())
|
||||
{
|
||||
// There shouldn't be any artificial vertex on the inside/outside boundary
|
||||
// (past initialization)
|
||||
// CGAL_assertion(cell->vertex((fid + 1)&3)->info() == DEFAULT);
|
||||
// CGAL_assertion(cell->vertex((fid + 2)&3)->info() == DEFAULT);
|
||||
// CGAL_assertion(cell->vertex((fid + 3)&3)->info() == DEFAULT);
|
||||
// CGAL_assertion(cell->vertex((fid + 1)&3)->type() == AW3i::Vertex_type:: DEFAULT);
|
||||
// CGAL_assertion(cell->vertex((fid + 2)&3)->type() == AW3i::Vertex_type:: DEFAULT);
|
||||
// CGAL_assertion(cell->vertex((fid + 3)&3)->type() == AW3i::Vertex_type:: DEFAULT);
|
||||
|
||||
points.push_back(m_dt.point(cell, Dt::vertex_triple_index(fid, 0)));
|
||||
points.push_back(m_dt.point(cell, Dt::vertex_triple_index(fid, 1)));
|
||||
points.push_back(m_dt.point(cell, Dt::vertex_triple_index(fid, 2)));
|
||||
points.push_back(m_tr.point(cell, Triangulation::vertex_triple_index(fid, 0)));
|
||||
points.push_back(m_tr.point(cell, Triangulation::vertex_triple_index(fid, 1)));
|
||||
points.push_back(m_tr.point(cell, Triangulation::vertex_triple_index(fid, 2)));
|
||||
faces.push_back({idx, idx + 1, idx + 2});
|
||||
idx += 3;
|
||||
}
|
||||
|
|
@ -722,7 +700,7 @@ public:
|
|||
CGAL_assertion(is_closed(output_mesh));
|
||||
}
|
||||
|
||||
for(auto cit=m_dt.finite_cells_begin(), cend=m_dt.finite_cells_end(); cit!=cend; ++cit)
|
||||
for(auto cit=m_tr.finite_cells_begin(), cend=m_tr.finite_cells_end(); cit!=cend; ++cit)
|
||||
cit->tds_data().clear();
|
||||
|
||||
CGAL_postcondition(!is_empty(output_mesh));
|
||||
|
|
@ -742,7 +720,7 @@ public:
|
|||
std::cout << "> Extract wrap... ()" << std::endl;
|
||||
#endif
|
||||
|
||||
CGAL_assertion_code(for(Vertex_handle v : m_dt.finite_vertex_handles()))
|
||||
CGAL_assertion_code(for(Vertex_handle v : m_tr.finite_vertex_handles()))
|
||||
CGAL_assertion(!is_non_manifold(v));
|
||||
|
||||
clear(output_mesh);
|
||||
|
|
@ -754,26 +732,26 @@ public:
|
|||
std::unordered_map<Vertex_handle, std::size_t> vertex_to_id;
|
||||
std::size_t nv = 0;
|
||||
|
||||
for(auto fit=m_dt.finite_facets_begin(), fend=m_dt.finite_facets_end(); fit!=fend; ++fit)
|
||||
for(auto fit=m_tr.finite_facets_begin(), fend=m_tr.finite_facets_end(); fit!=fend; ++fit)
|
||||
{
|
||||
Facet f = *fit;
|
||||
if(!f.first->info().is_outside)
|
||||
f = m_dt.mirror_facet(f);
|
||||
if(!f.first->is_outside())
|
||||
f = m_tr.mirror_facet(f);
|
||||
|
||||
const Cell_handle c = f.first;
|
||||
const int s = f.second;
|
||||
const Cell_handle nh = c->neighbor(s);
|
||||
if(c->info().is_outside == nh->info().is_outside)
|
||||
if(c->is_outside() == nh->is_outside())
|
||||
continue;
|
||||
|
||||
std::array<std::size_t, 3> ids;
|
||||
for(int pos=0; pos<3; ++pos)
|
||||
{
|
||||
Vertex_handle vh = c->vertex(Dt::vertex_triple_index(s, pos));
|
||||
Vertex_handle vh = c->vertex(Triangulation::vertex_triple_index(s, pos));
|
||||
auto insertion_res = vertex_to_id.emplace(vh, nv);
|
||||
if(insertion_res.second) // successful insertion, never-seen-before vertex
|
||||
{
|
||||
points.push_back(m_dt.point(vh));
|
||||
points.push_back(m_tr.point(vh));
|
||||
++nv;
|
||||
}
|
||||
|
||||
|
|
@ -817,14 +795,14 @@ public:
|
|||
private:
|
||||
bool is_traversable(const Facet& f) const
|
||||
{
|
||||
return less_squared_radius_of_min_empty_sphere(m_sq_alpha, f, m_dt);
|
||||
return less_squared_radius_of_min_empty_sphere(m_sq_alpha, f, m_tr);
|
||||
}
|
||||
|
||||
bool compute_steiner_point(const Cell_handle ch,
|
||||
const Cell_handle neighbor,
|
||||
Point_3& steiner_point) const
|
||||
{
|
||||
CGAL_precondition(!m_dt.is_infinite(neighbor));
|
||||
CGAL_precondition(!m_tr.is_infinite(neighbor));
|
||||
|
||||
typename Geom_traits::Construct_ball_3 ball = geom_traits().construct_ball_3_object();
|
||||
typename Geom_traits::Construct_vector_3 vector = geom_traits().construct_vector_3_object();
|
||||
|
|
@ -920,7 +898,7 @@ private:
|
|||
// e.g. from DT3
|
||||
Facet_queue_status facet_status(const Facet& f) const
|
||||
{
|
||||
CGAL_precondition(!m_dt.is_infinite(f));
|
||||
CGAL_precondition(!m_tr.is_infinite(f));
|
||||
|
||||
#ifdef CGAL_AW3_DEBUG_FACET_STATUS
|
||||
std::cout << "facet status: "
|
||||
|
|
@ -933,10 +911,10 @@ private:
|
|||
const Cell_handle ch = f.first;
|
||||
const int id = f.second;
|
||||
const Cell_handle nh = ch->neighbor(id);
|
||||
if(m_dt.is_infinite(nh))
|
||||
if(m_tr.is_infinite(nh))
|
||||
return TRAVERSABLE;
|
||||
|
||||
if(nh->info().is_outside)
|
||||
if(nh->is_outside())
|
||||
{
|
||||
#ifdef CGAL_AW3_DEBUG_FACET_STATUS
|
||||
std::cout << "Neighbor already outside" << std::endl;
|
||||
|
|
@ -947,8 +925,9 @@ private:
|
|||
// push if facet is connected to artificial vertices
|
||||
for(int i=0; i<3; ++i)
|
||||
{
|
||||
const Vertex_handle vh = ch->vertex(Dt::vertex_triple_index(id, i));
|
||||
if(vh->info() == BBOX_VERTEX || vh->info() == SEED_VERTEX)
|
||||
const Vertex_handle vh = ch->vertex(Triangulation::vertex_triple_index(id, i));
|
||||
if(vh->type() == AW3i::Vertex_type:: BBOX_VERTEX ||
|
||||
vh->type() == AW3i::Vertex_type:: SEED_VERTEX)
|
||||
{
|
||||
#ifdef CGAL_AW3_DEBUG_FACET_STATUS
|
||||
std::cout << "artificial facet due to artificial vertex #" << i << std::endl;
|
||||
|
|
@ -974,7 +953,7 @@ private:
|
|||
|
||||
bool push_facet(const Facet& f)
|
||||
{
|
||||
CGAL_precondition(f.first->info().is_outside);
|
||||
CGAL_precondition(f.first->is_outside());
|
||||
|
||||
// skip if f is already in queue
|
||||
if(m_queue.contains_with_bounds_check(Gate(f)))
|
||||
|
|
@ -986,9 +965,9 @@ private:
|
|||
|
||||
const Cell_handle ch = f.first;
|
||||
const int id = f.second;
|
||||
const Point_3& p0 = m_dt.point(ch, (id+1)&3);
|
||||
const Point_3& p1 = m_dt.point(ch, (id+2)&3);
|
||||
const Point_3& p2 = m_dt.point(ch, (id+3)&3);
|
||||
const Point_3& p0 = m_tr.point(ch, (id+1)&3);
|
||||
const Point_3& p1 = m_tr.point(ch, (id+2)&3);
|
||||
const Point_3& p2 = m_tr.point(ch, (id+3)&3);
|
||||
|
||||
// @todo should prob be the real value we compare to alpha instead of squared_radius
|
||||
const FT sqr = geom_traits().compute_squared_radius_3_object()(p0, p1, p2);
|
||||
|
|
@ -1022,7 +1001,7 @@ private:
|
|||
m_offset = FT(offset);
|
||||
m_sq_offset = square(m_offset);
|
||||
|
||||
m_dt.clear();
|
||||
m_tr.clear();
|
||||
m_queue.clear();
|
||||
|
||||
insert_bbox_corners();
|
||||
|
|
@ -1052,7 +1031,7 @@ private:
|
|||
// const& to something that will be popped, but safe as `ch` && `id` are extracted before the pop
|
||||
const Gate& gate = m_queue.top();
|
||||
const Facet& f = gate.facet();
|
||||
CGAL_precondition(!m_dt.is_infinite(f));
|
||||
CGAL_precondition(!m_tr.is_infinite(f));
|
||||
|
||||
const Cell_handle ch = f.first;
|
||||
const int id = f.second;
|
||||
|
|
@ -1060,11 +1039,11 @@ private:
|
|||
|
||||
#ifdef CGAL_AW3_DEBUG_QUEUE
|
||||
static int fid = 0;
|
||||
std::cout << m_dt.number_of_vertices() << " DT vertices" << std::endl;
|
||||
std::cout << m_tr.number_of_vertices() << " DT vertices" << std::endl;
|
||||
std::cout << m_queue.size() << " facets in the queue" << std::endl;
|
||||
std::cout << "Face " << fid++ << "\n"
|
||||
<< "c = " << &*ch << " (" << m_dt.is_infinite(ch) << "), n = " << &*neighbor << " (" << m_dt.is_infinite(neighbor) << ")" << "\n"
|
||||
<< m_dt.point(ch, (id+1)&3) << "\n" << m_dt.point(ch, (id+2)&3) << "\n" << m_dt.point(ch, (id+3)&3) << std::endl;
|
||||
<< "c = " << &*ch << " (" << m_tr.is_infinite(ch) << "), n = " << &*neighbor << " (" << m_tr.is_infinite(neighbor) << ")" << "\n"
|
||||
<< m_tr.point(ch, (id+1)&3) << "\n" << m_tr.point(ch, (id+2)&3) << "\n" << m_tr.point(ch, (id+3)&3) << std::endl;
|
||||
std::cout << "Priority: " << gate.priority() << std::endl;
|
||||
#endif
|
||||
|
||||
|
|
@ -1080,13 +1059,13 @@ private:
|
|||
std::string face_name = "results/steps/face_" + std::to_string(static_cast<int>(i++)) + ".xyz";
|
||||
std::ofstream face_out(face_name);
|
||||
face_out.precision(17);
|
||||
face_out << "3\n" << m_dt.point(ch, (id+1)&3) << "\n" << m_dt.point(ch, (id+2)&3) << "\n" << m_dt.point(ch, (id+3)&3) << std::endl;
|
||||
face_out << "3\n" << m_tr.point(ch, (id+1)&3) << "\n" << m_tr.point(ch, (id+2)&3) << "\n" << m_tr.point(ch, (id+3)&3) << std::endl;
|
||||
face_out.close();
|
||||
#endif
|
||||
|
||||
if(m_dt.is_infinite(neighbor))
|
||||
if(m_tr.is_infinite(neighbor))
|
||||
{
|
||||
neighbor->info().is_outside = true;
|
||||
neighbor->is_outside() = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
@ -1100,14 +1079,16 @@ private:
|
|||
// locate cells that are going to be destroyed and remove their facet from the queue
|
||||
int li, lj = 0;
|
||||
Locate_type lt;
|
||||
const Cell_handle conflict_cell = m_dt.locate(steiner_point, lt, li, lj, neighbor);
|
||||
CGAL_assertion(lt != Dt::VERTEX);
|
||||
const Cell_handle conflict_cell = m_tr.locate(steiner_point, lt, li, lj, neighbor);
|
||||
CGAL_assertion(lt != Triangulation::VERTEX);
|
||||
|
||||
// Using small vectors like in Triangulation_3 does not bring any runtime improvement
|
||||
std::vector<Facet> boundary_facets;
|
||||
std::vector<Cell_handle> conflict_zone;
|
||||
boundary_facets.reserve(32);
|
||||
conflict_zone.reserve(32);
|
||||
m_dt.find_conflicts(steiner_point, conflict_cell,
|
||||
|
||||
m_tr.find_conflicts(steiner_point, conflict_cell,
|
||||
std::back_inserter(boundary_facets),
|
||||
std::back_inserter(conflict_zone));
|
||||
|
||||
|
|
@ -1125,7 +1106,7 @@ private:
|
|||
|
||||
for(const Facet& f : boundary_facets)
|
||||
{
|
||||
const Facet mf = m_dt.mirror_facet(f); // boundary facets have incident cells in the CZ
|
||||
const Facet mf = m_tr.mirror_facet(f); // boundary facets have incident cells in the CZ
|
||||
if(m_queue.contains_with_bounds_check(Gate(mf)))
|
||||
m_queue.erase(Gate(mf));
|
||||
}
|
||||
|
|
@ -1133,18 +1114,20 @@ private:
|
|||
visitor.before_Steiner_point_insertion(*this, steiner_point);
|
||||
|
||||
// Actual insertion of the Steiner point
|
||||
Vertex_handle vh = m_dt.insert(steiner_point, lt, conflict_cell, li, lj);
|
||||
vh->info() = DEFAULT;
|
||||
// We could use TDS functions to avoid recomputing the conflict zone, but in practice
|
||||
// it does not bring any runtime improvements
|
||||
Vertex_handle vh = m_tr.insert(steiner_point, lt, conflict_cell, li, lj);
|
||||
vh->type() = AW3i::Vertex_type:: DEFAULT;
|
||||
|
||||
visitor.after_Steiner_point_insertion(*this, vh);
|
||||
|
||||
std::vector<Cell_handle> new_cells;
|
||||
new_cells.reserve(32);
|
||||
m_dt.incident_cells(vh, std::back_inserter(new_cells));
|
||||
m_tr.incident_cells(vh, std::back_inserter(new_cells));
|
||||
for(const Cell_handle& ch : new_cells)
|
||||
{
|
||||
// std::cout << "new cell has time stamp " << ch->time_stamp() << std::endl;
|
||||
ch->info().is_outside = m_dt.is_infinite(ch);
|
||||
ch->is_outside() = m_tr.is_infinite(ch);
|
||||
}
|
||||
|
||||
// Push all new boundary facets to the queue.
|
||||
|
|
@ -1156,25 +1139,25 @@ private:
|
|||
{
|
||||
for(int i=0; i<4; ++i)
|
||||
{
|
||||
if(m_dt.is_infinite(ch, i))
|
||||
if(m_tr.is_infinite(ch, i))
|
||||
continue;
|
||||
|
||||
const Cell_handle nh = ch->neighbor(i);
|
||||
if(nh->info().is_outside == ch->info().is_outside) // not on the boundary
|
||||
if(nh->is_outside() == ch->is_outside()) // not on the boundary
|
||||
continue;
|
||||
|
||||
const Facet boundary_f = std::make_pair(ch, i);
|
||||
if(ch->info().is_outside)
|
||||
if(ch->is_outside())
|
||||
push_facet(boundary_f);
|
||||
else
|
||||
push_facet(m_dt.mirror_facet(boundary_f));
|
||||
push_facet(m_tr.mirror_facet(boundary_f));
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// tag neighbor as OUTSIDE
|
||||
neighbor->info().is_outside = true;
|
||||
neighbor->is_outside() = true;
|
||||
|
||||
// for each finite facet of neighbor, push it to the queue
|
||||
for(int i=0; i<4; ++i)
|
||||
|
|
@ -1188,10 +1171,10 @@ private:
|
|||
visitor.on_flood_fill_end(*this);
|
||||
|
||||
// Check that no useful facet has been ignored
|
||||
CGAL_postcondition_code(for(auto fit=m_dt.finite_facets_begin(), fend=m_dt.finite_facets_end(); fit!=fend; ++fit) {)
|
||||
CGAL_postcondition_code( if(fit->first->info().is_outside == fit->first->neighbor(fit->second)->info().is_outside) continue;)
|
||||
CGAL_postcondition_code(for(auto fit=m_tr.finite_facets_begin(), fend=m_tr.finite_facets_end(); fit!=fend; ++fit) {)
|
||||
CGAL_postcondition_code( if(fit->first->is_outside() == fit->first->neighbor(fit->second)->is_outside()) continue;)
|
||||
CGAL_postcondition_code( Facet f = *fit;)
|
||||
CGAL_postcondition_code( if(!fit->first->info().is_outside) f = m_dt.mirror_facet(f);)
|
||||
CGAL_postcondition_code( if(!fit->first->is_outside()) f = m_tr.mirror_facet(f);)
|
||||
CGAL_postcondition( facet_status(f) == IRRELEVANT);
|
||||
CGAL_postcondition_code(})
|
||||
}
|
||||
|
|
@ -1199,13 +1182,13 @@ private:
|
|||
private:
|
||||
bool is_non_manifold(Vertex_handle v) const
|
||||
{
|
||||
CGAL_precondition(!m_dt.is_infinite(v));
|
||||
CGAL_precondition(!m_tr.is_infinite(v));
|
||||
|
||||
bool is_non_manifold = false;
|
||||
|
||||
std::vector<Cell_handle> inc_cells;
|
||||
inc_cells.reserve(64);
|
||||
m_dt.incident_cells(v, std::back_inserter(inc_cells));
|
||||
m_tr.incident_cells(v, std::back_inserter(inc_cells));
|
||||
|
||||
// Flood one inside and outside CC.
|
||||
// Process both an inside and an outside CC to also detect edge pinching.
|
||||
|
|
@ -1218,7 +1201,7 @@ private:
|
|||
for(Cell_handle ic : inc_cells)
|
||||
{
|
||||
ic->tds_data().clear();
|
||||
if(ic->info().is_outside)
|
||||
if(ic->is_outside())
|
||||
outside_start = ic;
|
||||
else if(inside_start == Cell_handle())
|
||||
inside_start = ic;
|
||||
|
|
@ -1253,7 +1236,7 @@ private:
|
|||
CGAL_assertion(neigh_c->has_vertex(v));
|
||||
|
||||
if(neigh_c->tds_data().processed() ||
|
||||
neigh_c->info().is_outside != curr_c->info().is_outside) // do not cross the boundary
|
||||
neigh_c->is_outside() != curr_c->is_outside()) // do not cross the boundary
|
||||
continue;
|
||||
|
||||
cells_to_visit.push(neigh_c);
|
||||
|
|
@ -1278,7 +1261,7 @@ private:
|
|||
|
||||
bool is_non_manifold(Cell_handle c) const
|
||||
{
|
||||
CGAL_precondition(!m_dt.is_infinite(c));
|
||||
CGAL_precondition(!m_tr.is_infinite(c));
|
||||
|
||||
for(int i=0; i<4; ++i)
|
||||
{
|
||||
|
|
@ -1294,7 +1277,7 @@ private:
|
|||
{
|
||||
// Not the best complexity, but it's not important: this function is purely for information
|
||||
// Better complexity --> see PMP::non_manifold_vertices + throw
|
||||
for(const Vertex_handle v : m_dt.finite_vertex_handles())
|
||||
for(const Vertex_handle v : m_tr.finite_vertex_handles())
|
||||
if(is_non_manifold(v))
|
||||
return true;
|
||||
|
||||
|
|
@ -1307,18 +1290,18 @@ private:
|
|||
bool remove_bbox_vertices()
|
||||
{
|
||||
bool do_remove = true;
|
||||
auto vit = m_dt.finite_vertices_begin();
|
||||
auto vit = m_tr.finite_vertices_begin();
|
||||
for(std::size_t i=0; i<8; ++i)
|
||||
{
|
||||
Vertex_handle v = vit++;
|
||||
|
||||
std::vector<Cell_handle> inc_cells;
|
||||
inc_cells.reserve(64);
|
||||
m_dt.finite_incident_cells(v, std::back_inserter(inc_cells));
|
||||
m_tr.finite_incident_cells(v, std::back_inserter(inc_cells));
|
||||
|
||||
for(Cell_handle c : inc_cells)
|
||||
{
|
||||
if(!c->info().is_outside)
|
||||
if(!c->is_outside())
|
||||
{
|
||||
do_remove = false;
|
||||
break;
|
||||
|
|
@ -1333,11 +1316,11 @@ private:
|
|||
if(!do_remove)
|
||||
return false;
|
||||
|
||||
vit = m_dt.finite_vertices_begin();
|
||||
vit = m_tr.finite_vertices_begin();
|
||||
for(std::size_t i=0; i<8; ++i)
|
||||
{
|
||||
Vertex_handle v = vit++;
|
||||
m_dt.remove(v);
|
||||
m_tr.remove(v);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
@ -1355,7 +1338,7 @@ public:
|
|||
// remove_bbox_vertices();
|
||||
|
||||
std::stack<Vertex_handle> non_manifold_vertices; // @todo sort somehow?
|
||||
for(Vertex_handle v : m_dt.finite_vertex_handles())
|
||||
for(Vertex_handle v : m_tr.finite_vertex_handles())
|
||||
{
|
||||
if(is_non_manifold(v))
|
||||
non_manifold_vertices.push(v);
|
||||
|
|
@ -1365,15 +1348,20 @@ public:
|
|||
auto has_artificial_vertex = [](Cell_handle c) -> bool
|
||||
{
|
||||
for(int i=0; i<4; ++i)
|
||||
if(c->vertex(i)->info() == BBOX_VERTEX || c->vertex(i)->info() == SEED_VERTEX)
|
||||
{
|
||||
if(c->vertex(i)->type() == AW3i::Vertex_type:: BBOX_VERTEX ||
|
||||
c->vertex(i)->type() == AW3i::Vertex_type:: SEED_VERTEX)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
auto is_on_boundary = [](Cell_handle c, int i) -> bool
|
||||
{
|
||||
return (c->info().is_outside != c->neighbor(i)->info().is_outside);
|
||||
return (c->is_outside() != c->neighbor(i)->is_outside());
|
||||
};
|
||||
|
||||
auto count_boundary_facets = [&](Cell_handle c, Vertex_handle v) -> int
|
||||
|
|
@ -1395,17 +1383,17 @@ public:
|
|||
// auto sq_circumradius = [&](Cell_handle c) -> FT
|
||||
// {
|
||||
// const Point_3& cc = circumcenter(c);
|
||||
// return geom_traits().compute_squared_distance_3_object()(m_dt.point(c, 0), cc);
|
||||
// return geom_traits().compute_squared_distance_3_object()(m_tr.point(c, 0), cc);
|
||||
// };
|
||||
|
||||
auto sq_longest_edge = [&](Cell_handle c) -> FT
|
||||
{
|
||||
return (std::max)({ squared_distance(m_dt.point(c, 0), m_dt.point(c, 1)),
|
||||
squared_distance(m_dt.point(c, 0), m_dt.point(c, 2)),
|
||||
squared_distance(m_dt.point(c, 0), m_dt.point(c, 3)),
|
||||
squared_distance(m_dt.point(c, 1), m_dt.point(c, 2)),
|
||||
squared_distance(m_dt.point(c, 3), m_dt.point(c, 3)),
|
||||
squared_distance(m_dt.point(c, 2), m_dt.point(c, 3)) });
|
||||
return (std::max)({ squared_distance(m_tr.point(c, 0), m_tr.point(c, 1)),
|
||||
squared_distance(m_tr.point(c, 0), m_tr.point(c, 2)),
|
||||
squared_distance(m_tr.point(c, 0), m_tr.point(c, 3)),
|
||||
squared_distance(m_tr.point(c, 1), m_tr.point(c, 2)),
|
||||
squared_distance(m_tr.point(c, 3), m_tr.point(c, 3)),
|
||||
squared_distance(m_tr.point(c, 2), m_tr.point(c, 3)) });
|
||||
};
|
||||
|
||||
#ifdef CGAL_AW3_DEBUG_MANIFOLDNESS
|
||||
|
|
@ -1450,7 +1438,7 @@ public:
|
|||
|
||||
std::vector<Cell_handle> inc_cells;
|
||||
inc_cells.reserve(64);
|
||||
m_dt.finite_incident_cells(v, std::back_inserter(inc_cells));
|
||||
m_tr.finite_incident_cells(v, std::back_inserter(inc_cells));
|
||||
|
||||
#define CGAL_AW3_USE_BRUTE_FORCE_MUTABLE_PRIORITY_QUEUE
|
||||
#ifndef CGAL_AW3_USE_BRUTE_FORCE_MUTABLE_PRIORITY_QUEUE
|
||||
|
|
@ -1464,10 +1452,10 @@ public:
|
|||
std::sort(cit, cend, comparer);
|
||||
#endif
|
||||
Cell_handle ic = *cit;
|
||||
CGAL_assertion(!m_dt.is_infinite(ic));
|
||||
CGAL_assertion(!m_tr.is_infinite(ic));
|
||||
|
||||
// This is where new material is added
|
||||
ic->info().is_outside = false;
|
||||
ic->is_outside() = false;
|
||||
|
||||
#ifdef CGAL_AW3_DEBUG_DUMP_EVERY_STEP
|
||||
static int i = 0;
|
||||
|
|
@ -1484,14 +1472,14 @@ public:
|
|||
|
||||
std::vector<Vertex_handle> adj_vertices;
|
||||
adj_vertices.reserve(64);
|
||||
m_dt.finite_adjacent_vertices(v, std::back_inserter(adj_vertices));
|
||||
m_tr.finite_adjacent_vertices(v, std::back_inserter(adj_vertices));
|
||||
|
||||
for(Vertex_handle nv : adj_vertices)
|
||||
if(is_non_manifold(nv))
|
||||
non_manifold_vertices.push(nv);
|
||||
}
|
||||
|
||||
CGAL_assertion_code(for(Vertex_handle v : m_dt.finite_vertex_handles()))
|
||||
CGAL_assertion_code(for(Vertex_handle v : m_tr.finite_vertex_handles()))
|
||||
CGAL_assertion(!is_non_manifold(v));
|
||||
}
|
||||
|
||||
|
|
@ -1508,12 +1496,12 @@ private:
|
|||
const Facet& current_f = current_gate.facet();
|
||||
const Cell_handle ch = current_f.first;
|
||||
const int id = current_f.second;
|
||||
const Point_3& p0 = m_dt.point(ch, (id+1)&3);
|
||||
const Point_3& p1 = m_dt.point(ch, (id+2)&3);
|
||||
const Point_3& p2 = m_dt.point(ch, (id+3)&3);
|
||||
const Point_3& p0 = m_tr.point(ch, (id+1)&3);
|
||||
const Point_3& p1 = m_tr.point(ch, (id+2)&3);
|
||||
const Point_3& p2 = m_tr.point(ch, (id+3)&3);
|
||||
const FT sqr = geom_traits().compute_squared_radius_3_object()(p0, p1, p2);
|
||||
|
||||
std::cout << "At Facet with VID " << get(Gate_ID_PM<Dt>(), current_gate) << std::endl;
|
||||
std::cout << "At Facet with VID " << get(Gate_ID_PM<Triangulation>(), current_gate) << std::endl;
|
||||
|
||||
if(current_gate.priority() != sqr)
|
||||
std::cerr << "Error: facet in queue has wrong priority" << std::endl;
|
||||
|
|
@ -1546,13 +1534,13 @@ private:
|
|||
std::size_t nv = 0;
|
||||
std::size_t nf = 0;
|
||||
|
||||
for(auto fit=m_dt.finite_facets_begin(), fend=m_dt.finite_facets_end(); fit!=fend; ++fit)
|
||||
for(auto fit=m_tr.finite_facets_begin(), fend=m_tr.finite_facets_end(); fit!=fend; ++fit)
|
||||
{
|
||||
Cell_handle c = fit->first;
|
||||
int s = fit->second;
|
||||
|
||||
Cell_handle nc = c->neighbor(s);
|
||||
if(only_boundary_faces && (c->info().is_outside == nc->info().is_outside))
|
||||
if(only_boundary_faces && (c->is_outside() == nc->is_outside()))
|
||||
continue;
|
||||
|
||||
std::array<std::size_t, 3> ids;
|
||||
|
|
@ -1562,7 +1550,7 @@ private:
|
|||
auto insertion_res = vertex_to_id.emplace(v, nv);
|
||||
if(insertion_res.second)
|
||||
{
|
||||
vertices_ss << m_dt.point(v) << "\n";
|
||||
vertices_ss << m_tr.point(v) << "\n";
|
||||
++nv;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -36,24 +36,24 @@ struct Tetrahedron_with_outside_info
|
|||
using Triangle_3 = typename Kernel::Triangle_3;
|
||||
|
||||
template <typename CellHandle>
|
||||
Tetrahedron_with_outside_info(const CellHandle ch, const K& k)
|
||||
Tetrahedron_with_outside_info(const CellHandle c, const K& k)
|
||||
{
|
||||
typename K::Construct_bbox_3 bbox = k.construct_bbox_3_object();
|
||||
typename K::Construct_tetrahedron_3 tetrahedron = k.construct_tetrahedron_3_object();
|
||||
typename K::Construct_triangle_3 triangle = k.construct_triangle_3_object();
|
||||
|
||||
m_tet = tetrahedron(ch->vertex(0)->point(), ch->vertex(1)->point(),
|
||||
ch->vertex(2)->point(), ch->vertex(3)->point());
|
||||
m_tet = tetrahedron(c->vertex(0)->point(), c->vertex(1)->point(),
|
||||
c->vertex(2)->point(), c->vertex(3)->point());
|
||||
m_bbox = bbox(m_tet);
|
||||
|
||||
for(int i=0; i<4; ++i)
|
||||
{
|
||||
if(ch->neighbor(i)->info().is_outside)
|
||||
if(c->neighbor(i)->is_outside())
|
||||
m_b.set(i, true);
|
||||
|
||||
m_triangles[i] = triangle(ch->vertex((i+1)& 3)->point(),
|
||||
ch->vertex((i+2)& 3)->point(),
|
||||
ch->vertex((i+3)& 3)->point());
|
||||
m_triangles[i] = triangle(c->vertex((i+1)& 3)->point(),
|
||||
c->vertex((i+2)& 3)->point(),
|
||||
c->vertex((i+3)& 3)->point());
|
||||
m_tbox[i] = bbox(m_triangles[i]);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,97 @@
|
|||
// Copyright (c) 2019-2023 Google LLC (USA).
|
||||
// All rights reserved.
|
||||
//
|
||||
// This file is part of CGAL (www.cgal.org).
|
||||
//
|
||||
// $URL$
|
||||
// $Id$
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial
|
||||
//
|
||||
// Author(s) : Mael Rouxel-Labbé
|
||||
|
||||
#ifndef CGAL_ALPHA_WRAP_TRIANGULATION_CELL_BASE_3_H
|
||||
#define CGAL_ALPHA_WRAP_TRIANGULATION_CELL_BASE_3_H
|
||||
|
||||
#include <CGAL/license/Alpha_wrap_3.h>
|
||||
|
||||
#include <CGAL/Delaunay_triangulation_cell_base_with_circumcenter_3.h>
|
||||
|
||||
namespace CGAL {
|
||||
namespace Alpha_wraps_3 {
|
||||
namespace internal {
|
||||
|
||||
template < typename GT,
|
||||
typename Cb = CGAL::Delaunay_triangulation_cell_base_with_circumcenter_3<GT> >
|
||||
class Alpha_wrap_triangulation_cell_base_3
|
||||
: public Cb
|
||||
{
|
||||
private:
|
||||
bool outside = false;
|
||||
|
||||
public:
|
||||
typedef typename Cb::Vertex_handle Vertex_handle;
|
||||
typedef typename Cb::Cell_handle Cell_handle;
|
||||
|
||||
template < typename TDS2 >
|
||||
struct Rebind_TDS
|
||||
{
|
||||
using Cb2 = typename Cb::template Rebind_TDS<TDS2>::Other;
|
||||
using Other = Alpha_wrap_triangulation_cell_base_3<GT, Cb2>;
|
||||
};
|
||||
|
||||
Alpha_wrap_triangulation_cell_base_3()
|
||||
: Cb()
|
||||
{}
|
||||
|
||||
Alpha_wrap_triangulation_cell_base_3(Vertex_handle v0, Vertex_handle v1,
|
||||
Vertex_handle v2, Vertex_handle v3)
|
||||
: Cb(v0, v1, v2, v3)
|
||||
{}
|
||||
|
||||
Alpha_wrap_triangulation_cell_base_3(Vertex_handle v0, Vertex_handle v1,
|
||||
Vertex_handle v2, Vertex_handle v3,
|
||||
Cell_handle n0, Cell_handle n1,
|
||||
Cell_handle n2, Cell_handle n3)
|
||||
: Cb(v0, v1, v2, v3, n0, n1, n2, n3)
|
||||
{}
|
||||
|
||||
bool is_outside() const { return outside; }
|
||||
bool& is_outside() { return outside; }
|
||||
};
|
||||
|
||||
template <typename Cb>
|
||||
class Cell_base_with_timestamp
|
||||
: public Cb
|
||||
{
|
||||
std::size_t time_stamp_;
|
||||
|
||||
public:
|
||||
using Has_timestamp = CGAL::Tag_true;
|
||||
|
||||
template <class TDS>
|
||||
struct Rebind_TDS
|
||||
{
|
||||
using Cb2 = typename Cb::template Rebind_TDS<TDS>::Other;
|
||||
using Other = Cell_base_with_timestamp<Cb2>;
|
||||
};
|
||||
|
||||
public:
|
||||
template <typename... Args>
|
||||
Cell_base_with_timestamp(const Args&... args)
|
||||
: Cb(args...), time_stamp_(-1)
|
||||
{ }
|
||||
|
||||
Cell_base_with_timestamp(const Cell_base_with_timestamp& other)
|
||||
: Cb(other), time_stamp_(other.time_stamp_)
|
||||
{ }
|
||||
|
||||
public:
|
||||
std::size_t time_stamp() const { return time_stamp_; }
|
||||
void set_time_stamp(const std::size_t& ts) { time_stamp_ = ts; }
|
||||
};
|
||||
|
||||
} // namespace internal
|
||||
} // namespace Alpha_wraps_3
|
||||
} // namespace CGAL
|
||||
|
||||
#endif // CGAL_ALPHA_WRAP_TRIANGULATION_CELL_BASE_3_H
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
// Copyright (c) 2019-2023 Google LLC (USA).
|
||||
// All rights reserved.
|
||||
//
|
||||
// This file is part of CGAL (www.cgal.org).
|
||||
//
|
||||
// $URL$
|
||||
// $Id$
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial
|
||||
//
|
||||
// Author(s) : Mael Rouxel-Labbé
|
||||
|
||||
#ifndef CGAL_ALPHA_WRAP_TRIANGULATION_VERTEX_BASE_3_H
|
||||
#define CGAL_ALPHA_WRAP_TRIANGULATION_VERTEX_BASE_3_H
|
||||
|
||||
#include <CGAL/license/Alpha_wrap_3.h>
|
||||
|
||||
#include <CGAL/Triangulation_vertex_base_3.h>
|
||||
|
||||
namespace CGAL {
|
||||
namespace Alpha_wraps_3 {
|
||||
namespace internal {
|
||||
|
||||
enum class Vertex_type
|
||||
{
|
||||
DEFAULT = 0,
|
||||
BBOX_VERTEX,
|
||||
SEED_VERTEX
|
||||
};
|
||||
|
||||
template <typename GT,
|
||||
typename Vb = Triangulation_vertex_base_3<GT> >
|
||||
class Alpha_wrap_triangulation_vertex_base_3
|
||||
: public Vb
|
||||
{
|
||||
private:
|
||||
Vertex_type vertex_type = Vertex_type::DEFAULT;
|
||||
|
||||
public:
|
||||
using Cell_handle = typename Vb::Cell_handle;
|
||||
using Point = typename Vb::Point;
|
||||
|
||||
template <typename TDS2>
|
||||
struct Rebind_TDS
|
||||
{
|
||||
using Vb2 = typename Vb::template Rebind_TDS<TDS2>::Other;
|
||||
using Other = Alpha_wrap_triangulation_vertex_base_3<GT, Vb2>;
|
||||
};
|
||||
|
||||
public:
|
||||
Alpha_wrap_triangulation_vertex_base_3()
|
||||
: Vb() {}
|
||||
|
||||
Alpha_wrap_triangulation_vertex_base_3(const Point& p)
|
||||
: Vb(p) {}
|
||||
|
||||
Alpha_wrap_triangulation_vertex_base_3(const Point& p, Cell_handle c)
|
||||
: Vb(p, c) {}
|
||||
|
||||
Alpha_wrap_triangulation_vertex_base_3(Cell_handle c)
|
||||
: Vb(c) {}
|
||||
|
||||
public:
|
||||
const Vertex_type& type() const { return vertex_type; }
|
||||
Vertex_type& type() { return vertex_type; }
|
||||
};
|
||||
|
||||
} // namespace internal
|
||||
} // namespace Alpha_wraps_3
|
||||
} // namespace CGAL
|
||||
|
||||
#endif // CGAL_ALPHA_WRAP_TRIANGULATION_VERTEX_BASE_3_H
|
||||
|
|
@ -46,7 +46,7 @@ ag.incident_edges(ag.infinite_vertex());
|
|||
ag.incident_edges(ag.infinite_vertex(), f);
|
||||
\endcode
|
||||
|
||||
\cgalModels `DelaunayGraph_2`
|
||||
\cgalModels{DelaunayGraph_2}
|
||||
|
||||
\sa `CGAL::Apollonius_graph_traits_2<K,Method_tag>`
|
||||
\sa `CGAL::Apollonius_graph_filtered_traits_2<CK,CM,EK,EM,FK,FM>`
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ The default values for the template parameters are as follows:
|
|||
`FK = CGAL::Simple_cartesian<CGAL::Interval_nt<false> >`,
|
||||
`FM = CM`.
|
||||
|
||||
\cgalModels `ApolloniusGraphTraits_2`
|
||||
\cgalModels{ApolloniusGraphTraits_2}
|
||||
|
||||
\sa `Kernel`
|
||||
\sa `ApolloniusGraphTraits_2`
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ vertex base required by the
|
|||
`Apollonius_graph_hierarchy_vertex_base_2` is templated by a class `Agvb` which must be a model
|
||||
of the `ApolloniusGraphVertexBase_2` concept.
|
||||
|
||||
\cgalModels `ApolloniusGraphHierarchyVertexBase_2`
|
||||
\cgalModels{ApolloniusGraphHierarchyVertexBase_2}
|
||||
|
||||
\sa `CGAL::Apollonius_graph_vertex_base_2<Gt,StoreHidden>`
|
||||
\sa `CGAL::Triangulation_data_structure_2<Vb,Fb>`
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue