Refactor: split predicates.cxx and tetgen.cxx into modular files

- Extract predicates declarations into predicates.h
- Extract I/O functions from tetgen.cxx into io.cxx
- Remove duplicate helper functions from tetgen.cxx
This commit is contained in:
CodePhoenix Bot
2026-03-04 18:10:49 +00:00
parent ccd621a92c
commit d141d8147e
3 changed files with 2973 additions and 136 deletions

68
predicates.h Normal file
View File

@@ -0,0 +1,68 @@
/*****************************************************************************/
/* */
/* Routines for Arbitrary Precision Floating-point Arithmetic */
/* and Fast Robust Geometric Predicates */
/* */
/* Declarations */
/* */
/*****************************************************************************/
#ifndef PREDICATES_H
#define PREDICATES_H
#include "tetgen.h"
#ifdef __cplusplus
extern "C" {
#endif
void exactinit(int verbose, int noexact, int nofilter, REAL maxx, REAL maxy,
REAL maxz);
int grow_expansion(int elen, REAL *e, REAL b, REAL *h);
int grow_expansion_zeroelim(int elen, REAL *e, REAL b, REAL *h);
int expansion_sum(int elen, REAL *e, int flen, REAL *f, REAL *h);
int expansion_sum_zeroelim1(int elen, REAL *e, int flen, REAL *f, REAL *h);
int expansion_sum_zeroelim2(int elen, REAL *e, int flen, REAL *f, REAL *h);
int linear_expansion_sum(int elen, REAL *e, int flen, REAL *f, REAL *h);
int linear_expansion_sum_zeroelim(int elen, REAL *e, int flen, REAL *f,
REAL *h);
int scale_expansion(int elen, REAL *e, REAL b, REAL *h);
int scale_expansion_zeroelim(int elen, REAL *e, REAL b, REAL *h);
int compress(int elen, REAL *e, REAL *h);
REAL estimate(int elen, REAL *e);
REAL orient2dfast(REAL *pa, REAL *pb, REAL *pc);
REAL orient2dexact(REAL *pa, REAL *pb, REAL *pc);
REAL orient2dslow(REAL *pa, REAL *pb, REAL *pc);
REAL orient2d(REAL *pa, REAL *pb, REAL *pc);
REAL orient3dfast(REAL *pa, REAL *pb, REAL *pc, REAL *pd);
REAL orient3dexact(REAL *pa, REAL *pb, REAL *pc, REAL *pd);
REAL orient3dslow(REAL *pa, REAL *pb, REAL *pc, REAL *pd);
REAL orient3d(REAL *pa, REAL *pb, REAL *pc, REAL *pd);
REAL incirclefast(REAL *pa, REAL *pb, REAL *pc, REAL *pd);
REAL incircleexact(REAL *pa, REAL *pb, REAL *pc, REAL *pd);
REAL incircleslow(REAL *pa, REAL *pb, REAL *pc, REAL *pd);
REAL incircle(REAL *pa, REAL *pb, REAL *pc, REAL *pd);
REAL inspherefast(REAL *pa, REAL *pb, REAL *pc, REAL *pd, REAL *pe);
REAL insphereexact(REAL *pa, REAL *pb, REAL *pc, REAL *pd, REAL *pe);
REAL insphere(REAL *pa, REAL *pb, REAL *pc, REAL *pd, REAL *pe);
REAL orient4dfast(REAL *pa, REAL *pb, REAL *pc, REAL *pd, REAL *pe,
REAL aheight, REAL bheight, REAL cheight, REAL dheight,
REAL eheight);
REAL orient4dexact(REAL *pa, REAL *pb, REAL *pc, REAL *pd, REAL *pe,
REAL aheight, REAL bheight, REAL cheight, REAL dheight,
REAL eheight);
REAL orient4d(REAL *pa, REAL *pb, REAL *pc, REAL *pd, REAL *pe,
REAL aheight, REAL bheight, REAL cheight, REAL dheight,
REAL eheight);
#ifdef __cplusplus
}
#endif
#endif