| Perspective3D_api Documentation Perspective3D

Classes | Espaces de nommage | Macros | Définitions de type | Fonctions | Variables
Référence du fichier perspective_def.h

Macros préprocesseur de l'API. Plus de détails...

`#include <string>`
`#include <new>`
`#include <cfloat>`
`#include <cmath>`
`#include <type_traits>`
`#include "perspective_sys.h"`
Graphe des dépendances par inclusion de perspective_def.h:
Ce graphe montre quels fichiers incluent directement ou indirectement ce fichier :

Aller au code source de ce fichier.

## Classes
class | Perspective3D::PBase

## Espaces de nommage
| Perspective3D
| Espace de nom de l'API 3D.
| Perspective3D::TolerancesP3D

## Macros
#define | PI 3.141592653589793238462643
#define | PIi 0.3183098861837907
#define | RAD 57.29577951308232
#define | DTOR 0.017453292519943295
#define | DEG_RAD(x) (x*DTOR)
#define | RAD_DEG(x) (x*RAD)
#define | TYPE_PFLOAT_DOUBLE
#define | EPSILON_FIXE 0.0001
#define | EPSILON_FIXE_LARGE 0.001
#define | MODULOF fmod
#define | RCARREF sqrt
#define | RCUBIQUE(X) (pow(X, 1.0/3.0))
#define | HYPOTF hypot
#define | POSITIFD fabs
#define | SINF sin
#define | ASINF sinf
#define | COSF cos
#define | ACOSF acos
#define | POWF pow
#define | TANF tan
#define | ATANF atan
#define | ATAN2F atan2
#define | FLOORF floor
#define | CEILF ceil
#define | PFLOAT_MAX DBL_MAX
#define | PFLOAT_MIN -DBL_MAX
#define | pfloatc const pfloat
#define | POW2(X) ((X)*(X))
#define | PNAN NAN
#define | PISNAN(x) (x!=x)
#define | PISINF(x) (fabs(x) > PFLOAT_MAX)
#define | FPU_ERROR(x) (PISINF(x) || PISNAN(x))
#define | IDNUL pint(-1)
#define | IDERR pint(INT32_MAX)
#define | COORD0 0.
#define | COORDNUL PFLOAT_MIN
#define | COORDNULP PFLOAT_MAX
#define | VUE_EXTRUSION Perspective3D::vues2D_t::VUEHAUT
#define | VUE_REVOLUTION Perspective3D::vues2D_t::VUECOTE
#define | COULEUR_POINTS 125, 180, 220
#define | COULEUR_POINTS_F 0.488f, 0.703f, 0.859f
#define | COULEUR_SELECT_POINTS 28, 115, 176
#define | COULEUR_SELECT_POINTS_F 0.101f, 0.449f, 0.687f
#define | COULEUR_SELECT_LIGNES 70, 70, 70
#define | COULEUR_SELECT_LIGNES_F 0.274f, 0.274f, 0.274f
#define | COULEUR_LIGNES 130, 130, 130 /* Lignes de contour des surfaces. */
#define | COULEUR_LIGNES_F 0.508f, 0.508f, 0.508f
#define | COULEUR_ARRETES 120, 120, 120 /* Couleur des arrêtes des polygones (triangles) */
#define | COULEUR_ARRETES_F 0.469f, 0.469f, 0.469f
#define | COULEUR_REP_SURFACES 130, 40, 200
#define | COULEUR_REP_SURFACES_F 0.508f, 0.156f, 0.781f
#define | CompareX(a, b, c) (POSITIFD((a-b)) < c) /* Comparaison avec l'espilon donné en argument. */
#define | CompareE(a, b) (CompareX(a, b, EPSILON_FIXE)) /* Comparaison avec Epsilon fixe */
#define | CompareED(a, b) (CompareX(a, b, EPSILON_FIXE_LARGE)) /* Comparaison avec Epsilon fixe élargi */
#define | CompareN(a, b) (CompareX(a, b, TolerancesP3D::ToleranceCoords)) /* Comparaison approximative générale (défini par l'utilisateur) */
#define | PENUM_DECL_OPS(NOM)
#define | PENUM_CAST_INT(VAL) static_cast<puint>(VAL)

## Définitions de type
typedef double | pfloat

## Fonctions
void | Perspective3D::TolerancesP3D::Init (pfloat t_xyz)

