Blender V5.0
delaunay_2d.cc File Reference
#include <algorithm>
#include <atomic>
#include <fstream>
#include <iostream>
#include <sstream>
#include "BLI_array.hh"
#include "BLI_linklist.h"
#include "BLI_math_boolean.hh"
#include "BLI_math_vector_mpq_types.hh"
#include "BLI_set.hh"
#include "BLI_task.hh"
#include "BLI_vector.hh"
#include "BLI_delaunay_2d.hh"

Go to the source code of this file.

Classes

struct  blender::meshintersect::SymEdge< T >
struct  blender::meshintersect::FatCo< T >
struct  blender::meshintersect::FatCo< double >
struct  blender::meshintersect::CDTVert< T >
struct  blender::meshintersect::CDTEdge< T >
struct  blender::meshintersect::CDTFace< T >
struct  blender::meshintersect::CDTArrangement< T >
class  blender::meshintersect::CDT_state< T >
class  blender::meshintersect::SiteInfo< T >
class  blender::meshintersect::CrossData< T >
struct  blender::meshintersect::EdgeToSort< T >

Namespaces

namespace  blender
namespace  blender::meshintersect

Macros

#define DEBUG_CDT
#define SX(x)
#define SY(y)

Functions

template<typename T>
T blender::meshintersect::math_abs (const T v)
template<>
double blender::meshintersect::math_abs< double > (const double v)
template<typename T>
double blender::meshintersect::math_to_double (const T)
template<>
double blender::meshintersect::math_to_double< double > (const double v)
template<typename T>
SymEdge< T > * blender::meshintersect::sym (const SymEdge< T > *se)
template<typename T>
SymEdge< T > * blender::meshintersect::prev (const SymEdge< T > *se)
template<typename T>
std::ostream & blender::meshintersect::operator<< (std::ostream &stream, const FatCo< T > &co)
template<typename T>
std::string blender::meshintersect::vertname (const CDTVert< T > *v)
static std::string blender::meshintersect::trunc_ptr (const void *p)
template<typename T>
std::string blender::meshintersect::sename (const SymEdge< T > *se)
template<typename T>
std::ostream & blender::meshintersect::operator<< (std::ostream &os, const SymEdge< T > &se)
template<typename T>
std::ostream & blender::meshintersect::operator<< (std::ostream &os, const SymEdge< T > *se)
template<typename T>
std::string blender::meshintersect::short_se_dump (const SymEdge< T > *se)
template<typename T>
std::ostream & blender::meshintersect::operator<< (std::ostream &os, const CDT_state< T > &cdt_state)
template<typename T>
void blender::meshintersect::cdt_draw (const std::string &label, const CDTArrangement< T > &cdt)
template<typename T>
static int blender::meshintersect::filtered_orient2d (const FatCo< T > &a, const FatCo< T > &b, const FatCo< T > &c)
template<>
int blender::meshintersect::filtered_orient2d< double > (const FatCo< double > &a, const FatCo< double > &b, const FatCo< double > &c)
template<typename T>
static int blender::meshintersect::filtered_incircle (const FatCo< T > &a, const FatCo< T > &b, const FatCo< T > &c, const FatCo< T > &d)
template<>
int blender::meshintersect::filtered_incircle< double > (const FatCo< double > &a, const FatCo< double > &b, const FatCo< double > &c, const FatCo< double > &d)
template<typename T>
static bool blender::meshintersect::in_line (const FatCo< T > &a, const FatCo< T > &b, const FatCo< T > &c)
template<>
bool blender::meshintersect::in_line< double > (const FatCo< double > &a, const FatCo< double > &b, const FatCo< double > &c)
static bool blender::meshintersect::id_range_in_list (const blender::Set< int > &id_list, int range_start, int range_end)
static void blender::meshintersect::add_to_input_ids (blender::Set< int > &dst, int input_id)
static void blender::meshintersect::add_list_to_input_ids (blender::Set< int > &dst, const blender::Set< int > &src)
template<typename T>
bool blender::meshintersect::is_border_edge (const CDTEdge< T > *e, const CDT_state< T > *cdt)
template<typename T>
bool blender::meshintersect::is_constrained_edge (const CDTEdge< T > *e)
template<typename T>
bool blender::meshintersect::is_deleted_edge (const CDTEdge< T > *e)
template<typename T>
bool blender::meshintersect::is_original_vert (const CDTVert< T > *v, CDT_state< T > *cdt)
template<typename T>
SymEdge< T > * blender::meshintersect::find_symedge_between_verts (const CDTVert< T > *v1, const CDTVert< T > *v2)
template<typename T>
SymEdge< T > * blender::meshintersect::find_symedge_with_face (const CDTVert< T > *v, const CDTFace< T > *f)
template<typename T>
bool blender::meshintersect::exists_edge (const CDTVert< T > *v1, const CDTVert< T > *v2)
template<typename T>
bool blender::meshintersect::vert_touches_face (const CDTVert< T > *v, const CDTFace< T > *f)
template<typename T>
bool blender::meshintersect::site_lexicographic_sort (const SiteInfo< T > &a, const SiteInfo< T > &b)
template<typename T>
void blender::meshintersect::find_site_merges (Array< SiteInfo< T > > &sites)
template<typename T>
bool blender::meshintersect::vert_left_of_symedge (CDTVert< T > *v, SymEdge< T > *se)
template<typename T>
bool blender::meshintersect::vert_right_of_symedge (CDTVert< T > *v, SymEdge< T > *se)
template<typename T>
bool blender::meshintersect::dc_tri_valid (SymEdge< T > *se, SymEdge< T > *basel, SymEdge< T > *basel_sym)
template<typename T>
void blender::meshintersect::dc_tri (CDTArrangement< T > *cdt, Array< SiteInfo< T > > &sites, int start, int end, SymEdge< T > **r_le, SymEdge< T > **r_re)
template<typename T>
void blender::meshintersect::dc_triangulate (CDTArrangement< T > *cdt, Array< SiteInfo< T > > &sites)
template<typename T>
void blender::meshintersect::initial_triangulation (CDTArrangement< T > *cdt)
template<typename T>
static void blender::meshintersect::re_delaunay_triangulate (CDTArrangement< T > *cdt, SymEdge< T > *se)
template<typename T>
int blender::meshintersect::tri_orient (const SymEdge< T > *t)
template<typename T>
bool blender::meshintersect::get_next_crossing_from_vert (CDT_state< T > *cdt_state, CrossData< T > *cd, CrossData< T > *cd_next, const CDTVert< T > *v2)
template<typename T>
void blender::meshintersect::fill_crossdata_for_through_vert (CDTVert< T > *v, SymEdge< T > *cd_out, CrossData< T > *cd, CrossData< T > *cd_next)
template<typename T>
void blender::meshintersect::fill_crossdata_for_intersect (const FatCo< T > &curco, const CDTVert< T > *v2, SymEdge< T > *t, CrossData< T > *cd, CrossData< T > *cd_next, const T epsilon)
template<typename T>
void blender::meshintersect::get_next_crossing_from_edge (CrossData< T > *cd, CrossData< T > *cd_next, const CDTVert< T > *v2, const T epsilon)
template<typename T>
void blender::meshintersect::dump_crossings (const Span< CrossData< T > > crossings)
template<typename T>
void blender::meshintersect::add_edge_constraint (CDT_state< T > *cdt_state, CDTVert< T > *v1, CDTVert< T > *v2, int input_id, LinkNode **r_edges)
template<typename T>
void blender::meshintersect::add_edge_constraints (CDT_state< T > *cdt_state, const CDT_input< T > &input)
template<typename T>
void blender::meshintersect::add_face_ids (CDT_state< T > *cdt_state, SymEdge< T > *face_symedge, int face_id, int fedge_start, int fedge_end)
static int blender::meshintersect::power_of_10_greater_equal_to (int x)
template<typename T>
int blender::meshintersect::add_face_constraints (CDT_state< T > *cdt_state, const CDT_input< T > &input, CDT_output_type output_type)
template<typename T>
void blender::meshintersect::dissolve_symedge (CDT_state< T > *cdt_state, SymEdge< T > *se)
template<typename T>
void blender::meshintersect::remove_non_constraint_edges (CDT_state< T > *cdt_state)
template<typename T>
void blender::meshintersect::remove_non_constraint_edges_leave_valid_bmesh (CDT_state< T > *cdt_state)
template<typename T>
void blender::meshintersect::remove_outer_edges_until_constraints (CDT_state< T > *cdt_state)
template<typename T>
void blender::meshintersect::remove_faces_in_holes (CDT_state< T > *cdt_state)
template<typename T>
void blender::meshintersect::detect_holes (CDT_state< T > *cdt_state)
template<typename T>
void blender::meshintersect::prepare_cdt_for_output (CDT_state< T > *cdt_state, const CDT_output_type output_type)
template<typename T>
CDT_result< Tblender::meshintersect::get_cdt_output (CDT_state< T > *cdt_state, const CDT_input< T >, CDT_output_type output_type)
template<typename T>
void blender::meshintersect::add_input_verts (CDT_state< T > *cdt_state, const CDT_input< T > &input)
template<typename T>
CDT_result< Tblender::meshintersect::delaunay_calc (const CDT_input< T > &input, CDT_output_type output_type)
CDT_result< double > blender::meshintersect::delaunay_2d_calc (const CDT_input< double > &input, CDT_output_type output_type)

Macro Definition Documentation

◆ DEBUG_CDT

#define DEBUG_CDT

Definition at line 353 of file delaunay_2d.cc.

◆ SX

#define SX ( x)

◆ SY

#define SY ( y)