New demo for CK3 using libQGLviewer

This commit is contained in:
Sébastien Loriot 2010-01-18 15:04:21 +00:00
parent 593e6cedc5
commit 2c90de93ed
27 changed files with 221 additions and 2607 deletions

11
.gitattributes vendored
View File

@ -1091,15 +1091,8 @@ Circular_kernel_2/include/CGAL/global_functions_circular_kernel_2.h -text
Circular_kernel_2/test/Circular_kernel_2/test_Circular_kernel_basic.cpp -text
Circular_kernel_2/test/Circular_kernel_2/test_Exact_circular_kernel_basic.cpp -text
Circular_kernel_3/changes -text
Circular_kernel_3/demo/Circular_kernel_3/images/button_axis.gif -text svneol=unset#image/gif
Circular_kernel_3/demo/Circular_kernel_3/images/button_light.gif -text svneol=unset#image/gif
Circular_kernel_3/demo/Circular_kernel_3/images/button_line.gif -text svneol=unset#image/gif
Circular_kernel_3/demo/Circular_kernel_3/images/button_pivot.gif -text svneol=unset#image/gif
Circular_kernel_3/demo/Circular_kernel_3/images/button_solid.gif -text svneol=unset#image/gif
Circular_kernel_3/demo/Circular_kernel_3/images/button_texture.gif -text svneol=unset#image/gif
Circular_kernel_3/demo/Circular_kernel_3/images/button_wire.gif -text svneol=unset#image/gif
Circular_kernel_3/demo/Circular_kernel_3/images/d_solid_b.gif -text svneol=unset#image/gif
Circular_kernel_3/demo/Circular_kernel_3/images/d_wire_b.gif -text svneol=unset#image/gif
Circular_kernel_3/demo/Circular_kernel_3/Viewer.cpp -text
Circular_kernel_3/demo/Circular_kernel_3/Viewer.h -text
Circular_kernel_3/doc_tex/Circular_kernel_3/def_circles_extreme_pt.pdf -text
Circular_kernel_3/doc_tex/Circular_kernel_3/def_circles_extreme_pt.png -text
Circular_kernel_3/doc_tex/Circular_kernel_3/def_meridian.pdf -text

View File

@ -1,54 +1,42 @@
# Created by the script cgal_create_cmake_script
# This is the CMake script for compiling a CGAL application.
project (Circular_kernel_3)
project( Circular_kernel_3_demo )
CMAKE_MINIMUM_REQUIRED(VERSION 2.4.5)
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 Core Qt3 )
find_package(CGAL COMPONENTS Qt4)
include(${CGAL_USE_FILE})
if ( CGAL_FOUND )
set( QT_USE_QTXML TRUE )
set( QT_USE_QTMAIN TRUE )
set( QT_USE_QTSCRIPT TRUE )
set( QT_USE_QTOPENGL TRUE )
find_package(Qt4)
include( ${CGAL_USE_FILE} )
find_package(Qt3-patched )
# FindQt3-patched.cmake is FindQt3.cmake patched by CGAL developers, so
# that it can be used together with FindQt4: all its variables are prefixed
# by "QT3_" instead of "QT_".
if(CGAL_Qt3_FOUND AND QT3_FOUND)
include( Qt3Macros-patched )
qt3_automoc( Circular_kernel_3.cpp )
find_package(OpenGL)
find_package(QGLViewer)
# Make sure the compiler can find generated .moc files
include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR})
include_directories( ${QT3_INCLUDE_DIR} )
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 ./ )
add_executable ( Circular_kernel_3 Circular_kernel_3.cpp Viewer.cpp )
add_to_cached_list( CGAL_EXECUTABLE_TARGETS Alpha_shape_3 )
target_link_libraries( Circular_kernel_3 ${CGAL_LIBRARIES} ${CGAL_3RD_PARTY_LIBRARIES})
target_link_libraries( Circular_kernel_3 ${QT_LIBRARIES} ${QGLVIEWER_LIBRARIES} )
target_link_libraries( Circular_kernel_3 ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} )
add_executable (Circular_kernel_3 Circular_kernel_3.cpp)
add_to_cached_list( CGAL_EXECUTABLE_TARGETS Circular_kernel_3 )
# Link the executable to CGAL and third-party libraries
target_link_libraries(Circular_kernel_3 ${QT3_LIBRARIES} ${CGAL_LIBRARIES} ${CGAL_3RD_PARTY_LIBRARIES} )
else()
message(STATUS "NOTICE: This demo requires Qt3 and the CGAL Qt3 library, and will not be compiled.")
endif()
else()
message(STATUS "NOTICE: This demo requires the CGAL library, and will not be compiled.")
endif()
message(STATUS "NOTICE: This demo requires CGAL, the QGLViewer, OpenGL and Qt4, and will not be compiled.")
endif()

View File

