Defines | Functions
core/vgl/vgl_clip.txx File Reference
#include "vgl_clip.h"
#include <vcl_cstdlib.h>
#include <vcl_cstdio.h>
#include <vcl_algorithm.h>

Go to the source code of this file.

Defines

#define vgl_clip_txx_
#define VGL_CLIP_INSTANTIATE(T)

Functions

template<class T >
bool vgl_clip_lineseg_to_line (T &x1, T &y1, T &x2, T &y2, T a, T b, T c)
 clips away the portion where ax+by+c<0. return false if nothing left.
template<class T >
bool vgl_clip_line_to_box (T a, T b, T c, T x1, T y1, T x2, T y2, T &bx, T &by, T &ex, T &ey)
 clip line ax+by+c=0 to given box. return false if no intersection.
template<class T >
vgl_polygon< T > vgl_clip (vgl_polygon< T > const &poly1, vgl_polygon< T > const &poly2, vgl_clip_type op, int *p_retval)
 Clip a polygon against another polygon.
template<class T >
vgl_polygon< T > vgl_clip (vgl_polygon< T > const &poly1, vgl_polygon< T > const &poly2, vgl_clip_type op)
 Clip a polygon against another polygon.

Detailed Description

Author:
fsm

Definition in file vgl_clip.txx.


Define Documentation

#define VGL_CLIP_INSTANTIATE (   T)
Value:
template vgl_polygon<T > vgl_clip(vgl_polygon<T >const&,vgl_polygon<T >const&,vgl_clip_type); \
template bool vgl_clip_lineseg_to_line(T&,T&,T&,T&,T,T,T); \
template bool vgl_clip_line_to_box(T,T,T,T,T,T,T,T&,T&,T&,T&); \
template vgl_line_segment_2d<T > vgl_clip_line_to_box(vgl_line_2d<T >const&,vgl_box_2d<T >const&)

Definition at line 231 of file vgl_clip.txx.

#define vgl_clip_txx_

Definition at line 3 of file vgl_clip.txx.


Function Documentation

template<class T >
vgl_polygon<T> vgl_clip ( vgl_polygon< T > const &  poly1,
vgl_polygon< T > const &  poly2,
vgl_clip_type  op,
int *  p_retval 
)

Clip a polygon against another polygon.

Same as vgl_clip( const vgl_polygon<T>& poly1, const vgl_polygon<T>& poly2, vgl_clip_type op = vgl_clip_type_intersect ); but where the fourth parameter is a return flag which is 1 if success, or 0 if the operation faced a geometric degeneracy which could not be handled. In this case, it might be necessary to perturb the input with a tiny amount of random noise and try again.

Definition at line 143 of file vgl_clip.txx.

template<class T >
vgl_polygon<T> vgl_clip ( const vgl_polygon< T > &  poly1,
const vgl_polygon< T > &  poly2,
vgl_clip_type  op = vgl_clip_type_intersect 
)

Clip a polygon against another polygon.

The two polygons poly1 and poly2 are combined with each other. The operation (intersection, union, etc) is given by parameter op.

Note:
The implementation of this code is based on Alan Murta's GPC library (http://www.cs.man.ac.uk/aig/staff/alan/software/gpc.html) which is free for non-commercial use.

In order to be able to use it, make sure to satisfy the copyright notice, then activate the "BUILD_NONCOMMERCIAL" compiler option.

Definition at line 224 of file vgl_clip.txx.

template<class T >
bool vgl_clip_line_to_box ( a,
b,
c,
x1,
y1,
x2,
y2,
T &  bx,
T &  by,
T &  ex,
T &  ey 
)

clip line ax+by+c=0 to given box. return false if no intersection.

Definition at line 40 of file vgl_clip.txx.

template<class T >
bool vgl_clip_lineseg_to_line ( T &  x1,
T &  y1,
T &  x2,
T &  y2,
a,
b,
c 
)

clips away the portion where ax+by+c<0. return false if nothing left.

Definition at line 14 of file vgl_clip.txx.