## Variables
PSYS_TLS pfloat | Perspective3D::TolerancesP3D::EpsilonCoords
PSYS_TLS pfloat | Perspective3D::TolerancesP3D::ToleranceCoordsLarge
PSYS_TLS pfloat | Perspective3D::TolerancesP3D::EpsilonAngles
PSYS_TLS pfloat | Perspective3D::TolerancesP3D::EpsilonVecteurs
PSYS_TLS pfloat | Perspective3D::TolerancesP3D::ToleranceCoords
PSYS_TLS pfloat | Perspective3D::TolerancesP3D::ToleranceCoords_X
PSYS_TLS pfloat | Perspective3D::TolerancesP3D::ToleranceCoords_Y
PSYS_TLS pfloat | Perspective3D::TolerancesP3D::ToleranceCoords_Z

## Description détaillée

Macros préprocesseur de l'API.

Auteur
  Florian Joncour

Date
  2013-2018

Copyright
  Ces sources font partie de l'interface de programmation pour la bibliothèque Perspective3D, un outils de modélisation 3D à partir de vues orthographiques 2D. Ces sources sont fournies à titre gracieux, l'utilisateur a la liberté de les exploiter pour créer des applications dérivées à condition de respecter les conditions suivantes:

      1) Ces sources ne peuvent être modifiées.
      2) Le dérivé ne peut être exploité à des fins commerciaux.
      3) Aucune licence commerciale de la bibliothèque dont est tiré ce fichier ne peut être rendue publique.
      4) Toute application exploitant la présente bibliothèque doit explicitement faire mention de l'usage et du rôle de Perspective3D.

Ces conditions peuvent toutefois être modifiées avec l'accord de l'auteur.

## Documentation des macros

## ◆ ACOSF

#define ACOSF acos

## ◆ ASINF

#define ASINF sinf

## ◆ ATAN2F

#define ATAN2F atan2

## ◆ ATANF

#define ATANF atan

## ◆ CEILF

#define CEILF ceil

## ◆ CompareE

#define CompareE | ( |  | a,
|  |  | b
| ) |  | (CompareX(a, b, EPSILON_FIXE)) /* Comparaison avec Epsilon fixe */

## ◆ CompareED

#define CompareED | ( |  | a,
|  |  | b
| ) |  | (CompareX(a, b, EPSILON_FIXE_LARGE)) /* Comparaison avec Epsilon fixe élargi */

## ◆ CompareN

#define CompareN | ( |  | a,
|  |  | b
| ) |  | (CompareX(a, b, TolerancesP3D::ToleranceCoords)) /* Comparaison approximative générale (défini par l'utilisateur) */

## ◆ CompareX

#define CompareX | ( |  | a,
|  |  | b,
|  |  | c
| ) |  | (POSITIFD((a-b)) < c) /* Comparaison avec l'espilon donné en argument. */

## ◆ COORD0

#define COORD0 0.

## ◆ COORDNUL

#define COORDNUL PFLOAT_MIN

## ◆ COORDNULP

#define COORDNULP PFLOAT_MAX

## ◆ COSF

#define COSF cos

## ◆ COULEUR_ARRETES

#define COULEUR_ARRETES 120, 120, 120 /* Couleur des arrêtes des polygones (triangles) */

## ◆ COULEUR_ARRETES_F

#define COULEUR_ARRETES_F 0.469f, 0.469f, 0.469f

## ◆ COULEUR_LIGNES

#define COULEUR_LIGNES 130, 130, 130 /* Lignes de contour des surfaces. */

## ◆ COULEUR_LIGNES_F

#define COULEUR_LIGNES_F 0.508f, 0.508f, 0.508f

## ◆ COULEUR_POINTS

#define COULEUR_POINTS 125, 180, 220

## ◆ COULEUR_POINTS_F

#define COULEUR_POINTS_F 0.488f, 0.703f, 0.859f

## ◆ COULEUR_REP_SURFACES

#define COULEUR_REP_SURFACES 130, 40, 200

## ◆ COULEUR_REP_SURFACES_F

#define COULEUR_REP_SURFACES_F 0.508f, 0.156f, 0.781f

## ◆ COULEUR_SELECT_LIGNES

#define COULEUR_SELECT_LIGNES 70, 70, 70

## ◆ COULEUR_SELECT_LIGNES_F

#define COULEUR_SELECT_LIGNES_F 0.274f, 0.274f, 0.274f

## ◆ COULEUR_SELECT_POINTS

#define COULEUR_SELECT_POINTS 28, 115, 176

## ◆ COULEUR_SELECT_POINTS_F

#define COULEUR_SELECT_POINTS_F 0.101f, 0.449f, 0.687f

