diff --git a/Arrangement_on_surface_2/demo/globus/CMakeLists.txt b/Arrangement_on_surface_2/demo/globus/CMakeLists.txt new file mode 100644 index 00000000000..26c51f376b4 --- /dev/null +++ b/Arrangement_on_surface_2/demo/globus/CMakeLists.txt @@ -0,0 +1,98 @@ +# This is the CMake script for compiling a CGAL application. + +cmake_minimum_required(VERSION 3.1...3.23) +project(Globus_demo) + +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() + +# General +set(GLOBUS_MODULES_REL_DIR cmake/modules) +set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/${GLOBUS_MODULES_REL_DIR}) + +find_package(CGAL QUIET COMPONENTS Qt5 OPTIONAL_COMPONENTS Core) +find_package(Qt5 QUIET COMPONENTS Gui Widgets) +find_package(FileGDBAPI REQUIRED) + +if (CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND) + include(${CGAL_USE_FILE}) + add_compile_definitions(QT_NO_KEYWORDS) + include_directories( BEFORE ./ ) + include_directories(${FileGDBAPI_INCLUDE_DIR}) + + # Arrangement package includes + add_definitions(-DQT_NO_KEYWORDS) + option(COMPILE_UTILS_INCREMENTALLY + "Compile files in Utils directory incrementally, or compile them all as a unit. \ + Incremental compilation will be better for development and consume less \ + memory while compiling but will take longer to compile." + OFF) + + set(UTILS_SOURCE_FILES "") + + if (COMPILE_UTILS_INCREMENTALLY) + set(UTILS_COMPILE_FILES ${UTILS_SOURCE_FILES}) + else() + set(UTILS_CPP_FILES_INCLUDES "") + foreach(utils_src IN LISTS UTILS_SOURCE_FILES) + string(APPEND UTILS_CPP_FILES_INCLUDES "#include \"${utils_src}\"\n") + endforeach() + file(WRITE "${CMAKE_BINARY_DIR}/CombinedUtils.cpp" ${UTILS_CPP_FILES_INCLUDES}) + set(UTILS_COMPILE_FILES "${CMAKE_BINARY_DIR}/CombinedUtils.cpp") + endif() + + + qt5_wrap_ui(globus_uis + Globus_window.ui) + + qt5_wrap_cpp(CGAL_Qt5_MOC_FILES + Globus_window.h) + + qt5_add_resources(CGAL_Qt5_RESOURCE_FILES Globus.qrc) + + add_executable(globus + globus.cpp + Globus_window.cpp + ${UTILS_COMPILE_FILES} + ${globus_uis} + ${CGAL_Qt5_RESOURCE_FILES} + ${CGAL_Qt5_MOC_FILES}) + + target_link_libraries(globus ${FileGDBAPI_LIBRARY}) + target_link_libraries(globus Qt5::Core Qt5::Gui Qt5::Widgets) + target_link_libraries(globus CGAL::CGAL CGAL::CGAL_Qt5) + if(CGAL_Core_FOUND) + target_link_libraries(globus CGAL::CGAL_Core) + endif() + + add_to_cached_list(CGAL_EXECUTABLE_TARGETS globus) + + include(${CGAL_MODULES_DIR}/CGAL_add_test.cmake) + cgal_add_compilation_test(globus) + + set_property(TARGET globus PROPERTY INSTALL_RPATH "${FileGDBAPI_LIBRARY_DIR}") + set_property(TARGET globus PROPERTY INSTALL_RPATH_USE_LINK_PATH TRUE) + + set_target_properties(globus PROPERTIES LINK_FLAGS "-Wl,--disable-new-dtags") + +else() + set(MISSING_DEPS "") + + if(NOT CGAL_FOUND) + set(MISSING_DEPS "CGAL, ${MISSING_DEPS}") + endif() + if(NOT CGAL_Qt5_FOUND) + set(MISSING_DEPS "the CGAL Qt5 library, ${MISSING_DEPS}") + endif() + if(NOT Qt5_FOUND) + set(MISSING_DEPS "Qt5, ${MISSING_DEPS}") + endif() + message(STATUS + "NOTICE: This demo requires ${MISSING_DEPS} and will not be compiled.") +endif() diff --git a/Arrangement_on_surface_2/demo/globus/CombinedUtils.cpp b/Arrangement_on_surface_2/demo/globus/CombinedUtils.cpp new file mode 100644 index 00000000000..e69de29bb2d diff --git a/Arrangement_on_surface_2/demo/globus/Globus.qrc b/Arrangement_on_surface_2/demo/globus/Globus.qrc new file mode 100644 index 00000000000..21763837336 --- /dev/null +++ b/Arrangement_on_surface_2/demo/globus/Globus.qrc @@ -0,0 +1,18 @@ + + + resources/icons/zoomin.xpm + resources/icons/zoomout.xpm + resources/icons/zoomreset.xpm + resources/icons/yellow_icon.xpm + resources/icons/red_icon.xpm + resources/icons/green_icon.xpm + resources/icons/blue_icon.xpm + resources/icons/pink_icon.xpm + resources/icons/hand.xpm + +resources/icons/delete.xpm + + + resources/about.html + + diff --git a/Arrangement_on_surface_2/demo/globus/Globus_window.cpp b/Arrangement_on_surface_2/demo/globus/Globus_window.cpp new file mode 100644 index 00000000000..e3b83a1c853 --- /dev/null +++ b/Arrangement_on_surface_2/demo/globus/Globus_window.cpp @@ -0,0 +1,166 @@ +// Copyright (c) 2022 Tel-Aviv University (Israel). +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s): Efi Fogel + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "Globus_window.h" +#include "ui_Globus_window.h" + +//! \brief constructs +Globus_window::Globus_window(QWidget* parent) : + CGAL::Qt::DemosMainWindow(parent), ui(new Ui::Globus_window) { + this->setup_ui(); + // this->setupStatusBar(); + // this->setupOptionsMenu(); + this->addAboutDemo(":/cgal/Arrangement_on_surface_2/about.html"); + this->addAboutCGAL(); +} + +//! \brief destructs +Globus_window::~Globus_window() {} + +//! \brief +void Globus_window::setup_ui() { + this->ui->setupUi(this); + + this->mode_group = new QActionGroup(this); + this->mode_group->addAction(this->ui->action_drag); +} + +//! \brief +// void Globus_window::resetActionGroups(ArrangementDemoTab* tab, TraitsType tt) { +// this->hideInsertMethods(); +// this->ui->actionInsert->setChecked(false); +// this->ui->actionDrag->setChecked(false); +// this->ui->actionLowerEnvelope->setChecked(false); +// this->ui->actionUpperEnvelope->setChecked(false); +// this->ui->actionShowGrid->setChecked(tab->isGridVisible()); +// this->ui->actionGridSnapMode->setChecked(tab->isSnapToGridEnabled()); +// this->ui->actionArrangementSnapMode->setChecked( +// tab->isSnapToArrangementEnabled()); +// this->ui->actionLowerEnvelope->setChecked(tab->isLowerEnvelopeShown()); +// this->ui->actionUpperEnvelope->setChecked(tab->isUpperEnvelopeShown()); + +// if ( +// tt != TraitsType::SEGMENT_TRAITS && tt != TraitsType::POLYLINE_TRAITS && +// tt != TraitsType::LINEAR_TRAITS) +// this->ui->actionArrangementSnapMode->setVisible(false); +// else +// this->ui->actionArrangementSnapMode->setVisible(true); + +// // default action group is scrolling +// this->ui->actionDrag->activate(QAction::Trigger); +// } + +//! \brief +// void Globus_window::reset_callback_state(ArrangementDemoTab* tab) { +// if (tab) { +// tab->getView()->setDragMode(QGraphicsView::NoDrag); +// tab->unhookCallbacks(); +// } +// } + +//! \brief +void Globus_window::on_action_quit_triggered() { qApp->exit(); } + +//! \brief +void Globus_window::on_action_open_triggered() { + const QString filename = + QFileDialog::getOpenFileName(this, tr("Open file"), "", + "Globus files (*.gdb)"); + if (filename.isNull()) return; + + if (filename.endsWith(".gdb")) { + QMessageBox::information(this, "Oops", "Not implemented yet"); + // auto tab = this->openArrFile(filename); + // if (tab) { + // tab->setParent(this); + // this->addTab(tab, this->makeTabLabel(tab->traitsType())); + // tab->adjustViewport(); + // } + } + else { + QMessageBox::information(this, "Oops", "Unsupported file format"); + } +} + +//! \brief +void Globus_window::on_action_preferences_triggered() { + // ArrangementDemoPropertiesDialog dialog{this}; + + // if (dialog.exec() == QDialog::Accepted) { + // typedef ArrangementDemoPropertiesDialog Dialog; + // ArrangementDemoTab::Preferences pref; + + // pref.edgeColor = dialog.property(Dialog::EDGE_COLOR_KEY).value(); + // pref.edgeWidth = + // dialog.property(Dialog::EDGE_WIDTH_KEY).value(); + // pref.vertexColor = + // dialog.property(Dialog::VERTEX_COLOR_KEY).value(); + // pref.vertexRadius = + // dialog.property(Dialog::VERTEX_RADIUS_KEY).value(); + // pref.envelopeEdgeColor = + // dialog.property(Dialog::ENVELOPE_EDGE_COLOR_KEY).value(); + // pref.envelopeEdgeWidth = + // dialog.property(Dialog::ENVELOPE_EDGE_WIDTH_KEY).value(); + // pref.envelopeVertexColor = + // dialog.property(Dialog::ENVELOPE_VERTEX_COLOR_KEY).value(); + // pref.envelopeVertexRadius = + // dialog.property(Dialog::ENVELOPE_VERTEX_RADIUS_KEY).value(); + // pref.verticalRayEdgeColor = + // dialog.property(Dialog::VERTICAL_RAY_EDGE_COLOR_KEY).value(); + // pref.verticalRayEdgeWidth = + // dialog.property(Dialog::VERTICAL_RAY_EDGE_WIDTH_KEY) + // .value(); + // pref.axesColor = dialog.property(Dialog::GRID_COLOR_KEY).value(); + // pref.gridColor = pref.axesColor; + // pref.gridColor.setAlphaF(0.5); + // currentTab->updatePreferences(pref); + // } +} + +//! \brief +void Globus_window::on_action_save_as_triggered() { + QMessageBox::information(this, "Save as", "Not implemented yet"); +} + +//! \brief +void Globus_window::on_action_zoom_in_triggered() { + // QGraphicsView* view = currentTab->getView(); + // view->scale(2.0, 2.0); +} + +//! \brief +void Globus_window::on_action_zoom_out_triggered() { + // QGraphicsView* view = currentTab->getView(); + // view->scale(0.5, 0.5); +} + +//! \brief +void Globus_window::on_action_zoom_reset_triggered() { + // currentTab->adjustViewport(); +} + +void Globus_window::on_action_drag_toggled(bool checked) { + // TODO: Move this to DemoTab + // QGraphicsView* activeView = currentTab->getView(); + // if (!checked) + // activeView->setDragMode(QGraphicsView::NoDrag); + // else + // activeView->setDragMode(QGraphicsView::ScrollHandDrag); +} diff --git a/Arrangement_on_surface_2/demo/globus/Globus_window.h b/Arrangement_on_surface_2/demo/globus/Globus_window.h new file mode 100644 index 00000000000..5670ef0f9c4 --- /dev/null +++ b/Arrangement_on_surface_2/demo/globus/Globus_window.h @@ -0,0 +1,59 @@ +// Copyright (c) 2022 Tel-Aviv University (Israel). +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s): Efi Fogel + +#ifndef GLOBUS_WINDOW_H +#define GLOBUS_WINDOW_H + +#include +#include + +#include + +#include +#include + +namespace Ui { class Globus_window; } + +namespace CGAL { +class Object; +namespace Qt { +class GraphicsViewNavigation; +} +} + +class QActionGroup; + +class Globus_window : public CGAL::Qt::DemosMainWindow { + Q_OBJECT + +public: + Globus_window(QWidget* parent = nullptr); + ~Globus_window(); + +public Q_SLOTS: + void on_action_quit_triggered(); + void on_action_open_triggered(); + void on_action_save_as_triggered(); + void on_action_preferences_triggered(); + void on_action_zoom_in_triggered(); + void on_action_zoom_out_triggered(); + void on_action_zoom_reset_triggered(); + void on_action_drag_toggled(bool); + +Q_SIGNALS: + +protected: + void setup_ui(); + +private: + Ui::Globus_window* ui; + QActionGroup* mode_group; +}; + +#endif diff --git a/Arrangement_on_surface_2/demo/globus/Globus_window.ui b/Arrangement_on_surface_2/demo/globus/Globus_window.ui new file mode 100644 index 00000000000..ea9091a857b --- /dev/null +++ b/Arrangement_on_surface_2/demo/globus/Globus_window.ui @@ -0,0 +1,152 @@ + + + Globus_window + + + + 0 + 0 + 946 + 600 + + + + Globus + + + + + toolBar + + + TopToolBarArea + + + false + + + + + + + + + + + 0 + 0 + 946 + 23 + + + + + &File + + + + + + + + + &Mode + + + + + + &Edit + + + + + + &Tools + + + + + + + + + + &Quit + + + + + true + + + + :/cgal/icons/hand.xpm:/cgal/icons/hand.xpm + + + Drag + + + + + &Preferences... + + + + + Save As... + + + Ctrl+S + + + + + Open... + + + Ctrl+O + + + + + + :/cgal/icons/zoomin.xpm:/cgal/icons/zoomin.xpm + + + Zoom In + + + Zoom In + + + + + + :/cgal/icons/zoomout.xpm:/cgal/icons/zoomout.xpm + + + Zoom Out + + + Zoom Out + + + + + + :/cgal/icons/zoomreset.xpm:/cgal/icons/zoomreset.xpm + + + Zoom Reset + + + Zoom Reset + + + + + + + + diff --git a/Arrangement_on_surface_2/demo/globus/cmake/modules/FindFileGDBAPI.cmake b/Arrangement_on_surface_2/demo/globus/cmake/modules/FindFileGDBAPI.cmake new file mode 100755 index 00000000000..54358601b3a --- /dev/null +++ b/Arrangement_on_surface_2/demo/globus/cmake/modules/FindFileGDBAPI.cmake @@ -0,0 +1,84 @@ +# - Try to find FileGDBAPI (FileGDBAPI.lib on Windows and v8_base.x64.a on Linux) +# Once done this will define +# FileGDBAPI_FOUND - System has FileGDBAPI +# FileGDBAPI_INCLUDE_DIR - The FileGDBAPI include directories +# FileGDBAPI_LIBRARY - The library needed to use FileGDBAPI +# FileGDBAPI_LIBRARY_DIR - The directory where lib files are. + +set(FileGDBAPI_NAMES_RELEASE FileGDBAPI) +set(FileGDBAPI_NAMES_DEBUG FileGDBAPId ${FileGDBAPI_NAMES_RELEASE}) + +find_path(FileGDBAPI_INCLUDE_DIR NAMES FileGDBAPI.h + PATH_SUFFIXES include FileGDBAPI include/FileGDBAPI + PATHS /opt/libvFileGDBAPI-$ENV{FileGDBAPI_VER} + HINTS ENV FileGDBAPI_INC_DIR ENV FileGDBAPI_DIR) + +# CMake>=2.6 supports the notation "debug XXd optimized XX" +set(FileGDBAPI_HINTS ENV FileGDBAPI_LIB_DIR ENV FileGDBAPI_DIR) +if (UNIX) + set(FileGDBAPI_HINTS_DEBUG ${FileGDBAPI_DIR}/out/x64.debug $ENV{FileGDBAPI_DIR}/out/x64.debug) + set(FileGDBAPI_HINTS_RELEASE ${FileGDBAPI_DIR}/out/x64.release $ENV{FileGDBAPI_DIR}/out/x64.release) + set(FileGDBAPI_PATHS /opt/libFileGDBAPI-$ENV{FileGDBAPI_VER}) +elseif(WIN32) + set(FileGDBAPI_HINTS_DEBUG ${FileGDBAPI_DIR}/build/Debug $ENV{FileGDBAPI_DIR}/build/Debug) + set(FileGDBAPI_HINTS_RELEASE ${FileGDBAPI_DIR}/out/build/Release $ENV{FileGDBAPI_DIR}/build/Release) +else() +endif() + +find_library(FileGDBAPI_LIBRARY_RELEASE + NAMES ${FileGDBAPI_NAMES_RELEASE} + PATH_SUFFIXES lib + HINTS ${FileGDBAPI_HINTS} ${FileGDBAPI_HINTS_RELEASE} + PATHS ${FileGDBAPI_PATHS} + DOC "Google FileGDBAPI JavaScript Engine Library (Release)") + +find_library(FileGDBAPI_LIBRARY_DEBUG + NAMES ${FileGDBAPI_NAMES_DEBUG} + PATH_SUFFIXES lib + HINTS ${FileGDBAPI_HINTS} ${FileGDBAPI_HINTS_DEBUG} + PATHS ${FileGDBAPI_PATHS} + DOC "Google FileGDBAPI JavaScript Engine Library (Debug)") + +if(CMAKE_BUILD_TYPE EQUAL "Release") + get_filename_component(FileGDBAPI_LIBRARY_DIR ${FileGDBAPI_LIBRARY_RELEASE} PATH) + set(FileGDBAPI_LIBRARY ${FileGDBAPI_LIBRARY_RELEASE}) +else() + get_filename_component(FileGDBAPI_LIBRARY_DIR ${FileGDBAPI_LIBRARY_DEBUG} PATH) + set(FileGDBAPI_LIBRARY_DEBUG ${FileGDBAPI_LIBRARY_RELEASE}) +endif() + +set(FileGDBAPI_LIBRARY + optimized ${FileGDBAPI_LIBRARY_RELEASE} debug ${FileGDBAPI_LIBRARY_DEBUG}) + +include(FindPackageHandleStandardArgs) + +# handle the QUIETLY and REQUIRED arguments and set FileGDBAPI_FOUND to TRUE +# if all listed variables are TRUE +find_package_handle_standard_args(FileGDBAPI DEFAULT_MSG + FileGDBAPI_LIBRARY + FileGDBAPI_INCLUDE_DIR) + +# Detect FileGDBAPI version +set(FileGDBAPI_VERSION_MAJOR "1") +set(FileGDBAPI_VERSION_MINOR "5") +set(FileGDBAPI_VERSION_PATCH "2") +set(FileGDBAPI_VERSION_TWEAK "") +set(FileGDBAPI_VERSION "${FileGDBAPI_VERSION_MAJOR}.${FileGDBAPI_VERSION_MINOR}.${FileGDBAPI_VERSION_PATCH}.${FileGDBAPI_VERSION_TWEAK}") + +set(FileGDBAPI_VERSION_HEX 0x0${FileGDBAPI_VERSION_MAJOR}${FileGDBAPI_VERSION_MINOR}${FileGDBAPI_VERSION_PATCH}${FileGDBAPI_VERSION_TWEAK}) +string(LENGTH "${FileGDBAPI_VERSION_HEX}" FileGDBAPI_VERSION_HEX_LENGTH) + +while(FileGDBAPI_VERSION_HEX_LENGTH LESS 8) + set(FileGDBAPI_VERSION_HEX "${FileGDBAPI_VERSION_HEX}0") + string(LENGTH "${FileGDBAPI_VERSION_HEX}" FileGDBAPI_VERSION_HEX_LENGTH) +endwhile() + +mark_as_advanced(FileGDBAPI_INCLUDE_DIR FileGDBAPI_LIBRARY FileGDBAPI_LIBRARY_DIR) + +if(FileGDBAPI_CMAKE_DEBUG) + message(STATUS "FileGDBAPI_INCLUDE_DIR: ${FileGDBAPI_INCLUDE_DIR}") + message(STATUS "FileGDBAPI_LIBRARY: ${FileGDBAPI_LIBRARY}") + message(STATUS "FileGDBAPI_LIBRARY_DEPENDS: ${FileGDBAPI_LIBRARY_DEPENDS}") + message(STATUS "FileGDBAPI_VERSION: ${FileGDBAPI_VERSION}") + message(STATUS "FileGDBAPI_VERSION_HEX: ${FileGDBAPI_VERSION_HEX}") +endif() diff --git a/Arrangement_on_surface_2/demo/globus/globus.cpp b/Arrangement_on_surface_2/demo/globus/globus.cpp new file mode 100644 index 00000000000..825f3fe1d70 --- /dev/null +++ b/Arrangement_on_surface_2/demo/globus/globus.cpp @@ -0,0 +1,141 @@ +// Copyright (c) 2022, 2020 Tel-Aviv University (Israel). +// 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): Efi Fogel + +#include +#include + +#include + +#include + +#include "Globus_window.h" + +// +struct country { + //! Constructor + country(std::string& name) : + m_name(std::move(name)) + {} + + std::string m_name; +}; + +namespace FGA = FileGDBAPI; + +/*! + */ +int load_countries(std::vector& countries) { + // Open the geodatabase and the table. + fgdbError hr; + FGA::Geodatabase geodatabase; + hr = FGA::OpenGeodatabase(L"/home/efif/tmp/esri/19113835-45b5-40b9-989b-fd04aad324da.gdb", geodatabase); + if (hr != S_OK) return hr; + + // std::vector types; + // hr = geodatabase.GetDatasetTypes(types); + // if (hr != S_OK) return hr; + // std::cout << "Types:\n"; + // for (const auto& type : types) + // std::wcout << type << std::endl; + + FGA::Table table; + hr = geodatabase.OpenTable(L"World_Countries", table); + if (hr != S_OK) { + std::cerr << "Cannot open table!\n"; + return hr; + } + + // std::string doc; + // hr = table.GetDocumentation(doc); + // if (hr != S_OK) return hr; + // std::cout << "Table Information:\n"; + // std::cout << doc << std::endl; + + // FGA::fieldDefs field_defs; + // hr = table.GetFields(fields_defs); + // if (hr != S_OK) return hr; + // std::cout << "Fields:\n"; + // for (const auto& field : Fields) + // std::wcout << field << std::endl; + FGA::FieldInfo field_info; + hr = table.GetFieldInformation(field_info); + if (hr != S_OK) return hr; + int count; + hr = field_info.GetFieldCount(count); + std::cout << "Number of fileds: " << count << std::endl; + for (auto i = 0; i < count; ++i) { + std::wstring name; + hr = field_info.GetFieldName(i, name); + if (hr != S_OK) return hr; + std::wcout << "Name: " << name << std::endl; + } + + FGA::Envelope envelope; + FGA::EnumRows rows; + hr = table.Search(L"SHAPE, COUNTRY", L"", envelope, true, rows); + if (hr != S_OK) { + std::cerr << "Cannot find rows!\n"; + return hr; + } + + countries.clear(); + FGA::Row row; + while (rows.Next(row) == S_OK) { + std::wstring name; + row.GetString(L"COUNTRY", name); + std::string simple_name; + simple_name.assign(name.begin(), name.end()); + countries.emplace_back(simple_name); + } + + // Close the table + hr = geodatabase.CloseTable(table); + if (hr != S_OK) { + std::wcout << "An error occurred while closing Cities." << endl; + std::wcout << "Error code: " << hr << endl; + return -1; + } + + // Close the geodatabase + hr = FGA::CloseGeodatabase(geodatabase); + if (hr != S_OK) { + std::wcout << "An error occurred while closing the geodatabase." << endl; + std::wcout << "Error code: " << hr << endl; + return -1; + } + + return S_OK; +} + +// +int main(int argc, char* argv[]) { + // Load the countries based on a search extent. + std::vector countries; + size_t hr = load_countries(countries); + if (hr != S_OK) { + std::cerr << "Failed to load database!\n"; + return -1; + } + for (const auto& country : countries) { + std::cout << country.m_name << std::endl; + } + + QApplication app(argc, argv); + QCoreApplication::setOrganizationName("CGAL"); + QCoreApplication::setApplicationName("globus"); + + // Import resources from libCGAL (Qt5). + CGAL_QT_INIT_RESOURCES; + + Globus_window window; + window.show(); + return app.exec(); +} diff --git a/Arrangement_on_surface_2/demo/globus/resources/about.html b/Arrangement_on_surface_2/demo/globus/resources/about.html new file mode 100644 index 00000000000..6cd0427df84 --- /dev/null +++ b/Arrangement_on_surface_2/demo/globus/resources/about.html @@ -0,0 +1,10 @@ + + +Globus + + +

