CMSDK 2.0.1
Cross-platform C++ base library and SDK for the Psyclone AIOS platform
Loading...
Searching...
No Matches
MathClasses.h File Reference

Geometry and 2D/3D math value classes: Color, Size, Point, PointFloat, Line, PolyLine, Box, Vector2D, Vector3D and a random path generator. More...

#include <math.h>
#include <map>
#include <array>
#include "Utils.h"
Include dependency graph for MathClasses.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  cmlabs::Color
 24-bit RGB color with mixing, inversion, distance and palette-generation helpers. More...
class  cmlabs::Size
 2D/3D extent (width, height, optional depth) stored as doubles. More...
class  cmlabs::Point
 Integer 3D point with an optional attached Size; interoperates with PointFloat and vectors. More...
class  cmlabs::PointFloat
 Floating-point 3D point with an optional attached Size; float counterpart of Point. More...
class  cmlabs::Line
 Line segment between two PointFloat endpoints with a drawing width. More...
class  cmlabs::PolyLine
 Ordered collection of Line segments (not necessarily connected). More...
class  cmlabs::Box
 Axis-aligned rectangle defined by an upper-left corner and a Size, with overlap/containment math. More...
class  cmlabs::Vector2D
 2D vector with the usual linear algebra: dot product, determinant, projection, rotation, angles. More...
class  cmlabs::Vector3D
 3D vector with dot/cross products, projection and angle math. More...
class  cmlabs::RandomPathGenerator
 Generates a smoothly wandering 2D path: each call to generateNextPoint() advances the last point along a direction vector perturbed by a random variation, useful for simulated motion in tests/demos. More...

Namespaces

namespace  cmlabs

Macros

#define _USE_MATH_DEFINES

Functions

bool cmlabs::MathClasses_UnitTest ()
 Unit test for the MathClasses module (geometry / vectors / boxes).

Variables

const std::map< std::string, std::array< uint8, 3 > > cmlabs::ColorMap
 Lookup table mapping ~200 CSS/X11 color names (with and without spaces) to 8-bit RGB triplets; used by Color(const char*).

Detailed Description

Geometry and 2D/3D math value classes: Color, Size, Point, PointFloat, Line, PolyLine, Box, Vector2D, Vector3D and a random path generator.

These lightweight value types are used across CMSDK/Psyclone for image regions, tracking, visualization and spatial reasoning. All members are public by design; the classes are simple aggregates with convenience math. Angles are radians unless noted; coordinate system is screen-style with the origin at the upper-left and y growing downward (relevant for Box).

Definition in file MathClasses.h.

Macro Definition Documentation

◆ _USE_MATH_DEFINES

#define _USE_MATH_DEFINES

Definition at line 12 of file MathClasses.h.