@ -1,40 +1,24 @@
// Copyright (c) 2008 INRIA Sophia-Antipolis (France).
// All rights reserved.
//
// $URL
// $Id
//
// Author(s) : Monique Teillaud, Sylvain Pion, Pedro Machado,
// Julien Hazebrouck, Damien Leroy
#include "Viewer.h"
#include <qapplication.h>
// Partially supported by the IST Programme of the EU as a
// STREP (FET Open) Project under Contract No IST-006413
// (ACS -- Algorithms for Complex Shapes)
int main(int argc, char** argv)
{
// Read command lines arguments.
QApplication application(argc,argv);
#include <CGAL/basic.h>
// Instantiate the viewer.
Viewer viewer;
#include "Circular_kernel_3.moc"
#if QT_VERSION < 0x040000
// Set the viewer as the application main widget.
application.setMainWidget(&viewer);
#else
viewer.setWindowTitle("Intersection points of randomly generated circles.");
#endif
int main (int argc, char** argv) {
QApplication app(argc, argv);
MyWindow *windows = new MyWindow(1100, 1100);
// Make the viewer window visible on screen.
viewer.show();
Sphere_3 laSphere(Point_3(0.,0.,0.), 1.5*1.5);
Plane_3 plan;
plan = Plane_3(Point_3(1., -1., 1.), Point_3(1., 1., 0.), Point_3(1., -1., -1.));
windows->add_cercle(Circle_3(laSphere, plan), 100);
plan = Plane_3(Point_3(-1., 1.2, 1.), Point_3( 1., 1.2, -1.), Point_3( 1., 1.2, 1.));
windows->add_cercle(Circle_3(laSphere, plan), 100);
plan = Plane_3(Point_3(-1., -1., 1.), Point_3( 1., -1., 1.), Point_3( 1., -1., -1.));
windows->add_cercle(Circle_3(laSphere, plan), 100);
plan = Plane_3(Point_3(-1., 1., 0.), Point_3( 1., -1., 1.), Point_3( 1., -1., -1.));
windows->add_cercle(Circle_3(laSphere, plan), 100);
plan = Plane_3(Point_3(-1., -1., 1.), Point_3(-1., -1., 0.), Point_3(-1., 1., -1.));
windows->add_cercle(Circle_3(laSphere, plan), 100);
plan = Plane_3(Point_3( 1., 0., 0.), Point_3(-1., 1., 0.), Point_3(-1., -1., 0.));
windows->add_cercle(Circle_3(laSphere, plan), 100);
app.setMainWidget(windows);
windows->show();
return app.exec();
// Run main loop.
return application.exec();
}

View File

@ -1,375 +0,0 @@
// Copyright (c) 2008 INRIA Sophia-Antipolis (France).
// All rights reserved.
//
// $URL
// $Id
//
// Author(s) : Monique Teillaud, Sylvain Pion, Pedro Machado,
// Julien Hazebrouck, Damien Leroy
// Partially supported by the IST Programme of the EU as a
// STREP (FET Open) Project under Contract No IST-006413
// (ACS -- Algorithms for Complex Shapes)
#include <qgl.h>
#include <CGAL/IO/Qt_widget_OpenGL.h>
#include <CGAL/IO/Qt_widget.h>
// INCLUDES DE QT
#include <qmainwindow.h>
#include <qstatusbar.h>
#include <qfiledialog.h>
#include <qmessagebox.h>
#include <qpopupmenu.h>
#include <qmenubar.h>
#include <qtoolbutton.h>
#include <qtoolbar.h>
#include <qinputdialog.h>
// INCLUDES DES IMAGES
#include "images/button_solid.xpm"
#include "images/button_wire.xpm"
#include "images/arrow_01_down.xpm"
#include "images/arrow_01_up.xpm"
#include "images/arrow_01_left.xpm"
#include "images/arrow_01_right.xpm"
#include "images/zoom_in.xpm"
#include "images/zoom_out.xpm"
#include <cmath>
#include <cstdio>
#include <cstdlib>
//#include <unistd.h> // Header File For sleeping.
#include <vector>
// INCLUDES D'OPENGL
//#include <GL/glut.h> // Header File For The GLUT Library
#include <CGAL/gl.h> // Header File For The OpenGL32 Library
#include <CGAL/glu.h> // Header File For The GLu32 Library
#include <CGAL/Cartesian.h>
#include <CGAL/Algebraic_kernel_for_spheres_2_3.h>
#include <CGAL/Spherical_kernel_3.h>
#include <CGAL/MP_Float.h>
#include <CGAL/Quotient.h>
#include <CGAL/IO/Spherical_circle_gl.h>
// DEFINITION DES TYPES
typedef double NT;
typedef CGAL::Cartesian<NT> Linear_k1;
typedef CGAL::Algebraic_kernel_for_spheres_2_3<NT> Algebraic_k1;
typedef CGAL::Spherical_kernel_3<Linear_k1,Algebraic_k1> SK;
typedef SK::Plane_3 Plane_3;
typedef SK::Point_3 Point_3;
typedef SK::Sphere_3 Sphere_3;
typedef SK::Circle_3 Circle_3;
class MyGLDrawer : public QGLWidget {
Q_OBJECT
public:
MyGLDrawer (QWidget* parent, const char* name)
: QGLWidget(parent, name), showContour(false) {
this->x = 0.f;
this->y = 0.f;
this->z = -6.f;
this->rx = 0.f;
this->ry = 0.f;
this->rz = 0.f;
this->list_cercle = 0;
}
void paintGL () {
//std::cout << "MyGLDrawer.paintGL();" << std::endl;
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear The Screen And The Depth Buffer
glLoadIdentity(); // Reset The View
glTranslatef(this->x, this->y, this->z);
glRotatef(this->rx, 1.0f, 0.0f, 0.0f);
glRotatef(this->ry, 0.0f, 1.0f, 0.0f);
glRotatef(this->rz, 0.0f, 0.0f, 1.0f);
glCallList(this->list_cercle);
this->swapBuffers();
}
void initializeGL () {
glClearColor(1.0f, 1.0f, 1.0f, 0.0f); // This Will Clear The Background Color To Black
glClearDepth(1.0); // Enables Clearing Of The Depth Buffer
glDepthFunc(GL_LESS); // The Type Of Depth Test To Do
glEnable(GL_DEPTH_TEST); // Enables Depth Testing
glShadeModel(GL_SMOOTH); // Enables Smooth Color Shading
glMatrixMode(GL_PROJECTION);
glLoadIdentity(); // Reset The Projection Matrix
glMatrixMode(GL_MODELVIEW);
// creation de la liste openGL
if (this->list_cercle != 0) glDeleteLists(this->list_cercle, 1);
this->list_cercle = glGenLists(1);
//On cree une liste dans laquelle on met l'objet 3ds
//On cree une liste dans laquelle on met l'objet 3ds
glNewList(this->list_cercle, GL_COMPILE);
for (std::size_t i = 0; i < this->cercles.size(); i++) {
CGAL::dessiner_spherical_circle<SK>(this->cercles[i].first, this->cercles[i].second);
}
glEndList();
}
void resizeGL (int w, int h) {
glViewport(0, 0, w, h); // Reset The Current Viewport And Perspective Transformation
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0f, (GLfloat) w / (GLfloat) w, 0.1f, 100.0f);
glMatrixMode(GL_MODELVIEW);
}
inline void add_cercle (const Circle_3& c, int precision) {
this->cercles.push_back(std::pair<Circle_3, int>(c, precision));
}
public slots:
void wire_display () {
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
this->paintGL();
}
void surface_display () {
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
this->paintGL();
}
void translate(float x, float y, float z){
this->x = x;
this->y = y;
this->z = z;
}
void rotate(float rx, float ry, float rz){
this->rx = rx;
this->ry = ry;
this->rz = rz;
}
inline void show_contour () {this->showContour = true; paintGL();}
inline void hide_contour () {this->showContour = false; paintGL();}
private:
float x, y, z, rx, ry, rz;
int list_cercle;
bool showContour;
std::vector<std::pair<Circle_3, int> > cercles;
};
class MyWindow : public QMainWindow {
Q_OBJECT
public:
MyWindow (int w, int h) {
//initialization of coordonnate of camera
this->x = 0.f;
this->y = 0.f;
this->z = -6.f;
this->rx = 0.f;
this->ry = 0.f;
this->rz = 0.f;
this->resize(w, h);
wGL = new MyGLDrawer(this, "Demo Circle 3D");
this->setCentralWidget(wGL);
this->setCaption("Demo Circle 3D");
//File Menu
QPopupMenu* file = new QPopupMenu(this);
file->insertItem("&Quit", qApp, SLOT(closeAllWindows()),'');
//Display Menu
QPopupMenu * affichage = new QPopupMenu(this);
affichage->insertItem("&Wire Mode",this,SLOT(mode_wire()), 'r');
affichage->insertItem("&Surface Mode",this,SLOT(mode_surface()),'t');
affichage->insertItem("Show &Border",this,SLOT(show_contour()),'f');
affichage->insertItem("&Hide Border",this,SLOT(hide_contour()),'g');
//Move Menu
QPopupMenu * move = new QPopupMenu(this);
move->insertItem("Rotate &Left",this,SLOT(rotate_left()), 4116);
move->insertItem("Rotate &Right",this,SLOT(rotate_right()), 4114);
move->insertItem("Rotate Z Left",this,SLOT(rotate_tonneau_left()),'q');
move->insertItem("Rotate Z Right",this,SLOT(rotate_tonneau_right()), 'e');
move->insertItem("Rotate &Up",this,SLOT(rotate_up()),4115);
move->insertItem("Rotate &Down",this,SLOT(rotate_down()), 4117);
move->insertItem("Zoom &In",this,SLOT(zoom_in()), 4118);
move->insertItem("Zoom &Out",this,SLOT(zoom_out()), 4119);
//Menu bar
this->menuBar()->insertItem("&File", file);
this->menuBar()->insertItem("&Display", affichage);
this->menuBar()->insertItem("&Move", move);
//tool bar
this->layers_toolbar = new QToolBar("Tools", this,
QMainWindow::Top, TRUE, "Tools");
//buttons in tool bar
this->show_wire_button =
new QToolButton(QPixmap((const char**)::button_wire_xpm),
"Wire Mode",
0,
this,
SLOT(mode_wire()),
this->layers_toolbar,
"Wire Mode");
this->show_wire_button->setToggleButton(true);
this->show_surface_button =
new QToolButton(QPixmap((const char**)::button_solid_xpm),
"Surface Mode",
0,
this,
SLOT(mode_surface()),
this->layers_toolbar,
"Mode Surface");
this->show_surface_button->setToggleButton(true);
this->show_surface_button->toggle();
this->layers_toolbar->addSeparator();
this->rotate_left_button =
new QToolButton(QPixmap((const char**)::arrow_01_left_xpm),
"Rotate Left",
0,
this,
SLOT(rotate_left()),
this->layers_toolbar,
"Rotate Left");
this->rotate_right_button =
new QToolButton(QPixmap((const char**)::arrow_01_right_xpm),
"Rotate Right",
0,
this,
SLOT(rotate_right()),
layers_toolbar,
"Rotate Right");
this->rotate_up_button =
new QToolButton(QPixmap((const char**)::arrow_01_up_xpm),
"Rotate Up",
0,
this,
SLOT(rotate_up()),
this->layers_toolbar,
"Rotate UP");
this->rotate_down_button =
new QToolButton(QPixmap((const char**)::arrow_01_down_xpm),
"Rotate Down",
0,
this,
SLOT(rotate_down()),
this->layers_toolbar,
"Rotate Down");
this->zoom_in_button =
new QToolButton(QPixmap((const char**)::zoom_in_xpm),
"Zoom In",
0,
this,
SLOT(zoom_in()),
this->layers_toolbar,
"Zoom In");
this->zoom_out_button =
new QToolButton(QPixmap((const char**)::zoom_out_xpm),
"Zoom Out",
0,
this,
SLOT(zoom_out()),
this->layers_toolbar,
"Zoom Out");
}
protected:
void keyPressEvent (QKeyEvent* /*qke*/) {
//std::cout << "Key ascii<" << qke->ascii() << "> key<" << qke->key() << ">" << std::endl;
}
public slots:
inline void show_contour() {this->wGL->show_contour();}
inline void hide_contour() {this->wGL->hide_contour();}
void mode_wire () {
std::cout << "Mode Wire" << std::endl;
this->show_wire_button->setOn(true);
this->show_surface_button->setOn(false);
this->wGL->wire_display();
}
void mode_surface () {
std::cout << "Mode Surface" << std::endl;
this->show_wire_button->setOn(false);
this->show_surface_button->setOn(true);
this->wGL->surface_display();
}
inline void add_cercle (const Circle_3& p, int i) {
this->wGL->add_cercle(p,i);
}
void rotate_tonneau_right () {
//std::cout << "Rotation en tonneau a droite" << std::endl;
this->rz -= 1.f;
this->wGL->rotate(this->rx, this->ry, this->rz);
this->wGL->paintGL();
}
void rotate_tonneau_left () {
//std::cout << "Rotation en tonneau a gauche" << std::endl;
this->rz += 1.f;
this->wGL->rotate(this->rx, this->ry, this->rz);
this->wGL->paintGL();
}
void rotate_right(){
//std::cout << "Rotation a droite" << std::endl;
this->ry += 1.f;
this->wGL->rotate(this->rx, this->ry, this->rz);
this->wGL->paintGL();
}
void rotate_left(){
//std::cout << "Rotation a gauche" << std::endl;
this->ry -= 1.f;
this->wGL->rotate(this->rx, this->ry, this->rz);
this->wGL->paintGL();
}
void rotate_up(){
//std::cout << "Rotation vers le haut" << std::endl;
this->rx -= 1.f;
this->wGL->rotate(this->rx, this->ry, this->rz);
this->wGL->paintGL();
}
void rotate_down(){
//std::cout << "Rotation vers le bas" << std::endl;
this->rx += 1.f;
this->wGL->rotate(this->rx, this->ry, this->rz);
this->wGL->paintGL();
}
void zoom_in(){
//std::cout << "Augmentation du zoom" << std::endl;
this->z += 0.1f;
this->wGL->translate(this->x, this->y, this->z);
this->wGL->paintGL();
}
void zoom_out(){
//std::cout << "Diminution du zoom" << std::endl;
this->z -= 0.1f;
this->wGL->translate(this->x, this->y, this->z);
this->wGL->paintGL();
}
private:
MyGLDrawer* wGL;
QToolBar* layers_toolbar;
QToolButton* show_wire_button;
QToolButton* show_surface_button;
QToolButton* rotate_right_button;
QToolButton* rotate_left_button;
QToolButton* rotate_up_button;
QToolButton* rotate_down_button;
QToolButton* zoom_in_button;
QToolButton* zoom_out_button;
float x, y, z, rx, ry, rz; //coordinate of camera
};

View File

@ -1,6 +0,0 @@
To compile this demo you need to have an OpenGL library, like:
freeglut-2.4.0
You have to set the option:
-I{your OpenGL folder}/freeglut-2.4.0/include (to compile) [The include files]
-L{your OpenGL folder}/freeglut-2.4.0/src/.libs/ (to link) [The lib files]

View File