Globus

+
+This program demonstrates the use of the geodesic traits if of the CGAL 2D Arrangements package. + + diff --git a/Arrangement_on_surface_2/demo/globus/resources/icons/arrow_down.xpm b/Arrangement_on_surface_2/demo/globus/resources/icons/arrow_down.xpm new file mode 100644 index 00000000000..cd5f097860b --- /dev/null +++ b/Arrangement_on_surface_2/demo/globus/resources/icons/arrow_down.xpm @@ -0,0 +1,42 @@ +/* XPM */ +static const char *demo_arrow_down_xpm[] = { +/* width height ncolors chars_per_pixel */ +"32 32 3 1", +/* colors */ +" c #000000", +". c #808080", +"X c None", +/* pixels */ +"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", +"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", +"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", +"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", +"XXXXXXXXXXXXXX. .XXXXXXXXXXXXXX", +"XXXXXXXXXXXXXX. .XXXXXXXXXXXXXX", +"XXXXXXXXXXXXXX. .XXXXXXXXXXXXXX", +"XXXXXXXXXXXXXX. .XXXXXXXXXXXXXX", +"XXXXXXXXXXXXXX. .XXXXXXXXXXXXXX", +"XXXXXXXXXXXXXX. .XXXXXXXXXXXXXX", +"XXXXXXXXXXXXXX. .XXXXXXXXXXXXXX", +"XXXXXXXXXXXXXX. .XXXXXXXXXXXXXX", +"XXXXXXXXXXXXXX. .XXXXXXXXXXXXXX", +"XXXXXXXXXXXXXX. .XXXXXXXXXXXXXX", +"XXXXXXXXXXXXXX. .XXXXXXXXXXXXXX", +"XXXXXXXXXXXXXX. .XXXXXXXXXXXXXX", +"XXXXXXXXXXXXXX. .XXXXXXXXXXXXXX", +"XXXXXXXXXXXXXX. .XXXXXXXXXXXXXX", +"XXXXXXXXXX.XXX. .XXX.XXXXXXXXXX", +"XXXXXXXXXX..XX. .XX..XXXXXXXXXX", +"XXXXXXXXXXX. .. .. .XXXXXXXXXXX", +"XXXXXXXXXXXX.. .XXXXXXXXXXXX", +"XXXXXXXXXXXXX. .XXXXXXXXXXXXX", +"XXXXXXXXXXXXX. .XXXXXXXXXXXXX", +"XXXXXXXXXXXXXX. .XXXXXXXXXXXXXX", +"XXXXXXXXXXXXXX. .XXXXXXXXXXXXXX", +"XXXXXXXXXXXXXXX..XXXXXXXXXXXXXXX", +"XXXXXXXXXXXXXXX..XXXXXXXXXXXXXXX", +"XXXXXXXXXXXXXXX..XXXXXXXXXXXXXXX", +"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", +"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", +"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" +}; diff --git a/Arrangement_on_surface_2/demo/globus/resources/icons/arrow_up.xpm b/Arrangement_on_surface_2/demo/globus/resources/icons/arrow_up.xpm new file mode 100644 index 00000000000..4b1ee76a1a0 --- /dev/null +++ b/Arrangement_on_surface_2/demo/globus/resources/icons/arrow_up.xpm @@ -0,0 +1,42 @@ +/* XPM */ +static const char *demo_arrow_up_xpm[] = { +/* width height ncolors chars_per_pixel */ +"32 32 3 1", +/* colors */ +" c #000000", +". c #808080", +"X c None", +/* pixels */ +"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", +"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", +"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", +"XXXXXXXXXXXXXXX..XXXXXXXXXXXXXXX", +"XXXXXXXXXXXXXXX..XXXXXXXXXXXXXXX", +"XXXXXXXXXXXXXXX..XXXXXXXXXXXXXXX", +"XXXXXXXXXXXXXX. .XXXXXXXXXXXXXX", +"XXXXXXXXXXXXXX. .XXXXXXXXXXXXXX", +"XXXXXXXXXXXXX. .XXXXXXXXXXXXX", +"XXXXXXXXXXXXX. .XXXXXXXXXXXXX", +"XXXXXXXXXXXX. . . .XXXXXXXXXXXX", +"XXXXXXXXXXX. .. .. .XXXXXXXXXXX", +"XXXXXXXXXX..XX. .XX..XXXXXXXXXX", +"XXXXXXXXXX.XXX. .XXX.XXXXXXXXXX", +"XXXXXXXXXXXXXX. .XXXXXXXXXXXXXX", +"XXXXXXXXXXXXXX. .XXXXXXXXXXXXXX", +"XXXXXXXXXXXXXX. .XXXXXXXXXXXXXX", +"XXXXXXXXXXXXXX. .XXXXXXXXXXXXXX", +"XXXXXXXXXXXXXX. .XXXXXXXXXXXXXX", +"XXXXXXXXXXXXXX. .XXXXXXXXXXXXXX", +"XXXXXXXXXXXXXX. .XXXXXXXXXXXXXX", +"XXXXXXXXXXXXXX. .XXXXXXXXXXXXXX", +"XXXXXXXXXXXXXX. .XXXXXXXXXXXXXX", +"XXXXXXXXXXXXXX. .XXXXXXXXXXXXXX", +"XXXXXXXXXXXXXX. .XXXXXXXXXXXXXX", +"XXXXXXXXXXXXXX. .XXXXXXXXXXXXXX", +"XXXXXXXXXXXXXX. .XXXXXXXXXXXXXX", +"XXXXXXXXXXXXXX. .XXXXXXXXXXXXXX", +"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", +"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", +"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", +"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" +}; diff --git a/Arrangement_on_surface_2/demo/globus/resources/icons/blue_icon.xpm b/Arrangement_on_surface_2/demo/globus/resources/icons/blue_icon.xpm new file mode 100644 index 00000000000..e4340c56330 --- /dev/null +++ b/Arrangement_on_surface_2/demo/globus/resources/icons/blue_icon.xpm @@ -0,0 +1,23 @@ +/* XPM */ +const char* blue_icon[] = { +/* columns rows colors chars-per-pixel */ + "16 16 2 1", + "g c blue", + ". c None", +/* pixels */ + "................", + "................", + "..gggggggggggg..", + "..gggggggggggg..", + "..gggggggggggg..", + "..ggg......ggg..", + "..ggg......ggg..", + "..ggg......ggg..", + "..ggg......ggg..", + "..ggg......ggg..", + "..ggg......ggg..", + "..gggggggggggg..", + "..gggggggggggg..", + "..gggggggggggg..", + "................", + "................"}; diff --git a/Arrangement_on_surface_2/demo/globus/resources/icons/colors.xpm b/Arrangement_on_surface_2/demo/globus/resources/icons/colors.xpm new file mode 100644 index 00000000000..6a2ee004751 --- /dev/null +++ b/Arrangement_on_surface_2/demo/globus/resources/icons/colors.xpm @@ -0,0 +1,51 @@ +/* XPM */ +static const char *demo_colors_xpm[] = { +/* width height ncolors chars_per_pixel */ +"32 32 12 1", +/* colors */ +" c #000000", +". c #800000", +"X c #C0C0C0", +"o c #008080", +"O c #FF00FF", +"+ c #FF0000", +"@ c #808080", +"# c #000080", +"% c #008000", +"& c #808000", +"* c #0000FF", +"$ c None", +/* pixels */ +"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$", +"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$", +"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$", +"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$", +"$$ $$", +"$$ *******************ooooooo $$", +"$$ *******************o@@o@@o $$", +"$$ *******************o@@o@@o $$", +"$$ *******************ooooooo $$", +"$$ $$", +"$$ XXXXXXXXXXXXXXXXXXXXXXXXXX $$", +"$$ XXXXXXXXXXXXXXXXXXXXXXXXXX $$", +"$$ XXXXXXXXXXXXXXXXXXXXXXXXXX $$", +"$$ XX XX####XX****XXOOOOXX $$", +"$$ XX XX####XX****XXOOOOXX $$", +"$$ XX XX####XX****XXOOOOXX $$", +"$$ XX XX####XX****XXOOOOXX $$", +"$$ XXXXXXXXXXXXXXXXXXXXXXXXXX $$", +"$$ XXXXXXXXXXXXXXXXXXXXXXXXXX $$", +"$$ XXXXXXXXXXXXXXXXXXXXXXXXXX $$", +"$$ XX....XX++++XX%%%%XX&&&&XX $$", +"$$ XX....XX++++XX%%%%XX&&&&XX $$", +"$$ XX....XX++++XX%%%%XX&&&&XX $$", +"$$ XX....XX++++XX%%%%XX&&&&XX $$", +"$$ XXXXXXXXXXXXXXXXXXXXXXXXXX $$", +"$$ XXXXXXXXXXXXXXXXXXXXXXXXXX $$", +"$$ XXXXXXXXXXXXXXXXXXXXXXXXXX $$", +"$$ $$", +"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$", +"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$", +"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$", +"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" +}; diff --git a/Arrangement_on_surface_2/demo/globus/resources/icons/delete.bmp b/Arrangement_on_surface_2/demo/globus/resources/icons/delete.bmp new file mode 100644 index 00000000000..d59564bbf9f Binary files /dev/null and b/Arrangement_on_surface_2/demo/globus/resources/icons/delete.bmp differ diff --git a/Arrangement_on_surface_2/demo/globus/resources/icons/delete.xpm b/Arrangement_on_surface_2/demo/globus/resources/icons/delete.xpm new file mode 100644 index 00000000000..67ebe59dfcb --- /dev/null +++ b/Arrangement_on_surface_2/demo/globus/resources/icons/delete.xpm @@ -0,0 +1,45 @@ +/* XPM */ +static const char *delete_xpm[] = { +/* width height ncolors chars_per_pixel */ +"32 32 6 1", +/* colors */ +" c #000000", +". c #C0C0C0", +"X c #808080", +"o c #FFFFFF", +"O c #FFFF00", +"+ c None", +/* pixels */ +"++++++++++++++++++++++++++++++++", +"++++++++++++++++++++++++++++++++", +"++++++++++++++++++++++++++++++++", +"++++++++++++++++++++++++++++++++", +"++++++++++++++++++++++++++++++++", +"++++++++++++++++++++++++++++++++", +"+++++++++++++++ +++++", +"+++++++++++++ oOoOoOoOoOoO ++++", +"++++++++++++ OoOoOoOoOoOoO O +++", +"+++++++++++ OoOoOoOoOoOoO O. +++", +"++++++++++ OoOoOoOoOoOoO O.O +++", +"+++++++++ OoOoOoOoOoOoO O.O. +++", +"++++++++ OoOoOoOoOoOoO O.O.O +++", +"+++++++ OoOoOoOoOoOoO O.O.O ++++", +"++++++ OoOoOoOoOoOoO O.O.O. ++++", +"+++++ OoOoOoOoOoOoO O.O.O. +X+++", +"++++ OoOoOoOoOoOoO O.O.O. +X.+++", +"+++ XO.O.O. +X.++++", +"++ .OOOOOOOOOOOO. .O.O. +X.+++++", +"++ OOOOOOOOOOOOOO O.O. +X.++++++", +"++ OOOOOOOOOOOOOO .O. +X.+++++++", +"++ OOOOOOOOOOOOOO O. +X.++++++++", +"++ OOOOOOOOOOOOOO . +X.+++++++++", +"++ OOOOOOOOOOOOOO +X.++++++++++", +"++ .OOOOOOOOOOOO. +X.+++++++++++", +"+++ +X.++++++++++++", +"++++XXXXXXXXXXXXXX.+++++++++++++", +"++++..............++++++++++++++", +"++++++++++++++++++++++++++++++++", +"++++++++++++++++++++++++++++++++", +"++++++++++++++++++++++++++++++++", +"++++++++++++++++++++++++++++++++" +}; diff --git a/Arrangement_on_surface_2/demo/globus/resources/icons/draw.xpm b/Arrangement_on_surface_2/demo/globus/resources/icons/draw.xpm new file mode 100644 index 00000000000..cbe66b84ae7 --- /dev/null +++ b/Arrangement_on_surface_2/demo/globus/resources/icons/draw.xpm @@ -0,0 +1,76 @@ +/* XPM */ +/*static const char * draw_xpm[] = { +"32 32 3 1", +" c None", +". c #FFFFFF", +"x c #000000", +" ", +" ", +" ", +" ... ", +" . .... ", +" .xxxxx. ", +" .xxxxx. ", +" .xxxxx. ", +" .xxxxx. ", +" .xxxxx. ", +" .xxxxx. ", +" .xxxxx. ", +" .xxxxx. ", +" .xxxxx. ", +" .xxxxx. ", +" .xxxxx. ", +" .xxxxx. ", +" .xxxxx. ", +" .xxxxx. ", +" .xxxxx. ", +" ....... ", +" .xxxx. ", +" .xxx. ", +" .xx. ", +" .x. ", +" . ", +" ", +" ", +" ", +" ", +" "};*/ + +/* XPM */ +static const char * small_draw_xpm[] = { +"32 32 3 1", +" c None", +". c #FFFFFF", +"x c #000000", +" ", +" ", +" ", +" xxxxxx ", +" x.....x ", +" x.xxx.x ", +" x.xxx.x ", +" x.xxx.x ", +" x.xxx.x ", +" x.xxx.x ", +" x.xxx.x ", +" x.xxx.x ", +" x.xxx.x ", +" x.xxx.x ", +" x.....x ", +" x.xx.x ", +" x.x.x ", +" x..x ", +" x.x ", +" x ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/Arrangement_on_surface_2/demo/globus/resources/icons/green_icon.xpm b/Arrangement_on_surface_2/demo/globus/resources/icons/green_icon.xpm new file mode 100644 index 00000000000..e4b1f38207d --- /dev/null +++ b/Arrangement_on_surface_2/demo/globus/resources/icons/green_icon.xpm @@ -0,0 +1,23 @@ +/* XPM */ +const char* green_icon[] = { +/* columns rows colors chars-per-pixel */ + "16 16 2 1", + "g c green", + ". c None", +/* pixels */ + "................", + "................", + "..gggggggggggg..", + "..gggggggggggg..", + "..gggggggggggg..", + "..ggg......ggg..", + "..ggg......ggg..", + "..ggg......ggg..", + "..ggg......ggg..", + "..ggg......ggg..", + "..ggg......ggg..", + "..gggggggggggg..", + "..gggggggggggg..", + "..gggggggggggg..", + "................", + "................"}; diff --git a/Arrangement_on_surface_2/demo/globus/resources/icons/hand.xpm b/Arrangement_on_surface_2/demo/globus/resources/icons/hand.xpm new file mode 100644 index 00000000000..f439246f2b0 --- /dev/null +++ b/Arrangement_on_surface_2/demo/globus/resources/icons/hand.xpm @@ -0,0 +1,43 @@ +/* XPM */ +const char * hand_xpm[] = { +/* columns rows colors chars-per-pixel */ +"32 32 5 1", +" c black", +". c #808080", +"X c #c0c0c0", +"o c white", +"O c None", +/* pixels */ +"OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOO OOOOOOOOOOOOOOO", +"OOOOOOOOOOO O Xo OOOOOOOOOOOO", +"OOOOOOOOOO oo Xo Xo OOOOOOOOOOO", +"OOOOOOOOOO Xo Xo Xo . OOOOOOOOO", +"OOOOOOOOOOO oo Xo Xo X OOOOOOOO", +"OOOOOOOOOOO Xo Xo Xo Xo OOOOOOOO", +"OOOOOOOOO X ooooooo Xo OOOOOOOO", +"OOOOOOOO oo ooXXoXoooo OOOOOOOO", +"OOOOOOOO Xoo XooooooXo OOOOOOOOO", +"OOOOOOOOO XooXoooooooo OOOOOOOOO", +"OOOOOOOOOO ooooooooooo OOOOOOOOO", +"OOOOOOOOOO Xooooooooo OOOOOOOOOO", +"OOOOOOOOOOO Xoooooooo OOOOOOOOOO", +"OOOOOOOOOOOO Xoooooo OOOOOOOOOOO", +"OOOOOOOOOOOOO Oooooo OOOOOOOOOOO", +"OOOOOOOOOOOOO Oooooo OOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO" +}; diff --git a/Arrangement_on_surface_2/demo/globus/resources/icons/none.xpm b/Arrangement_on_surface_2/demo/globus/resources/icons/none.xpm new file mode 100644 index 00000000000..a4dc0d83bc2 --- /dev/null +++ b/Arrangement_on_surface_2/demo/globus/resources/icons/none.xpm @@ -0,0 +1,44 @@ +/* XPM */ +const const char *none_xpm[] = { +/* columns rows colors chars-per-pixel */ +"32 32 4 1", +" c opaque", +". c navy", +"X c #c0c0c0", +"o c None", +/* pixels */ +"oooooooooooooooooooooooooooooooo", +"oooooooooooooooooooooooooooooooo", +"oooooooooooooooooooooooooooooooo", +"oooooooooooooooooooooooooooooooo", +"oooooooooooooooooooooooooooooooo", +"oooooooooooooooooooooooooooooooo", +"oooooooooooooooooooooooooooooooo", +"oooooooooooooooooooooooooooooooo", +"oooooooooooooooooooooooooooooooo", +"oooooooooooooooooooooooooooooooo", +"oooooooooooooooooooooooooooooooo", +"oooooooooooooooooooooooooooooooo", +"oooooooooooooooooooooooooooooooo", +"oooooooooooooooooooooooooooooooo", +"oooooooooooooooooooooooooooooooo", +"oooooooooooooooooooooooooooooooo", +"oooooooooooooooooooooooooooooooo", +"oooooooooooooooooooooooooooooooo", +"oooooooooooooooooooooooooooooooo", +"oooooooooooooooooooooooooooooooo", +"oooooooooooooooooooooooooooooooo", +"oooooooooooooooooooooooooooooooo", +"oooooooooooooooooooooooooooooooo", +"oooooooooooooooooooooooooooooooo", +"oooooooooooooooooooooooooooooooo", +"oooooooooooooooooooooooooooooooo", +"oooooooooooooooooooooooooooooooo", +"oooooooooooooooooooooooooooooooo", +"oooooooooooooooooooooooooooooooo", +"oooooooooooooooooooooooooooooooo", +"oooooooooooooooooooooooooooooooo", +"oooooooooooooooooooooooooooooooo", +"oooooooooooooooooooooooooooooooo", +"oooooooooooooooooooooooooooooooo", +}; diff --git a/Arrangement_on_surface_2/demo/globus/resources/icons/pink_icon.xpm b/Arrangement_on_surface_2/demo/globus/resources/icons/pink_icon.xpm new file mode 100644 index 00000000000..550f9bcf33c --- /dev/null +++ b/Arrangement_on_surface_2/demo/globus/resources/icons/pink_icon.xpm @@ -0,0 +1,23 @@ +/* XPM */ +const char* blue_icon[] = { +/* columns rows colors chars-per-pixel */ + "16 16 2 1", + "g c #FFC0CB", + ". c None", +/* pixels */ + "................", + "................", + "..gggggggggggg..", + "..gggggggggggg..", + "..gggggggggggg..", + "..ggg......ggg..", + "..ggg......ggg..", + "..ggg......ggg..", + "..ggg......ggg..", + "..ggg......ggg..", + "..ggg......ggg..", + "..gggggggggggg..", + "..gggggggggggg..", + "..gggggggggggg..", + "................", + "................"}; diff --git a/Arrangement_on_surface_2/demo/globus/resources/icons/red_icon.xpm b/Arrangement_on_surface_2/demo/globus/resources/icons/red_icon.xpm new file mode 100644 index 00000000000..ddb377e5526 --- /dev/null +++ b/Arrangement_on_surface_2/demo/globus/resources/icons/red_icon.xpm @@ -0,0 +1,23 @@ +/* XPM */ +const char* red_icon[] = { +/* columns rows colors chars-per-pixel */ + "16 16 2 1", + "g c red", + ". c None", +/* pixels */ + "................", + "................", + "..gggggggggggg..", + "..gggggggggggg..", + "..gggggggggggg..", + "..ggg......ggg..", + "..ggg......ggg..", + "..ggg......ggg..", + "..ggg......ggg..", + "..ggg......ggg..", + "..ggg......ggg..", + "..gggggggggggg..", + "..gggggggggggg..", + "..gggggggggggg..", + "................", + "................"}; diff --git a/Arrangement_on_surface_2/demo/globus/resources/icons/yellow_icon.xpm b/Arrangement_on_surface_2/demo/globus/resources/icons/yellow_icon.xpm new file mode 100644 index 00000000000..4b8dc107215 --- /dev/null +++ b/Arrangement_on_surface_2/demo/globus/resources/icons/yellow_icon.xpm @@ -0,0 +1,23 @@ +/* XPM */ +const char* yellow_icon[] = { +/* columns rows colors chars-per-pixel */ + "16 16 2 1", + "g c yellow", + ". c None", +/* pixels */ + "................", + "................", + "..gggggggggggg..", + "..gggggggggggg..", + "..gggggggggggg..", + "..ggg......ggg..", + "..ggg......ggg..", + "..ggg......ggg..", + "..ggg......ggg..", + "..ggg......ggg..", + "..ggg......ggg..", + "..gggggggggggg..", + "..gggggggggggg..", + "..gggggggggggg..", + "................", + "................"}; diff --git a/Arrangement_on_surface_2/demo/globus/resources/icons/zoomin.bmp b/Arrangement_on_surface_2/demo/globus/resources/icons/zoomin.bmp new file mode 100644 index 00000000000..63ae8833b7a Binary files /dev/null and b/Arrangement_on_surface_2/demo/globus/resources/icons/zoomin.bmp differ diff --git a/Arrangement_on_surface_2/demo/globus/resources/icons/zoomin.xpm b/Arrangement_on_surface_2/demo/globus/resources/icons/zoomin.xpm new file mode 100644 index 00000000000..f765af05376 --- /dev/null +++ b/Arrangement_on_surface_2/demo/globus/resources/icons/zoomin.xpm @@ -0,0 +1,47 @@ +/* XPM */ +static const char *zoomin_xpm[] = { +/* width height ncolors chars_per_pixel */ +"32 32 8 1", +/* colors */ +" c #000000", +". c #C0C0C0", +"X c #008080", +"o c #FF0000", +"O c #808080", +"+ c #000080", +"# c #0000FF", +"@ c None", +/* pixels */ +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@O O@@@@@@@@@@@@@@@", +"@@@@@@@@O O...O O@@@@@@@@@@@@@", +"@@@@@@@ O..@@@..O @@@@@@@@@@@@", +"@@@@@@ O..@@@@@@@..O @@@@@@@@@@@", +"@@@@@O ..@@@@@@@@@.. O@@@@@@@@@@", +"@@@@@ O.@@@@ooo@@@@.O @@@@@@@@@@", +"@@@@O .@@@@@ooo@@@@@. O@@@@@@@@@", +"@@@@ O.@@@@@ooo@@@@@.O @@@@@@@@@", +"@@@@ .@@@ooooooooo@@@. @@@@@@@@@", +"@@@@ .@@@ooooooooo@@@. @@@@@@@@@", +"@@@@ .@@@ooooooooo@@@. @@@@@@@@@", +"@@@@ O.@@@@@ooo@@@@@.O @@@@@@@@@", +"@@@@O .@@@@@ooo@@@@@. O@@@@@@@@@", +"@@@@@ O.@@@@ooo@@@@.O @@@@@@@@@@", +"@@@@@O ..@@@@@@@@@.. O@@@@@@@@@@", +"@@@@@@ O..@@@@@@@..O +@@@@@@@@@@", +"@@@@@@@ O..@@@..O ##+@@@@@@@@@", +"@@@@@@@@O O...O O+X##+@@@@@@@@", +"@@@@@@@@@@O O@@@+X##+@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@+X##+@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@+X##+@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@+X##+@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@+X##+@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@+X+@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@+@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" +}; diff --git a/Arrangement_on_surface_2/demo/globus/resources/icons/zoomout.bmp b/Arrangement_on_surface_2/demo/globus/resources/icons/zoomout.bmp new file mode 100644 index 00000000000..29c0d381890 Binary files /dev/null and b/Arrangement_on_surface_2/demo/globus/resources/icons/zoomout.bmp differ diff --git a/Arrangement_on_surface_2/demo/globus/resources/icons/zoomout.xpm b/Arrangement_on_surface_2/demo/globus/resources/icons/zoomout.xpm new file mode 100644 index 00000000000..d01baa71718 --- /dev/null +++ b/Arrangement_on_surface_2/demo/globus/resources/icons/zoomout.xpm @@ -0,0 +1,47 @@ +/* XPM */ +static const char *zoomout_xpm[] = { +/* width height ncolors chars_per_pixel */ +"32 32 8 1", +/* colors */ +" c #000000", +". c #C0C0C0", +"X c #008080", +"o c #FF0000", +"O c #808080", +"+ c #000080", +"# c #0000FF", +"@ c None", +/* pixels */ +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@O O@@@@@@@@@@@@@@@", +"@@@@@@@@O O...O O@@@@@@@@@@@@@", +"@@@@@@@ O..@@@..O @@@@@@@@@@@@", +"@@@@@@ O..@@@@@@@..O @@@@@@@@@@@", +"@@@@@O ..@@@@@@@@@.. O@@@@@@@@@@", +"@@@@@ O.@@@@@@@@@@@.O @@@@@@@@@@", +"@@@@O .@@@@@@@@@@@@@. O@@@@@@@@@", +"@@@@ O.@@@@@@@@@@@@@.O @@@@@@@@@", +"@@@@ .@@@ooooooooo@@@. @@@@@@@@@", +"@@@@ .@@@ooooooooo@@@. @@@@@@@@@", +"@@@@ .@@@ooooooooo@@@. @@@@@@@@@", +"@@@@ O.@@@@@@@@@@@@@.O @@@@@@@@@", +"@@@@O .@@@@@@@@@@@@@. O@@@@@@@@@", +"@@@@@ O.@@@@@@@@@@@.O @@@@@@@@@@", +"@@@@@O ..@@@@@@@@@.. O@@@@@@@@@@", +"@@@@@@ O..@@@@@@@..O +@@@@@@@@@@", +"@@@@@@@ O..@@@..O ##+@@@@@@@@@", +"@@@@@@@@O O...O O+X##+@@@@@@@@", +"@@@@@@@@@@O O@@@+X##+@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@+X##+@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@+X##+@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@+X##+@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@+X##+@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@+X+@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@+@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" +}; diff --git a/Arrangement_on_surface_2/demo/globus/resources/icons/zoomreset.xpm b/Arrangement_on_surface_2/demo/globus/resources/icons/zoomreset.xpm new file mode 100644 index 00000000000..bbda98c20d7 --- /dev/null +++ b/Arrangement_on_surface_2/demo/globus/resources/icons/zoomreset.xpm @@ -0,0 +1,47 @@ +/* XPM */ +static const char *zoomin_xpm[] = { +/* width height ncolors chars_per_pixel */ +"32 32 8 1", +/* colors */ +" c #000000", +". c #C0C0C0", +"X c #008080", +"o c #FF0000", +"O c #808080", +"+ c #000080", +"# c #0000FF", +"@ c None", +/* pixels */ +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@O O@@@@@@@@@@@@@@@", +"@@@@@@@@O O...O O@@@@@@@@@@@@@", +"@@@@@@@ O..@@@..O @@@@@@@@@@@@", +"@@@@@@ O..@@@@@@@..O @@@@@@@@@@@", +"@@@@@O ..@@@@@@@@@.. O@@@@@@@@@@", +"@@@@@ O.@@ooooo@@@@.O @@@@@@@@@@", +"@@@@O .@@oo@@@ooo@@@. O@@@@@@@@@", +"@@@@ O.@@o@@@@@@o@@@.O @@@@@@@@@", +"@@@@ .@@oo@@@@@@o@@@@. @@@@@@@@@", +"@@@@ .@@oo@@@@o@o@o@@. @@@@@@@@@", +"@@@@ .@@oo@@@@o@o@o@@. @@@@@@@@@", +"@@@@ O.@oo@@@@@ooo@@.O @@@@@@@@@", +"@@@@O .@@ooo@@@@@@@@. O@@@@@@@@@", +"@@@@@ O.@@@oooo@@@@.O @@@@@@@@@@", +"@@@@@O ..@@@@@@@@@.. O@@@@@@@@@@", +"@@@@@@ O..@@@@@@@..O +@@@@@@@@@@", +"@@@@@@@ O..@@@..O ##+@@@@@@@@@", +"@@@@@@@@O O...O O+X##+@@@@@@@@", +"@@@@@@@@@@O O@@@+X##+@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@+X##+@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@+X##+@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@+X##+@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@+X##+@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@+X+@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@+@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" +};