Blender V4.3
BLI_delaunay_2d_test.cc File Reference
#include "testing/testing.h"
#include "MEM_guardedalloc.h"
#include "BLI_rand.h"
#include "BLI_time.h"
#include <fstream>
#include <iostream>
#include <sstream>
#include <type_traits>
#include "BLI_array.hh"
#include "BLI_math_boolean.hh"
#include "BLI_math_mpq.hh"
#include "BLI_math_vector_mpq_types.hh"
#include "BLI_vector.hh"
#include "BLI_delaunay_2d.hh"

Go to the source code of this file.

Namespaces

namespace  blender
 
namespace  blender::meshintersect
 

Macros

#define DO_CPP_TESTS   1
 
#define DO_TEXT_TESTS   0
 
#define DO_RANDOM_TESTS   0
 
#define SX(x)   ((math_to_double(x) - minx) * scale)
 
#define SY(y)   ((maxy - math_to_double(y)) * scale)
 

Functions

template<typename T >
CDT_input< Tblender::meshintersect::fill_input_from_string (const char *spec)
 
static int blender::meshintersect::get_orig_index (const Span< Vector< int > > out_to_orig, int orig_index)
 
template<typename T >
static double blender::meshintersect::math_to_double (const T)
 
template<>
double blender::meshintersect::math_to_double< double > (const double v)
 
template<typename T >
static T blender::meshintersect::math_abs (const T v)
 
template<>
double blender::meshintersect::math_abs (const double v)
 
template<typename T >
int blender::meshintersect::get_vertex_by_coord (const CDT_result< T > &out, double x, double y)
 
template<typename T >
int blender::meshintersect::get_output_edge_index (const CDT_result< T > &out, int out_index_1, int out_index_2)
 
template<typename T >
bool blender::meshintersect::output_edge_has_input_id (const CDT_result< T > &out, int out_edge_index, int in_edge_index)
 
template<typename T >
int blender::meshintersect::get_output_face_index (const CDT_result< T > &out, const Array< int > &poly)
 
template<typename T >
int blender::meshintersect::get_output_tri_index (const CDT_result< T > &out, int out_index_1, int out_index_2, int out_index_3)
 
template<typename T >
bool blender::meshintersect::output_face_has_input_id (const CDT_result< T > &out, int out_face_index, int in_face_index)
 
template<typename T >
std::ostream & blender::meshintersect::operator<< (std::ostream &os, const CDT_result< T > &r)
 
template<typename T >
void blender::meshintersect::graph_draw (const std::string &label, const Span< VecBase< T, 2 > > verts, const Span< std::pair< int, int > > edges, const Span< Vector< int > > faces)
 
template<typename T >
void expect_coord_near (const VecBase< T, 2 > &testco, const VecBase< T, 2 > &refco)
 
template<>
void expect_coord_near< double > (const double2 &testco, const double2 &refco)
 
template<typename T >
void empty_test ()
 
template<typename T >
void onept_test ()
 
template<typename T >
void twopt_test ()
 
template<typename T >
void threept_test ()
 
template<typename T >
void mixedpts_test ()
 
template<typename T >
void quad0_test ()
 
template<typename T >
void quad1_test ()
 
template<typename T >
void quad2_test ()
 
template<typename T >
void quad3_test ()
 
template<typename T >
void quad4_test ()
 
template<typename T >
void lineinsquare_test ()
 
template<typename T >
void lineholeinsquare_test ()
 
template<typename T >
void nestedholes_test ()
 
template<typename T >
void crosssegs_test ()
 
template<typename T >
void cutacrosstri_test ()
 
template<typename T >
void diamondcross_test ()
 
template<typename T >
void twodiamondscross_test ()
 
template<typename T >
void manycross_test ()
 
template<typename T >
void twoface_test ()
 
template<typename T >
void twoface2_test ()
 
template<typename T >
void overlapfaces_test ()
 
template<typename T >
void twosquaresoverlap_test ()
 
template<typename T >
void twofaceedgeoverlap_test ()
 
template<typename T >
void triintri_test ()
 
template<typename T >
void diamondinsquare_test ()
 
template<typename T >
void diamondinsquarewire_test ()
 
template<typename T >
void repeatedge_test ()
 
template<typename T >
void repeattri_test ()
 