@ -0,0 +1,155 @@
#include "Viewer.h"
#include <CGAL/point_generators_3.h>
#include <CGAL/squared_distance_3.h>
#include <CGAL/Exact_spherical_kernel_3.h>
#include <vector>
template <class Kernel>
void Viewer::draw_circle_on_unit_sphere(const typename CGAL::Point_3<Kernel>& center) const {
const typename Kernel::Point_3 origin(0,0,0);
const typename Kernel::Plane_3 plane(center, center-origin);
typename Kernel::Vector_3 base1=plane.base1();
typename Kernel::Vector_3 base2=plane.base2();
base1=base1/CGAL::sqrt(base1.squared_length());
base2=base2/CGAL::sqrt(base2.squared_length());
const double radius=CGAL::sqrt( CGAL::to_double( 1 - CGAL::squared_distance(origin,center) ) );
const double nb_pt_per_circle=100;
const double step=2 * CGAL_PI / nb_pt_per_circle;
::glDisable(GL_LIGHTING);
::glBegin(GL_LINE_LOOP);
for (double theta = 0; theta < 2 * CGAL_PI ; theta += step) {
const typename Kernel::Point_3 point=center + ( radius*cos(theta)*base1 + radius*sin(theta)*base2 );
::glVertex3f( point.x(),point.y(),point.z() );
}
::glEnd();
::glEnable(GL_LIGHTING);
}
void Viewer::draw()
{
const int sphere_res=30;
//draw central sphere
::glPushMatrix();
::glColor3f(1,1,1);
::gluSphere(qsphere,0.999,sphere_res,sphere_res);
::glCallList(dl_nb);
::glCallList(dl_nb+1);
::glPopMatrix();
}
void Viewer::init()
{
// Restore previous viewer state.
restoreStateFromFile();
//init quadric to store sphere.
qsphere=gluNewQuadric();
gluQuadricOrientation(qsphere,GLU_OUTSIDE);
//code for antialiasing
::glEnable(GL_BLEND);
::glEnable(GL_LINE_SMOOTH);
::glEnable(GL_POINT_SMOOTH);
::glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
::glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
//set intersection point size
::glPointSize(5);
//random generator of points within a sphere
typedef CGAL::Creator_uniform_3<EPIC::FT,EPIC::Point_3> Creator;
CGAL::Random_points_in_sphere_3<EPIC::Point_3, Creator> gen;
const unsigned nb_circles=20;
//vector to store input points
std::vector<EPIC::Point_3> points;
points.reserve(nb_circles);
//disable lighting before drawing segments and points
::glEnable(GL_LIGHTING);
//init call lists
dl_nb=::glGenLists(2);
//store circles in a display list
::glNewList(dl_nb,GL_COMPILE);
::glColor3f(1,0,0);
for (unsigned i=0;i<nb_circles;++i){
EPIC::Point_3 p=*++gen;
//prevent great circles
while (p.x()==0 && p.y()==0 && p.z()==0) { p=*++gen; }
draw_circle_on_unit_sphere(p);
points.push_back(p);
}
::glEndList();
std::vector<EPIC::Point_3> intersections;
naive_compute_intersection_points(points,std::back_inserter(intersections));
::glNewList(dl_nb+1,GL_COMPILE);
::glColor3f(0,1,0);
//draw points as small spheres
for (std::vector<EPIC::Point_3>::const_iterator it=intersections.begin();it!=intersections.end();++it){
glPushMatrix();
glTranslatef(it->x(),it->y(),it->z());
gluSphere(qsphere,0.005,10,10);
glPopMatrix();
}
::glEndList();
//lighting
::glEnable(GL_LIGHT0);
::glEnable(GL_LIGHTING);
float lpos[4] = { -.2f, .2f, .9797958971f, 0.0f };
::glLightfv(GL_LIGHT0,GL_POSITION,lpos);
::glLightModelf(GL_LIGHT_MODEL_TWO_SIDE, 1.0f);
::glEnable(GL_NORMALIZE);
::glShadeModel(GL_SMOOTH);
}
template<class Output_iterator>
void Viewer::naive_compute_intersection_points(const std::vector<EPIC::Point_3>& points,Output_iterator out) const {
typedef CGAL::Exact_spherical_kernel_3 SK;
SK::Sphere_3 sphere(SK::Point_3(0,0,0),1);
//converter point to exact SK point type
CGAL::Cartesian_converter<EPIC,SK> to_exact;
std::vector<SK::Circle_3> circles;
//create circles from points: need to use a converter to change floating points coordinates into an exact NT.
for (std::vector<EPIC::Point_3>::const_iterator it=points.begin();it!=points.end();++it){
const SK::Point_3 center=to_exact(*it);
circles.push_back( SK::Circle_3(sphere,SK::Plane_3(center,center-CGAL::ORIGIN) ) );
}
//Look for intersection points among pair of circles: use a naive and quadratic way
for (std::vector<SK::Circle_3>::const_iterator it_f=circles.begin();it_f!=--circles.end();++it_f){
std::vector<SK::Circle_3>::const_iterator it_s=it_f;
++it_s;
for (;it_s!=circles.end();++it_s){
std::vector <CGAL::Object> intersections;
//ensure_circles are different
CGAL_precondition(*it_s!=*it_f);
CGAL::intersection(*it_f,*it_s,std::back_inserter(intersections));
if (!intersections.empty()){
for (std::vector <CGAL::Object>::const_iterator it_pt=intersections.begin();it_pt!=intersections.end();++it_pt){
const std::pair<SK::Circular_arc_point_3,unsigned>* pt=
CGAL::object_cast< std::pair<SK::Circular_arc_point_3,unsigned> > (&(*it_pt));
assert(pt!=NULL);
*out++=EPIC::Point_3( CGAL::to_double(pt->first.x()),
CGAL::to_double(pt->first.y()),
CGAL::to_double(pt->first.z())
);
}
}
}
}
}

View File

@ -0,0 +1,17 @@
#include <QGLViewer/qglviewer.h>
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
typedef CGAL::Exact_predicates_inexact_constructions_kernel EPIC;
class Viewer : public QGLViewer
{
GLUquadricObj *qsphere;
GLuint dl_nb;
protected :
virtual void draw();
virtual void init();
template <class Kernel>
void draw_circle_on_unit_sphere(const typename CGAL::Point_3<Kernel>&) const;
template<class Output_iterator>
void naive_compute_intersection_points(const std::vector<EPIC::Point_3>&,Output_iterator) const;
};

View File

@ -1,289 +0,0 @@
/* XPM */
static const char * arrow_01_down_xpm[] = {
"30 29 257 2",
" c None",
". c #000000",
"+ c #0C0C0C",
"@ c #008000",
"# c #808000",
"$ c #000080",
"% c #800080",
"& c #008080",
"* c #BFBFBF",
"= c #0C0C0C",
"- c #A4C8F0",
"; c #550000",
"> c #AA0000",
", c #D50000",
"' c #002B00",
") c #552B00",
"! c #802B00",
"~ c #AA2B00",
"{ c #D52B00",
"] c #FF2B00",
"^ c #005500",
"/ c #555500",
"( c #805500",
"_ c #AA5500",
": c #D55500",
"< c #FF5500",
"[ c #558000",
"} c #AA8000",
"| c #D58000",
"1 c #FF8000",
"2 c #00AA00",
"3 c #55AA00",
"4 c #80AA00",
"5 c #AAAA00",
"6 c #D5AA00",
"7 c #FFAA00",
"8 c #00D500",
"9 c #55D500",
"0 c #80D500",
"a c #AAD500",
"b c #D5D500",
"c c #FFD500",
"d c #55FF00",
"e c #80FF00",
"f c #AAFF00",
"g c #D5FF00",
"h c #000055",
"i c #550055",
"j c #800055",
"k c #AA0055",
"l c #D50055",
"m c #FF0055",
"n c #002B55",
"o c #552B55",
"p c #802B55",
"q c #AA2B55",
"r c #D52B55",
"s c #FF2B55",
"t c #005555",
"u c #555555",
"v c #805555",
"w c #AA5555",
"x c #D55555",
"y c #FF5555",
"z c #008055",
"A c #558055",
"B c #808055",
"C c #AA8055",
"D c #D58055",
"E c #FF8055",
"F c #00AA55",
"G c #55AA55",
"H c #80AA55",
"I c #AAAA55",
"J c #D5AA55",
"K c #FFAA55",
"L c #00D555",
"M c #55D555",
"N c #80D555",
"O c #AAD555",
"P c #D5D555",
"Q c #FFD555",
"R c #00FF55",
"S c #55FF55",
"T c #80FF55",
"U c #AAFF55",
"V c #D5FF55",
"W c #FFFF55",
"X c #550080",
"Y c #AA0080",
"Z c #D50080",
"` c #FF0080",
" . c #002B80",
".. c #552B80",
"+. c #802B80",
"@. c #AA2B80",
"#. c #D52B80",
"$. c #FF2B80",
"%. c #005580",
"&. c #555580",
"*. c #805580",
"=. c #AA5580",
"-. c #D55580",
";. c #FF5580",
">. c #558080",
",. c #AA8080",
"'. c #D58080",
"). c #FF8080",
"!. c #00AA80",
"~. c #55AA80",
"{. c #80AA80",
"]. c #AAAA80",
"^. c #D5AA80",
"/. c #FFAA80",
"(. c #00D580",
"_. c #55D580",
":. c #80D580",
"<. c #AAD580",
"[. c #D5D580",
"}. c #FFD580",
"|. c #00FF80",
"1. c #55FF80",
"2. c #80FF80",
"3. c #AAFF80",
"4. c #D5FF80",
"5. c #FFFF80",
"6. c #0000AA",
"7. c #5500AA",
"8. c #8000AA",
"9. c #AA00AA",
"0. c #D500AA",
"a. c #FF00AA",
"b. c #002BAA",
"c. c #552BAA",
"d. c #802BAA",
"e. c #AA2BAA",
"f. c #D52BAA",
"g. c #FF2BAA",
"h. c #0055AA",
"i. c #5555AA",
"j. c #8055AA",
"k. c #AA55AA",
"l. c #D555AA",
"m. c #FF55AA",
"n. c #0080AA",
"o. c #5580AA",
"p. c #8080AA",
"q. c #AA80AA",
"r. c #D580AA",
"s. c #FF80AA",
"t. c #00AAAA",
"u. c #55AAAA",
"v. c #80AAAA",
"w. c #AAAAAA",
"x. c #D5AAAA",
"y. c #FFAAAA",
"z. c #00D5AA",
"A. c #55D5AA",
"B. c #80D5AA",
"C. c #AAD5AA",
"D. c #D5D5AA",
"E. c #FF8020",
"F. c #00FFAA",
"G. c #55FFAA",
"H. c #80FFAA",
"I. c #AAFFAA",
"J. c #D5FFAA",
"K. c #FFFFAA",
"L. c #0000D5",
"M. c #5500D5",
"N. c #8000D5",
"O. c #AA00D5",
"P. c #D500D5",
"Q. c #FF00D5",
"R. c #002BD5",
"S. c #552BD5",
"T. c #802BD5",
"U. c #AA2BD5",
"V. c #D52BD5",
"W. c #FF2BD5",
"X. c #0055D5",
"Y. c #5555D5",
"Z. c #8055D5",
"`. c #AA55D5",
" + c #D555D5",
".+ c #FF55D5",
"++ c #0080D5",
"@+ c #5580D5",
"#+ c #8080D5",
"$+ c #AA80D5",
"%+ c #D580D5",
"&+ c #FF80D5",
"*+ c #00AAD5",
"=+ c #55AAD5",
"-+ c #80AAD5",
";+ c #AAAAD5",
">+ c #D5AAD5",
",+ c #FFAAD5",
"'+ c #00D5D5",
")+ c #55D5D5",
"!+ c #80D5D5",
"~+ c #AAD5D5",
"{+ c #D5D5D5",
"]+ c #FFD5D5",
"^+ c #00FFD5",
"/+ c #55FFD5",
"(+ c #80FFD5",
"_+ c #AAFFD5",
":+ c #D5FFD5",
"<+ c #FFFFD5",
"[+ c #5500FF",
"}+ c #8000FF",
"|+ c #AA00FF",
"1+ c #D500FF",
"2+ c #002BFF",
"3+ c #552BFF",
"4+ c #802BFF",
"5+ c #AA2BFF",
"6+ c #D52BFF",
"7+ c #FF2BFF",
"8+ c #0055FF",
"9+ c #5555FF",
"0+ c #8055FF",
"a+ c #AA55FF",
"b+ c #D555FF",
"c+ c #FF55FF",
"d+ c #0080FF",
"e+ c #5580FF",
"f+ c #8080FF",
"g+ c #AA80FF",
"h+ c #D580FF",
"i+ c #FF80FF",
"j+ c #00AAFF",
"k+ c #55AAFF",
"l+ c #80AAFF",
"m+ c #AAAAFF",
"n+ c #D5AAFF",
"o+ c #FFAAFF",
"p+ c #00D5FF",
"q+ c #55D5FF",
"r+ c #80D5FF",
"s+ c #AAD5FF",
"t+ c #D5D5FF",
"u+ c #FFD5FF",
"v+ c #55FFFF",
"w+ c #80FFFF",
"x+ c #AAFFFF",
"y+ c #FFFBF0",
"z+ c #A0A0A4",
"A+ c #808080",
"B+ c #FF0000",
"C+ c #00FF00",
"D+ c #FFFF00",
"E+ c #0000FF",
"F+ c #FF00FF",
"G+ c #00FFFF",
"H+ c #FFFFFF",
" ",
" . . . . . . . . . . . ",
" . H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+. ",
" . . . . . . . . H+H+H+H+H+H+H+H+H+H+H+. . . . . . . . . ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+. ",
" . H+H+H+H+. ",
" . H+H+. ",
" . . ",
" "};

