CellGPU  0.8.0
GPU-accelerated simulations of cells
Public Member Functions | Public Attributes | List of all members
DelaunayCGAL Class Reference

Access the 2D periodic and non-periodic functionality of CGAL Delaunay triangulations. More...

#include <DelaunayCGAL.h>

Public Member Functions

void PeriodicTriangulation (vector< pair< Point, int > > &points, Dscalar bxx, Dscalar bxy, Dscalar byx, Dscalar byy)
 Given a vector of points (in the form of pair<PDT::Point p ,int index>), fill the allneighs structure with the neighbor list. Calls one of the routines below. More...
 
void PeriodicTriangulationNineSheeted (vector< pair< Point, int > > &points, Dscalar bxx, Dscalar bxy, Dscalar byx, Dscalar byy)
 Given a vector of points (in the form of pair<PDT::Point p ,int index>), explicitly constructing the covering and using CGAL's non-periodic routines. More...
 
void PeriodicTriangulationSquareDomain (vector< pair< Point, int > > &points, Dscalar boxX, Dscalar boxY)
 Given a vector of points (in the form of pair<PDT::Point p ,int index>), fill the allneighs structure with the neighbor list. More...
 
bool LocalTriangulation (const vector< pair< LPoint, int > > &points, vector< int > &neighs)
 given a similar vector of points, calculate the neighbors of the first point in a non-periodic domain. More...
 

Public Attributes

vector< vector< int > > allneighs
 The list of neighbors of every point in the periodic triangulation.
 

Detailed Description

Access the 2D periodic and non-periodic functionality of CGAL Delaunay triangulations.

A class for interfacing with the CGAL library. In particular, this lets the user access the functionality of the 2D periodic and non-periodic schemes for performing a Delaunay Triangulation. A public member variable maintains a convenient data structure for keeping track of the most recently performed complete triangulation of a periodic point set.

Member Function Documentation

◆ PeriodicTriangulation()

void DelaunayCGAL::PeriodicTriangulation ( vector< pair< Point, int > > &  V,
Dscalar  bxx,
Dscalar  bxy,
Dscalar  byx,
Dscalar  byy 
)

Given a vector of points (in the form of pair<PDT::Point p ,int index>), fill the allneighs structure with the neighbor list. Calls one of the routines below.

This routine simply calls either the general triangulation routine or the one specialized to square periodic domains The domain is stored as M= (bxx bxy byx byy), and a vector, v, whose components are between zero and one has real position M*v

◆ PeriodicTriangulationNineSheeted()

void DelaunayCGAL::PeriodicTriangulationNineSheeted ( vector< pair< Point, int > > &  V,
Dscalar  bxx,
Dscalar  bxy,
Dscalar  byx,
Dscalar  byy 
)

Given a vector of points (in the form of pair<PDT::Point p ,int index>), explicitly constructing the covering and using CGAL's non-periodic routines.

Perform a periodic triangulation in a non-square domain. This routine constructs the nine-sheeted covering by hand, computes the triangulation for points in the central domain. After the routine is called, the class member allneighs will store a list of particle neighbors, each sorted in CW order

Parameters
VA complete set of the points to be triangulated along with their indices The domain is stored as M= (bxx bxy byx byy), and a vector, v, whose components are between zero and one has real position M*v

◆ PeriodicTriangulationSquareDomain()

void DelaunayCGAL::PeriodicTriangulationSquareDomain ( vector< pair< Point, int > > &  V,
Dscalar  boxX,
Dscalar  boxY 
)

Given a vector of points (in the form of pair<PDT::Point p ,int index>), fill the allneighs structure with the neighbor list.

Perform a periodic triangulation in a SQUARE domain

Parameters
VA complete set of the points to be triangulated along with their indices
boxXthe side length of the periodic domain in the x-direction boxY the side length of the periodic domain in the y-direction

After the routine is called, the class member allneighs will store a list of particle neighbors, each sorted in CW order

◆ LocalTriangulation()

bool DelaunayCGAL::LocalTriangulation ( const vector< pair< LPoint, int > > &  V,
vector< int > &  neighs 
)

given a similar vector of points, calculate the neighbors of the first point in a non-periodic domain.

Parameters
Va vector of pairs (Delaunay::Lpoint, particle index)
neighsthe desired output: a CW-ordered list of the particle indices that neighbor V[0]

The documentation for this class was generated from the following files: