Files
Include/EGkGeoConst.h
Dario Sassi 8fc265c399 Include :
- aggiornamento prototipi
- aggiunta costante generale PREC_SCALE_COEFF.
2025-11-24 10:03:27 +01:00

66 lines
2.4 KiB
C

//----------------------------------------------------------------------------
// EgalTech 2013-2025
//----------------------------------------------------------------------------
// File : EGkGeoConst.h Data : 22.11.25 Versione : 2.7k4
// Contenuto : Costanti generali per calcoli geometrici.
//
//
//
// Modifiche : 04.01.12 DS Creazione modulo.
// 23.11.19 DS Aggiunta costante EPS_TRIA_H.
// 22.11.25 DS Aggiunta costante PREC_SCALE_COEFF.
//
//----------------------------------------------------------------------------
#pragma once
//----------------- Costanti generali ----------------------------------------
// unità di lunghezza di riferimento : millimetro
const double ONEMM = 1.0 ;
const double ONEINCH = 25.4 ;
// epsilon per lunghezze, versori e parametri
const double EPS_SMALL = 1e-3 ;
const double EPS_TRIA_H = 1e-6 ;
const double EPS_ZERO = 1e-8 ;
const double EPS_PARAM = 1e-8 ;
const double SPAN_PARAM = 1.0 ; // intervallo di curva o superficie semplici
const double SQ_EPS_SMALL = EPS_SMALL * EPS_SMALL ;
const double SQ_EPS_TRIA_H = EPS_TRIA_H * EPS_TRIA_H ;
const double SQ_EPS_ZERO = EPS_ZERO * EPS_ZERO ;
// infinito per lunghezze
const double INFINITO = 1e10 ;
const double SQ_INFINITO = INFINITO * INFINITO ;
// coefficiente componente di vettore largamente predominante
const double KV_BIG = 1e5 ;
// conversione da gradi a radianti e viceversa
const double PIGRECO = 3.14159265358979323846 ;
const double DEGTORAD = PIGRECO / 180. ;
const double RADTODEG = 180. / PIGRECO ;
// epsilon per gli angoli (in gradi)
const double EPS_ANG_SMALL = 1e-3 ;
const double EPS_ANG_ZERO = 1e-7 ;
const double SIN_EPS_ANG_SMALL = EPS_ANG_SMALL * DEGTORAD ;
const double SIN_EPS_ANG_ZERO = EPS_ANG_ZERO * DEGTORAD ;
const double COS_ORTO_ANG_SMALL = SIN_EPS_ANG_SMALL ;
const double COS_ORTO_ANG_ZERO = SIN_EPS_ANG_ZERO ;
// angoli notevoli (in gradi)
const double ANG_RIGHT = 90 ;
const double ANG_STRAIGHT = 180 ;
const double ANG_FULL = 360 ;
// altre costanti
const double SQRT2 = 1.41421356237309504880 ;
const double SQRT1_2 = 1 / SQRT2 ;
const double SQRT3 = 1.73205080756887729353 ;
const double SQRT1_3 = 1 / SQRT3 ;
// coefficiente di scalatura per aumentare precisione dei calcoli
const double PREC_SCALE_COEFF = 1024 ;