View File

@ -1,290 +0,0 @@
/* XPM */
static const char * arrow_01_left_xpm[] = {
"29 30 257 2",
" c None",
". c #000000",
"+ c #0C0C0C",
"@ c #008000",
"# c #808000",
"$ c #000080",
"% c #800080",
"& c #008080",
"* c #BFBFBF",
"= c #0C0C0C",
"- c #A4C8F0",
"; c #550000",
"> c #AA0000",
", c #D50000",
"' c #002B00",
") c #552B00",
"! c #802B00",
"~ c #AA2B00",
"{ c #D52B00",
"] c #FF2B00",
"^ c #005500",
"/ c #555500",
"( c #805500",
"_ c #AA5500",
": c #D55500",
"< c #FF5500",
"[ c #558000",
"} c #AA8000",
"| c #D58000",
"1 c #FF8000",
"2 c #00AA00",
"3 c #55AA00",
"4 c #80AA00",
"5 c #AAAA00",
"6 c #D5AA00",
"7 c #FFAA00",
"8 c #00D500",
"9 c #55D500",
"0 c #80D500",
"a c #AAD500",
"b c #D5D500",
"c c #FFD500",
"d c #55FF00",
"e c #80FF00",
"f c #AAFF00",
"g c #D5FF00",
"h c #000055",
"i c #550055",
"j c #800055",
"k c #AA0055",
"l c #D50055",
"m c #FF0055",
"n c #002B55",
"o c #552B55",
"p c #802B55",
"q c #AA2B55",
"r c #D52B55",
"s c #FF2B55",
"t c #005555",
"u c #555555",
"v c #805555",
"w c #AA5555",
"x c #D55555",
"y c #FF5555",
"z c #008055",
"A c #558055",
"B c #808055",
"C c #AA8055",
"D c #D58055",
"E c #FF8055",
"F c #00AA55",
"G c #55AA55",
"H c #80AA55",
"I c #AAAA55",
"J c #D5AA55",
"K c #FFAA55",
"L c #00D555",
"M c #55D555",
"N c #80D555",
"O c #AAD555",
"P c #D5D555",
"Q c #FFD555",
"R c #00FF55",
"S c #55FF55",
"T c #80FF55",
"U c #AAFF55",
"V c #D5FF55",
"W c #FFFF55",
"X c #550080",
"Y c #AA0080",
"Z c #D50080",
"` c #FF0080",
" . c #002B80",
".. c #552B80",
"+. c #802B80",
"@. c #AA2B80",
"#. c #D52B80",
"$. c #FF2B80",
"%. c #005580",
"&. c #555580",
"*. c #805580",
"=. c #AA5580",
"-. c #D55580",
";. c #FF5580",
">. c #558080",
",. c #AA8080",
"'. c #D58080",
"). c #FF8080",
"!. c #00AA80",
"~. c #55AA80",
"{. c #80AA80",
"]. c #AAAA80",
"^. c #D5AA80",
"/. c #FFAA80",
"(. c #00D580",
"_. c #55D580",
":. c #80D580",
"<. c #AAD580",
"[. c #D5D580",
"}. c #FFD580",
"|. c #00FF80",
"1. c #55FF80",
"2. c #80FF80",
"3. c #AAFF80",
"4. c #D5FF80",
"5. c #FFFF80",
"6. c #0000AA",
"7. c #5500AA",
"8. c #8000AA",
"9. c #AA00AA",
"0. c #D500AA",
"a. c #FF00AA",
"b. c #002BAA",
"c. c #552BAA",
"d. c #802BAA",
"e. c #AA2BAA",
"f. c #D52BAA",
"g. c #FF2BAA",
"h. c #0055AA",
"i. c #5555AA",
"j. c #8055AA",
"k. c #AA55AA",
"l. c #D555AA",
"m. c #FF55AA",
"n. c #0080AA",
"o. c #5580AA",
"p. c #8080AA",
"q. c #AA80AA",
"r. c #D580AA",
"s. c #FF80AA",
"t. c #00AAAA",
"u. c #55AAAA",
"v. c #80AAAA",
"w. c #AAAAAA",
"x. c #D5AAAA",
"y. c #FFAAAA",
"z. c #00D5AA",
"A. c #55D5AA",
"B. c #80D5AA",
"C. c #AAD5AA",
"D. c #D5D5AA",
"E. c #FF8020",
"F. c #00FFAA",
"G. c #55FFAA",
"H. c #80FFAA",
"I. c #AAFFAA",
"J. c #D5FFAA",
"K. c #FFFFAA",
"L. c #0000D5",
"M. c #5500D5",
"N. c #8000D5",
"O. c #AA00D5",
"P. c #D500D5",
"Q. c #FF00D5",
"R. c #002BD5",
"S. c #552BD5",
"T. c #802BD5",
"U. c #AA2BD5",
"V. c #D52BD5",
"W. c #FF2BD5",
"X. c #0055D5",
"Y. c #5555D5",
"Z. c #8055D5",
"`. c #AA55D5",
" + c #D555D5",
".+ c #FF55D5",
"++ c #0080D5",
"@+ c #5580D5",
"#+ c #8080D5",
"$+ c #AA80D5",
"%+ c #D580D5",
"&+ c #FF80D5",
"*+ c #00AAD5",
"=+ c #55AAD5",
"-+ c #80AAD5",
";+ c #AAAAD5",
">+ c #D5AAD5",
",+ c #FFAAD5",
"'+ c #00D5D5",
")+ c #55D5D5",
"!+ c #80D5D5",
"~+ c #AAD5D5",
"{+ c #D5D5D5",
"]+ c #FFD5D5",
"^+ c #00FFD5",
"/+ c #55FFD5",
"(+ c #80FFD5",
"_+ c #AAFFD5",
":+ c #D5FFD5",
"<+ c #FFFFD5",
"[+ c #5500FF",
"}+ c #8000FF",
"|+ c #AA00FF",
"1+ c #D500FF",
"2+ c #002BFF",
"3+ c #552BFF",
"4+ c #802BFF",
"5+ c #AA2BFF",
"6+ c #D52BFF",
"7+ c #FF2BFF",
"8+ c #0055FF",
"9+ c #5555FF",
"0+ c #8055FF",
"a+ c #AA55FF",
"b+ c #D555FF",
"c+ c #FF55FF",
"d+ c #0080FF",
"e+ c #5580FF",
"f+ c #8080FF",
"g+ c #AA80FF",
"h+ c #D580FF",
"i+ c #FF80FF",
"j+ c #00AAFF",
"k+ c #55AAFF",
"l+ c #80AAFF",
"m+ c #AAAAFF",
"n+ c #D5AAFF",
"o+ c #FFAAFF",
"p+ c #00D5FF",
"q+ c #55D5FF",
"r+ c #80D5FF",
"s+ c #AAD5FF",
"t+ c #D5D5FF",
"u+ c #FFD5FF",
"v+ c #55FFFF",
"w+ c #80FFFF",
"x+ c #AAFFFF",
"y+ c #FFFBF0",
"z+ c #A0A0A4",
"A+ c #808080",
"B+ c #FF0000",
"C+ c #00FF00",
"D+ c #FFFF00",
"E+ c #0000FF",
"F+ c #FF00FF",
"G+ c #00FFFF",
"H+ c #FFFFFF",
" ",
" . . ",
" . H+. ",
" . H+H+. ",
" . H+H+H+. ",
" . H+H+H+H+. ",
" . H+H+H+H+H+. ",
" . H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+. . . . . . . . . . . . ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+. . . . . . . . . . . . ",
" . H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+. ",
" . H+H+H+H+H+. ",
" . H+H+H+H+. ",
" . H+H+H+. ",
" . H+H+. ",
" . H+. ",
" . . ",
" "};

View File