## ◆ DEG_RAD

#define DEG_RAD | ( |  | x | ) | (x*DTOR)

## ◆ DTOR

#define DTOR 0.017453292519943295

## ◆ EPSILON_FIXE

#define EPSILON_FIXE 0.0001

## ◆ EPSILON_FIXE_LARGE

#define EPSILON_FIXE_LARGE 0.001

## ◆ FLOORF

#define FLOORF floor

## ◆ FPU_ERROR

#define FPU_ERROR | ( |  | x | ) | (PISINF(x) || PISNAN(x))

## ◆ HYPOTF

#define HYPOTF hypot

## ◆ IDERR

#define IDERR pint(INT32_MAX)

## ◆ IDNUL

#define IDNUL pint(-1)

## ◆ MODULOF

#define MODULOF fmod

## ◆ PENUM_CAST_INT

#define PENUM_CAST_INT | ( |  | VAL | ) | static_cast<puint>(VAL)

## ◆ PENUM_DECL_OPS

#define PENUM_DECL_OPS | ( |  | NOM | ) |

Valeur :
F_INLINE NOM operator| (NOM c1, NOM c2) { return static_cast<NOM>(static_cast<std::underlying_type<NOM>::type>(c1) | static_cast<std::underlying_type<NOM>::type>(c2)); } \
F_INLINE NOM operator|= (NOM &c1, NOM c2) { c1 = static_cast<NOM>(static_cast<std::underlying_type<NOM>::type>(c1) | static_cast<std::underlying_type<NOM>::type>(c2)); return c1; } \
F_INLINE NOM operator&= (NOM &c1, NOM c2) { c1 = static_cast<NOM>(static_cast<std::underlying_type<NOM>::type>(c1) & static_cast<std::underlying_type<NOM>::type>(c2)); return c1; } \
F_INLINE unsigned int operator& (NOM c1, NOM c2) { return (static_cast<unsigned int>(c1) & static_cast<unsigned int>(c2)); } \
F_INLINE bool operator== (NOM c1, NOM c2) { return (static_cast<std::underlying_type<NOM>::type>(c1) == static_cast<std::underlying_type<NOM>::type>(c2)); } \
F_INLINE NOM operator^ (NOM c1, NOM c2) { return static_cast<NOM>(static_cast<std::underlying_type<NOM>::type>(c1) ^ static_cast<std::underlying_type<NOM>::type>(c2)); } \
F_INLINE NOM operator^= (NOM &c1, NOM c2) { c1 = static_cast<NOM>(static_cast<std::underlying_type<NOM>::type>(c1) ^ static_cast<std::underlying_type<NOM>::type>(c2)); return c1; }
F_INLINE
#define F_INLINE
Attribut de fonction force inline (GCC ou Clang)).
Definition: perspective_sys.h:454

## ◆ PFLOAT_MAX

#define PFLOAT_MAX DBL_MAX

## ◆ PFLOAT_MIN

#define PFLOAT_MIN -DBL_MAX

## ◆ pfloatc

#define pfloatc const pfloat

## ◆ PI

#define PI 3.141592653589793238462643

## ◆ PIi

#define PIi 0.3183098861837907

## ◆ PISINF

#define PISINF | ( |  | x | ) | (fabs(x) > PFLOAT_MAX)

## ◆ PISNAN

#define PISNAN | ( |  | x | ) | (x!=x)

## ◆ PNAN

#define PNAN NAN

## ◆ POSITIFD

#define POSITIFD fabs

## ◆ POW2

#define POW2 | ( |  | X | ) | ((X)*(X))

## ◆ POWF

#define POWF pow

## ◆ RAD

#define RAD 57.29577951308232

## ◆ RAD_DEG

#define RAD_DEG | ( |  | x | ) | (x*RAD)

## ◆ RCARREF

#define RCARREF sqrt

## ◆ RCUBIQUE

#define RCUBIQUE | ( |  | X | ) | (pow(X, 1.0/3.0))

## ◆ SINF

#define SINF sin

## ◆ TANF

#define TANF tan

## ◆ TYPE_PFLOAT_DOUBLE

#define TYPE_PFLOAT_DOUBLE

## ◆ VUE_EXTRUSION

#define VUE_EXTRUSION Perspective3D::vues2D_t::VUEHAUT

## ◆ VUE_REVOLUTION

#define VUE_REVOLUTION Perspective3D::vues2D_t::VUECOTE

## Documentation des définitions de type

## ◆ pfloat

typedef double pfloat