template<typename T >
void square_o_test ()
 
 TEST (delaunay_d, Empty)
 
 TEST (delaunay_d, OnePt)
 
 TEST (delaunay_d, TwoPt)
 
 TEST (delaunay_d, ThreePt)
 
 TEST (delaunay_d, MixedPts)
 
 TEST (delaunay_d, Quad0)
 
 TEST (delaunay_d, Quad1)
 
 TEST (delaunay_d, Quad2)
 
 TEST (delaunay_d, Quad3)
 
 TEST (delaunay_d, Quad4)
 
 TEST (delaunay_d, LineInSquare)
 
 TEST (delaunay_d, LineHoleInSquare)
 
 TEST (delaunay_d, NestedHoles)
 
 TEST (delaunay_d, CrossSegs)
 
 TEST (delaunay_d, CutAcrossTri)
 
 TEST (delaunay_d, DiamondCross)
 
 TEST (delaunay_d, TwoDiamondsCross)
 
 TEST (delaunay_d, ManyCross)
 
 TEST (delaunay_d, TwoFace)
 
 TEST (delaunay_d, TwoFace2)
 
 TEST (delaunay_d, OverlapFaces)
 
 TEST (delaunay_d, TwoSquaresOverlap)
 
 TEST (delaunay_d, TwoFaceEdgeOverlap)
 
 TEST (delaunay_d, TriInTri)
 
 TEST (delaunay_d, DiamondInSquare)
 
 TEST (delaunay_d, DiamondInSquareWire)
 
 TEST (delaunay_d, RepeatEdge)
 
 TEST (delaunay_d, RepeatTri)
 
 TEST (delaunay_d, SquareO)
 

Variables

static bool blender::meshintersect::draw_append = false
 
 draw_append = true
 
constexpr bool DO_DRAW = false
 

Macro Definition Documentation

◆ DO_CPP_TESTS

#define DO_CPP_TESTS   1

Definition at line 17 of file BLI_delaunay_2d_test.cc.

◆ DO_RANDOM_TESTS

#define DO_RANDOM_TESTS   0

Definition at line 19 of file BLI_delaunay_2d_test.cc.

◆ DO_TEXT_TESTS

#define DO_TEXT_TESTS   0

Definition at line 18 of file BLI_delaunay_2d_test.cc.

◆ SX

#define SX ( x)    ((math_to_double(x) - minx) * scale)

◆ SY

#define SY ( y)    ((maxy - math_to_double(y)) * scale)

Function Documentation

◆ crosssegs_test()

◆ cutacrosstri_test()

◆ diamondcross_test()

◆ diamondinsquare_test()

◆ diamondinsquarewire_test()

template<typename T >
void diamondinsquarewire_test ( )

◆ empty_test()

template<typename T >
void empty_test ( )

Definition at line 406 of file BLI_delaunay_2d_test.cc.

References CDT_FULL, blender::meshintersect::delaunay_2d_calc(), and EXPECT_EQ().

Referenced by TEST().

◆ expect_coord_near()

template<typename T >
void expect_coord_near ( const VecBase< T, 2 > & testco,
const VecBase< T, 2 > & refco )

◆ expect_coord_near< double >()

template<>
void expect_coord_near< double > ( const double2 & testco,
const double2 & refco )

Definition at line 398 of file BLI_delaunay_2d_test.cc.

References e.

◆ lineholeinsquare_test()

◆ lineinsquare_test()

◆ manycross_test()

◆ mixedpts_test()

◆ nestedholes_test()

◆ onept_test()

template<typename T >
void onept_test ( )

◆ overlapfaces_test()

◆ quad0_test()

◆ quad1_test()

◆ quad2_test()

◆ quad3_test()

◆ quad4_test()

◆ repeatedge_test()

◆ repeattri_test()

◆ square_o_test()

◆ TEST() [1/29]

TEST ( delaunay_d ,
CrossSegs  )

Definition at line 1515 of file BLI_delaunay_2d_test.cc.

References crosssegs_test().

◆ TEST() [2/29]

TEST ( delaunay_d ,
CutAcrossTri  )

Definition at line 1520 of file BLI_delaunay_2d_test.cc.

References cutacrosstri_test().

◆ TEST() [3/29]

TEST ( delaunay_d ,
DiamondCross  )

Definition at line 1525 of file BLI_delaunay_2d_test.cc.

References diamondcross_test().

◆ TEST() [4/29]

TEST ( delaunay_d ,
DiamondInSquare  )

Definition at line 1570 of file BLI_delaunay_2d_test.cc.

References diamondinsquare_test().

◆ TEST() [5/29]

TEST ( delaunay_d ,
DiamondInSquareWire  )

Definition at line 1575 of file BLI_delaunay_2d_test.cc.

References diamondinsquarewire_test().

◆ TEST() [6/29]

TEST ( delaunay_d ,
Empty  )

Definition at line 1450 of file BLI_delaunay_2d_test.cc.

References empty_test().

◆ TEST() [7/29]

TEST ( delaunay_d ,
LineHoleInSquare  )