@ -1,290 +0,0 @@
/* XPM */
static const char * arrow_01_right_xpm[] = {
"29 30 257 2",
" c None",
". c #000000",
"+ c #0C0C0C",
"@ c #008000",
"# c #808000",
"$ c #000080",
"% c #800080",
"& c #008080",
"* c #BFBFBF",
"= c #0C0C0C",
"- c #A4C8F0",
"; c #550000",
"> c #AA0000",
", c #D50000",
"' c #002B00",
") c #552B00",
"! c #802B00",
"~ c #AA2B00",
"{ c #D52B00",
"] c #FF2B00",
"^ c #005500",
"/ c #555500",
"( c #805500",
"_ c #AA5500",
": c #D55500",
"< c #FF5500",
"[ c #558000",
"} c #AA8000",
"| c #D58000",
"1 c #FF8000",
"2 c #00AA00",
"3 c #55AA00",
"4 c #80AA00",
"5 c #AAAA00",
"6 c #D5AA00",
"7 c #FFAA00",
"8 c #00D500",
"9 c #55D500",
"0 c #80D500",
"a c #AAD500",
"b c #D5D500",
"c c #FFD500",
"d c #55FF00",
"e c #80FF00",
"f c #AAFF00",
"g c #D5FF00",
"h c #000055",
"i c #550055",
"j c #800055",
"k c #AA0055",
"l c #D50055",
"m c #FF0055",
"n c #002B55",
"o c #552B55",
"p c #802B55",
"q c #AA2B55",
"r c #D52B55",
"s c #FF2B55",
"t c #005555",
"u c #555555",
"v c #805555",
"w c #AA5555",
"x c #D55555",
"y c #FF5555",
"z c #008055",
"A c #558055",
"B c #808055",
"C c #AA8055",
"D c #D58055",
"E c #FF8055",
"F c #00AA55",
"G c #55AA55",
"H c #80AA55",
"I c #AAAA55",
"J c #D5AA55",
"K c #FFAA55",
"L c #00D555",
"M c #55D555",
"N c #80D555",
"O c #AAD555",
"P c #D5D555",
"Q c #FFD555",
"R c #00FF55",
"S c #55FF55",
"T c #80FF55",
"U c #AAFF55",
"V c #D5FF55",
"W c #FFFF55",
"X c #550080",
"Y c #AA0080",
"Z c #D50080",
"` c #FF0080",
" . c #002B80",
".. c #552B80",
"+. c #802B80",
"@. c #AA2B80",
"#. c #D52B80",
"$. c #FF2B80",
"%. c #005580",
"&. c #555580",
"*. c #805580",
"=. c #AA5580",
"-. c #D55580",
";. c #FF5580",
">. c #558080",
",. c #AA8080",
"'. c #D58080",
"). c #FF8080",
"!. c #00AA80",
"~. c #55AA80",
"{. c #80AA80",
"]. c #AAAA80",
"^. c #D5AA80",
"/. c #FFAA80",
"(. c #00D580",
"_. c #55D580",
":. c #80D580",
"<. c #AAD580",
"[. c #D5D580",
"}. c #FFD580",
"|. c #00FF80",
"1. c #55FF80",
"2. c #80FF80",
"3. c #AAFF80",
"4. c #D5FF80",
"5. c #FFFF80",
"6. c #0000AA",
"7. c #5500AA",
"8. c #8000AA",
"9. c #AA00AA",
"0. c #D500AA",
"a. c #FF00AA",
"b. c #002BAA",
"c. c #552BAA",
"d. c #802BAA",
"e. c #AA2BAA",
"f. c #D52BAA",
"g. c #FF2BAA",
"h. c #0055AA",
"i. c #5555AA",
"j. c #8055AA",
"k. c #AA55AA",
"l. c #D555AA",
"m. c #FF55AA",
"n. c #0080AA",
"o. c #5580AA",
"p. c #8080AA",
"q. c #AA80AA",
"r. c #D580AA",
"s. c #FF80AA",
"t. c #00AAAA",
"u. c #55AAAA",
"v. c #80AAAA",
"w. c #AAAAAA",
"x. c #D5AAAA",
"y. c #FFAAAA",
"z. c #00D5AA",
"A. c #55D5AA",
"B. c #80D5AA",
"C. c #AAD5AA",
"D. c #D5D5AA",
"E. c #FF8020",
"F. c #00FFAA",
"G. c #55FFAA",
"H. c #80FFAA",
"I. c #AAFFAA",
"J. c #D5FFAA",
"K. c #FFFFAA",
"L. c #0000D5",
"M. c #5500D5",
"N. c #8000D5",
"O. c #AA00D5",
"P. c #D500D5",
"Q. c #FF00D5",
"R. c #002BD5",
"S. c #552BD5",
"T. c #802BD5",
"U. c #AA2BD5",
"V. c #D52BD5",
"W. c #FF2BD5",
"X. c #0055D5",
"Y. c #5555D5",
"Z. c #8055D5",
"`. c #AA55D5",
" + c #D555D5",
".+ c #FF55D5",
"++ c #0080D5",
"@+ c #5580D5",
"#+ c #8080D5",
"$+ c #AA80D5",
"%+ c #D580D5",
"&+ c #FF80D5",
"*+ c #00AAD5",
"=+ c #55AAD5",
"-+ c #80AAD5",
";+ c #AAAAD5",
">+ c #D5AAD5",
",+ c #FFAAD5",
"'+ c #00D5D5",
")+ c #55D5D5",
"!+ c #80D5D5",
"~+ c #AAD5D5",
"{+ c #D5D5D5",
"]+ c #FFD5D5",
"^+ c #00FFD5",
"/+ c #55FFD5",
"(+ c #80FFD5",
"_+ c #AAFFD5",
":+ c #D5FFD5",
"<+ c #FFFFD5",
"[+ c #5500FF",
"}+ c #8000FF",
"|+ c #AA00FF",
"1+ c #D500FF",
"2+ c #002BFF",
"3+ c #552BFF",
"4+ c #802BFF",
"5+ c #AA2BFF",
"6+ c #D52BFF",
"7+ c #FF2BFF",
"8+ c #0055FF",
"9+ c #5555FF",
"0+ c #8055FF",
"a+ c #AA55FF",
"b+ c #D555FF",
"c+ c #FF55FF",
"d+ c #0080FF",
"e+ c #5580FF",
"f+ c #8080FF",
"g+ c #AA80FF",
"h+ c #D580FF",
"i+ c #FF80FF",
"j+ c #00AAFF",
"k+ c #55AAFF",
"l+ c #80AAFF",
"m+ c #AAAAFF",
"n+ c #D5AAFF",
"o+ c #FFAAFF",
"p+ c #00D5FF",
"q+ c #55D5FF",
"r+ c #80D5FF",
"s+ c #AAD5FF",
"t+ c #D5D5FF",
"u+ c #FFD5FF",
"v+ c #55FFFF",
"w+ c #80FFFF",
"x+ c #AAFFFF",
"y+ c #FFFBF0",
"z+ c #A0A0A4",
"A+ c #808080",
"B+ c #FF0000",
"C+ c #00FF00",
"D+ c #FFFF00",
"E+ c #0000FF",
"F+ c #FF00FF",
"G+ c #00FFFF",
"H+ c #FFFFFF",
" ",
" . . ",
" . H+. ",
" . H+H+. ",
" . H+H+H+. ",
" . H+H+H+H+. ",
" . H+H+H+H+H+. ",
" . H+H+H+H+H+H+. ",
" . . . . . . . . . . . . H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . . . . . . . . . . . . H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+. ",
" . H+H+H+H+H+. ",
" . H+H+H+H+. ",
" . H+H+H+. ",
" . H+H+. ",
" . H+. ",
" . . ",
" "};

View File

@ -1,289 +0,0 @@
/* XPM */
static const char * arrow_01_up_xpm[] = {
"30 29 257 2",
" c None",
". c #000000",
"+ c #0C0C0C",
"@ c #008000",
"# c #808000",
"$ c #000080",
"% c #800080",
"& c #008080",
"* c #BFBFBF",
"= c #0C0C0C",
"- c #A4C8F0",
"; c #550000",
"> c #AA0000",
", c #D50000",
"' c #002B00",
") c #552B00",
"! c #802B00",
"~ c #AA2B00",
"{ c #D52B00",
"] c #FF2B00",
"^ c #005500",
"/ c #555500",
"( c #805500",
"_ c #AA5500",
": c #D55500",
"< c #FF5500",
"[ c #558000",
"} c #AA8000",
"| c #D58000",
"1 c #FF8000",
"2 c #00AA00",
"3 c #55AA00",
"4 c #80AA00",
"5 c #AAAA00",
"6 c #D5AA00",
"7 c #FFAA00",
"8 c #00D500",
"9 c #55D500",
"0 c #80D500",
"a c #AAD500",
"b c #D5D500",
"c c #FFD500",
"d c #55FF00",
"e c #80FF00",
"f c #AAFF00",
"g c #D5FF00",
"h c #000055",
"i c #550055",
"j c #800055",
"k c #AA0055",
"l c #D50055",
"m c #FF0055",
"n c #002B55",
"o c #552B55",
"p c #802B55",
"q c #AA2B55",
"r c #D52B55",
"s c #FF2B55",
"t c #005555",
"u c #555555",
"v c #805555",
"w c #AA5555",
"x c #D55555",
"y c #FF5555",
"z c #008055",
"A c #558055",
"B c #808055",
"C c #AA8055",
"D c #D58055",
"E c #FF8055",
"F c #00AA55",
"G c #55AA55",
"H c #80AA55",
"I c #AAAA55",
"J c #D5AA55",
"K c #FFAA55",
"L c #00D555",
"M c #55D555",
"N c #80D555",
"O c #AAD555",
"P c #D5D555",
"Q c #FFD555",
"R c #00FF55",
"S c #55FF55",
"T c #80FF55",
"U c #AAFF55",
"V c #D5FF55",
"W c #FFFF55",
"X c #550080",
"Y c #AA0080",
"Z c #D50080",
"` c #FF0080",
" . c #002B80",
".. c #552B80",
"+. c #802B80",
"@. c #AA2B80",
"#. c #D52B80",
"$. c #FF2B80",
"%. c #005580",
"&. c #555580",
"*. c #805580",
"=. c #AA5580",
"-. c #D55580",
";. c #FF5580",
">. c #558080",
",. c #AA8080",
"'. c #D58080",
"). c #FF8080",
"!. c #00AA80",
"~. c #55AA80",
"{. c #80AA80",
"]. c #AAAA80",
"^. c #D5AA80",
"/. c #FFAA80",
"(. c #00D580",
"_. c #55D580",
":. c #80D580",
"<. c #AAD580",
"[. c #D5D580",
"}. c #FFD580",
"|. c #00FF80",
"1. c #55FF80",
"2. c #80FF80",
"3. c #AAFF80",
"4. c #D5FF80",
"5. c #FFFF80",
"6. c #0000AA",
"7. c #5500AA",
"8. c #8000AA",
"9. c #AA00AA",
"0. c #D500AA",
"a. c #FF00AA",
"b. c #002BAA",
"c. c #552BAA",
"d. c #802BAA",
"e. c #AA2BAA",
"f. c #D52BAA",
"g. c #FF2BAA",
"h. c #0055AA",
"i. c #5555AA",
"j. c #8055AA",
"k. c #AA55AA",
"l. c #D555AA",
"m. c #FF55AA",
"n. c #0080AA",
"o. c #5580AA",
"p. c #8080AA",
"q. c #AA80AA",
"r. c #D580AA",
"s. c #FF80AA",
"t. c #00AAAA",
"u. c #55AAAA",
"v. c #80AAAA",
"w. c #AAAAAA",
"x. c #D5AAAA",
"y. c #FFAAAA",
"z. c #00D5AA",
"A. c #55D5AA",
"B. c #80D5AA",
"C. c #AAD5AA",
"D. c #D5D5AA",
"E. c #FF8020",
"F. c #00FFAA",
"G. c #55FFAA",
"H. c #80FFAA",
"I. c #AAFFAA",
"J. c #D5FFAA",
"K. c #FFFFAA",
"L. c #0000D5",
"M. c #5500D5",
"N. c #8000D5",
"O. c #AA00D5",
"P. c #D500D5",
"Q. c #FF00D5",
"R. c #002BD5",
"S. c #552BD5",
"T. c #802BD5",
"U. c #AA2BD5",
"V. c #D52BD5",
"W. c #FF2BD5",
"X. c #0055D5",
"Y. c #5555D5",
"Z. c #8055D5",
"`. c #AA55D5",
" + c #D555D5",
".+ c #FF55D5",
"++ c #0080D5",
"@+ c #5580D5",
"#+ c #8080D5",
"$+ c #AA80D5",
"%+ c #D580D5",
"&+ c #FF80D5",
"*+ c #00AAD5",
"=+ c #55AAD5",
"-+ c #80AAD5",
";+ c #AAAAD5",
">+ c #D5AAD5",
",+ c #FFAAD5",
"'+ c #00D5D5",
")+ c #55D5D5",
"!+ c #80D5D5",
"~+ c #AAD5D5",
"{+ c #D5D5D5",
"]+ c #FFD5D5",
"^+ c #00FFD5",
"/+ c #55FFD5",
"(+ c #80FFD5",
"_+ c #AAFFD5",
":+ c #D5FFD5",
"<+ c #FFFFD5",
"[+ c #5500FF",
"}+ c #8000FF",
"|+ c #AA00FF",
"1+ c #D500FF",
"2+ c #002BFF",
"3+ c #552BFF",
"4+ c #802BFF",
"5+ c #AA2BFF",
"6+ c #D52BFF",
"7+ c #FF2BFF",
"8+ c #0055FF",
"9+ c #5555FF",
"0+ c #8055FF",
"a+ c #AA55FF",
"b+ c #D555FF",
"c+ c #FF55FF",
"d+ c #0080FF",
"e+ c #5580FF",
"f+ c #8080FF",
"g+ c #AA80FF",
"h+ c #D580FF",
"i+ c #FF80FF",
"j+ c #00AAFF",
"k+ c #55AAFF",
"l+ c #80AAFF",
"m+ c #AAAAFF",
"n+ c #D5AAFF",
"o+ c #FFAAFF",
"p+ c #00D5FF",
"q+ c #55D5FF",
"r+ c #80D5FF",
"s+ c #AAD5FF",
"t+ c #D5D5FF",
"u+ c #FFD5FF",
"v+ c #55FFFF",
"w+ c #80FFFF",
"x+ c #AAFFFF",
"y+ c #FFFBF0",
"z+ c #A0A0A4",
"A+ c #808080",
"B+ c #FF0000",
"C+ c #00FF00",
"D+ c #FFFF00",
"E+ c #0000FF",
"F+ c #FF00FF",
"G+ c #00FFFF",
"H+ c #FFFFFF",
" ",
" . . ",
" . H+H+. ",
" . H+H+H+H+. ",
" . H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+H+. ",
" . . . . . . . . H+H+H+H+H+H+H+H+H+H+H+. . . . . . . . . ",
" . H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+. ",
" . H+H+H+H+H+H+H+H+H+H+H+. ",
" . . . . . . . . . . . ",
" "};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 239 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 500 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 452 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 323 B

