CastorUtils (C++)

Description

This library contains some helper classes to ease the development of Castor3D engine.

Data

  • File management base class
  • BinaryFile and TextFile specialisations
  • FileParser, a brace file parser, along with its FileParserContext
  • Loader base class
  • BinaryLoader and TextLoader specialisations
  • ZipArchive

Design

  • Collection, a thread-safe container
  • Factory
  • Named
  • NonCopyable
  • Unique

Graphics

  • Colour and ColourComponent
  • ContainerBox, CubeBox and SphereBox
  • Font, Glyph
  • Image
  • PixelFormat, Pixel and PxBuffer, to manage pixel conversions
  • Position, Size

Mathematics

  • Angle conversions
  • Coords, to have a point class which doesn't own its data
  • Point, to have a point class which owns its data
  • Line (2D and 3D) equations
  • Matrix and SquareMatrix
  • Plane equations
  • Quaternion
  • SphericalVertex
  • Rectangle
  • Template math functions (such as exp, ln, ...)

Miscellaneous

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

Version 0.10.0

Date : 2017-12-30

Features

  • Renamed namespace Castor to castor.
  • Added ChangeTracked and GroupChangeTracked classes, allowing to track changes to a member variable.
  • Renamed CubeBox and SphereBox to BoundingBox and BoundingSphere.
  • Splitted Colour in two classes: RgbColour and RgbaColour.
  • PlaneEquation is no more a template class.
  • Created a buddy allocator class: BuddyAllocator.


Version 0.9.0

Date : 2017-03-26

Features

  • Dropped libzip, and added minizip to the source tree.
  • Added WorkerThread and ThreadPool classes.
  • Improved Signal: added Connection class, which allows disconnection without having the Signal instance, and allows the signal to disconnect all slots at destruction.
  • Added Range and RangedValue, to use these concepts in a convenient way.
  • Added CpuInformations, used to retrieve CPU capabilities.
  • Moved platform specific code in subfolder Platform/<platform_name> to facilitate the adding of new platforms.
  • Now compiles on ARM too (for a future port on Android).


Version 0.8.0

Date : 2016-04-07

Features

  • Point4f and Matrix4x4f can now use SSE2 instructions for computations.
  • All Castor projects are now using UTF-8 texts, using std::string.

Bugs corrections

  • Fixed transformation matrices.


Version 0.7.0

Date : 2015-01-01

Features

  • Removed all Boost calls,except for thread if the compiler doesn't support std::thread.
  • Removed Unicode encoding for text files.
  • Reduced images memory occupation.

Bugs corrections

  • Corrected a matrix problem, encountered while rendering overlays.
  • Corrected recursive transformations.


Version 0.6.5.0

Date : 2011-08-30

Features

  • Memory manager (detection of used memory, max used memory, memory leaks, ...)
  • 2D and 3D mathematical functions (vectors, line and plane equations, quaternions, matrices, ...)
  • Multithreading (mutex, threads, mutex manager for dead locks and cross locks debugging, ...)
  • Resources management (buffers, images, ...)
  • Files management, String, and others
  • Pixel and image management, various formats supported (A8, A8L8, A1R5G5B5, A4R4G4B4, R8G8B8, A8R8G8B8, DXTC1, DXTC3, DXTC5, YUY2)


Version 0.6.1.1

Date : 2011-01-21

Features

  • Removed FreeImagePlus dependency.
  • Created IdPoint class, that extends Point and adds it an index to be used in a submesh.


Version 0.6.1.0

Date : 2010-12-10

Features

  • Using std::tr1 smart pointers.
  • Modified MemoryManager : added template class MemooryTraced in order to keep a better trace of allocations and deallocations. 3 file are now created in root folder (C:\ on Windows) : memoryleaks.log, memoryalloc.log and memorydealloc.log.


Version 0.6.0.0

Date : 2010-11-05

Features

  • Modified multithreading system : the choice is given between the ones uesd (Win32, MFC or Boost).
  • Modified Matrix and Point management classes.
  • Modified String class which makes interoperability between Unicode and Multibyte possible.
  • Now File class only uses std::stream instead of leaving choice between FILE or std::stream.
  • Added personal smart pointers, inspired from Boost ones.
  • Added angle management class, in order not to bother with degree/radian conversions.
  • Added a simple path management class.
  • Created thread safe container derived from STL ones (vector, list, set and map).



Image Large