Definition at line 1505 of file BLI_delaunay_2d_test.cc.

References lineholeinsquare_test().

◆ TEST() [8/29]

TEST ( delaunay_d ,
LineInSquare  )

Definition at line 1500 of file BLI_delaunay_2d_test.cc.

References lineinsquare_test().

◆ TEST() [9/29]

TEST ( delaunay_d ,
ManyCross  )

Definition at line 1535 of file BLI_delaunay_2d_test.cc.

References manycross_test().

◆ TEST() [10/29]

TEST ( delaunay_d ,
MixedPts  )

Definition at line 1470 of file BLI_delaunay_2d_test.cc.

References mixedpts_test().

◆ TEST() [11/29]

TEST ( delaunay_d ,
NestedHoles  )

Definition at line 1510 of file BLI_delaunay_2d_test.cc.

References nestedholes_test().

◆ TEST() [12/29]

TEST ( delaunay_d ,
OnePt  )

Definition at line 1455 of file BLI_delaunay_2d_test.cc.

References onept_test().

◆ TEST() [13/29]

TEST ( delaunay_d ,
OverlapFaces  )

Definition at line 1550 of file BLI_delaunay_2d_test.cc.

References overlapfaces_test().

◆ TEST() [14/29]

TEST ( delaunay_d ,
Quad0  )

Definition at line 1475 of file BLI_delaunay_2d_test.cc.

References quad0_test().

◆ TEST() [15/29]

TEST ( delaunay_d ,
Quad1  )

Definition at line 1480 of file BLI_delaunay_2d_test.cc.

References quad1_test().

◆ TEST() [16/29]

TEST ( delaunay_d ,
Quad2  )

Definition at line 1485 of file BLI_delaunay_2d_test.cc.

References quad2_test().

◆ TEST() [17/29]

TEST ( delaunay_d ,
Quad3  )

Definition at line 1490 of file BLI_delaunay_2d_test.cc.

References quad3_test().

◆ TEST() [18/29]

TEST ( delaunay_d ,
Quad4  )

Definition at line 1495 of file BLI_delaunay_2d_test.cc.

References quad4_test().

◆ TEST() [19/29]

TEST ( delaunay_d ,
RepeatEdge  )

Definition at line 1580 of file BLI_delaunay_2d_test.cc.

References repeatedge_test().

◆ TEST() [20/29]

TEST ( delaunay_d ,
RepeatTri  )

Definition at line 1585 of file BLI_delaunay_2d_test.cc.

References repeattri_test().

◆ TEST() [21/29]

TEST ( delaunay_d ,
SquareO  )

Definition at line 1590 of file BLI_delaunay_2d_test.cc.

References square_o_test().

◆ TEST() [22/29]

TEST ( delaunay_d ,
ThreePt  )

Definition at line 1465 of file BLI_delaunay_2d_test.cc.

References threept_test().

◆ TEST() [23/29]

TEST ( delaunay_d ,
TriInTri  )

Definition at line 1565 of file BLI_delaunay_2d_test.cc.

References triintri_test().

◆ TEST() [24/29]

TEST ( delaunay_d ,
TwoDiamondsCross  )

Definition at line 1530 of file BLI_delaunay_2d_test.cc.

References twodiamondscross_test().

◆ TEST() [25/29]

TEST ( delaunay_d ,
TwoFace  )

Definition at line 1540 of file BLI_delaunay_2d_test.cc.

References twoface_test().

◆ TEST() [26/29]

TEST ( delaunay_d ,
TwoFace2  )

Definition at line 1545 of file BLI_delaunay_2d_test.cc.

References twoface2_test().

◆ TEST() [27/29]

TEST ( delaunay_d ,
TwoFaceEdgeOverlap  )

Definition at line 1560 of file BLI_delaunay_2d_test.cc.

References twofaceedgeoverlap_test().

◆ TEST() [28/29]

TEST ( delaunay_d ,
TwoPt  )

Definition at line 1460 of file BLI_delaunay_2d_test.cc.

References twopt_test().

◆ TEST() [29/29]

TEST ( delaunay_d ,
TwoSquaresOverlap  )

Definition at line 1555 of file BLI_delaunay_2d_test.cc.

References twosquaresoverlap_test().

◆ threept_test()

◆ triintri_test()

◆ twodiamondscross_test()

◆ twoface2_test()

◆ twoface_test()

◆ twofaceedgeoverlap_test()

◆ twopt_test()

◆ twosquaresoverlap_test()

Variable Documentation

◆ DO_DRAW

◆ draw_append

draw_append = true

Definition at line 379 of file BLI_delaunay_2d_test.cc.