View File

@ -1,35 +0,0 @@
/* XPM */
static const char * button_solid_xpm[] = {
"28 27 5 1",
" c None",
". c #000000",
"+ c #848684",
"@ c #737173",
"# c #525152",
" .... ",
" ....++++.. ",
" ....++++++++++... ",
" ....+++++++++++++++++... ",
"..++++++++++++++++++++++++..",
".@..+++++++++++++++++++++...",
".@@@..++++++++++++++++...##.",
".@@@@@..+++++++++++...#####.",
".@@@@@@@..++++++...########.",
".@@@@@@@@@......###########.",
".@@@@@@@@@@@.##############.",
".@@@@@@@@@@@.##############.",
".@@@@@@@@@@@.##############.",
".@@@@@@@@@@@.##############.",
".@@@@@@@@@@@.##############.",
".@@@@@@@@@@@.##############.",
".@@@@@@@@@@@.##############.",
".@@@@@@@@@@@.##############.",
".@@@@@@@@@@@.##############.",
".@@@@@@@@@@@.##############.",
".@@@@@@@@@@@.##############.",
"..@@@@@@@@@@.#############..",
" ..@@@@@@@@.##########... ",
" ..@@@@@@.#######... ",
" ..@@@@.####... ",
" ..@@.#... ",
" .... "};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 343 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 255 B

View File

@ -1,32 +0,0 @@
/* XPM */
static const char * button_wire_xpm[] = {
"28 27 2 1",
" c None",
". c #000000",
" .... ",
" .... . .. ",
" .... . ... ",
" .... . ... ",
".. . ..",
". .. . ...",
". .. . ... .",
". .. . ... .",
". .. ... .",
". ....... .",
". . . .",
". . . .",
". . . .",
". . . .",
". . . .",
". . .. .",
". ... .. .",
". .... .. .",
". ... . .. .",
". ... . .. .",
". . . . .",
".. . ..",
" .. . ... ",
" .. . ... ",
" .. . ... ",
" .. . ... ",
" .... "};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1009 B

View File

@ -1,286 +0,0 @@
/* XPM */
static const char * d_solid_b_xpm[] = {
"36 34 249 2",
" c #000000",
". c #800000",
"+ c #008000",
"@ c #808000",
"# c #000080",
"$ c #800080",
"% c #008080",
"& c #C0C0C0",
"* c #C0DCC0",
"= c #A6CAF0",
"- c #FFFFFF",
"; c #848484",
"> c #C6C6C6",
", c #DEDEDE",
"' c #FFFFFF",
") c #FFFFFF",
"! c #FFFFFF",
"~ c #FFFFFF",
"{ c #FFFFFF",
"] c #FFFFFF",
"^ c #FFFFFF",
"/ c #FFFFFF",
"( c #FFFFFF",
"_ c #FFFFFF",
": c #FFFFFF",
"< c #FFFFFF",
"[ c #FFFFFF",
"} c #FFFFFF",
"| c #FFFFFF",
"1 c #FFFFFF",
"2 c #FFFFFF",
"3 c #FFFFFF",
"4 c #FFFFFF",
"5 c #FFFFFF",
"6 c #FFFFFF",
"7 c #FFFFFF",
"8 c #FFFFFF",
"9 c #FFFFFF",
"0 c #FFFFFF",
"a c #FFFFFF",
"b c #FFFFFF",
"c c #FFFFFF",
"d c #FFFFFF",
"e c #FFFFFF",
"f c #FFFFFF",
"g c #FFFFFF",
"h c #FFFFFF",
"i c #FFFFFF",
"j c #FFFFFF",
"k c #FFFFFF",
"l c #FFFFFF",
"m c #FFFFFF",
"n c #FFFFFF",
"o c #FFFFFF",
"p c #FFFFFF",
"q c #FFFFFF",
"r c #FFFFFF",
"s c #FFFFFF",
"t c #FFFFFF",
"u c #FFFFFF",
"v c #FFFFFF",
"w c #FFFFFF",
"x c #FFFFFF",
"y c #FFFFFF",
"z c #FFFFFF",
"A c #FFFFFF",
"B c #FFFFFF",
"C c #FFFFFF",
"D c #FFFFFF",
"E c #FFFFFF",
"F c #FFFFFF",
"G c #FFFFFF",
"H c #FFFFFF",
"I c #FFFFFF",
"J c #FFFFFF",
"K c #FFFFFF",
"L c #FFFFFF",
"M c #FFFFFF",
"N c #FFFFFF",
"O c #FFFFFF",
"P c #FFFFFF",
"Q c #FFFFFF",
"R c #FFFFFF",
"S c #FFFFFF",
"T c #FFFFFF",
"U c #FFFFFF",
"V c #FFFFFF",
"W c #FFFFFF",
"X c #FFFFFF",
"Y c #FFFFFF",
"Z c #FFFFFF",
"` c #FFFFFF",
" . c #FFFFFF",
".. c #FFFFFF",
"+. c #FFFFFF",
"@. c #FFFFFF",
"#. c #FFFFFF",
"$. c #FFFFFF",
"%. c #FFFFFF",
"&. c #FFFFFF",
"*. c #FFFFFF",
"=. c #FFFFFF",
"-. c #FFFFFF",
";. c #FFFFFF",
">. c #FFFFFF",
",. c #FFFFFF",
"'. c #FFFFFF",
"). c #FFFFFF",
"!. c #FFFFFF",
"~. c #FFFFFF",
"{. c #FFFFFF",
"]. c #FFFFFF",
"^. c #FFFFFF",
"/. c #FFFFFF",
"(. c #FFFFFF",
"_. c #FFFFFF",
":. c #FFFFFF",
"<. c #FFFFFF",
"[. c #FFFFFF",
"}. c #FFFFFF",
"|. c #FFFFFF",
"1. c #FFFFFF",
"2. c #FFFFFF",
"3. c #FFFFFF",
"4. c #FFFFFF",
"5. c #FFFFFF",
"6. c #FFFFFF",
"7. c #FFFFFF",
"8. c #FFFFFF",
"9. c #FFFFFF",
"0. c #FFFFFF",
"a. c #FFFFFF",
"b. c #FFFFFF",
"c. c #FFFFFF",
"d. c #FFFFFF",
"e. c #FFFFFF",
"f. c #FFFFFF",
"g. c #FFFFFF",
"h. c #FFFFFF",
"i. c #FFFFFF",
"j. c #FFFFFF",
"k. c #FFFFFF",
"l. c #FFFFFF",
"m. c #FFFFFF",
"n. c #FFFFFF",
"o. c #FFFFFF",
"p. c #FFFFFF",
"q. c #FFFFFF",
"r. c #FFFFFF",
"s. c #FFFFFF",
"t. c #FFFFFF",
"u. c #FFFFFF",
"v. c #FFFFFF",
"w. c #FFFFFF",
"x. c #FFFFFF",
"y. c #FFFFFF",
"z. c #FFFFFF",
"A. c #FFFFFF",
"B. c #FFFFFF",
"C. c #FFFFFF",
"D. c #FFFFFF",
"E. c #FFFFFF",
"F. c #FFFFFF",
"G. c #FFFFFF",
"H. c #FFFFFF",
"I. c #FFFFFF",
"J. c #FFFFFF",
"K. c #FFFFFF",
"L. c #FFFFFF",
"M. c #FFFFFF",
"N. c #FFFFFF",
"O. c #FFFFFF",
"P. c #FFFFFF",
"Q. c #FFFFFF",
"R. c #FFFFFF",
"S. c #FFFFFF",
"T. c #FFFFFF",
"U. c #FFFFFF",
"V. c #FFFFFF",
"W. c #FFFFFF",
"X. c #FFFFFF",
"Y. c #FFFFFF",
"Z. c #FFFFFF",
"`. c #FFFFFF",
" + c #FFFFFF",
".+ c #FFFFFF",
"++ c #FFFFFF",
"@+ c #FFFFFF",
"#+ c #FFFFFF",
"$+ c #FFFFFF",
"%+ c #FFFFFF",
"&+ c #FFFFFF",
"*+ c #FFFFFF",
"=+ c #FFFFFF",
"-+ c #FFFFFF",
";+ c #FFFFFF",
">+ c #FFFFFF",
",+ c #FFFFFF",
"'+ c #FFFFFF",
")+ c #FFFFFF",
"!+ c #FFFFFF",
"~+ c #FFFFFF",
"{+ c #FFFFFF",
"]+ c #FFFFFF",
"^+ c #FFFFFF",
"/+ c #FFFFFF",
"(+ c #FFFFFF",
"_+ c #FFFFFF",
":+ c #FFFFFF",
"<+ c #FFFFFF",
"[+ c #FFFFFF",
"}+ c #FFFFFF",
"|+ c #FFFFFF",
"1+ c #FFFFFF",
"2+ c #FFFFFF",
"3+ c #FFFFFF",
"4+ c #FFFFFF",
"5+ c #FFFFFF",
"6+ c #FFFFFF",
"7+ c #FFFFFF",
"8+ c #FFFFFF",
"9+ c #FFFFFF",
"0+ c #FFFFFF",
"a+ c #FFFFFF",
"b+ c #FFFFFF",
"c+ c #FFFFFF",
"d+ c #FFFFFF",
"e+ c #FFFFFF",
"f+ c #FFFFFF",
"g+ c #FFFFFF",
"h+ c #FFFFFF",
"i+ c #FFFFFF",
"j+ c #FFFFFF",
"k+ c #FFFFFF",
"l+ c #FFFFFF",
"m+ c #FFFFFF",
"n+ c #FFFFFF",
"o+ c #FFFFFF",
"p+ c #FFFFFF",
"q+ c #FFFFFF",
"r+ c #FFFFFF",
"s+ c #FFFFFF",
"t+ c #FFFFFF",
"u+ c #FFFFFF",
"v+ c #FFFFFF",
"w+ c #FFFFFF",
"x+ c #FFFBF0",
"y+ c #A0A0A4",
"z+ c #808080",
", , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ",
", - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - z+ ",
", - & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & & - & & & & & & & & & z+ ",
", - & & & & & & & & & & & z+z+z+z+z+z+z+z+z+- & & & & & & & & & z+ ",
", - & & & & & & & & & & z+z+z+z+z+z+z+z+z+- z+ & & & & & & & & & z+ ",
", - & & & & & & & & & z+z+z+z+z+z+z+z+z+- z+& & & & & & & & & & z+ ",
", - & & & & & & & & z+- - - - - - - - - - z+& z+ & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & - & z+& & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & - z+& z+ & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & - & z+& & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & - z+& z+ & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & - & z+& & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & - z+& z+ & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & - & z+ & & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & - z+ & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & - & & & & & & & & & & & & z+ ",
", - & & & & & & & & - & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & z+ ",
", z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+ ",
" "};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1008 B

