mirror of https://github.com/CGAL/cgal
Move Qt4 based demo in the right package
This commit is contained in:
parent
082667ba2c
commit
675691a4f8
|
|
@ -1312,7 +1312,6 @@ Geomview/doc_tex/Geomview/geomview.gif -text
|
||||||
GraphicsView/GraphicsView.odp -text
|
GraphicsView/GraphicsView.odp -text
|
||||||
GraphicsView/TODO -text
|
GraphicsView/TODO -text
|
||||||
GraphicsView/demo/Alpha_shapes_3/Alpha_shape_3.qrc -text
|
GraphicsView/demo/Alpha_shapes_3/Alpha_shape_3.qrc -text
|
||||||
GraphicsView/demo/Alpha_shapes_3/MainWindow.ui -text
|
|
||||||
GraphicsView/demo/Circular_kernel_2/Circular_kernel_2.qrc -text
|
GraphicsView/demo/Circular_kernel_2/Circular_kernel_2.qrc -text
|
||||||
GraphicsView/demo/Circular_kernel_2/Circular_kernel_2.ui -text
|
GraphicsView/demo/Circular_kernel_2/Circular_kernel_2.ui -text
|
||||||
GraphicsView/demo/Circular_kernel_2/arcs.arc -text
|
GraphicsView/demo/Circular_kernel_2/arcs.arc -text
|
||||||
|
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
|
|
||||||
#include "MainWindow.h"
|
|
||||||
#include "typedefs.h"
|
|
||||||
#include <QApplication>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
|
||||||
{
|
|
||||||
QApplication application(argc,argv);
|
|
||||||
|
|
||||||
application.setOrganizationDomain("geometryfactory.com");
|
|
||||||
application.setOrganizationName("GeometryFactory");
|
|
||||||
application.setApplicationName("Alpha Shape Reconstruction");
|
|
||||||
|
|
||||||
// Import resources from libCGALQt4.
|
|
||||||
// See http://doc.trolltech.com/4.4/qdir.html#Q_INIT_RESOURCE
|
|
||||||
Q_INIT_RESOURCE(File);
|
|
||||||
Q_INIT_RESOURCE(Alpha_shape_3);
|
|
||||||
Q_INIT_RESOURCE(CGAL);
|
|
||||||
MainWindow mw;
|
|
||||||
mw.show();
|
|
||||||
|
|
||||||
return application.exec();
|
|
||||||
}
|
|
||||||
|
|
@ -1,53 +0,0 @@
|
||||||
# Created by the script cgal_create_cmake_script
|
|
||||||
# This is the CMake script for compiling a CGAL application.
|
|
||||||
|
|
||||||
project (Alpha_shape_3)
|
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 2.4.5)
|
|
||||||
|
|
||||||
set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
|
|
||||||
|
|
||||||
if ( COMMAND cmake_policy )
|
|
||||||
cmake_policy( SET CMP0003 NEW )
|
|
||||||
endif()
|
|
||||||
|
|
||||||
find_package(CGAL COMPONENTS Qt4)
|
|
||||||
include(${CGAL_USE_FILE})
|
|
||||||
|
|
||||||
set( QT_USE_QTXML TRUE )
|
|
||||||
set( QT_USE_QTMAIN TRUE )
|
|
||||||
set( QT_USE_QTSCRIPT TRUE )
|
|
||||||
set( QT_USE_QTOPENGL TRUE )
|
|
||||||
find_package(Qt4)
|
|
||||||
|
|
||||||
find_package(OpenGL)
|
|
||||||
find_package(QGLViewer)
|
|
||||||
|
|
||||||
if ( CGAL_FOUND AND CGAL_Qt4_FOUND AND QT4_FOUND AND OPENGL_FOUND AND QGLVIEWER_FOUND )
|
|
||||||
|
|
||||||
include(${QT_USE_FILE})
|
|
||||||
|
|
||||||
include_directories (${QGLVIEWER_INCLUDE_DIR})
|
|
||||||
include_directories (BEFORE ../../include ./ )
|
|
||||||
|
|
||||||
# ui file, created wih Qt Designer
|
|
||||||
qt4_wrap_ui( uis MainWindow.ui )
|
|
||||||
|
|
||||||
# qrc files (resources files, that contain icons, at least)
|
|
||||||
qt4_add_resources ( RESOURCE_FILES ./Alpha_shape_3.qrc )
|
|
||||||
|
|
||||||
qt4_automoc( MainWindow.cpp Viewer.cpp)
|
|
||||||
|
|
||||||
add_executable ( Alpha_shape_3 Alpha_shape_3.cpp MainWindow.cpp Viewer.cpp ${uis} ${RESOURCE_FILES} )
|
|
||||||
|
|
||||||
add_to_cached_list( CGAL_EXECUTABLE_TARGETS Alpha_shape_3 )
|
|
||||||
|
|
||||||
target_link_libraries( Alpha_shape_3 ${CGAL_LIBRARIES} ${CGAL_3RD_PARTY_LIBRARIES})
|
|
||||||
target_link_libraries( Alpha_shape_3 ${QT_LIBRARIES} ${QGLVIEWER_LIBRARIES} )
|
|
||||||
target_link_libraries( Alpha_shape_3 ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} )
|
|
||||||
|
|
||||||
else()
|
|
||||||
|
|
||||||
message(STATUS "NOTICE: This demo requires CGAL, the QGLViewer, OpenGL and Qt4, and will not be compiled.")
|
|
||||||
|
|
||||||
endif()
|
|
||||||
|
|
@ -1,111 +0,0 @@
|
||||||
|
|
||||||
#include "MainWindow.h"
|
|
||||||
|
|
||||||
MainWindow::MainWindow(QWidget* parent): CGAL::Qt::DemosMainWindow(parent)
|
|
||||||
{
|
|
||||||
setupUi(this);
|
|
||||||
this->viewer->setScene(&scene);
|
|
||||||
connectActions();
|
|
||||||
this->addAboutDemo(":/cgal/help/about_Alpha_shapes_3.html");
|
|
||||||
this->addAboutCGAL();
|
|
||||||
|
|
||||||
this->addRecentFiles(this->menuFile, this->actionQuit);
|
|
||||||
connect(this, SIGNAL(openRecentFile(QString)),
|
|
||||||
this, SLOT(open(QString)));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
MainWindow::connectActions()
|
|
||||||
{
|
|
||||||
QObject::connect(this->actionLoad_New_File, SIGNAL(triggered()),
|
|
||||||
this, SLOT(open_file()));
|
|
||||||
|
|
||||||
QObject::connect(this->alphaSlider, SIGNAL(valueChanged(int)),
|
|
||||||
this, SLOT(alphaChanged(int)));
|
|
||||||
|
|
||||||
QObject::connect(this->alphaBox, SIGNAL(valueChanged(int)),
|
|
||||||
this, SLOT(alphaChanged(int)));
|
|
||||||
|
|
||||||
QObject::connect(this->alphaSlider, SIGNAL(valueChanged(int)),
|
|
||||||
this->alphaBox, SLOT(setValue(int)));
|
|
||||||
|
|
||||||
QObject::connect(this->alphaBox, SIGNAL(valueChanged(int)),
|
|
||||||
this->alphaSlider, SLOT(setValue(int)));
|
|
||||||
|
|
||||||
QObject::connect(this, SIGNAL(sceneChanged()),
|
|
||||||
this->viewer, SLOT(sceneChanged()));
|
|
||||||
|
|
||||||
QObject::connect(this, SIGNAL(alphaChanged()),
|
|
||||||
this->viewer, SLOT(update()));
|
|
||||||
|
|
||||||
|
|
||||||
QObject::connect(this->actionQuit, SIGNAL(triggered()),
|
|
||||||
qApp, SLOT(quit()));
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
MainWindow::open_file()
|
|
||||||
{
|
|
||||||
|
|
||||||
QString fileName = QFileDialog::getOpenFileName(this,
|
|
||||||
tr("Open Points File"),
|
|
||||||
"./data",
|
|
||||||
tr("pts files (*.pts)"));
|
|
||||||
|
|
||||||
if(! fileName.isEmpty()){
|
|
||||||
open(fileName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
MainWindow::alphaChanged(int i)
|
|
||||||
{
|
|
||||||
if (scene.alpha_shape.number_of_alphas() > 0){
|
|
||||||
if(i < 100){
|
|
||||||
int n = (i * scene.alpha_shape.number_of_alphas())/ 100;
|
|
||||||
if(n == 0) n++;
|
|
||||||
scene.alpha_shape.set_alpha(scene.alpha_shape.get_nth_alpha(n));
|
|
||||||
} else {
|
|
||||||
Alpha_iterator alpha_end_it = scene.alpha_shape.alpha_end();
|
|
||||||
scene.alpha_shape.set_alpha((*(--alpha_end_it))+1);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
scene.alpha_shape.set_alpha(0);
|
|
||||||
}
|
|
||||||
emit (alphaChanged());
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
MainWindow::open(const QString& fileName)
|
|
||||||
{
|
|
||||||
QApplication::setOverrideCursor(Qt::WaitCursor);
|
|
||||||
scene.alpha_shape.clear();
|
|
||||||
scene.points.clear();
|
|
||||||
std::ifstream ifs(qPrintable(fileName));
|
|
||||||
int n;
|
|
||||||
ifs >> n;
|
|
||||||
Point_3 p;
|
|
||||||
for(int i=0; i<n; i++){
|
|
||||||
ifs >> p;
|
|
||||||
scene.points.push_back(p);
|
|
||||||
}
|
|
||||||
timer.reset();
|
|
||||||
timer.start();
|
|
||||||
scene.alpha_shape.make_alpha_shape(scene.points.begin(), scene.points.end());
|
|
||||||
scene.alpha_shape.set_alpha(16);
|
|
||||||
timer.stop();
|
|
||||||
|
|
||||||
|
|
||||||
alphaSlider->setRange(0,100);
|
|
||||||
alphaSlider->setSliderPosition(50);
|
|
||||||
|
|
||||||
this->addToRecentFiles(fileName);
|
|
||||||
QApplication::restoreOverrideCursor();
|
|
||||||
emit (sceneChanged());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#include "MainWindow.moc"
|
|
||||||
|
|
||||||
|
|
@ -1,40 +0,0 @@
|
||||||
#ifndef MAIN_WINDOW_H
|
|
||||||
#define MAIN_WINDOW_H
|
|
||||||
|
|
||||||
#include "typedefs.h"
|
|
||||||
#include "ui_MainWindow.h"
|
|
||||||
#include <CGAL/Qt/DemosMainWindow.h>
|
|
||||||
#include <QSlider>
|
|
||||||
#include <QFileDialog>
|
|
||||||
class QWidget;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class MainWindow : public CGAL::Qt::DemosMainWindow, private Ui::MainWindow
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
|
||||||
MainWindow(QWidget* parent = 0);
|
|
||||||
|
|
||||||
void connectActions();
|
|
||||||
|
|
||||||
|
|
||||||
Scene scene;
|
|
||||||
Timer timer;
|
|
||||||
|
|
||||||
public slots:
|
|
||||||
void open(const QString& fileName);
|
|
||||||
void open_file();
|
|
||||||
void alphaChanged(int i);
|
|
||||||
|
|
||||||
signals:
|
|
||||||
void sceneChanged();
|
|
||||||
void alphaChanged();
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
@ -1,123 +0,0 @@
|
||||||
<ui version="4.0" >
|
|
||||||
<class>MainWindow</class>
|
|
||||||
<widget class="QMainWindow" name="MainWindow" >
|
|
||||||
<property name="geometry" >
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>635</width>
|
|
||||||
<height>504</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle" >
|
|
||||||
<string>CGAL 3D Alpha Shape</string>
|
|
||||||
</property>
|
|
||||||
<property name="windowIcon" >
|
|
||||||
<iconset resource="../resources/CGAL.qrc" >
|
|
||||||
<normaloff>:/cgal/logos/cgal_icon</normaloff>:/cgal/logos/cgal_icon</iconset>
|
|
||||||
</property>
|
|
||||||
<widget class="QWidget" name="centralwidget" >
|
|
||||||
<layout class="QVBoxLayout" >
|
|
||||||
<item>
|
|
||||||
<layout class="QHBoxLayout" >
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="alphaLabel" >
|
|
||||||
<property name="font" >
|
|
||||||
<font>
|
|
||||||
<weight>75</weight>
|
|
||||||
<bold>true</bold>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="text" >
|
|
||||||
<string>&alpha:</string>
|
|
||||||
</property>
|
|
||||||
<property name="buddy" >
|
|
||||||
<cstring>alphaBox</cstring>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QSpinBox" name="alphaBox" >
|
|
||||||
<property name="suffix" >
|
|
||||||
<string>%</string>
|
|
||||||
</property>
|
|
||||||
<property name="maximum" >
|
|
||||||
<number>100</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QSlider" name="alphaSlider" >
|
|
||||||
<property name="maximum" >
|
|
||||||
<number>100</number>
|
|
||||||
</property>
|
|
||||||
<property name="singleStep" >
|
|
||||||
<number>1</number>
|
|
||||||
</property>
|
|
||||||
<property name="orientation" >
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="Viewer" native="1" name="viewer" />
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
<widget class="QMenuBar" name="menubar" >
|
|
||||||
<property name="geometry" >
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>635</width>
|
|
||||||
<height>19</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<widget class="QMenu" name="menuFile" >
|
|
||||||
<property name="title" >
|
|
||||||
<string>File</string>
|
|
||||||
</property>
|
|
||||||
<addaction name="actionLoad_New_File" />
|
|
||||||
<addaction name="actionLoad_Additional_File" />
|
|
||||||
<addaction name="separator" />
|
|
||||||
<addaction name="actionQuit" />
|
|
||||||
</widget>
|
|
||||||
<addaction name="menuFile" />
|
|
||||||
</widget>
|
|
||||||
<widget class="QStatusBar" name="statusbar" />
|
|
||||||
<action name="actionLoad_New_File" >
|
|
||||||
<property name="text" >
|
|
||||||
<string>Load New File</string>
|
|
||||||
</property>
|
|
||||||
</action>
|
|
||||||
<action name="actionLoad_Additional_File" >
|
|
||||||
<property name="text" >
|
|
||||||
<string>Load Additional File</string>
|
|
||||||
</property>
|
|
||||||
</action>
|
|
||||||
<action name="actionLoad_Points" >
|
|
||||||
<property name="text" >
|
|
||||||
<string>Load Points</string>
|
|
||||||
</property>
|
|
||||||
</action>
|
|
||||||
<action name="actionQuit" >
|
|
||||||
<property name="text" >
|
|
||||||
<string>Quit</string>
|
|
||||||
</property>
|
|
||||||
</action>
|
|
||||||
</widget>
|
|
||||||
<customwidgets>
|
|
||||||
<customwidget>
|
|
||||||
<class>Viewer</class>
|
|
||||||
<extends>QWidget</extends>
|
|
||||||
<header>Viewer.h</header>
|
|
||||||
</customwidget>
|
|
||||||
</customwidgets>
|
|
||||||
<resources>
|
|
||||||
<include location="../resources/CGAL.qrc" />
|
|
||||||
<include location="Alpha_shape_3.qrc" />
|
|
||||||
</resources>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
||||||
|
|
@ -1,138 +0,0 @@
|
||||||
#include "Viewer.h"
|
|
||||||
#include <vector>
|
|
||||||
#include <CGAL/bounding_box.h>
|
|
||||||
#include <QGLViewer/vec.h>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
Viewer::sceneChanged()
|
|
||||||
{
|
|
||||||
|
|
||||||
Iso_cuboid_3 bb = CGAL::bounding_box(scene->points.begin(), scene->points.end());
|
|
||||||
|
|
||||||
this->camera()->setSceneBoundingBox(qglviewer::Vec(bb.xmin(), bb.ymin(), bb.zmin()),
|
|
||||||
qglviewer::Vec(bb.xmax(),
|
|
||||||
bb.ymax(),
|
|
||||||
bb.zmax()));
|
|
||||||
|
|
||||||
this->showEntireScene();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
Viewer::draw()
|
|
||||||
{
|
|
||||||
|
|
||||||
// define material
|
|
||||||
float ambient[] = { 0.25f,
|
|
||||||
0.20725f,
|
|
||||||
0.20725f,
|
|
||||||
0.922f };
|
|
||||||
float diffuse[] = { 1.0f,
|
|
||||||
0.829f,
|
|
||||||
0.829f,
|
|
||||||
0.922f };
|
|
||||||
|
|
||||||
float specular[] = { 0.296648f,
|
|
||||||
0.296648f,
|
|
||||||
0.296648f,
|
|
||||||
0.522f };
|
|
||||||
|
|
||||||
float emission[] = { 0.3f,
|
|
||||||
0.3f,
|
|
||||||
0.3f,
|
|
||||||
1.0f };
|
|
||||||
float shininess[] = { 11.264f };
|
|
||||||
|
|
||||||
// apply material
|
|
||||||
::glMaterialfv( GL_FRONT_AND_BACK, GL_AMBIENT, ambient);
|
|
||||||
::glMaterialfv( GL_FRONT_AND_BACK, GL_DIFFUSE, diffuse);
|
|
||||||
::glMaterialfv( GL_FRONT_AND_BACK, GL_SPECULAR, specular);
|
|
||||||
::glMaterialfv( GL_FRONT_AND_BACK, GL_SHININESS, shininess);
|
|
||||||
::glMaterialfv( GL_FRONT_AND_BACK, GL_EMISSION, emission);
|
|
||||||
|
|
||||||
// anti-aliasing (if the OpenGL driver permits that)
|
|
||||||
::glEnable(GL_LINE_SMOOTH);
|
|
||||||
|
|
||||||
::glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
|
|
||||||
// draw surface mesh
|
|
||||||
bool m_view_surface = true;
|
|
||||||
bool draw_triangles_edges = true;
|
|
||||||
|
|
||||||
if(m_view_surface)
|
|
||||||
{
|
|
||||||
::glEnable(GL_LIGHTING);
|
|
||||||
::glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
|
|
||||||
::glColor3f(0.2f, 0.2f, 1.f);
|
|
||||||
::glEnable(GL_POLYGON_OFFSET_FILL);
|
|
||||||
::glPolygonOffset(3.0f,-3.0f);
|
|
||||||
gl_draw_surface();
|
|
||||||
|
|
||||||
if(draw_triangles_edges)
|
|
||||||
{
|
|
||||||
::glDisable(GL_LIGHTING);
|
|
||||||
::glLineWidth(1.);
|
|
||||||
::glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);
|
|
||||||
::glColor3ub(0,0,0);
|
|
||||||
::glDisable(GL_POLYGON_OFFSET_FILL);
|
|
||||||
gl_draw_surface();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
Viewer::gl_draw_surface()
|
|
||||||
{
|
|
||||||
::glColor3f(1.0f, 0.0f, 0.0f);
|
|
||||||
::glDisable(GL_LIGHTING);
|
|
||||||
::glEnable(GL_POINT_SMOOTH);
|
|
||||||
::glPointSize(5);
|
|
||||||
::glBegin(GL_POINTS);
|
|
||||||
for(std::list<Point_3>::iterator it = scene->points.begin();
|
|
||||||
it != scene->points.end();
|
|
||||||
++it){
|
|
||||||
::glVertex3d(it->x(), it->y(), it->z());
|
|
||||||
}
|
|
||||||
::glEnd();
|
|
||||||
::glDisable(GL_POINT_SMOOTH);
|
|
||||||
|
|
||||||
::glEnable(GL_LIGHTING);
|
|
||||||
::glBegin(GL_TRIANGLES);
|
|
||||||
|
|
||||||
::glColor3f(0.2f, 1.0f, 0.2f);
|
|
||||||
|
|
||||||
std::list<Facet> facets;
|
|
||||||
scene->alpha_shape.get_alpha_shape_facets(std::back_inserter(facets), Alpha_shape_3::REGULAR);
|
|
||||||
|
|
||||||
for(std::list<Facet>::iterator fit = facets.begin();
|
|
||||||
fit != facets.end();
|
|
||||||
++fit) {
|
|
||||||
const Cell_handle& ch = fit->first;
|
|
||||||
const int index = fit->second;
|
|
||||||
|
|
||||||
//const Vector_3& n = ch->normal(index); // must be unit vector
|
|
||||||
|
|
||||||
const Point_3& a = ch->vertex((index+1)&3)->point();
|
|
||||||
const Point_3& b = ch->vertex((index+2)&3)->point();
|
|
||||||
const Point_3& c = ch->vertex((index+3)&3)->point();
|
|
||||||
|
|
||||||
Vector_3 v = CGAL::unit_normal(a,b,c);
|
|
||||||
|
|
||||||
|
|
||||||
::glNormal3d(v.x(),v.y(),v.z());
|
|
||||||
::glVertex3d(a.x(),a.y(),a.z());
|
|
||||||
::glVertex3d(b.x(),b.y(),b.z());
|
|
||||||
::glVertex3d(c.x(),c.y(),c.z());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
::glEnd();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#include "Viewer.moc"
|
|
||||||
|
|
@ -1,39 +0,0 @@
|
||||||
#ifndef VIEWER_H
|
|
||||||
#define VIEWER_H
|
|
||||||
|
|
||||||
#include "typedefs.h"
|
|
||||||
#include <QGLViewer/qglviewer.h>
|
|
||||||
|
|
||||||
|
|
||||||
class Viewer : public QGLViewer {
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
CGAL::Timer timer;
|
|
||||||
Scene* scene;
|
|
||||||
|
|
||||||
int nr_of_facets;
|
|
||||||
public:
|
|
||||||
Viewer(QWidget* parent)
|
|
||||||
: QGLViewer(parent)
|
|
||||||
{}
|
|
||||||
|
|
||||||
void setScene(Scene* scene_)
|
|
||||||
{
|
|
||||||
scene = scene_;
|
|
||||||
}
|
|
||||||
|
|
||||||
void clear();
|
|
||||||
|
|
||||||
public:
|
|
||||||
void draw();
|
|
||||||
|
|
||||||
void
|
|
||||||
gl_draw_surface();
|
|
||||||
|
|
||||||
public slots :
|
|
||||||
|
|
||||||
void sceneChanged();
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
<html>
|
|
||||||
<body>
|
|
||||||
<h2>3D Alpha Shapes</h2>
|
|
||||||
<p>Copyright © 2008 GeometryFactory</p>
|
|
||||||
<p>This application illustrates the 3D Alpha shapes
|
|
||||||
of <a href="http://www.cgal.org/">CGAL</a>.</p>
|
|
||||||
<p>See also <a href="http://www.cgal.org/Pkg/AlphaShapes3">the online
|
|
||||||
manual</a>.</p>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
@ -1,73 +0,0 @@
|
||||||
#ifndef TYPEDEFS_H
|
|
||||||
#define TYPEDEFS_H
|
|
||||||
|
|
||||||
|
|
||||||
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
|
||||||
#include <CGAL/Alpha_shape_vertex_base_3.h>
|
|
||||||
#include <CGAL/Alpha_shape_cell_base_3.h>
|
|
||||||
#include <CGAL/Triangulation_data_structure_3.h>
|
|
||||||
#include <CGAL/Delaunay_triangulation_3.h>
|
|
||||||
#include <CGAL/Alpha_shape_3.h>
|
|
||||||
#include <CGAL/Timer.h>
|
|
||||||
|
|
||||||
#include <cstdio>
|
|
||||||
#include <cstring>
|
|
||||||
#include <iostream>
|
|
||||||
#include <fstream>
|
|
||||||
#include <vector>
|
|
||||||
#include <list>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
typedef double coord_type;
|
|
||||||
|
|
||||||
|
|
||||||
typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
|
|
||||||
|
|
||||||
typedef K::Point_3 Point_3;
|
|
||||||
typedef K::Vector_3 Vector_3;
|
|
||||||
typedef K::Segment_3 Segment_3;
|
|
||||||
typedef K::Ray_3 Ray_3;
|
|
||||||
typedef K::Line_3 Line;
|
|
||||||
typedef K::Triangle_3 Triangle_3;
|
|
||||||
typedef K::Iso_cuboid_3 Iso_cuboid_3;
|
|
||||||
|
|
||||||
typedef CGAL::Alpha_shape_vertex_base_3<K> Vb;
|
|
||||||
typedef CGAL::Alpha_shape_cell_base_3<K> Fb;
|
|
||||||
|
|
||||||
typedef CGAL::Triangulation_data_structure_3<Vb,Fb> Tds;
|
|
||||||
typedef CGAL::Delaunay_triangulation_3<K,Tds> Triangulation_3;
|
|
||||||
|
|
||||||
typedef CGAL::Alpha_shape_3<Triangulation_3> Alpha_shape_3;
|
|
||||||
|
|
||||||
typedef Alpha_shape_3::Cell Cell;
|
|
||||||
typedef Alpha_shape_3::Vertex Vertex;
|
|
||||||
typedef Alpha_shape_3::Edge Edge;
|
|
||||||
typedef Alpha_shape_3::Facet Facet;
|
|
||||||
typedef Alpha_shape_3::Cell_handle Cell_handle;
|
|
||||||
typedef Alpha_shape_3::Vertex_handle Vertex_handle;
|
|
||||||
|
|
||||||
typedef Alpha_shape_3::Cell_circulator Cell_circulator;
|
|
||||||
|
|
||||||
typedef Alpha_shape_3::Locate_type Locate_type;
|
|
||||||
|
|
||||||
typedef Alpha_shape_3::Cell_iterator Cell_iterator;
|
|
||||||
typedef Alpha_shape_3::Vertex_iterator Vertex_iterator;
|
|
||||||
typedef Alpha_shape_3::Edge_iterator Edge_iterator;
|
|
||||||
|
|
||||||
|
|
||||||
typedef Alpha_shape_3::Coord_type Coord_type;
|
|
||||||
typedef Alpha_shape_3::Alpha_iterator Alpha_iterator;
|
|
||||||
|
|
||||||
typedef CGAL::Timer Timer;
|
|
||||||
|
|
||||||
struct Scene {
|
|
||||||
|
|
||||||
Alpha_shape_3 alpha_shape;
|
|
||||||
|
|
||||||
std::list<Point_3> points;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
||||||
Loading…
Reference in New Issue