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 
48 
52  DLL_API const char *Plateforme();
53 
57  DLL_API const char *APropos();
58 
62  DLL_API const char *TexteLicence();
63 
69 
74 
79 
84  DLL_API void ChiffrementLicence(const pint8 *source, pint8 *dest, puint64 sel);
85 
90 
95 
96 } /* namespace libPerspective */
97 
101 namespace Perspective3D
102 {
103  class Pjournal;
104  class PerspectiveVuesAuto;
105 
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 
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 
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 
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 
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 
573 
578 
583 
584  } // namespace Perspective3D::RAL
585 
589  namespace i18n
590  {
597  DLL_API void defLangue(lang_p3d_t langue);
598 
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 
628 
633 
634 } /* namespace Perspective3D */
635 
636 #endif // PERSPECTIVE_API
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...
DLL_API puint LongueurCleActivationClair()
Espace de nom de l&#39;API 3D.
Definition: perspective_api.h:101
DLL_API puint RechercheIndex(puint id)
int8_t pint8
Definition: perspective_sys.h:628
Scène 2D.
Definition: perspective_types.h:1121
resultat_vision2d_t
Definition: perspective_types.h:563
Scène3D, contient l&#39;ensemble des éléments générés.
Definition: perspective_types.h:2423
puint8 Poctet_t
Definition: perspective_types.h:247
Mode automatique.
Definition: perspective_api.h:397
#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
DLL_API lang_p3d_t Langue()
Renvoi la langue actuellement définie dans Perspective3D.
Définition ellipse, arc ou cercle 2D.
Definition: perspective_types.h:939
Définition d&#39;une ligne 2D.
Definition: perspective_types.h:780
Types pour Perspective3D.
Classe principale Perspective3D pour la conversion de plan 2D vers la 3D.
Definition: perspective_api.h:109
DLL_API void defLangue(lang_p3d_t langue)
defLangue Assigne la langue pour Perspective3D (concerne les informations renvoyées par Perspective3D...
Accès au journal de génération d&#39;une instance Perspective3D.
Definition: perspective_api.h:316
Classe de conversion d&#39;image matricielle vers une scéne 2D (vectorielle).
Definition: perspective_api.h:435
DLL_API const char * Plateforme()
signed int pint
Types entiers.
Definition: perspective_sys.h:611
ParametresPerspective Paramètres de la bibliothèque Perspective.
Definition: perspective_types.h:511
DLL_API PImage LogoVision2D(bool taille_128=true)
Renvoi le logo de Vision2D.
DLL_API const char * TexteLicence()
normevues_t
Definition: perspective_types.h:154
vues2D_t
Definition: perspective_types.h:89
uint64_t puint64
Definition: perspective_sys.h:635
Couleur du nuancier RAL classique.
Definition: perspective_types.h:453
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...
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...
DLL_API bool SupportMultiThreading()
Contrôle si le support du multithreading est inclu dans cette distribution.
DLL_API PImage LogoAnime(pint id)
Renvoi l&#39;image du logo animé dont l&#39;id est donné en argument.
Couleurs 32 bits.
Definition: perspective_types.h:466
std::vector< PPointPixel > PStdVectPointsPixels
PStdVectPoints2D Vecteur de points de pixels.
Definition: perspective_types.h:448
Définition d&#39;un point 2D et de ses opérations.
Definition: perspective_types.h:252
double pfloat
Definition: perspective_def.h:62
DLL_API puint LongueurCleActivationChiffre()
Classe d&#39;image 32 bits (RBVA). Peut gérer un tableau dynamique ou englober un tableau statique suivan...
Definition: perspective_types.h:591
DLL_API const char * APropos()
Macros préprocesseur de l&#39;API.
DLL_API pint VersionInt()
DLL_API const char * Nom()
Fonctions diverses.
ParametresPerspective Paramètres de la bibliothèque Vision.
Definition: perspective_types.h:540
DLL_API const char * VersionStr()
unsigned int puint
Definition: perspective_sys.h:612
resultat_gen3d_t
Definition: perspective_types.h:29
Rectangle 2D, principalement pour faire des boites englobantes.
Definition: perspective_types.h:839
DLL_API puint Nombre()
Nombre Renvoi le nombre de couleurs dans le nuancier RAL.
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...
infos3d_t
Definition: perspective_types.h:179
Détection de la plateforme.
DLL_API const Perspective3D::PCouleur_RAL & Recherche(puint id)
Séparatrice de vues (repère automatiquement les vues de face, côté, dessus) sur un plan 2D...
Definition: perspective_api.h:335
Espace de nom de l&#39;API.
Definition: perspective_api.h:32
lang_p3d_t
Definition: perspective_types.h:167
DLL_API PImage LogoPerspective3D(bool taille_128=true)
Renvoi le logo de Perspective3D.
modeperspective_t
Definition: perspective_types.h:75
DLL_API const char * NomVue(vues2D_t vue)
Renvoi le nom de la vue donnée en argument.
DLL_API pint NombreLogosAnime()
Renvoi le nombre d&#39;images dans le logo animé.