View File

@ -1,286 +0,0 @@
/* XPM */
static const char * d_wire_b_xpm[] = {
"36 34 249 2",
" c #000000",
". c #800000",
"+ c #008000",
"@ c #808000",
"# c #000080",
"$ c #800080",
"% c #008080",
"& c #C0C0C0",
"* c #C0DCC0",
"= c #A6CAF0",
"- c #FFFFFF",
"; c #848484",
"> c #C6C6C6",
", c #DEDEDE",
"' c #FFFFFF",
") c #FFFFFF",
"! c #FFFFFF",
"~ c #FFFFFF",
"{ c #FFFFFF",
"] c #FFFFFF",
"^ c #FFFFFF",
"/ c #FFFFFF",
"( c #FFFFFF",
"_ c #FFFFFF",
": c #FFFFFF",
"< c #FFFFFF",
"[ c #FFFFFF",
"} c #FFFFFF",
"| c #FFFFFF",
"1 c #FFFFFF",
"2 c #FFFFFF",
"3 c #FFFFFF",
"4 c #FFFFFF",
"5 c #FFFFFF",
"6 c #FFFFFF",
"7 c #FFFFFF",
"8 c #FFFFFF",
"9 c #FFFFFF",
"0 c #FFFFFF",
"a c #FFFFFF",
"b c #FFFFFF",
"c c #FFFFFF",
"d c #FFFFFF",
"e c #FFFFFF",
"f c #FFFFFF",
"g c #FFFFFF",
"h c #FFFFFF",
"i c #FFFFFF",
"j c #FFFFFF",
"k c #FFFFFF",
"l c #FFFFFF",
"m c #FFFFFF",
"n c #FFFFFF",
"o c #FFFFFF",
"p c #FFFFFF",
"q c #FFFFFF",
"r c #FFFFFF",
"s c #FFFFFF",
"t c #FFFFFF",
"u c #FFFFFF",
"v c #FFFFFF",
"w c #FFFFFF",
"x c #FFFFFF",
"y c #FFFFFF",
"z c #FFFFFF",
"A c #FFFFFF",
"B c #FFFFFF",
"C c #FFFFFF",
"D c #FFFFFF",
"E c #FFFFFF",
"F c #FFFFFF",
"G c #FFFFFF",
"H c #FFFFFF",
"I c #FFFFFF",
"J c #FFFFFF",
"K c #FFFFFF",
"L c #FFFFFF",
"M c #FFFFFF",
"N c #FFFFFF",
"O c #FFFFFF",
"P c #FFFFFF",
"Q c #FFFFFF",
"R c #FFFFFF",
"S c #FFFFFF",
"T c #FFFFFF",
"U c #FFFFFF",
"V c #FFFFFF",
"W c #FFFFFF",
"X c #FFFFFF",
"Y c #FFFFFF",
"Z c #FFFFFF",
"` c #FFFFFF",
" . c #FFFFFF",
".. c #FFFFFF",
"+. c #FFFFFF",
"@. c #FFFFFF",
"#. c #FFFFFF",
"$. c #FFFFFF",
"%. c #FFFFFF",
"&. c #FFFFFF",
"*. c #FFFFFF",
"=. c #FFFFFF",
"-. c #FFFFFF",
";. c #FFFFFF",
">. c #FFFFFF",
",. c #FFFFFF",
"'. c #FFFFFF",
"). c #FFFFFF",
"!. c #FFFFFF",
"~. c #FFFFFF",
"{. c #FFFFFF",
"]. c #FFFFFF",
"^. c #FFFFFF",
"/. c #FFFFFF",
"(. c #FFFFFF",
"_. c #FFFFFF",
":. c #FFFFFF",
"<. c #FFFFFF",
"[. c #FFFFFF",
"}. c #FFFFFF",
"|. c #FFFFFF",
"1. c #FFFFFF",
"2. c #FFFFFF",
"3. c #FFFFFF",
"4. c #FFFFFF",
"5. c #FFFFFF",
"6. c #FFFFFF",
"7. c #FFFFFF",
"8. c #FFFFFF",
"9. c #FFFFFF",
"0. c #FFFFFF",
"a. c #FFFFFF",
"b. c #FFFFFF",
"c. c #FFFFFF",
"d. c #FFFFFF",
"e. c #FFFFFF",
"f. c #FFFFFF",
"g. c #FFFFFF",
"h. c #FFFFFF",
"i. c #FFFFFF",
"j. c #FFFFFF",
"k. c #FFFFFF",
"l. c #FFFFFF",
"m. c #FFFFFF",
"n. c #FFFFFF",
"o. c #FFFFFF",
"p. c #FFFFFF",
"q. c #FFFFFF",
"r. c #FFFFFF",
"s. c #FFFFFF",
"t. c #FFFFFF",
"u. c #FFFFFF",
"v. c #FFFFFF",
"w. c #FFFFFF",
"x. c #FFFFFF",
"y. c #FFFFFF",
"z. c #FFFFFF",
"A. c #FFFFFF",
"B. c #FFFFFF",
"C. c #FFFFFF",
"D. c #FFFFFF",
"E. c #FFFFFF",
"F. c #FFFFFF",
"G. c #FFFFFF",
"H. c #FFFFFF",
"I. c #FFFFFF",
"J. c #FFFFFF",
"K. c #FFFFFF",
"L. c #FFFFFF",
"M. c #FFFFFF",
"N. c #FFFFFF",
"O. c #FFFFFF",
"P. c #FFFFFF",
"Q. c #FFFFFF",
"R. c #FFFFFF",
"S. c #FFFFFF",
"T. c #FFFFFF",
"U. c #FFFFFF",
"V. c #FFFFFF",
"W. c #FFFFFF",
"X. c #FFFFFF",
"Y. c #FFFFFF",
"Z. c #FFFFFF",
"`. c #FFFFFF",
" + c #FFFFFF",
".+ c #FFFFFF",
"++ c #FFFFFF",
"@+ c #FFFFFF",
"#+ c #FFFFFF",
"$+ c #FFFFFF",
"%+ c #FFFFFF",
"&+ c #FFFFFF",
"*+ c #FFFFFF",
"=+ c #FFFFFF",
"-+ c #FFFFFF",
";+ c #FFFFFF",
">+ c #FFFFFF",
",+ c #FFFFFF",
"'+ c #FFFFFF",
")+ c #FFFFFF",
"!+ c #FFFFFF",
"~+ c #FFFFFF",
"{+ c #FFFFFF",
"]+ c #FFFFFF",
"^+ c #FFFFFF",
"/+ c #FFFFFF",
"(+ c #FFFFFF",
"_+ c #FFFFFF",
":+ c #FFFFFF",
"<+ c #FFFFFF",
"[+ c #FFFFFF",
"}+ c #FFFFFF",
"|+ c #FFFFFF",
"1+ c #FFFFFF",
"2+ c #FFFFFF",
"3+ c #FFFFFF",
"4+ c #FFFFFF",
"5+ c #FFFFFF",
"6+ c #FFFFFF",
"7+ c #FFFFFF",
"8+ c #FFFFFF",
"9+ c #FFFFFF",
"0+ c #FFFFFF",
"a+ c #FFFFFF",
"b+ c #FFFFFF",
"c+ c #FFFFFF",
"d+ c #FFFFFF",
"e+ c #FFFFFF",
"f+ c #FFFFFF",
"g+ c #FFFFFF",
"h+ c #FFFFFF",
"i+ c #FFFFFF",
"j+ c #FFFFFF",
"k+ c #FFFFFF",
"l+ c #FFFFFF",
"m+ c #FFFFFF",
"n+ c #FFFFFF",
"o+ c #FFFFFF",
"p+ c #FFFFFF",
"q+ c #FFFFFF",
"r+ c #FFFFFF",
"s+ c #FFFFFF",
"t+ c #FFFFFF",
"u+ c #FFFFFF",
"v+ c #FFFFFF",
"w+ c #FFFFFF",
"x+ c #FFFBF0",
"y+ c #A0A0A4",
"z+ c #808080",
", , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ",
", - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - z+ ",
", - & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & z+& & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & z+& & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & z+& & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & z+& & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & z+& & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & z+& & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & z+& & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & z+& & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & z+z+z+z+z+z+ z+z+z+ & & & & & & & & & z+ ",
", - & & & & & & & & & & z+& & & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & z+& & & & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & z+& & & & & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & z+ ",
", - & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & z+ ",
", z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+z+ ",
" "};

View File

