| Perspective3D_api Documentation Perspective3D

perspective_api.h
Aller à la documentation de ce fichier.
1
20 #ifndef PERSPECTIVE_API
21 #define PERSPECTIVE_API
22
23 #include <string>
24 #include "perspective_sys.h" /* Fera planter la compilation si l'on est pas sur un système ou une architecture supportée. */
25 #include "perspective_def.h"
26 #include "perspective_types.h"
27 #include "perspective_div2.h"
28
32 namespace libPerspective
33 {
37 DLL_API const char *Nom();
38
42 DLL_API const char *VersionStr();
43
47 DLL_API pint VersionInt();
48
52 DLL_API const char *Plateforme();
53
57 DLL_API const char *APropos();
58
62 DLL_API const char *TexteLicence();
63
68 DLL_API bool SupportMultiThreading();
69
73 DLL_API puint LongueurCleActivationChiffre();
74
78 DLL_API puint LongueurCleActivationClair();
79
84 DLL_API void ChiffrementLicence(const pint8 *source, pint8 *dest, puint64 sel);
85
89 DLL_API puint64 GenID();
90
94 DLL_API Perspective3D::PImage CodeBarreLicence(const pint8 *cle);
95
96 } /* namespace libPerspective */
97
101 namespace Perspective3D
102 {
103 class Pjournal;
104 class PerspectiveVuesAuto;
105
109 class DLL_API Perspective
110 {
111 public:
117 static Perspective *Construct(const ParametresPerspective &parametres, PScene3D *scene = nullptr);
118
119 virtual ~Perspective() = 0;
120
124 static bool ValideLicence(const pint8 *cle_crypt, puint64 sel);
125
129 virtual bool LicenceActive() const = 0;
130
135 virtual bool AttendInit() const = 0;
136
140 virtual bool FinInit() const = 0;
141
145 virtual void ReInit(PScene3D *scene = nullptr) = 0;
146
150 virtual void ReInit(const ParametresPerspective &parametres, PScene3D *scene = nullptr) = 0;
151
155 virtual const ParametresPerspective &Parametres() const = 0;
156
161 virtual pint AjoutEntitesVue(const Prect2D &rect_vue, const vues2D_t vue, const PScene2D &scene) = 0;
162
168 virtual void AjoutPoint2D(const Ppoint2D &p, vues2D_t vue) = 0;
169
175 virtual void AjoutLigne2D(const Pligne2D &l, vues2D_t vue) = 0;
176
180 virtual void AjoutLigne2D(pfloat x1, pfloat y1, pfloat x2, pfloat y2, vues2D_t vue, bool cache=false, bool point=false, const PCouleur&couleur=PCouleur()) = 0;
181
187 virtual void AjoutEllipse2D(const Pellipse2D &e, vues2D_t vue) = 0;
188
192 virtual void AjoutEllipse2D(pfloat x, pfloat y, pfloat longueur, pfloat hauteur, pfloat angledebut, pfloat anglefin, pfloat angle_rotation, vues2D_t vue, bool cache=false, const PCouleur&couleur=PCouleur()) = 0;
193
197 virtual void defOrigineFace(const Ppoint2D &p) = 0;
198
202 virtual void defOrigineCote(const Ppoint2D &p) = 0;
203
207 virtual void defOrigineHaut(const Ppoint2D &p) = 0;
208
212 virtual bool defOrigineVue(const Ppoint2D &p, vues2D_t vue) = 0;
213
220 virtual bool Generation3D(modeperspective_t mode=modeperspective_t::PMODE_3VUES, pfloat param1=0.) = 0;
221
225 virtual resultat_gen3d_t ResultatGeneration() const = 0;
226
231 virtual bool FinGeneration() const = 0;
232
238 virtual bool GenPatron(bool ignore_non_developpable=true) = 0;
239
244 virtual PScene3D &Scene() const = 0;
245
250 virtual PScene3D *ScenePtr() const = 0;
251
256 virtual const PScene3D &SceneConst() const = 0;
257
262 virtual const PScene3D *SceneConstPtr() const = 0;
263
270 virtual void RegenProjections(vues2D_t projs, infos3d_t infos, pint tailletxt_pct) = 0;
271 /* Regenère le modèle des projections d'après les paramètres. */
272
276 virtual void RegenProjections() = 0;
277 /* Regenère le modèle des projections (sans toucher aux paramètres) */
278
282 virtual bool ModelePret() const = 0;
283
288 virtual puint Avancement() const = 0;
289
293 virtual void Stop() = 0;
294
299 virtual bool ContinueGeneration() const = 0;
300
305 virtual const Pjournal &JournalConst() const = 0;
306
310 virtual void AssigneTolerances(pfloat &t1, pfloat &t2, pfloat &t3, pfloat &v, pfloat &a) const = 0;
311 };
312
316 class DLL_API Pjournal
317 {
318 public:
319 virtual ~Pjournal()=0;
320
324 virtual const std::string &DerniereEntreeConst() const = 0;
325
329 virtual const std::string &StrConst() const = 0;
330 };
331
335 class DLL_API PerspectiveVuesAuto
336 {
337 public:
341 static PerspectiveVuesAuto *Construct();
342
343 virtual ~PerspectiveVuesAuto() = 0;
344
348 virtual void Reinit() = 0;
349
353 virtual pint AjoutEntites(const PScene2D &scene, const Prect2D &rect) = 0;
354
358 virtual void AjoutLigne2D(const Pligne2D &l) = 0;
359
363 virtual void AjoutEllipse2D(const Pellipse2D &e) = 0;
364
369 virtual bool Separation(normevues_t norme=normevues_t::NORME_VUES_ISO) = 0;
370
375 virtual const Prect2D &RectFace() const = 0;
376
381 virtual const Prect2D &RectCote() const = 0;
382
387 virtual const Prect2D &RectHaut() const = 0;
388 };
389
397 class DLL_API PerspectiveAuto
398 {
399 public:
403 static PerspectiveAuto *Construct(const char *dxf_source, modeperspective_t mode=modeperspective_t::PMODE_3VUES, const pint8 *licence=nullptr, puint64 salage_licence=0);
404
405 virtual ~PerspectiveAuto() = 0;
406
411 virtual bool InitValide() const = 0;
412
417 virtual bool Genere() = 0;
418
423 virtual const Perspective* Perspective3DConst() const = 0;
424
428 virtual Perspective* LiberePerspective3D() = 0;
429 };
430
431 #ifdef SUPPORT_VISION2D
432
435 class DLL_API Vision
436 {
437 public:
446 static Vision *Construct(const PImage &image, const ParametresVision &parametres, const Ppoint2D &origine=Ppoint2D(0,0), PScene2D *scene = nullptr, bool nouveau_groupe_scene=false);
447
459 static Vision *Construct(const Poctet_t *data, pint taille_tampon, pint octets_ligne, pint taille_pixel, const ParametresVision &parametres, const Ppoint2D &origine=Ppoint2D(0,0), PScene2D *scene = nullptr, bool nouveau_groupe_scene=false);
460
470 static Vision *Construct(const char *chemin_image, const ParametresVision &parametres, const Ppoint2D &origine=Ppoint2D(0,0), PScene2D *scene = nullptr, bool nouveau_groupe_scene=false);
471
482 static Vision *Construct(const Perspective3D::PStdVectPointsPixels &trajet, pfloat echelle, const ParametresVision &parametres, const Ppoint2D &origine=Ppoint2D(0,0), PScene2D *scene = nullptr, bool nouveau_groupe_scene=false);
483
484 virtual ~Vision() = 0;
485
489 static bool ValideLicence(const pint8 *cle_crypt, puint64 sel);
490
494 virtual bool LicenceActive() const = 0;
495
499 virtual void ReInit(const PImage &image, const Ppoint2D &origine, PScene2D *scene = nullptr) = 0;
500
504 virtual void ReInit(const PImage &image, const ParametresVision &parametres, const Ppoint2D &origine, PScene2D *scene = nullptr) = 0;
505
509 virtual void ReInit(const Perspective3D::PStdVectPointsPixels &trajet, pfloat echelle, const Perspective3D::ParametresVision &parametres, const Ppoint2D &origine, PScene2D *scene = nullptr) = 0;
510
515 virtual resultat_vision2d_t Genere() = 0;
516
520 virtual pint Avancement() const = 0;
521
526 virtual bool FinGeneration() const = 0;
527
532 virtual const PScene2D &SceneConst() const = 0;
533
538 virtual const PScene2D *SceneConstPtr() const = 0;
539
543 virtual bool MatriceActive() const = 0;
544
548 virtual PImage Matrice() const = 0;
549
550 #ifdef DEBUG_API_P3D
551 virtual PImage MatriceDebug(pint n=0) const = 0;
552 virtual pint EtatVerrou() const = 0;
553 virtual void RepriseGeneration() = 0;
554 #endif // DEBUG_API_P3D
555
556 };
557 #endif // SUPPORT_VISION2D
558
562 namespace RAL
563 {
567 DLL_API puint Nombre();
568
572 DLL_API const Perspective3D::PCouleur_RAL &Index(puint pos);
573
577 DLL_API const Perspective3D::PCouleur_RAL &Recherche(puint id);
578
582 DLL_API puint RechercheIndex(puint id);
583
584 } // namespace Perspective3D::RAL
585
589 namespace i18n
590 {
597 DLL_API void defLangue(lang_p3d_t langue);
598
602 DLL_API lang_p3d_t Langue();
603 } // namespace Perspective3D::i18n
604
608 DLL_API const char * NomVue(vues2D_t vue);
609
614 DLL_API PImage LogoPerspective3D(bool taille_128=true);
615
616 #ifdef SUPPORT_VISION2D
617
621 DLL_API PImage LogoVision2D(bool taille_128=true);
622 #endif // SUPPORT_VISION2D
623
627 DLL_API pint NombreLogosAnime();
628
632 DLL_API PImage LogoAnime(pint id);
633
634 } /* namespace Perspective3D */
635
636 #endif // PERSPECTIVE_API
Perspective3D::normevues_t::NORME_VUES_ISO
Perspective3D::modeperspective_t::PMODE_3VUES
libPerspective::ChiffrementLicence
DLL_API void ChiffrementLicence(const pint8 *source, pint8 *dest, puint64 sel)
ChiffrementLicence Chiffre une clé de licence (La taille du tampon source doit au moins valoir Longue...
libPerspective::LongueurCleActivationClair
DLL_API puint LongueurCleActivationClair()
Perspective3D
Espace de nom de l&#39;API 3D.
Definition: perspective_api.h:101
Perspective3D::RAL::RechercheIndex
DLL_API puint RechercheIndex(puint id)
pint8
int8_t pint8
Definition: perspective_sys.h:628
Perspective3D::PScene2D
Scène 2D.
Definition: perspective_types.h:1121
Perspective3D::resultat_vision2d_t
resultat_vision2d_t
Definition: perspective_types.h:563
Perspective3D::PScene3D
Scène3D, contient l&#39;ensemble des éléments générés.
Definition: perspective_types.h:2423
Perspective3D::Poctet_t
puint8 Poctet_t
Definition: perspective_types.h:247
Perspective3D::PerspectiveAuto
Mode automatique.
Definition: perspective_api.h:397
DLL_API
#define DLL_API
Attribut de classe ou méthode exportée par l&#39;API (GCC, Clang ou MSVC). Donc importé côté client...
Definition: perspective_sys.h:524
Perspective3D::i18n::Langue
DLL_API lang_p3d_t Langue()
Renvoi la langue actuellement définie dans Perspective3D.
Perspective3D::Pellipse2D
Définition ellipse, arc ou cercle 2D.
Definition: perspective_types.h:939
Perspective3D::Pligne2D
Définition d&#39;une ligne 2D.
Definition: perspective_types.h:780
perspective_types.h
Types pour Perspective3D.
Perspective3D::Perspective
Classe principale Perspective3D pour la conversion de plan 2D vers la 3D.
Definition: perspective_api.h:109
Perspective3D::i18n::defLangue
DLL_API void defLangue(lang_p3d_t langue)
defLangue Assigne la langue pour Perspective3D (concerne les informations renvoyées par Perspective3D...
Perspective3D::Pjournal
Accès au journal de génération d&#39;une instance Perspective3D.
Definition: perspective_api.h:316
Perspective3D::Vision
Classe de conversion d&#39;image matricielle vers une scéne 2D (vectorielle).
Definition: perspective_api.h:435
libPerspective::Plateforme
DLL_API const char * Plateforme()
pint
signed int pint
Types entiers.
Definition: perspective_sys.h:611
Perspective3D::ParametresPerspective
ParametresPerspective Paramètres de la bibliothèque Perspective.
Definition: perspective_types.h:511
Perspective3D::LogoVision2D
DLL_API PImage LogoVision2D(bool taille_128=true)
Renvoi le logo de Vision2D.
libPerspective::TexteLicence
DLL_API const char * TexteLicence()
Perspective3D::normevues_t
normevues_t
Definition: perspective_types.h:154
Perspective3D::vues2D_t
vues2D_t
Definition: perspective_types.h:89
puint64
uint64_t puint64
Definition: perspective_sys.h:635
Perspective3D::PCouleur_RAL
Couleur du nuancier RAL classique.
Definition: perspective_types.h:453
libPerspective::CodeBarreLicence
DLL_API Perspective3D::PImage CodeBarreLicence(const pint8 *cle)
Renvoi un code barre généré depuis la clé de licence (en principe chiffrée avec la fonction Chiffreme...
libPerspective::GenID
DLL_API puint64 GenID()
GenID Génère un nombre pouvant servir de salage pour la fonction de chiffrement (doit être la même en...
libPerspective::SupportMultiThreading
DLL_API bool SupportMultiThreading()
Contrôle si le support du multithreading est inclu dans cette distribution.
Perspective3D::LogoAnime
DLL_API PImage LogoAnime(pint id)
Renvoi l&#39;image du logo animé dont l&#39;id est donné en argument.
Perspective3D::PCouleur
Couleurs 32 bits.
Definition: perspective_types.h:466
Perspective3D::PStdVectPointsPixels
std::vector< PPointPixel > PStdVectPointsPixels
PStdVectPoints2D Vecteur de points de pixels.
Definition: perspective_types.h:448
Perspective3D::Ppoint2D
Définition d&#39;un point 2D et de ses opérations.
Definition: perspective_types.h:252
pfloat
double pfloat
Definition: perspective_def.h:62
libPerspective::LongueurCleActivationChiffre
DLL_API puint LongueurCleActivationChiffre()
Perspective3D::PImage
Classe d&#39;image 32 bits (RBVA). Peut gérer un tableau dynamique ou englober un tableau statique suivan...
Definition: perspective_types.h:591
libPerspective::APropos
DLL_API const char * APropos()
perspective_def.h
Macros préprocesseur de l&#39;API.
libPerspective::VersionInt
DLL_API pint VersionInt()
libPerspective::Nom
DLL_API const char * Nom()
perspective_div2.h
Fonctions diverses.
Perspective3D::ParametresVision
ParametresPerspective Paramètres de la bibliothèque Vision.
Definition: perspective_types.h:540
libPerspective::VersionStr
DLL_API const char * VersionStr()
puint
unsigned int puint
Definition: perspective_sys.h:612
Perspective3D::resultat_gen3d_t
resultat_gen3d_t
Definition: perspective_types.h:29
Perspective3D::Prect2D
Rectangle 2D, principalement pour faire des boites englobantes.
Definition: perspective_types.h:839
Perspective3D::RAL::Nombre
DLL_API puint Nombre()
Nombre Renvoi le nombre de couleurs dans le nuancier RAL.
Perspective3D::RAL::Index
DLL_API const Perspective3D::PCouleur_RAL & Index(puint pos)
Index Renvoi un RAL d&#39;après sa position dans le nuancier (connu par exemple en utilisant un itérateur...
Perspective3D::infos3d_t
infos3d_t
Definition: perspective_types.h:179
perspective_sys.h
Détection de la plateforme.
Perspective3D::RAL::Recherche
DLL_API const Perspective3D::PCouleur_RAL & Recherche(puint id)
Perspective3D::PerspectiveVuesAuto
Séparatrice de vues (repère automatiquement les vues de face, côté, dessus) sur un plan 2D...
Definition: perspective_api.h:335
libPerspective
Espace de nom de l&#39;API.
Definition: perspective_api.h:32
Perspective3D::i18n::lang_p3d_t
lang_p3d_t
Definition: perspective_types.h:167
Perspective3D::LogoPerspective3D
DLL_API PImage LogoPerspective3D(bool taille_128=true)
Renvoi le logo de Perspective3D.
Perspective3D::modeperspective_t
modeperspective_t
Definition: perspective_types.h:75
Perspective3D::NomVue
DLL_API const char * NomVue(vues2D_t vue)
Renvoi le nom de la vue donnée en argument.
Perspective3D::NombreLogosAnime
DLL_API pint NombreLogosAnime()
Renvoi le nombre d&#39;images dans le logo animé.