Síguenos ...

  • Twitter FacebbokFlickrYouTube CESGA

Servizos PYME's

  • Servicios para Empresas

díxitos Decembro

  • díxitos Decembro 2017

  • CESGA ICTS

Aplicacións

CGAL

Versións dispoñibles:

FinisTerraeII

  • 4.8.1
  • 4.12

Descrición


CGAL é unha librería de estruturas de datos e algoritmos xeométricos robusta, eficiente e fácil de usar, en C++. A librería CGAL contén:

  • Primitivas xeométricas básicas, tales como puntos, vectores, rectas, predicados tales como posicións relativas de puntos, e operacións tales como interseccións e cálculo de distancias.
  • Unha colección de estruturas de datos e algoritmos estándar, tales como envolvente convexa, triangulación (de Delaunay), poliedro, círculo recubridor mínimo, e estructuras de consulta multidimensional.
  • Interfaces con outros paquetes, en particular, para visualización, input/output ou aritmética.

Guía de uso


A versión 3.3.1 está instalada no directorio:

/opt/cesga/CGAL-3.3.1

Mediante a carga do módulo cgal "module load cgal" fíxanse as seguintes variables de entorno:

CGAL: /opt/cesga/CGAL-3.3.1

INCLUDE,CPATH,FPATH: /opt/cesga/CGAL-3.3.1/include

PATH : /opt/cesga/CGAL-3.3.1/bin

LD_LIBRARY_PATH,LIBRARY_PATH: /opt/cesga/CGAL-3.3.1/lib

Para a utilización da librería debe incluirse no programa os ficheiros correspondentes da librería CGAL que desexamos utilizar (p.e. include CGAL/Cartesian.h) e linkar o programa coas librerías axeitadas que se atopan no directorio lib/ do directorio de instalación.

Exemplo:

O seguinte código crea un polígono e fai algunhas comprobacións:

$ cat Polygon.cpp

#include <CGAL/Cartesian.h>
#include <CGAL/Polygon_2.h>
#include <iostream>

typedef CGAL::Cartesian<double> K;
typedef K::Point_2 Point;
typedef CGAL::Polygon_2<K> Polygon_2;
using std::cout; using std::endl;

int main()
{
  Point points[] = { Point(0,0), Point(5.1,0), Point(1,1), Point(0.5,6)};
  Polygon_2 pgn(points, points+4);

  // check if the polygon is simple.
  cout << "The polygon is " <<
    (pgn.is_simple() ? "" : "not ") << "simple." << endl;

  // check if the polygon is convex
  cout << "The polygon is " <<
    (pgn.is_convex() ? "" : "not ") << "convex." << endl;

  return 0;
}

$ cat makefile

# Created by the script cgal_create_makefile
# This is the makefile for compiling a CGAL application.

#---------------------------------------------------------------------#
#                    include platform specific settings
#---------------------------------------------------------------------#
# Choose the right include file from the <cgalroot>/make directory.

CGAL_MAKEFILE = /opt/cesga/CGAL-3.3.1/share/cgal/cgal.mk
include $(CGAL_MAKEFILE)

#---------------------------------------------------------------------#
#                    compiler flags
#---------------------------------------------------------------------#

CXXFLAGS = \
           -I../../include \
           $(CGAL_CXXFLAGS) \
           $(LONG_NAME_PROBLEM_CXXFLAGS)

#---------------------------------------------------------------------#
#                    linker flags
#---------------------------------------------------------------------#

LIBPATH = \
          $(CGAL_LIBPATH)

LDFLAGS = \
          $(LONG_NAME_PROBLEM_LDFLAGS) \
          $(CGAL_LDFLAGS)

#---------------------------------------------------------------------#
#                    target entries
#---------------------------------------------------------------------#

all:            \
                Polygon$(EXE_EXT)

Polygon$(EXE_EXT): Polygon$(OBJ_EXT)
        $(CGAL_CXX) $(LIBPATH) $(EXE_OPT)Polygon Polygon$(OBJ_EXT) $(LDFLAGS)

clean: \
                   Polygon.clean

#---------------------------------------------------------------------#
#                    suffix rules
#---------------------------------------------------------------------#

.C$(OBJ_EXT):
        $(CGAL_CXX) $(CXXFLAGS) $(OBJ_OPT) $<


.cpp$(OBJ_EXT):
        $(CGAL_CXX) $(CXXFLAGS) $(OBJ_OPT) $<

URL Manual

Soporte


Ante calquera dúbida ou problema co uso deste paquete de software diríxase a aplicacions@cesga.es