CastorUtils (C++)

Description

Cette bibliothèque contient des classes générales aidant au développement du moteur Castor3D

Données

  • Gestion de fichiers, binaires ou texte (BinaryFile et TextFile)
  • FileParser, un analayseur de brace file, avec son FileParserContext
  • Classes de chargement de données binaires ou texte (BinaryLoader et TextLoader)
  • ZipArchive

Concepts

  • Collection, un conteneur thread-safe
  • Factory
  • Named
  • NonCopyable
  • Unique

Graphisme

  • Colour et ColourComponent
  • BoundingContainer, BoundingBox et BoundingSphere
  • Font, Glyph
  • Image
  • PixelFormat, Pixel et PxBuffer, pour les conversions de pixels
  • Position, Size

Mathématiques

  • Conversions d'angle
  • Coords, une classe de point non propriétaire de ses données
  • Point, une classe de point propriétaire de ses données
  • Equations de droites (2D et 3D)
  • Equations de plans
  • Matrix et SquareMatrix
  • Quaternion
  • SphericalVertex
  • Rectangle

Divers

  • BlockTracker et BlockTimer
  • Console et Logger
  • PreciseTimer
  • DynamicLibrary
  • Resource
  • DynamicLibrary

Version 0.10.0

Date : 30/12/2017

Fonctionnalités

  • Renommage du namespace Castor en castor.
  • Ajout des classes ChangeTracked et GroupChangeTracked, permettant de tracer les changements de valeur d'une variable membre.
  • Renommage de CubeBox et SphereBox en BoundingBox et BoundingSphere.
  • Séparation de Colour en deux classes : RgbColour et RgbaColour.
  • PlaneEquation n'est plus une classe template.
  • Création d'un allocateur : buddy allocator.


Version 0.9.0

Date : 26/03/2017

Fonctionnalités

  • Abandon de libzip et intégration de minizip aux sources.
  • Ajout des classes WorkerThread et ThreadPool.
  • Amélioration de la classe Signal, grâce à l'ajout de la classe Connection, permettant de se déconnecter du signal sans en avoir l'instance, et permettant au signal de déconnecter tous les slots à sa destruction.
  • Ajout des classes Range et RangedValue, pour utiliser facilement ces concepts.
  • Ajout d'une classe de récupération des informations CPU : CpuInformations.
  • Déplacement du code spécifique aux plateformes dans le sous dossier Platform/<nom plateforme>, pour faciliter l'ajout de nouvelles plateformes.
  • Compile maintenant sur ARM (pour un futur port sur Android).


Version 0.8.0

Date : 07/04/2016

Fonctionnalités

  • Les opérations pour les Point4f et les Matrix4x4f peuvent maintenant utiliser les instructions SSE2.
  • Tous les projets du Castor utilisent maintenant des textes UTF-8, stockés dans des std::string.

Corrections de bugs

  • Les matrices de transformation ont été corrigées.


Version 0.7.0

Date : 01/01/2015

Fonctionnalités

  • Suppression des appels à Boost, sauf thread pour les compilateurs ne supportant pas std::thread.
  • Suppression de l'encodage Unicode pour les fichiers.
  • Réduction de l'occupation mémoire des images.

Corrections de bugs

  • Réparation d'un problème de matrices lors du rendu des incrustations.
  • Correction des transformations récursives.


Version 0.6.5.0

Date : 30/08/2011

Fonctionnalités

  • Memory manager (détection de mémoire utilisée, max utilisation, memory leaks, ...)
  • Fonctions mathématiques 2D et 3D (vecteurs, équations de droites et plans, quaternions, matrices, ...)
  • Multithreading (mutex, threads, mutex manager pour la détection des dead locks et cross locks, ...)
  • Gestion de ressources (buffers, images, ...)
  • Gestion de fichiers, de strings, et autres joyeuseries
  • Gestion des pixels et des images, support de différents formats (A8, A8L8, A1R5G5B5, A4R4G4B4, R8G8B8, A8R8G8B8, DXTC1, DXTC3, DXTC5, YUY2)


Version 0.6.1.1

Date : 21/01/2011

Fonctionnalités

  • Suppression de FreeImagePlus, maintenant les projets ne nécessitent plus que FreeImage.
  • Création d'une classe IdPoint, qui étend Point et y ajoute un Index qui correspond à son index dans le submesh.


Version 0.6.1.0

Date : 10/12/2010

Fonctionnalités

  • Utilisation des smart pointers tr1.
  • Le MemoryManager (activé uniquement en debug) a été modifié, ajout d'une classe template MemoryTraced qui surcharge les operateurs new, delete new [] et delete [], ce afin d'avoir une meilleure trace des objets créés et détruits. Chaque classe des projets du Castor dérivent maintenant de celle-ci, et 3 fichiers sont donc créés dans le répertoire racine (C:\ sous Windows) : memoryleaks.log, memoryalloc.log et memorydealloc.log


Version 0.6.0.0

Date : 05/11/2010

Fonctionnalités

  • Modification de la gestion des threads et mutexes, permettant le choix de ceux qu'on utilise (Win32, MFC ou Boost).
  • Modification des classes de gestion des matrices et points.
  • Modification de la classe de gestion des chaînes de caractères qui sont maintenant indépendantes de Unicode ou MultiByte.
  • Modification de la classe de gestion de fichiers qui ne permet plus le choix IO ou Stream mais utilise Stream uniquement.
  • Ajout de smart pointers persos, inspirés de ceux de boost.
  • Ajout d'une classe de gestion des angles, permettant de ne pas s'embêter avec les conversions radian-degrés.
  • Ajout d'une classe de gestion de chemin, permettant de gérer les slash ou anti-slash selon l'OS.
  • Création de conteneurs thread-safe issus de la stl (vector, list, map, multimap, set).



Image Large