|
Allolib
1.0
C++ Components For Interactive Multimedia
|
Namespaces | |
| ipl | |
| Utilities for interpolation. | |
| osc | |
| Open Sound Control (OSC) utilities. | |
| rnd | |
| Random number generation utilities. | |
Classes | |
| class | App |
| Simple App class. More... | |
| class | RecordingDomain |
| class | AppRecorder |
| Simple App class. More... | |
| class | AudioDomain |
| AsynchronousDomain class. More... | |
| class | GammaAudioDomain |
| class | ComputationDomain |
| ComputationDomain class. More... | |
| class | SynchronousDomain |
| class | AsynchronousDomain |
| class | ConsoleDomain |
| ConsoleDomain class. More... | |
| class | AudioControl |
| class | DistributedApp |
| DistributedApp class. More... | |
| class | DistributedAppWithState |
| class | FPS |
| FPS class. More... | |
| struct | NodeConfiguration |
| The NodeConfiguration struct describes a distributed node and its capabilities. More... | |
| class | GLFWOpenGLOmniRendererDomain |
| GLFWOpenGLOmniRendererDomain class. More... | |
| struct | WindowSetupProperties |
| class | OpenGLGraphicsDomain |
| OpenGLGraphicsDomain class. More... | |
| class | GLFWOpenGLWindowDomain |
| Domain for a GLFW window. More... | |
| class | OSCDomain |
| OSCDomain class. More... | |
| class | SimulationDomain |
| Basic simulation domain providing a simulationFunction. More... | |
| class | StateSimulationDomain |
| struct | DefaultState |
| class | StateReceiveDomain |
| class | StateSendDomain |
| class | StateDistributionDomain |
| Domain for distributing state for a simulation domain. More... | |
| class | BufferObject |
| struct | ShaderSources |
| struct | EasyFBOSetting |
| class | EasyFBO |
| Encapsulates FBO, depth buffer, and texture. More... | |
| struct | EasyVAO |
| EasyVAO class. More... | |
| class | RBO |
| Render buffer object class. More... | |
| class | FBO |
| Frame buffer object class. More... | |
| struct | Font |
| Interface for loading fonts and rendering text. More... | |
| struct | FontRenderer |
| Convenience class to simplify rendering text. More... | |
| class | GPUObject |
| class | Graphics |
| Interface for loading fonts and rendering text. More... | |
| struct | Image |
| Interface for loading image files. More... | |
| class | Isosurface |
| Isosurface generated using marching cubes. More... | |
| class | Lens |
| struct | Light |
| Light class. More... | |
| struct | Material |
| Material class. More... | |
| class | Mesh |
| Stores buffers related to rendering graphical objects. More... | |
| class | MatrixStack |
| MatrixStack class. More... | |
| class | ViewportStack |
| ViewportStack class. More... | |
| class | FBOStack |
| class | RenderManager |
| RenderManager class. More... | |
| class | ShaderBase |
| class | Shader |
| Shader object. More... | |
| class | ShaderProgram |
| Shader program object. More... | |
| class | Texture |
| class | VAO |
| VAO class. More... | |
| class | VAOMesh |
| VAOMesh classStores gpu objects as shared pointer to that this class can be copied for moved this is useful for storing this class in std::vector, etc. More... | |
| struct | Viewport |
| class | Viewpoint |
| Viewpoint within a scene. More... | |
| class | Arduino |
| Arduino class. More... | |
| class | AudioBackend |
| class | AudioDevice |
| class | AudioIO |
| class | AudioDeviceInfo |
| class | AudioIOData |
| class | AudioCallback |
| class | Nav |
| class | NavInputControl |
| class | CSVReader |
| The CSVReader class reads simple CSV files. More... | |
| class | FilePath |
| class | File |
| File. More... | |
| class | PushDirectory |
| class | Dir |
| class | FileList |
| class | SearchPaths |
| class | MIDIByte |
| class | MIDIMessage |
| class | MIDIMessageHandler |
| class | PersistentConfig |
| The PersistentConfig class allows easy sotrage of persisitent values. More... | |
| class | Socket |
| class | SocketClient |
| Client socket. More... | |
| class | SocketServer |
| Server socket. More... | |
| struct | TomlLoader |
| TomlLoader class. More... | |
| class | Keyboard |
| class | Mouse |
| class | WindowEventHandler |
| Controller for handling input and window events. More... | |
| class | Window |
| Window with OpenGL context. More... | |
| class | MinMeanMax |
| class | Complex |
| class | Polar |
| class | Frustum |
| Rectangular frustum. More... | |
| class | Interval |
| A closed interval [min, max]. More... | |
| class | Mat |
| Fixed-size n-by-n square matrix. More... | |
| struct | MatNoInit |
| Flag type to prevent element initialization. | |
| class | Matrix4 |
| class | Plane |
| class | Quat |
| class | StdRnd |
| class | Ray |
| class | SphereCoord |
| Spherical coordinate in terms of two complex numbers. More... | |
| class | SphericalHarmonic |
| Spherical harmonic evaluator using cached coefficients. More... | |
| class | rand_uniformi |
| class | rand_uniformf |
| class | rand_poisson |
| class | rand_exponential |
| class | rand_normal |
| class | Vec |
| Fixed-size n-vector. More... | |
| struct | VecElems |
| struct | VecElems< 0, T > |
| struct | VecElems< 1, T > |
| struct | VecElems< 2, T > |
| struct | VecElems< 3, T > |
| struct | VecElems< 4, T > |
| class | Message |
| class | CommandConnection |
| class | CommandServer |
| class | CommandClient |
| struct | Serializer |
| The Serializer struct. More... | |
| struct | Deserializer |
| The Deserializer struct. More... | |
| class | DistributedScene |
| The DistributedScene class. More... | |
| class | PositionedVoice |
| A PositionedVoice is a rendering class that can have a position and size. More... | |
| struct | UpdateThreadFuncData |
| class | ThreadPool |
| class | DynamicScene |
| The DynamicScene class. More... | |
| class | SynthVoice |
| The SynthVoice class. More... | |
| class | PolySynth |
| A PolySynth manages polyphony and rendering of SynthVoice instances. More... | |
| class | SequencerMIDI |
| The SequencerMIDI class connects PolySynth objects to MIDI messages. More... | |
| class | SynthRecorder |
| The SynthRecorder class records the events arriving at a PolySynth. More... | |
| class | SynthSequencerEvent |
| SynthSequencerEvent class. More... | |
| struct | SynthEvent |
| class | SynthSequencer |
| Event Sequencer triggering audio visual "notes". More... | |
| class | AmbiBase |
| class | AmbiDecode |
| class | AmbiEncode |
| class | AmbisonicsSpatializer |
| struct | BiquadData |
| class | BiQuad |
| The BiQuad class. More... | |
| class | BiQuadNX |
| class | Crossover |
| class | Dbap |
| class | LdapRing |
| class | Lbap |
| class | StaticDelayLine |
| Delay-line whose maximum size is fixed. More... | |
| class | Reverb |
| Plate reverberator. More... | |
| struct | SoundFile |
| Read sound file and store the data in float array (interleaved) More... | |
| struct | SoundFilePlayer |
| Soundfile player class. More... | |
| class | SoundFileStreaming |
| The SoundFileStreaming class provides reading soundifle directly from disk one buffer at a time. More... | |
| struct | SoundFilePlayerTS |
| Soundfile player class with thread-safe access to playback controls. More... | |
| class | Spatializer |
| class | Speaker |
| class | SpeakerDistanceGainAdjustment |
| Adjust the gain of speakers based on distance. More... | |
| class | SpeakerDistanceGainAdjustmentProcessor |
| This class is added for convenience to append it to AudioIO processing. More... | |
| class | SpeakerDistanceTimeAdjustment |
| class | SpeakerDistanceTimeAdjustmentProcessor |
| class | StereoPanner |
| The StereoPanner class. More... | |
| struct | SpeakerTriple |
| A triplet of speakers. More... | |
| class | Vbap |
| struct | Frenet |
| Frenet frame generator. More... | |
| class | DistAtten |
| class | HashSpace |
| The HashSpace class. More... | |
| class | Pose |
| A local coordinate frame. More... | |
| class | SmoothPose |
| A Smoothed Pose. More... | |
| struct | bhlw |
| class | PerProjectionRenderConstants |
| class | ProjectionViewport |
| class | WarpBlendData |
| class | PerProjectionRender |
| class | PeriodicThread |
| Thread that calls a function periodically. More... | |
| struct | ThreadFunction |
| Function object interface used by thread. More... | |
| struct | CThreadFunction |
| C-style thread function with user data. More... | |
| class | Thread |
| class | Threads |
| class | Timer |
| class | DelayLockedLoop |
| Self-correcting timer. More... | |
| class | Clock |
| class | Watcher |
| class | RingBuffer |
| Ring buffer. More... | |
| class | ShiftBuffer |
| Constant size shift buffer. More... | |
| struct | Color |
| struct | Colori |
| struct | HSV |
| Color represented by hue, saturation, and value. More... | |
| struct | RGB |
| Color represented by red, green, and blue components. More... | |
| struct | CIE_XYZ |
| struct | Lab |
| struct | HCLab |
| struct | Luv |
| struct | HCLuv |
| struct | Twiddle |
| Union for twiddling bits of floats. More... | |
| struct | Twiddle< float > |
| struct | Twiddle< double > |
| class | SingleRWRingBuffer |
| struct | ValueSource |
| struct | MRCHeader |
| class | Voxels |
| struct | BoundingBoxData |
| struct | BoundingBox |
| class | CompositionStep |
| class | Composition |
| class | GUIMarker |
| class | ControlGUI |
| The ControlGUI class. More... | |
| class | Dialog |
| class | DiscreteParameterValues |
| class | FileSelector |
| struct | Gnomon |
| class | HtmlInterfaceServer |
| The HtmlInterfaceServer class runs an interface.simpleserver.js server and builds the html interface for the registered set of controllers and presets. More... | |
| class | ParameterField |
| class | ParameterMeta |
| The ParameterMeta class defines the base interface for Parameter metadata. More... | |
| class | ParameterWrapper |
| The ParameterWrapper class provides a generic thread safe Parameter class from the ParameterType template parameter. More... | |
| class | Parameter |
| The Parameter class. More... | |
| class | ParameterInt |
| class | ParameterBool |
| class | Trigger |
| class | ParameterString |
| class | ParameterVec3 |
| class | ParameterVec4 |
| class | ParameterPose |
| class | ParameterMenu |
| class | ParameterChoice |
| A parameter representing selected items from a list. More... | |
| class | ParameterColor |
| class | ParameterBundle |
| class | ParameterGUI |
| class | BundleGUIManager |
| class | SynthGUIManager |
| class | ParameterMIDI |
| The ParameterMIDI class connects Parameter objects to MIDI messages. More... | |
| class | OSCNode |
| class | OSCNotifier |
| class | ParameterServer |
| The ParameterServer class creates an OSC server to receive parameter values. More... | |
| struct | PickEvent |
| struct | Hit |
| struct | Pickable |
| struct | PickableBB |
| class | PickableManager |
| struct | PickableRotateHandle |
| class | PresetHandler |
| The PresetHandler class handles sorting and recalling of presets. More... | |
| class | PresetMapper |
| The PresetMapper class allows archiving and recalling preset maps. More... | |
| class | PresetMIDI |
| The PresetMIDI class connects PresetHandler objects to MIDI messages. More... | |
| class | PresetSequencer |
| The PresetSequencer class allows triggering presets from a PresetHandler over time. More... | |
| class | PresetServer |
| class | SequenceRecorder |
| The SequenceRecorder class records preset changes in a ".sequence" file. More... | |
| class | SequenceServer |
Typedefs | |
| typedef void(* | audioCallback) (AudioIOData &io) |
| Audio callback type. | |
| typedef Polar< float > | Polarf |
| typedef Polar< double > | Polard |
| typedef Complex< float > | Complexf |
| typedef Complex< double > | Complexd |
| typedef Frustum< double > | Frustumd |
| Double precision frustrum. | |
| typedef Mat< 2, float > | Mat2f |
| float 2x2 matrix | |
| typedef Mat< 2, double > | Mat2d |
| double 2x2 matrix | |
| typedef Mat< 2, int > | Mat2i |
| integer 2x2 matrix | |
| typedef Mat< 3, float > | Mat3f |
| float 3x3 matrix | |
| typedef Mat< 3, double > | Mat3d |
| double 3x3 matrix | |
| typedef Mat< 3, int > | Mat3i |
| integer 3x3 matrix | |
| typedef Mat< 4, float > | Mat4f |
| float 4x4 matrix | |
| typedef Mat< 4, double > | Mat4d |
| double 4x4 matrix | |
| typedef Mat< 4, int > | Mat4i |
| integer 4x4 matrix | |
| typedef Matrix4< double > | Matrix4d |
| Double-precision 4-by-4 matrix. | |
| typedef Matrix4< float > | Matrix4f |
| Single-precision 4-by-4 matrix. | |
| typedef Quat< float > | Quatf |
| Single-precision quaternion. | |
| typedef Quat< double > | Quatd |
| Double-precision quaternion. | |
| using | StdRandom = al::rnd::Random< StdRnd > |
| typedef Ray< float > | Rayf |
| typedef Ray< double > | Rayd |
| typedef SphereCoord< float > | SphereCoordf |
| float SphereCoord | |
| typedef SphereCoord< double > | SphereCoordd |
| double SphereCoord | |
| typedef Vec< 2, float > | Vec2f |
| float 2-vector | |
| typedef Vec< 2, double > | Vec2d |
| double 2-vector | |
| typedef Vec< 2, int > | Vec2i |
| integer 2-vector | |
| typedef Vec< 3, float > | Vec3f |
| float 3-vector | |
| typedef Vec< 3, double > | Vec3d |
| double 3-vector | |
| typedef Vec< 3, int > | Vec3i |
| integer 3-vector | |
| typedef Vec< 4, float > | Vec4f |
| float 4-vector | |
| typedef Vec< 4, double > | Vec4d |
| double 4-vector | |
| typedef Vec< 4, int > | Vec4i |
| integer 4-vector | |
| typedef std::vector< Speaker > | Speakers |
| A set of speakers. | |
| typedef int | UnitsTy |
Enumerations | |
| enum | Capability { CAP_NONE = 0 , CAP_SIMULATOR = 1 << 1 , CAP_RENDERING = 1 << 2 , CAP_OMNIRENDERING = 1 << 3 , CAP_AUDIO_IO = 1 << 4 , CAP_OSC = 1 << 5 , CAP_CONSOLE_IO = 1 << 6 , CAP_2DGUI = 1 << 7 , CAP_STATE_SEND = 1 << 8 , CAP_USER = 1 << 10 } |
| enum class | ShaderType : unsigned char { COLOR , MESH , TEXTURE , LIGHTING_COLOR , LIGHTING_MESH , LIGHTING_TEXTURE , LIGHTING_MATERIAL } |
| enum | AttribLayout : unsigned int { ATTRIB_POSITION = 0 , ATTRIB_COLOR = 1 , ATTRIB_TEXCOORD_2D = 2 , ATTRIB_NORMAL = 3 } |
| enum | SynthEventType { TRIGGER_ON , TRIGGER_OFF , PARAMETER_CHANGE } |
| enum | BIQUADTYPE { BIQUAD_LPF , BIQUAD_HPF , BIQUAD_BPF , BIQUAD_NOTCH , BIQUAD_PEQ , BIQUAD_LSH , BIQUAD_HSH } |
| enum | AttenuationLaw { ATTEN_NONE = 0 , ATTEN_LINEAR , ATTEN_INVERSE , ATTEN_INVERSE_SQUARE } |
| Distance to attenuation laws. More... | |
| enum | VoxelUnits { VOX_PICOMETERS = -12 , VOX_ANGSTROMS = -10 , VOX_NANOMETERS = -9 , VOX_MICROMETERS = -6 , VOX_MILLIMETERS = -3 , VOX_CENTIMETERS = -2 , VOX_METERS = 0 , VOX_KILOMETERS = 3 } |
| enum | MRCMode { MRC_IMAGE_SINT8 = 0 , MRC_IMAGE_SINT16 = 1 , MRC_IMAGE_FLOAT32 = 2 , MRC_TRANSFORM_INT16 = 3 , MRC_TRANSFORM_FLOAT32 = 4 , MRC_IMAGE_UINT16 = 6 } |
| enum class | TimeMasterMode { TIME_MASTER_AUDIO , TIME_MASTER_GRAPHICS , TIME_MASTER_UPDATE , TIME_MASTER_FREE , TIME_MASTER_CPU } |
| enum | PickEventType { Point , Pick , PickPose , Unpick , Drag , TranslateRay , RotateRay , RotateRayTrackball , RotateTurntable , RotatePose , Scale } |
Functions | |
| void | compileDefaultShader (ShaderProgram &s, ShaderType type, bool is_omni=false) |
| std::string | multilight_vert_shader (ShaderType type, int num_lights, bool is_omni=false) |
| std::string | multilight_frag_shader (ShaderType type, int num_lights) |
| void | compileMultiLightShader (ShaderProgram &s, ShaderType type, int num_lights, bool is_omni=false) |
| const char * | shaderVersionString (int major, int minor) |
| const char * | stereoVertexDisplaceFunctionString (bool isOmni) |
| std::string | vertexShaderStringP (int major, int minor, bool isStereo, bool isOmni, bool doLighting) |
| std::string | vertexShaderStringPC (int major, int minor, bool isStereo, bool isOmni, bool doLighting) |
| std::string | vertexShaderStringPT (int major, int minor, bool isStereo, bool isOmni, bool doLighting) |
| std::string | fragShaderStringU (int major, int minor, bool doLighting) |
| std::string | fragShaderStringC (int major, int minor, bool doLighting) |
| std::string | fragShaderStringT (int major, int minor, bool doLighting) |
| ShaderSources | defaultShaderUniformColor (bool isStereo, bool isOmni, bool doLighting) |
| ShaderSources | defaultShaderVertexColor (bool isStereo, bool isOmni, bool doLighting) |
| ShaderSources | defaultShaderTextureColor (bool isStereo, bool isOmni, bool doLighting) |
| int | addTetrahedron (Mesh &m, float radius=1) |
| Add tetrahedron as indexed triangles. More... | |
| int | addCube (Mesh &m, bool withNormalsAndTexcoords=false, float radius=M_SQRT_1_3) |
| Add cube as indexed triangles. More... | |
| int | addOctahedron (Mesh &m, float radius=1) |
| Add octahedron as triangle vertices and indices. More... | |
| int | addDodecahedron (Mesh &m, float radius=1) |
| Add dodecahedron as indexed triangles. More... | |
| int | addIcosahedron (Mesh &m, float radius=1) |
| Add icosahedron as indexed triangles. More... | |
| int | addIcosphere (Mesh &m, double radius=1, int divisions=2) |
| Add sphere produced from subdivided icosahedron as indexed triangles. More... | |
| int | addSphere (Mesh &m, double radius=1, int slices=16, int stacks=16) |
| Add sphere as indexed triangles. More... | |
| int | addSphereWithTexcoords (Mesh &m, double radius=1, int bands=16) |
| int | addWireBox (Mesh &m, float width, float height, float depth) |
| Add wireframe box as indexed lines. More... | |
| int | addWireBox (Mesh &m, float size=1) |
| int | addCone (Mesh &m, float radius=1, const Vec3f &apex=Vec3f(0, 0, 2), unsigned slices=16, unsigned cycles=1) |
| Add a cone/pyramid as indexed triangles. More... | |
| int | addDisc (Mesh &m, float radius=1, unsigned slices=16) |
| Add a disc/regular polygon as indexed triangles. More... | |
| int | addPrism (Mesh &m, float btmRadius=1, float topRadius=1, float height=2, unsigned slices=16, float twist=0) |
| Add a prism as an indexed triangle strip. More... | |
| int | addAnnulus (Mesh &m, float inRadius=0.5, float outRadius=1, unsigned slices=16, float twist=0) |
| Add an annulus ("little ring") as an indexed triangle strip. More... | |
| int | addCylinder (Mesh &m, float radius=1, float height=2, unsigned slices=16, float twist=0) |
| Add an open cylinder as an indexed triangle strip. More... | |
| int | addSurface (Mesh &m, int Nx, int Ny, double width=2, double height=2, double x=0, double y=0) |
| Add a tessellated rectangular surface as an indexed triangle strip. More... | |
| int | addSurfaceLoop (Mesh &m, int Nx, int Ny, int loopMode, double width=2, double height=2, double x=0, double y=0) |
| Add a tessellated rectangular surface with connected edges. More... | |
| int | addTorus (Mesh &m, double minRadius=0.3, double majRadius=0.7, int Nmin=16, int Nmaj=16, double minPhase=0) |
| Add a torus as an indexed triangle strip. More... | |
| int | addTexQuad (Mesh &m, float half_width=1, float half_height=1) |
| int | addQuad (Mesh &m, float half_width=1, float half_height=1) |
| int | addRect (Mesh &m, float x, float y, float w, float h) |
| int | addTexRect (Mesh &m, float x, float y, float w, float h) |
| Matrix4f | view_mat (Pose const &) |
| AudioDevice::StreamMode | operator| (const AudioDevice::StreamMode &a, const AudioDevice::StreamMode &b) |
| AudioDeviceInfo::StreamMode | operator| (const AudioDeviceInfo::StreamMode &a, const AudioDeviceInfo::StreamMode &b) |
| std::string | demangle (const char *name) |
| FileList | itemListInDir (std::string const &dir) |
| FileList | fileListFromDir (std::string const &dir) |
| FilePath | searchFileFromDir (std::string const &filename, std::string const &dir) |
| FileList | filterInDir (std::string const &dir, std::function< bool(FilePath const &)> f, bool recursive=false) |
| bool | checkExtension (std::string const &filename, std::string const &extension) |
| bool | checkExtension (FilePath const &filepath, std::string const &extension) |
| void | imguiInit () |
| void | imguiBeginFrame () |
| void | imguiEndFrame () |
| void | imguiDraw () |
| void | imguiShutdown () |
| bool | isImguiUsingInput () |
| bool | isImguiUsingKeyboard () |
| double | noteToHz (double noteNumber) |
| int | getMIDIDeviceIndex (std::string deviceName) |
| Window::DisplayMode | operator| (const Window::DisplayMode &a, const Window::DisplayMode &b) |
| Window::DisplayMode | operator& (const Window::DisplayMode &a, const Window::DisplayMode &b) |
| void | initializeWindowManager () |
| void | terminateWindowManager () |
| float | getCurrentWindowPixelDensity () |
| TEM T | abs (const Complex< T > &c) |
| TEM Complex< T > | exp (const Complex< T > &c) |
| TEM Complex< T > | log (const Complex< T > &c) |
| TEM Complex< T > | pow (const Complex< T > &b, const Complex< T > &e) |
| TEM Complex< T > | pow (const Complex< T > &b, const T &e) |
| template<class T > | |
| Complex< T > | operator+ (T r, const Complex< T > &c) |
| template<class T > | |
| Complex< T > | operator- (T r, const Complex< T > &c) |
| template<class T > | |
| Complex< T > | operator* (T r, const Complex< T > &c) |
| template<class T > | |
| Complex< T > | operator/ (T r, const Complex< T > &c) |
| template<class VecN , class T > | |
| VecN | rotate (const VecN &v, const VecN &p, const Complex< T > &a) |
| template<class VecN , class T > | |
| void | rotatePlane (VecN &v1, VecN &v2, const Complex< T > &a) |
| template<class Vec3 , class T > | |
| Vec3 | sterProj (const al::Complex< T > &c) |
| bool | aeq (float a, float b, int maxULP=10) |
| Return whether two floats are almost equal. More... | |
| bool | aeq (double a, double b, int maxULP=10) |
| template<class T > | |
| T | ampTodB (const T &) |
| template<class T > | |
| T | atLeast (const T &v, const T &eps) |
| template<class T > | |
| T | atan2Fast (const T &y, const T &x) |
| uint32_t | bitsSet (uint32_t v) |
| Returns number of bits set to 1. More... | |
| template<class T > | |
| T | ceil (const T &val, const T &step) |
| template<class T > | |
| T | ceil (const T &val, const T &step, const T &recStep) |
| uint32_t | ceilEven (uint32_t v) |
| Returns even number ceiling. | |
| uint32_t | ceilPow2 (uint32_t value) |
| Returns power of two ceiling of value. More... | |
| template<class T > | |
| T | clip (const T &value, const T &hi=T(1), const T &lo=T(0)) |
| template<class T > | |
| T | clip (const T &v, int &clipFlag, const T &hi, const T &lo) |
| Returns value clipped to [lo, hi] and signifies clipping behavior. More... | |
| template<class T > | |
| T | clipS (const T &value, const T &hi=T(1)) |
| template<class T > | |
| T | dBToAmp (const T &db) |
| template<class T > | |
| bool | even (const T &v) |
| template<class T > | |
| T | erf (const T &v) |
| uint32_t | factorial (uint32_t n0to12) |
| double | factorialSqrt (int v) |
| template<class T > | |
| T | floor (const T &val, const T &step) |
| template<class T > | |
| T | floor (const T &val, const T &step, const T &recStep) |
| uint32_t | floorPow2 (uint32_t value) |
| Returns power of two floor of value. More... | |
| template<class T > | |
| T | fold (const T &value, const T &hi=T(1), const T &lo=T(0)) |
| Returns value folded into [lo, hi]. More... | |
| template<class T > | |
| T | foldOnce (const T &value, const T &hi=T(1), const T &lo=T(0)) |
| template<class T > | |
| T | gaussian (const T &v) |
| template<class T > | |
| T | gcd (const T &x, const T &y) |
| template<typename T , typename... Ts> | |
| T | gcd (const T &x, const Ts &... rest) |
| template<class T > | |
| T | gudermannian (const T &x) |
| template<class T > | |
| T | laguerreL (int n, int k, T x) |
| Generalized Laguerre polynomial L{n,k}. More... | |
| template<class T > | |
| T | lcm (const T &x, const T &y) |
| Returns least common multiple. | |
| template<class T > | |
| T | legendreP (int l, int m, T t) |
| template<class T > | |
| T | legendreP (int l, int m, T ct, T st) |
| template<class T > | |
| bool | lessAbs (const T &v, const T &eps=T(0.000001)) |
| template<typename T > | |
| T | max (const T &v1, const T &v2, const T &v3) |
| template<class T > | |
| T | mean (const T &v1, const T &v2) |
| template<class T > | |
| T | min (const T &v1, const T &v2, const T &v3) |
| template<class T > | |
| T | nearestDiv (T of, T to) |
| template<class T > | |
| T | nextAfter (const T &x, const T &y) |
| template<class T > | |
| T | nextMultiple (T val, T multiple) |
| template<class T > | |
| T | numInt (const T &v) |
| template<class T > | |
| bool | odd (const T &v) |
| template<class T > | |
| T | poly (const T &x, const T &a0, const T &a1, const T &a2) |
| template<class T > | |
| T | poly (const T &x, const T &a0, const T &a1, const T &a2, const T &a3) |
| template<class T > | |
| T | pow2 (const T &v) |
| Returns value to the 2nd power. | |
| template<class T > | |
| T | pow2S (const T &v) |
| Returns value to the 2nd power preserving sign. | |
| template<class T > | |
| T | pow3 (const T &v) |
| Returns value to the 3rd power. | |
| template<class T > | |
| T | pow3Abs (const T &v) |
| Returns absolute value to the 3rd power. | |
| template<class T > | |
| T | pow4 (const T &v) |
| Returns value to the 4th power. | |
| template<class T > | |
| T | pow5 (const T &v) |
| Returns value to the 5th power. | |
| template<class T > | |
| T | pow6 (const T &v) |
| Returns value to the 6th power. | |
| template<class T > | |
| T | pow8 (const T &v) |
| Returns value to the 8th power. | |
| template<class T > | |
| T | pow16 (const T &v) |
| Returns value to the 16th power. | |
| template<class T > | |
| T | pow64 (const T &v) |
| Returns value to the 64th power. | |
| template<class T > | |
| T | powN (T base, unsigned power) |
| Returns value to a positive integer power. More... | |
| unsigned char | prime (uint32_t n) |
| template<class T > | |
| T | round (const T &v, const T &step) |
| template<class T > | |
| T | round (const T &v, const T &step, const T &recStep) |
| template<class T > | |
| T | roundAway (const T &v) |
| template<class T > | |
| T | roundAway (const T &v, const T &step) |
| template<class T > | |
| T | sgn (const T &v, const T &norm=T(1)) |
| template<class T > | |
| T | sinc (const T &radians, const T &eps=T(0.0001)) |
| template<class T > | |
| T | slope (const T &x1, const T &y1, const T &x2, const T &y2) |
| template<class T > | |
| void | sort (T &value1, T &value2) |
| template<class T > | |
| T | sumOfSquares (T n) |
| uint32_t | trailingZeroes (uint32_t v) |
| Returns number of trailing zeros in 32-bit int. More... | |
| template<class T > | |
| T | trunc (const T &v, const T &step) |
| template<class T > | |
| T | trunc (const T &v, const T &step, const T &recStep) |
| template<class T > | |
| bool | within (const T &v, const T &lo, const T &hi) |
| template<class T > | |
| bool | within3 (const T &v1, const T &v2, const T &v3, const T &lo, const T &hi) |
| template<class T > | |
| bool | withinIE (const T &v, const T &lo, const T &hi) |
| template<class T > | |
| T | wrap (const T &value, const T &hi=T(1), const T &lo=T(0)) |
| template<class T > | |
| T | wrap (const T &value, long &numWraps, const T &hi=T(1), const T &lo=T(0)) |
| Returns value wrapped in [lo, hi). More... | |
| template<class T > | |
| T | wrapAdd1 (const T &v, const T &max) |
| template<class T > | |
| T | wrapOnce (const T &value, const T &hi=T(1)) |
| template<class T > | |
| T | wrapOnce (const T &value, const T &hi, const T &lo) |
| template<class T > | |
| T | wrapPhase (const T &radians) |
| template<class T > | |
| T | wrapPhaseOnce (const T &radians) |
| TEM T | poly (const T &v, const T &a0, const T &a1, const T &a2, T a3) |
| TEM T | mapRange (T value, T inlow, T inhigh, T outlow, T outhigh) |
| TEM T | lerp (T src, T dest, T amt) |
| template<int N, class T > | |
| Mat< N, T > | operator+ (const T &s, const Mat< N, T > &v) |
| template<int N, class T > | |
| Mat< N, T > | operator- (const T &s, const Mat< N, T > &v) |
| template<int N, class T > | |
| Mat< N, T > | operator* (const T &s, const Mat< N, T > &v) |
| template<int N, class T , class U > | |
| Vec< N, U > | operator* (const Mat< N, T > &m, const Vec< N, U > &vCol) |
| template<int N, class T , class U > | |
| Vec< N, U > | operator* (const Vec< N, U > &vRow, const Mat< N, T > &m) |
| template<class T > | |
| T | determinant (const Mat< 1, T > &m) |
| template<class T > | |
| T | determinant (const Mat< 2, T > &m) |
| template<class T > | |
| T | determinant (const Mat< 3, T > &m) |
| template<int N, class T > | |
| T | determinant (const Mat< N, T > &m) |
| Get determinant. More... | |
| template<class T > | |
| bool | invert (Mat< 1, T > &m) |
| template<class T > | |
| bool | invert (Mat< 2, T > &m) |
| template<int N, class T > | |
| bool | invert (Mat< N, T > &m) |
| template<class T > | |
| T | frustumFar (const Mat< 4, T > &proj) |
| Get frustum far plane distance from a projection matrix. | |
| template<class T > | |
| T | frustumNear (const Mat< 4, T > &proj) |
| Get frustum near plane distance from a projection matrix. | |
| template<class T > | |
| T | frustumDepth (const Mat< 4, T > &proj) |
| Get frustum depth from a projection matrix. | |
| template<class T > | |
| T | frustumAspect (const Mat< 4, T > &proj) |
| Get frustum aspect ratio from a projection matrix. | |
| template<class T > | |
| Quat< T > | operator+ (T r, const Quat< T > &q) |
| template<class T > | |
| Quat< T > | operator- (T r, const Quat< T > &q) |
| template<class T > | |
| Quat< T > | operator* (T r, const Quat< T > &q) |
| template<class T > | |
| Quat< T > | operator/ (T r, const Quat< T > &q) |
| template<class T > | |
| void | sphericalToCart (T &r2x, T &t2y, T &p2z) |
| Convert spherical to Cartesian coordinates in-place. More... | |
| template<class T > | |
| void | sphericalToCart (T *vec3) |
| Convert spherical to Cartesian coordinates in-place. | |
| template<class T > | |
| void | cartToSpherical (T &x2r, T &y2t, T &z2p) |
| Convert Cartesian to spherical coordinates in-place. More... | |
| template<class T > | |
| void | cartToSpherical (T *vec3) |
| Convert Cartesian to spherical coordinates in-place. | |
| template<int N, class T > | |
| Vec< N - 1, T > | sterProj (const Vec< N, T > &v) |
| Stereographic projection from an n-sphere to an n-1 dimensional hyperplane. More... | |
| template<int N, class T > | |
| Vec< N, T > | operator+ (const T &s, const Vec< N, T > &v) |
| template<int N, class T > | |
| Vec< N, T > | operator- (const T &s, const Vec< N, T > &v) |
| template<int N, class T > | |
| Vec< N, T > | operator* (const T &s, const Vec< N, T > &v) |
| template<int N, class T > | |
| Vec< N, T > | operator/ (const T &s, const Vec< N, T > &v) |
| template<int N, class T > | |
| T | abs (const Vec< N, T > &v) |
| Get absolute value (magnitude) of vector. | |
| template<int N1, class T1 , int N2, class T2 > | |
| Vec< N1+N2, T1 > | concat (const Vec< N1, T1 > &a, const Vec< N2, T2 > &b) |
| Returns concatenation of two vectors. | |
| template<int M, int N, class T > | |
| Vec< M, T > | sub (const Vec< N, T > &v, int begin=0) |
| Get a subvector. | |
| template<class T > | |
| void | cross (Vec< 3, T > &r, const Vec< 3, T > &a, const Vec< 3, T > &b) |
| Sets r to cross product, a x b. | |
| template<class T > | |
| Vec< 3, T > | cross (const Vec< 3, T > &a, const Vec< 3, T > &b) |
| Returns cross product, a x b. | |
| template<class T > | |
| void | cross (Vec< 3, T > &r, const Vec< 4, T > &a, const Vec< 4, T > &b) |
| template<class T > | |
| Vec< 3, T > | cross (const Vec< 4, T > &a, const Vec< 4, T > &b) |
| Returns cross product, a x b. | |
| template<class T > | |
| void | rotate (Vec< 3, T > &vec, const Vec< 3, T > &normal, double cosAng, double sinAng) |
| Rotate a vector around a normal vector. More... | |
| template<class T > | |
| void | rotate (Vec< 3, T > &vec, const Vec< 3, T > &normal, double angle) |
| Rotate a vector around a normal vector. More... | |
| template<int N, class T > | |
| T | angle (const Vec< N, T > &a, const Vec< N, T > &b) |
| Returns angle, in interval [0, pi], between two vectors. | |
| template<int N, class T > | |
| void | centroid3 (Vec< N, T > &c, const Vec< N, T > &p1, const Vec< N, T > &p2, const Vec< N, T > &p3) |
| template<int N, class T > | |
| Vec< N, T > | closestPointOnLineSegment (const Vec< N, T > &a, const Vec< N, T > &b, const Vec< N, T > &p) |
| Get closest point on line segment ab to point p. | |
| template<int N, class T , class U > | |
| T | dist (const Vec< N, T > &a, const Vec< N, U > &b) |
| Returns distance between two vectors. | |
| template<int N, class T > | |
| Vec< N, T > | lerp (const Vec< N, T > &input, const Vec< N, T > &target, T amt) |
| template<class T > | |
| void | normal (Vec< 3, T > &n, const Vec< 3, T > &p1, const Vec< 3, T > &p2, const Vec< 3, T > &p3) |
| template<int N, class T > | |
| Vec< N, T > | min (const Vec< N, T > &a, const Vec< N, T > &b) |
| Returns vector containing element-wise minimum between two vectors. | |
| template<int N, class T > | |
| Vec< N, T > | max (const Vec< N, T > &a, const Vec< N, T > &b) |
| Returns vector containing element-wise maximum between two vectors. | |
| template<typename T > | |
| const char * | typeString () |
| TypeString (char) TypeString(unsigned char) TypeString(int) TypeString(unsigned int) TypeString(float) TypeString(double) TypeString(long double) template< int N | |
| template<int N, class T > | |
| std::ostream & | operator<< (std::ostream &out, const Vec< N, T > &v) |
| int | asciiToIndex (int asciiKey, int offset=0) |
| int | asciiToMIDI (int asciiKey, int offset=0) |
| SoundFile | getResampledSoundFile (SoundFile *toConvert, unsigned int newSampleRate) |
| template<int N> | |
| Speakers | SpeakerRingLayout (unsigned int deviceChannelStart=0, float phase=0.f, float radius=1.f, float gain=1.f) |
| Speakers | HeadsetSpeakerLayout (unsigned int deviceChannelStart=0, float radius=1.f, float gain=1.f) |
| Speakers | StereoSpeakerLayout (unsigned int deviceChannelStart=0, float angle=30.f, float distance=1.f, float gain=1.f) |
| Speakers | OctalSpeakerLayout (unsigned int deviceChannelStart=0, float phase=0.f, float radius=1.f, float gain=1.f) |
| Speakers | CubeLayout (unsigned int deviceChannelStart=0) |
| template<class V2 > | |
| void | frenet (const V2 &d1, V2 &t, V2 &n) |
| Compute Frenet frame (tangent, normal) from 1st difference. | |
| template<class V3 > | |
| void | frenet (const V3 &d1, const V3 &d2, V3 &t, V3 &n, V3 &b) |
| template<class V3 > | |
| void | frenet (const V3 &p2, const V3 &p1, const V3 &p0, V3 &t, V3 &n, V3 &b) |
| Compute Frenet frame (tangent, normal, binormal) from 3 consecutive points. | |
| Speakers | AlloSphereSpeakerLayout () |
| Current arrangement of speakers in AlloSphere. | |
| Mat4f | get_cube_mat (int face) |
| bhlw | viewport_for_cubemap_face (int idx) |
| std::string | perprojection_samplevert () |
| std::string | perprojection_samplefrag () |
| char | intensityToASCII (float v) |
| template<typename T > | |
| void | print (const T *arr, int size, const char *append="") |
| Print an array of numbers. More... | |
| template<typename T > | |
| void | println (const T *arr, int size) |
| Print an array of numbers with new line. More... | |
| template<typename T > | |
| void | print (const T &v, const char *append="") |
| Print value. More... | |
| template<typename T > | |
| void | println (const T &v) |
| Print value with new line. | |
| template<class T > | |
| void | print2D (const T *arr, int nx, int ny, FILE *fp=stdout) |
| Prints 2D array of intensity values. More... | |
| void | printPlot (float value, uint32_t width=50, bool spaces=true, const char *point="o") |
| Print signed unit value on a horizontal plot. More... | |
| void | err (const char *msg, const char *src="", bool exits=true) |
| Prints error message to stderr and optionally calls exit() | |
| void | _warn (const char *fileName, int lineNumber, const char *fmt,...) |
| void | _warnOnce (const char *fileName, int lineNumber, const char *fmt,...) |
| void * | getUser () |
| void | registerSigInt (void *app) |
| al_sec | al_system_time () |
| Get current wall time in seconds. | |
| al_nsec | al_system_time_nsec () |
| void | al_start_steady_clock () |
| void | al_reset_steady_clock () |
| al_sec | al_steady_time () |
| al_nsec | al_steady_time_nsec () |
| void | al_sleep (al_sec dt) |
| Sleep for an interval of seconds. | |
| void | al_sleep_nsec (al_nsec dt) |
| void | al_sleep_until (al_sec target) |
| void | wait (al_sec dt) |
| al_sec | walltime () |
| al_sec | timeNow () |
| std::string | toTimecode (al_nsec t, const std::string &format="D:H:M:S:m:u") |
| Convert nanoseconds to timecode string. | |
| RGB | operator+ (float s, const RGB &c) |
| RGB | operator- (float s, const RGB &c) |
| RGB | operator* (float s, const RGB &c) |
| RGB | operator/ (float s, const RGB &c) |
| Color | operator+ (float s, const Color &c) |
| Color | operator- (float s, const Color &c) |
| Color | operator* (float s, const Color &c) |
| Color | operator/ (float s, const Color &c) |
| HSV | operator* (float s, const HSV &c) |
| CONST_ (MaskExpo, 0x7F800000, 0x7FF0000000000000) CONST_(MaskFrac | |
| CONST_ (MaskSign, 0x80000000, 0x8000000000000000) CONST_(Expo1 | |
| char | base10To36 (int dec10) |
| Convert decimal integer to ascii base-36 character. | |
| int | base36To10 (char ascii36) |
| Convert ascii base-36 character to decimal integer. | |
| uint32_t | bitsToUInt (const char *strBin) |
| Convert a string of 1s and 0s to an integer. More... | |
| float | blockSubnormal (float v) |
| Returns zero if argument is subnormal, otherwise returns argument. More... | |
| double | blockSubnormal (double v) |
| Returns zero if argument is subnormal, otherwise returns argument. More... | |
| template<class T > | |
| T | clone (const T &obj) |
| Returns temporary copy-constructed object. More... | |
| int | endian () |
| Returns 1 if little endian, 0 if big endian. | |
| uint32_t | floatExponent (float v) |
| Returns biased decimal value of 32-bit float exponent field. More... | |
| float | floatMantissa (float v) |
| Returns mantissa field as float between [0, 1). | |
| float | fraction (uint32_t bits, uint32_t phase) |
| Converts linear integer phase to fraction. More... | |
| float | intToUnit (int16_t v) |
| Convert 16-bit signed integer to floating point in [-1, 1) | |
| float | punUF (uint32_t v) |
| Type-pun 32-bit unsigned int to 32-bit float. More... | |
| uint32_t | punFU (float v) |
| Type-pun 32-bit float to 32-bit unsigned int. More... | |
| int32_t | punFI (float v) |
| Type-pun 32-bit float to 32-bit signed int. | |
| uint64_t | punFU (double v) |
| Type-pun 64-bit float to 64-bit unsigned int. | |
| int64_t | punFI (double v) |
| Type-pun 64-bit float to 64-bit signed int. | |
| double | punUF (uint64_t v) |
| Type-pun 64-bit unsigned int to 64-bit float. | |
| double | punIF (int64_t v) |
| Type-pun 64-bit signed int to 64-bit float. | |
| template<typename T > | |
| void | swapBytes (T &word) |
| Swap the bytes of a word in-place. | |
| template<typename T > | |
| void | swapBytes (T *data, unsigned count) |
| Swap the bytes of the words in an array in-place. | |
| template<class T > | |
| std::string | toString (const char *fmt, const T &v) |
| Convert argument to a string using snprintf. | |
| template<class T > | |
| std::string | toString (const T &v) |
| Convert numerical type to a string. | |
| template<class T > | |
| std::string | toString (const T *v, int num, int stride=1) |
| Convert array of numerical types to a comma separated string. | |
| template<class T > | |
| T | uintToUnit (uint32_t v) |
| Convert 32-bit unsigned integer to unit float in [0, 1) | |
| template<class T > | |
| T | uintToUnitS (uint32_t v) |
| Convert 32-bit unsigned integer to unit float in [-1, 1) | |
| int16_t | unitToInt16 (float v) |
| Convert float in [-1, 1) to 16-bit signed int in [0, 2^16) | |
| uint32_t | unitToUInt (float u) |
| Convert float in [0, 1) to 32-bit unsigned int in [0, 2^32) More... | |
| uint32_t | unitToUInt2 (float u) |
| Convert float in [0, 1) to 32-bit unsigned int in [0, 2^32) More... | |
| uint8_t | unitToUInt8 (float u) |
| Convert float in [0, 1) to 8-bit unsigned int in [0, 256) | |
| template<int NumBytes> | |
| void | swapBytesN (void *word) |
| template<> | |
| void | swapBytesN< 1 > (void *word) |
| template<> | |
| void | swapBytesN< 2 > (void *word) |
| template<> | |
| void | swapBytesN< 3 > (void *word) |
| template<> | |
| void | swapBytesN< 4 > (void *word) |
| template<> | |
| void | swapBytesN< 8 > (void *word) |
| template<> | |
| float | uintToUnit< float > (uint32_t v) |
| template<> | |
| float | uintToUnitS< float > (uint32_t v) |
| uint32_t | next_power_of_two (uint32_t v) |
Variables | |
| constexpr int | handshakeServerPort = 16987 |
| constexpr int | listenerFirstPort = 14000 |
Ensures that GPU resources are valid even when a rendering context is rebuilt.
GPUContext represents an object with a corollary rendering context on a GPU. GPUObject is a shared base class for all objects that have a corrollary object on the GPU, and which must be re-submitted when the rendering context is rebuilt. An object that inherits GPUContext must call contextDestroy() when the context has been invalidated. For example, the al::Window object does this automatically when the window is closed or enters/leaves fullscreen. Doing so will mark all associated GPUObjects as invalidated (calling their onDestroy() handlers). Each GPUObject should call validate() before attempting to render; this will re-submit the resources (by calling its onCreate() handler).
GPUContexts are identified by an integer ID, which increments for each context created. The first created context has ID=0. GPUObjects will register with this context by default.
A note on coordinate conventions
The cartesian coordinate system used for Ambisonics is:
+x is forward
+y is left
+z is up
The polar coordinate system is as follows:
Azimuth is the angle between the xz-plane and the source. From
the listener's perspective, a positive azimuth is leftward (towards +y) and negative is rightwards (towards -y). Elevation is the angle between the xy-plane and the source. From the listener's perspective, a positive elevation is upward (towards +z) and negative is downward (towards -z).
The cartesian coordinate system used in Allocore's OpenGL is:
+x is right
+y is up
+z is backward
The correct OpenGL to Ambisonics conversion is thus:
ambi_x = -gl_z;
ambi_y = -gl_x;
ambi_z = gl_y;
| enum al::AttenuationLaw |
Distance to attenuation laws.
Definition at line 51 of file al_DistAtten.hpp.
| int al::addAnnulus | ( | Mesh & | m, |
| float | inRadius = 0.5, |
||
| float | outRadius = 1, |
||
| unsigned | slices = 16, |
||
| float | twist = 0 |
||
| ) |
Add an annulus ("little ring") as an indexed triangle strip.
| [in,out] | m | Mesh to add vertices and indices to |
| [in] | inRadius | Radius of inner circle (on xy plane) |
| [in] | outRadius | Radius of outer circle (on xy plane) |
| [in] | slices | Number of polygon vertices |
| [in] | twist | Rotation factor between polygons |
| int al::addCone | ( | Mesh & | m, |
| float | radius = 1, |
||
| const Vec3f & | apex = Vec3f(0, 0, 2), |
||
| unsigned | slices = 16, |
||
| unsigned | cycles = 1 |
||
| ) |
Add a cone/pyramid as indexed triangles.
Note that the base lies on the xy plane, thus the shape is not "centered" on the z axis.
| [in,out] | m | Mesh to add vertices and indices to |
| [in] | radius | Radius of base (on xy plane) |
| [in] | apex | Position of apex |
| [in] | slices | Number of points going around base |
| [in] | cycles | Number of cycles to go around base (should be relatively prime to slices) |
| int al::addCube | ( | Mesh & | m, |
| bool | withNormalsAndTexcoords = false, |
||
| float | radius = M_SQRT_1_3 |
||
| ) |
Add cube as indexed triangles.
| [in,out] | m | Mesh to add vertices and indices to |
| [in] | radius | Radius of enclosing sphere |
| int al::addCylinder | ( | Mesh & | m, |
| float | radius = 1, |
||
| float | height = 2, |
||
| unsigned | slices = 16, |
||
| float | twist = 0 |
||
| ) |
Add an open cylinder as an indexed triangle strip.
To create a cylinder with different radii for the top and bottom, /see addPrism.
| [in,out] | m | Mesh to add vertices and indices to |
| [in] | radius | Radius (on xy plane) |
| [in] | height | Height (along z axis) |
| [in] | slices | Number of polygon vertices |
| [in] | twist | Rotation factor between polygons |
| int al::addDisc | ( | Mesh & | m, |
| float | radius = 1, |
||
| unsigned | slices = 16 |
||
| ) |
Add a disc/regular polygon as indexed triangles.
| [in,out] | m | Mesh to add vertices and indices to |
| [in] | radius | Radius of disc (on xy plane) |
| [in] | slices | Number of points going around base |
| int al::addDodecahedron | ( | Mesh & | m, |
| float | radius = 1 |
||
| ) |
Add dodecahedron as indexed triangles.
| [in,out] | m | Mesh to add vertices and indices to |
| [in] | radius | Radius of enclosing sphere |
| int al::addIcosahedron | ( | Mesh & | m, |
| float | radius = 1 |
||
| ) |
Add icosahedron as indexed triangles.
| [in,out] | m | Mesh to add vertices and indices to |
| [in] | radius | Radius of enclosing sphere |
| int al::addIcosphere | ( | Mesh & | m, |
| double | radius = 1, |
||
| int | divisions = 2 |
||
| ) |
Add sphere produced from subdivided icosahedron as indexed triangles.
| [in,out] | m | Mesh to add vertices and indices to |
| [in] | radius | Radius of sphere |
| [in] | divisions | Number of recursive subdivisions |
| int al::addOctahedron | ( | Mesh & | m, |
| float | radius = 1 |
||
| ) |
Add octahedron as triangle vertices and indices.
| [in,out] | m | Mesh to add vertices and indices to |
| [in] | radius | Radius of enclosing sphere |
| int al::addPrism | ( | Mesh & | m, |
| float | btmRadius = 1, |
||
| float | topRadius = 1, |
||
| float | height = 2, |
||
| unsigned | slices = 16, |
||
| float | twist = 0 |
||
| ) |
Add a prism as an indexed triangle strip.
A prism is formed from a triangle strip between two parallel regular polygons.
| [in,out] | m | Mesh to add vertices and indices to |
| [in] | btmRadius | Radius of bottom polygon (on xy plane) |
| [in] | topRadius | Radius of top polygon (on xy plane) |
| [in] | height | Distance between planes (along z axis) |
| [in] | slices | Number of polygon vertices |
| [in] | twist | Rotation factor between polygons; a value of 0.5 produces an antiprism |
| int al::addSphere | ( | Mesh & | m, |
| double | radius = 1, |
||
| int | slices = 16, |
||
| int | stacks = 16 |
||
| ) |
Add sphere as indexed triangles.
Vertices go stack-by-stack, then slice-by-slice. The stacks start at the north pole (0,0,radius) and end at the south pole (0,0,-radius). The slices start on the x axis and go counter-clockwise on the xy plane.
| [in,out] | m | Mesh to add vertices and indices to |
| [in] | radius | Radius of sphere |
| [in] | slices | Number of slices around z axis |
| [in] | stacks | Number of stacks on xy plane |
| int al::addSurface | ( | Mesh & | m, |
| int | Nx, | ||
| int | Ny, | ||
| double | width = 2, |
||
| double | height = 2, |
||
| double | x = 0, |
||
| double | y = 0 |
||
| ) |
Add a tessellated rectangular surface as an indexed triangle strip.
This creates a flat, regularly-tesselated surface lying on the xy plane. This shape can be used as a starting point for more complex meshes such as height maps/terrains and texture-mapped spheres and torii.
| [in,out] | m | Mesh to add vertices and indices to |
| [in] | Nx | Number of vertices along x |
| [in] | Ny | Number of vertices along y |
| [in] | width | Total width (along x) |
| [in] | height | Total height (along y) |
| [in] | x | Position of center along x |
| [in] | y | Position of center along y |
| int al::addSurfaceLoop | ( | Mesh & | m, |
| int | Nx, | ||
| int | Ny, | ||
| int | loopMode, | ||
| double | width = 2, |
||
| double | height = 2, |
||
| double | x = 0, |
||
| double | y = 0 |
||
| ) |
Add a tessellated rectangular surface with connected edges.
This adds a rectangular surface whose edges are connected. The resulting surface is suitable for warping into cylindrical or toroidal shapes. Given D as the width or height, the interval of position values along a particular dimension is closed-opened, [-D/2, D/2), if that dimension loops or closed, [-D/2, D/2], if that dimension does not loop. The drawing primitive is assumed to be a triangle strip.
| [in,out] | m | Mesh to add vertices and indices to |
| [in] | Nx | Number of vertices along x |
| [in] | Ny | Number of vertices along y |
| [in] | loopMode | 1: connect edges perpendicular to x (cylindrical), 2: connect edges perpendicular to x and y (toroidal) |
| [in] | width | Total width (along x) |
| [in] | height | Total height (along y) |
| [in] | x | Position of center along x |
| [in] | y | Position of center along y |
| int al::addTetrahedron | ( | Mesh & | m, |
| float | radius = 1 |
||
| ) |
Add tetrahedron as indexed triangles.
| [in,out] | m | Mesh to add vertices and indices to |
| [in] | radius | Radius of enclosing sphere |
| int al::addTorus | ( | Mesh & | m, |
| double | minRadius = 0.3, |
||
| double | majRadius = 0.7, |
||
| int | Nmin = 16, |
||
| int | Nmaj = 16, |
||
| double | minPhase = 0 |
||
| ) |
Add a torus as an indexed triangle strip.
If you need a texture-mapped torus, /see addSurface.
| [in,out] | m | Mesh to add vertices and indices to |
| [in] | minRadius | Radius of minor ring |
| [in] | majRadius | Radius of major ring |
| [in] | Nmin | Number of vertices around minor ring |
| [in] | Nmaj | Number of vertices around major ring |
| [in] | minPhase | Starting phase along minor ring, in [0,1] |
| int al::addWireBox | ( | Mesh & | m, |
| float | width, | ||
| float | height, | ||
| float | depth | ||
| ) |
Add wireframe box as indexed lines.
| [in,out] | m | Mesh to add vertices and indices to |
| [in] | width | Total width (along x) |
| [in] | height | Total height (along y) |
| [in] | depth | Total depth (along z) |
|
inline |
Convert a string of 1s and 0s to an integer.
| [in] | strBin | binary string where the first character is the most-significant digit |
Definition at line 273 of file al_Conversion.hpp.
|
inline |
Returns zero if argument is subnormal, otherwise returns argument.
Sets argument to zero if subnormal.
Definition at line 298 of file al_Conversion.hpp.
|
inline |
Returns zero if argument is subnormal, otherwise returns argument.
Sets argument to zero if subnormal.
Definition at line 289 of file al_Conversion.hpp.
| void al::cartToSpherical | ( | T & | x2r, |
| T & | y2t, | ||
| T & | z2p | ||
| ) |
Convert Cartesian to spherical coordinates in-place.
| [in,out] | x2r | x coordinate to radius |
| [in,out] | y2t | y coordinate to theta (angle on xy plane), in [-pi, pi] |
| [in,out] | z2p | z coordinate to phi (angle from z axis), in [0, pi] |
Definition at line 253 of file al_Spherical.hpp.
|
inline |
Compute centroid of a triangle defined by three points
| [out] | c | Centroid |
| [in] | p1 | Point 1 |
| [in] | p2 | Point 2 |
| [in] | p3 | Point 3 |
Definition at line 651 of file al_Vec.hpp.
| T al::clone | ( | const T & | obj | ) |
Returns temporary copy-constructed object.
This function can be more convenient than calling a copy constructor since one does not need to explicitly write the type of the object.
Definition at line 136 of file al_Conversion.hpp.
| Speakers al::CubeLayout | ( | unsigned int | deviceChannelStart = 0 | ) |
Generic layout of 8 speakers arranged in a cube with listener in the middle
| T al::determinant | ( | const Mat< 1, T > & | m | ) |
Get determinant
Definition at line 599 of file al_Mat.hpp.
| T al::determinant | ( | const Mat< 2, T > & | m | ) |
Get determinant
Definition at line 607 of file al_Mat.hpp.
| T al::determinant | ( | const Mat< 3, T > & | m | ) |
Get determinant
Definition at line 615 of file al_Mat.hpp.
| T al::determinant | ( | const Mat< N, T > & | m | ) |
Get determinant.
This computes the determinant using cofactor (or Laplace) expansion. The algorithm operates by recursively computing determinants of submatrices.
Definition at line 628 of file al_Mat.hpp.
|
inline |
Returns biased decimal value of 32-bit float exponent field.
The true exponent is the return value minus 127. For example, values in [0.5, 1) return 126 (01111110), so the true exponent is 126 - 127 = -1.
Definition at line 311 of file al_Conversion.hpp.
|
inline |
Converts linear integer phase to fraction.
2^bits is the effective size of the lookup table.
Note: the fraction only has 24-bits of precision.
Definition at line 319 of file al_Conversion.hpp.
|
inline |
Compute Frenet frame (tangent, normal, binormal) from 1st and 2nd differences
Definition at line 171 of file al_Curve.hpp.
| Speakers al::HeadsetSpeakerLayout | ( | unsigned int | deviceChannelStart = 0, |
| float | radius = 1.f, |
||
| float | gain = 1.f |
||
| ) |
Headset speaker layout
|
inline |
Returns an ASCII character with intensity most closely matching a value in [0,1)
Definition at line 128 of file al_Printing.hpp.
| bool al::invert | ( | Mat< 1, T > & | m | ) |
Invert matrix, returns whether matrix was able to be inverted
Definition at line 643 of file al_Mat.hpp.
| bool al::invert | ( | Mat< 2, T > & | m | ) |
Invert matrix, returns whether matrix was able to be inverted
Definition at line 656 of file al_Mat.hpp.
| bool al::invert | ( | Mat< N, T > & | m | ) |
Invert matrix, returns whether matrix was able to be inverted
Definition at line 669 of file al_Mat.hpp.
|
inline |
Get the normal to a triangle defined by three points
| [out] | n | Normal |
| [in] | p1 | Point 1 |
| [in] | p2 | Point 2 |
| [in] | p3 | Point 3 |
Definition at line 692 of file al_Vec.hpp.
| void al::print | ( | const T & | v, |
| const char * | append = "" |
||
| ) |
Print value.
| [in] | v | value to print |
| [in] | append | an extra string to append at end |
Definition at line 84 of file al_Printing.hpp.
| void al::print | ( | const T * | arr, |
| int | size, | ||
| const char * | append = "" |
||
| ) |
Print an array of numbers.
| [in] | arr | input array |
| [in] | size | size of input array |
| [in] | append | an extra string to append at end |
| void al::print2D | ( | const T * | arr, |
| int | nx, | ||
| int | ny, | ||
| FILE * | fp = stdout |
||
| ) |
Prints 2D array of intensity values.
| [in] | arr | flat 2D array of values in [0, 1) where x moves fastest |
| [in] | nx | number of elements along x |
| [in] | ny | number of elements along y |
| [in] | fp | file to write output to |
Definition at line 163 of file al_Printing.hpp.
| void al::println | ( | const T * | arr, |
| int | size | ||
| ) |
Print an array of numbers with new line.
| [in] | arr | input array |
| [in] | size | size of input array |
Definition at line 75 of file al_Printing.hpp.
| void al::printPlot | ( | float | value, |
| uint32_t | width = 50, |
||
| bool | spaces = true, |
||
| const char * | point = "o" |
||
| ) |
Print signed unit value on a horizontal plot.
| [in] | value | Normalized value to plot |
| [in] | width | Character width of plot excluding center point |
| [in] | spaces | Print extra filling spaces to the right |
| [in] | point | The print character for points |
|
inline |
Type-pun 32-bit float to 32-bit unsigned int.
This function uses a union to avoid problems with direct pointer casting when the fstrict-aliasing compiler flag is on.
Definition at line 175 of file al_Conversion.hpp.
|
inline |
Type-pun 32-bit unsigned int to 32-bit float.
This function uses a union to avoid problems with direct pointer casting when the fstrict-aliasing compiler flag is on.
Definition at line 166 of file al_Conversion.hpp.
Rotate a vector around a normal vector.
| [in,out] | vec | The vector to rotate |
| [in] | normal | A normal perpendicular to the plane of rotation |
| [in] | angle | The rotation angle, in radians |
Definition at line 628 of file al_Vec.hpp.
| void al::rotate | ( | Vec< 3, T > & | vec, |
| const Vec< 3, T > & | normal, | ||
| double | cosAng, | ||
| double | sinAng | ||
| ) |
Rotate a vector around a normal vector.
| [in,out] | vec | The vector to rotate |
| [in] | normal | A normal perpendicular to the plane of rotation |
| [in] | cosAng | Cosine of the rotation angle |
| [in] | sinAng | Sine of the rotation angle |
Definition at line 612 of file al_Vec.hpp.
| void al::sphericalToCart | ( | T & | r2x, |
| T & | t2y, | ||
| T & | p2z | ||
| ) |
Convert spherical to Cartesian coordinates in-place.
| [in,out] | r2x | radius to x coordinate |
| [in,out] | t2y | theta (angle on xy plane), in [-pi, pi], to z coordinate |
| [in,out] | p2z | phi (angle from z axis), in [0, pi], to y coordinate |
Definition at line 239 of file al_Spherical.hpp.
Stereographic projection from an n-sphere to an n-1 dimensional hyperplane.
| N | dimensions of sphere |
| T | element type |
| [in] | v | unit n-vector describing point on n-sphere |
Definition at line 267 of file al_Spherical.hpp.
|
inline |
Convert float in [0, 1) to 32-bit unsigned int in [0, 2^32)
This conversion is most accurate on a linear scale. Input values outside [0, 1) result in undefined behavior.
Definition at line 421 of file al_Conversion.hpp.
|
inline |
Convert float in [0, 1) to 32-bit unsigned int in [0, 2^32)
This conversion is most accurate on an exponential scale. Input values outside [-1, 1) return 0. Values in [-1, 0] behave as positive values in [0, 1).
return (((normalU | 0x800000UL) << 8UL) & (~ULONG_MAX | 0xffffffffUL))
rbs;
return (((normalU | 0x800000UL) << 8UL) & (~ULONG_MAX | 0xffffffffUL))
rbs;
Definition at line 427 of file al_Conversion.hpp.