@ -1,129 +0,0 @@
/* XPM */
static const char * zoom_in_xpm[] = {
"16 16 110 2",
" c None",
". c #000000",
"+ c #B7B7B7",
"@ c #090909",
"# c #060606",
"$ c #CFCFFF",
"% c #F0F0F0",
"& c #4E4E5B",
"* c #ECECEF",
"= c #6C6CFF",
"- c #D7D7FF",
"; c #EDEDEF",
"> c #CDCDFF",
", c #7A7AAE",
"' c #6E6EFF",
") c #D5D5FF",
"! c #D2D2D6",
"~ c #6B6B73",
"{ c #F9F9F9",
"] c #5151A1",
"^ c #CCCCD0",
"/ c #6161AC",
"( c #ADADFF",
"_ c #484861",
": c #C0C0F0",
"< c #6464FF",
"[ c #AAAAFF",
"} c #EBEBFF",
"| c #6262FF",
"1 c #9898A9",
"2 c #5C5C8D",
"3 c #595981",
"4 c #FBFBFB",
"5 c #8E8EA1",
"6 c #E2E2FF",
"7 c #AFAFC9",
"8 c #434363",
"9 c #555566",
"0 c #B0B0DF",
"a c #9696FF",
"b c #F8F8FB",
"c c #3D3DAF",
"d c #D8D8FF",
"e c #B6B6FF",
"f c #3838A1",
"g c #A2A2FF",
"h c #8E8ECC",
"i c #8080C6",
"j c #26265B",
"k c #8B8BFF",
"l c #585870",
"m c #3F3F3F",
"n c #484848",
"o c #6565F9",
"p c #71717E",
"q c #7272DA",
"r c #464686",
"s c #E2E2E3",
"t c #9F9FFF",
"u c #7676F5",
"v c #8B8BA1",
"w c #4C4C5B",
"x c #686871",
"y c #B7B7DF",
"z c #030314",
"A c #3A3A76",
"B c #ABABE6",
"C c #DDDDFF",
"D c #4C4C7C",
"E c #9999FF",
"F c #CECED6",
"G c #6565AE",
"H c #5D5D6E",
"I c #D0D0FF",
"J c #6969FF",
"K c #2C2C6A",
"L c #9C9C9C",
"M c #AEAEB6",
"N c #28286D",
"O c #A4A4AA",
"P c #262667",
"Q c #E2E2ED",
"R c #8686F0",
"S c #AFAFE7",
"T c #7C7CAC",
"U c #C0C0E1",
"V c #464673",
"W c #5454E0",
"X c #2B2B61",
"Y c #434377",
"Z c #8787BE",
"` c #6B6B75",
" . c #DBDBF0",
".. c #B3B3D8",
"+. c #C6C6C6",
"@. c #8282FF",
"#. c #6E6EFB",
"$. c #25255D",
"%. c #373799",
"&. c #CECEF0",
"*. c #8C8CB6",
"=. c #6868EB",
"-. c #FDFDFF",
";. c #C0C0C0",
">. c #6F6F8B",
",. c #5454D0",
"'. c #6868E0",
"). c #8686A9",
"!. c #BCBCF0",
"~. c #A1A1B8",
" 4 M p 9 l >.7 -. ",
" s x v ..!.B h 2 3 Q ",
"{ ~ ~.) : . . [ t G V b ",
"O 5 d > .. . C a k ] *. ",
"` U I } % . . - @.'.Y ",
"& y . . . . . . . . #.j ",
"w 0 . . . . . . . . o $. ",
"H S e 6 % . . $ J W A ",
"1 T ( g &.. . $ = | f , ",
"; _ i E R . . ' < c N ^ ",
" F 8 / q u =.,.%.P z @ + ",
" * ).D X K r Z ! # . @ + ",
" + # . @ + ",
" + # . @ ;.",
" + # . m ",
" +.n L "};

View File

@ -1,133 +0,0 @@
/* XPM */
static const char * zoom_out_xpm[] = {
"16 16 114 2",
" c None",
". c #000000",
"+ c #B7B7B7",
"@ c #060606",
"# c #090909",
"$ c #FDFDFF",
"% c #CFCFFF",
"& c #B6B6FF",
"* c #4C4C5B",
"= c #4E4E5B",
"- c #8383FF",
"; c #ECECEF",
"> c #E9E9FF",
", c #555566",
"' c #EBEBFF",
") c #8282FF",
"! c #CDCDFF",
"~ c #FEFEFF",
"{ c #686871",
"] c #6E6EFF",
"^ c #8B8BA1",
"/ c #D8D8FF",
"( c #464673",
"_ c #FBFBFB",
": c #F9F9F9",
"< c #6F6F8B",
"[ c #6565AE",
"} c #6161AC",
"| c #2C2C6A",
"1 c #484861",
"2 c #434363",
"3 c #CBCBFF",
"4 c #D2D2D6",
"5 c #6262FF",
"6 c #C6C6C6",
"7 c #DDDDFF",
"8 c #AAAAFF",
"9 c #9999FF",
"0 c #6868EB",
"a c #3A3A76",
"b c #7676F5",
"c c #3F3F3F",
"d c #595981",
"e c #5C5C8D",
"f c #F8F8FB",
"g c #5D5D6E",
"h c #CCCCD0",
"i c #9696FF",
"j c #3838A1",
"k c #8686A9",
"l c #A1A1B8",
"m c #A2A2FF",
"n c #D5D5FF",
"o c #DBDBFF",
"p c #5454E0",
"q c #71717E",
"r c #7272DA",
"s c #D0D0FF",
"t c #2B2B61",
"u c #484848",
"v c #BCBCF0",
"w c #C1C1FF",
"x c #BABAEC",
"y c #E2E2ED",
"z c #E2E2E3",
"A c #6C6CFF",
"B c #7A7AAE",
"C c #B5B5FF",
"D c #9898A9",
"E c #8E8EFF",
"F c #ABABE6",
"G c #AFAFE7",
"H c #C0C0C0",
"I c #4C4C7C",
"J c #5151A1",
"K c #8E8EA1",
"L c #3D3DAF",
"M c #6868E0",
"N c #AFAFC9",
"O c #C0C0E1",
"P c #CECED6",
"Q c #6969FF",
"R c #B3B3D8",
"S c #030314",
"T c #8080C6",
"U c #464686",
"V c #5454D0",
"W c #373799",
"X c #262667",
"Y c #6B6B73",
"Z c #8B8BFF",
"` c #AEAEB6",
" . c #585870",
".. c #434377",
"+. c #7C7CAC",
"@. c #6B6B75",
"#. c #C3C3EC",
"$. c #9F9FFF",
"%. c #8C8CB6",
"&. c #E2E2FF",
"*. c #8E8ECC",
"=. c #26265B",
"-. c #D7D7FF",
";. c #EDEDEF",
">. c #9C9C9C",
",. c #28286D",
"'. c #A4A4AA",
"). c #6E6EFB",
"!. c #7979FF",
"~. c #ADADFF",
"{. c #6565F9",
"]. c #8787BE",
"^. c #25255D",
"/. c #6464FF",
" _ ` q , .< N $ ",
" z { ^ R v F *.e d y ",
": Y l n 3 w C 8 $.[ ( f ",
"'.K / ! > $ $ 7 i Z J %. ",
"@.O s ' -.) M .. ",
"= #.. . . . . . . . ).=. ",
"* x . . . . . . . . {.^. ",
"g G & &. % Q p a ",
"D +.~.m o ~ % A 5 j B ",
";.1 T 9 E - !.] /.L ,.h ",
" P 2 } r b 0 V W X S # + ",
" ; k I t | U ].4 @ . # + ",
" + @ . # + ",
" + @ . # H ",
" + @ . c ",
" 6 u >."};

View File

@ -1,83 +0,0 @@
// Copyright (c) 2005-2006 INRIA Sophia-Antipolis (France).
// All rights reserved.
//
// This file is part of CGAL (www.cgal.org); you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation; version 2.1 of the License.
// See the file LICENSE.LGPL distributed with CGAL.
//
// Licensees holding a valid commercial license may use this file in
// accordance with the commercial license agreement provided with the software.
//
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
//
// Partially supported by the IST Programme of the EU as a Shared-cost
// RTD (FET Open) Project under Contract No IST-2000-26473
// (ECG - Effective Computational Geometry for Curves and Surfaces)
// and a STREP (FET Open) Project under Contract No IST-006413
// (ACS -- Algorithms for Complex Shapes)
//
// $URL$
// $Id$
//
// Author(s) : Monique Teillaud <Monique.Teillaud@sophia.inria.fr>
// Sylvain Pion
// Julien Hazebrouck
// Damien Leroy
#ifndef CGAL_SPHERICAL_CIRCLE_GL__H
#define CGAL_SPHERICAL_CIRCLE_GL__H
#include <cmath>
namespace CGAL {
#define COLOR_POINT(p) glColor3f(abs(p.x()),abs(p.y()),abs(p.z()))
#define AFFICHER_POINT_CONTOUR(p) COLOR_POINT(p),glVertex3f(CGAL::to_double(p.x()),CGAL::to_double(p.y()),CGAL::to_double(p.z()))
#define TRACE_SEGMENT(p1,p2) AFFICHER_POINT_CONTOUR(p1),AFFICHER_POINT_CONTOUR(p2)
#define COLOR_ROUGE glColor3f(1.0, 0.0, 0.0)
#define COLOR_POINT(p) glColor3f(abs(p.x()),abs(p.y()),abs(p.z()))
#define IMPRIMER_POINT(n,p) std::cout << n << " = (" << p.x() << ", " << p.y() << ", " << p.z() << ")" << std::endl
#define VECTOR_LENGTH(v) sqrt((v.x()*v.x())+(v.y()*v.y())+(v.z()*v.z()))
/**
* Function drawing the contour of the 3D circle passed as argument with the desired precision.
*/
template <class SK>
void dessiner_spherical_circle (const typename SK::Circle_3& circle, int precision) {
typedef typename SK::Point_3 Point_3;
typedef typename SK::Vector_3 Vector_3;
typedef typename SK::Has_on_3 Has_on_3;
const Point_3& centre = circle.center();
//IMPRIMER_POINT("centre", centre);
Vector_3 u = circle.supporting_plane().base1();
u = u / VECTOR_LENGTH(u);
//IMPRIMER_POINT("u", u);
Vector_3 v = circle.supporting_plane().base2();
v = v / VECTOR_LENGTH(v);
//IMPRIMER_POINT("v", v);
double rayon = sqrt(CGAL::to_double(circle.squared_radius()));
double pas = 2 * CGAL_PI / precision;
glLineWidth(5.0);
glDisable(GL_LIGHTING); // desactive la gestion de la lumiere
Point_3 pprec = centre + rayon * u;
Point_3 pcour;
glBegin(GL_LINES);
COLOR_ROUGE;
for (double theta = pas; theta < 2 * CGAL_PI + pas; theta = theta + pas) {
pcour = Point_3(
centre.x() + rayon * (u.x() * cos(theta) + v.x() * sin(theta)),
centre.y() + rayon * (u.y() * cos(theta) + v.y() * sin(theta)),
centre.z() + rayon * (u.z() * cos(theta) + v.z() * sin(theta))
);
TRACE_SEGMENT(pprec, pcour);
pprec = pcour;
}
glEnd();
}
}
#endif // CGAL_SPHERICAL_CIRCLE_GL__H